RDB vs NoSQL
RDB(Relational Database)와 NoSQL은 데이터베이스 시스템의 두 주요 유형을 나타냅니다. 각각은 데이터를 저장하고 관리하는데 다른 접근 방식을 채택하고 있습니다.
RDB (Relational Database):
- 데이터 모델:
- 테이블 기반의 데이터 모델을 사용합니다. 데이터는 열과 행으로 구성된 테이블에 저장됩니다.
- 스키마:
- 강력한 스키마를 갖추고 있습니다. 데이터의 구조를 사전에 정의하고, 데이터의 일관성을 유지하기 위해 강력한 제약 조건을 제공합니다.
- 트랜잭션 지원:
- ACID 속성을 준수하여 데이터 일관성과 안전성을 보장합니다. 트랜잭션 처리가 가능하며, 롤백 및 복구 기능을 지원합니다.
- SQL 쿼리 언어:
- SQL(Structured Query Language)를 사용하여 데이터를 조회, 삽입, 갱신, 삭제하는 등의 작업을 수행합니다.
- 수직 확장:
- 주로 수직 확장을 통해 성능을 향상시킵니다. 단일 서버의 성능을 증가시키는 방식입니다.
NoSQL (Not Only SQL):
- 데이터 모델:
- 다양한 데이터 모델을 지원합니다. 주로 문서, 키-값, 와이드 컬럼, 그래프 등 다양한 형태의 데이터 모델을 사용합니다.
- 스키마 유연성:
- 스키마가 유연하며 동적으로 데이터를 추가할 수 있습니다. 즉, 각 데이터 항목이 다른 필드를 가질 수 있습니다.
- 트랜잭션 처리의 한계:
- 몇몇 NoSQL 데이터베이스는 ACID 속성을 완전히 준수하지 않거나, 일부 속성을 제한적으로 지원합니다.
- 다양한 쿼리 언어:
- NoSQL 데이터베이스마다 다양한 쿼리 언어를 사용합니다. SQL과 유사한 기능을 갖춘 데이터베이스도 있지만, 일부는 자체 쿼리 언어를 사용합니다.
- 수평 확장:
- 주로 수평 확장을 통해 대용량 데이터 처리에 대응합니다. 여러 서버에 데이터를 분산하여 확장하는 방식입니다.
언제 어떤 것을 선택할까요?
- RDB 사용 시:
- 정형화된 데이터 구조가 필요한 경우.
- 데이터 일관성과 안전성이 중요한 경우.
- 복잡한 조인 연산이 필요한 경우.
- NoSQL 사용 시:
- 비정형 데이터 또는 데이터 구조가 자주 변경되는 경우.
- 수평 확장이 필요한 대용량 분산 시스템인 경우.
- 빠른 개발과 유연한 스키마가 필요한 경우.
'📍 간단정리' 카테고리의 다른 글
[간단정리] DB 부하관리 (0) | 2024.01.17 |
---|---|
[간단정리] 정규화 vs 비정규화 (0) | 2024.01.17 |