
RDBMS
특징
- 데이터의 분류, 정렬, 탐색 속도가 빠름
- 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장
- 기존에 작성된 스키마를 수정하기가 어렵다
- 데이터베이스의 부하를 분석하는 것이 어렵다
장점
- 구조화된 데이터: RDB는 테이블과 컬럼으로 구조화된 데이터를 사용합니다.
 이는 데이터 일관성과 무결성을 유지하는 데 도움이 됩니다.
- 강력한 질의 언어: RDB는 SQL을 사용하여 데이터를 질의하고 조작할 수 있습니다.
 SQL은 직관적이고 강력한 질의 기능을 제공합니다.
- 성숙한 기술과 풍부한 생태계: RDB는 오랜 기간 동안 사용되어 왔고, 다양한 성숙한 기술과 풍부한 생태계를 가지고 있습니다.
- ACID 트랜잭션 지원: RDB는 ACID(원자성, 일관성, 고립성, 지속성) 트랜잭션을 지원하여 데이터 일관성과 안정성을 보장할 수 있습니다.
단점
- 확장성 제한: RDB는 주로 수직적인 확장에 의존하기 때문에, 단일 서버의 성능을 높이는 방식으로 확장성을 제한할 수 있습니다.
- 스키마 제약: 데이터의 구조를 사전에 정의해야 하므로, 스키마 변경이 어렵고 유연성이 떨어질 수 있습니다.
- 대량의 비정형 데이터 처리 어려움: RDB는 주로 정형화된 데이터를 처리하기 위해 설계되었기 때문에, 대량의 비정형 데이터 처리에는 제한이 있을 수 있습니다.
NoSQL DB
특징
- 거대한 Map으로서 key-value 형식을 지원함.
- 관계형 db와 달리 PK,FK JOIN등 관계를 정의하지 않음.
- 스키마에 대한 정의가 없다.
장점
- 대용량 데이터 처리를 하는데 효율적임.
- 읽기 작업보다 쓰기 작업이 더 빠르고 관계형 데이터베이스에 비해 쓰기와
 읽기 성능이 빠름.
- 데이터 모델링이 유연함.
- 뛰어난 확장성으로 검색에 유리함.
- 최적화된 키 값 저장 기법을 사용하여 응답속도나 처리효율 등에서 성능이 뛰어남.
- 복잡한 데이터 구조를 표현할 수 있음.
- NoSQL DB는 데이터를 여러 서버에 분산하여 처리하므로 확장성과 고가용성을 강조합니다. 서버 장애 시에도 데이터의 가용성을 유지할 수 있습니다.
단점
- NoSQL DB는 분산 환경에서 작동하기 때문에 데이터 일관성을 보장하는 데 어려움이 있을 수 있습니다. 일관성 모델을 유연하게 조정하여 선택할 수는 있지만, 데이터 일관성을 보장하는 작업은 개발자의 책임이 될 수 있습니다.
- 관계형 데이터베이스에 비해 NoSQL DB는 질의 기능이 상대적으로 제한적일 수 있습니다. 복잡한 조인 연산 등의 기능이 제한될 수 있습니다.
- NoSQL 데이터베이스는 상대적으로 최근에 등장한 기술이므로, 관계형 데이터베이스에 비해 생태계가 덜 성숙할 수 있습니다.