RDBMS
- 데이터 타입과 제약을 통해 데이터의 정확성 보장
- SQL이라는 RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어를 사용한 질의문을 통해 데이터를 다룸
- 데이터의 update가 빠름
- 데이터 처리에 대한 부하 발생 시 처리가 어려움
- 하나의 정보를 만들기 위해 여러 테이블로 쿼리를 사용하게 되며, 트랜잭션 처리를 중요시함
장점
- 정해진 스키마에 따라 데이터를 저장해야 하므로 명확한 데이터 구조 보장
- 각 데이터를 중복없이 한 번만 저장 가능
단점
- 테이블 간 관계를 맺고 있어 시스템이 커질 경우 join문이 많은 복잡한 쿼리가 만들어질 수 있다.
- 성능 향상을 위해서는 Scale-Up 만을 지원해 비용 문제가 있을 수 있다.
- 스키마로 인해 데이터가 유연하지 못하다. 스키마가 변경될 경우 번거롭고 어렵다.
NoSQL
- RDB의 확장성 이슈를 해결하기 위해 나온 데이터베이스 모델
- 테이블 간의 관계를 정의하지 않아 join이 불필요
- 테이블에 스키마가 정해져 있지 않아 데이터 저장이 비교적 자유로우며 데이터의 구조가 같지 않아도 영향을 미치지 않음
- SQL을 사용하지 않음
- 많은 양의 데이터를 저장, 처리할 수 있음
- 데이터의 update가 느림
장점
- 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있다.
- 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있다.
- 데이터 분산이 용이하며 성능 향상을 위한 Scale-Up 뿐만이 아닌 Scale-Out도 가능
단점
- 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 함
- 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으면 데이터 구조 결정이 어려울 수 있음
RDBMS, NoSQL 언제 사용하는 게 좋을까?
RDBMS
- 데이터 구조가 명확하고 변경될 여지가 없으면 명확한 스키마가 중요한 경우
- 중복된 데이터가 없어 변경이 용이하기 때문에 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템
NoSQL
- 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용
- 데이터 중복이 발생할 수 있으며, 중복된 데이터 변경 시에는 모든 컬렉션에서 수정을 해야 하므로 uPDATE가 많이 이루어지지 않는 시스템이 좋음
- 막대한 데이터를 저장해야 하는 시스템에 적합
이번 프로젝트에서는 어떤 걸 선택해야 할까?
이동봉사 단체 측에서 공고를 올리고, 현재 신청 상태를 관리하며
이동봉사자 측에서 공고를 조회하고 신청하는 등 데이터의 변경, update가 자주 일어난다.
또한 해당 공고의 봉사 가능 여부가 이동봉사자의 신청에 따라 자주 변경될 여지가 있으므로 RDB를 이용하는 게 좋다고 생각된다!
참고 자료:
RDBMS와 NoSQL의 차이점 및 장단점
들어가기 전에 DBMS DataBase Management System 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어. SQL Strucured Query Language 관계형 데이
pythontoomuchinformation.tistory.com
[DB] RDBMS vs NoSQL - 장단점과 차이점 (OTLP 와 OLAP의 정의)
RDBMS와 NoSQL 에 대해 여러번 들어보았을 것이다. 관계형 데이터베이스 관리 시스템, 비관계형 데이터베이스라고 불리는데 이것들의 정의와 장점 그리고 차이점에 대해서 알아보려고 한다. 또한 O
yulsfamily.tistory.com
'Trouble Shooting' 카테고리의 다른 글
S3 이미지 업로드 시 나타나는 warn 로그 (1) | 2023.11.11 |
---|---|
게시글 테이블과 게시글 이미지 테이블의 연관 관계 설정 (0) | 2023.11.11 |
소셜 로그인, JWT 관련 의문점 정리 (0) | 2023.10.18 |
CI/CD 트러블 슈팅 (0) | 2023.07.25 |
벌크연산과 @Modifying / Not supported for DML operations [DELETE] (0) | 2023.02.22 |