NoSQL(Not Only SQL)과 RDBMS(Relational Database Management System)는 데이터를 저장하고 관리하는 두 가지 주요한 데이터베이스 시스템입니다.
NoSQL (Not Only SQL) + 비관계형 데이터베이스
-
특징
- 테이블 형식이 아니며, 관계형 테이블과는 다른 방식으로 데이터를 저장합니다. 데이터의 우형에 따라 다양한 유형을 갖추고 있으며, 주요 유형으로는 문서,키 값, 와이드 컬럼, 그래프 등이 있습니다.
-
장점
- NoSQL은 유연한 스키마를 제공하여 자유로운 데이터 구조를 가질 수 있습니다. 저장된 데이터를 조정하고 새로운 필드를 추가 할 수 있습니다.
- 데이터 분산이 용이하며 성능 향상을 위한 Saclue-up 뿐만이 아닌 Scale-out 또한 가능합니다.
- 수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기와 쓰기 요청 처리가 가능합니다.
-
단점
- 데이터 중복을 계속 업데이트해야 합니다.
- 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 모든 컬렉션을 수행 해야합니다.
- 스키마가 존재하지 않기 떄문에 명확한 데이터 구조를 보장하지 않고, 데이터 구조결정이 어려울 수 있습니다.
RDBMS(관계형 데이터베이스)
-
특징
- 테이블간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능합니다.
-
장점
- RDBMS는 정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장하고 있습니다.
- 관계는 각 데이터를 중복없이 한 번만 저장할 수 있습니다.
-
단점
- 테이블간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있습니다.
- 성능 향상을 위해서는 서버의 성능을 향상 시켜야하는 Scale-up만을 지원합니다. 이로 인하여 비용이 기하급수적으로 늘어날 수 있습니다.
- 스키마로 인해 데이터가 유연하지 못합니다. 나중에 스키마가 변경될 경우 번거롭고 어렵습니다.