RDB(관계형 데이터베이스)
1. 데이터 모델
- 테이블: 데이터는 정해진 스키마에 따라 행과 열로 구성된 테이블에 저장됩니다.
- 관계: 여러 테이블 간의 관계를 통해 데이터가 연결됩니다.
2. 스키마
- 고정된 스키마: 데이터베이스 스키마는 미리 정의되고 고정되어 있어야 합니다. 즉, 데이터의 구조가 변경되면 전체 시스템을 업데이트해야 합니다.
3. 트랜잭션
- ACID 속성: 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)과 같은 ACID 속성을 보장합니다.
4. 용도
- 복잡한 쿼리 및 조인: 대부분의 관계형 데이터베이스는 복잡한 쿼리와 다양한 연산을 지원하여 복잡한 데이터 구조를 다루기에 적합합니다.
- 트랜잭션 처리: 금융, 주문, 회계 등과 같이 데이터 일관성이 중요한 업무에 적합합니다.
NoSQL(비관계형 데이터베이스)
1. 데이터 모델
- 다양한 모델: 문서, 키-값, 열 지향, 그래프 등 다양한 데이터 모델을 지원합니다.
- 최소한의 스키마: 대부분의 NoSQL 데이터베이스는 스키마가 덜 제한적이거나 유연한 스키마를 사용합니다.
2. 스키마
- 동적인 스키마: 필요에 따라 동적으로 스키마를 변경할 수 있습니다.
3. 트랜잭션
- 유연한 트랜잭션: 일부 NoSQL 데이터베이스는 느슨한 일관성 모델을 따르며 ACID 속성보다는 유연성과 성능을 중시합니다.
4. 용도
- 대용량 및 분산 데이터: 대량의 데이터를 처리하거나 확장성이 중요한 경우에 적합합니다.
- 빠른 읽기 및 쓰기: 일부 NoSQL 데이터베이스는 빠른 읽기 및 쓰기를 지원하여 대규모 데이터에 대한 높은 처리량을 제공합니다.
결론)
- RDB는 정해진 스키마가 존재, NoSQL은 정해진 스키마가 없거나 동적으로 변경 할 수 있습니다.
- RDB는 정형화된 데이터에 적합하며, 복잡한 쿼리와 트랜잭션 처리에 강점을 가집니다.
- NoSQL은 비정형 또는 반정형 데이터에 적합하며, 대용량 데이터 처리와 높은 확장성이 필요한 경우에 적합합니다.
- 선택은 사용 사례와 요구 사항에 따라 달라지며, 프로젝트의 성격과 데이터 모델에 따라 적절한 데이터베이스를 선택해야 합니다.
'-' 카테고리의 다른 글
JWT에 대해서 (구성 요소, 인증 절차 등) (0) | 2023.12.12 |
---|---|
데이터베이스에서 Index(인덱스) 개념 정리 (2) | 2023.12.06 |
HTTP Method와 status Code(상태 코드) 설명 (1) | 2023.12.06 |
Restful API(Rest API)란? (1) | 2023.12.06 |
파이썬 개발환경 세팅하기 Anaconda (1) | 2023.11.20 |