728x90
반응형
1. NoSQL 특성
- 스키마 유연성: 고정된 스키마가 없고, 데이터 구조가 동적으로 변경 가능
- 수평적 확장성: 여러 대의 서버로 확장 가능, 대규모 데이터 처리에 적합
- 비정형 데이터 처리: 문서, 이미지, 로그 등 비정형 데이터 처리에 유리
- 고성능 및 낮은 지연 시간: 대량의 읽기/쓰기 작업을 빠르게 처리
- CAP 이론: 일관성(Consistency), 가용성(Availability), 네트워크 파티션 허용성(Partition Tolerance) 중 두 가지 특성만 선택
1) 데이터 유형
- 문서형(Document-based): 데이터를 JSON, BSON 등의 형식으로 저장하며, 각 문서가 독립적인 데이터를 나타냅니다. 예: MongoDB
- 키-값(Key-Value): 데이터를 키와 값의 쌍으로 저장하는 단순한 모델로, 빠른 데이터 접근이 가능합니다. 예: Redis, DynamoDB
- 컬럼형(Column-based): 대규모 데이터 분석과 분산 저장에 적합하며, 각 행이 다수의 컬럼으로 구성됩니다. 예: Cassandra, HBase
- 그래프형(Graph-based): 데이터 간의 관계를 노드와 엣지로 표현하여 복잡한 관계를 탐색할 때 유리합니다. 예: Neo4j
2. NoSQL vs RDBMS 차이점
NoSQL | RDBMS | |
스키마 | 유연함 (스키마 없음) | 고정 스키마 |
확장성 | 수평적 확장 | 수직적 확장 |
데이터 처리 | 비정형 데이터 처리 용이 | 정형 데이터 처리에 최적 |
트랜잭션 | 일관성 덜 중요 (CAP 이론) | ACID 특성 준수 |
관계 | 관계형 데이터 처리 어려움 | 관계형 데이터 처리 최적화 |
3. NoSQL의 장단점
장점:
- 스키마 유연성으로 빠른 데이터 구조 변경 가능
- 대규모 데이터 처리에 적합한 수평적 확장성
- 비정형 데이터, 실시간 데이터 처리에 강점
단점:
- 복잡한 쿼리 및 트랜잭션 관리 부족
- 일관성 보장 어려움
- 성숙도와 안정성에서 RDBMS에 비해 미흡할 수 있음
4. NoSQL 예시
- MongoDB: 문서형 데이터베이스로, JSON 형태의 데이터를 저장
- Redis: 키-값 저장소로, 빠른 캐싱과 실시간 데이터 처리에 사용
- Cassandra: 컬럼형 데이터베이스로, 대규모 분산 시스템에 적합
- Neo4j: 그래프 데이터베이스로, 데이터 간의 관계를 탐색하는 데 유리
5. 적용 사례
- 실시간 웹 애플리케이션: 채팅, 실시간 분석, 게임 등의 분야에서 높은 처리량과 낮은 지연 시간을 제공
- 빅데이터 및 분석: 로그 처리, IoT 데이터 수집 등에서 대용량 데이터를 효율적으로 저장하고 처리
- 콘텐츠 관리 시스템(CMS): 다양한 유형의 콘텐츠를 유연하게 저장하고 관리할 수 있음
- 전자 상거래: 제품 카탈로그, 사용자 세션 정보 등을 저장하는 데 사용됨
728x90
'CS 공부 > DB' 카테고리의 다른 글
[DB] 오라클 자주 쓰는 내장함수 모음(코테 대비) (0) | 2024.10.21 |
---|---|
[DB] 트랜잭션(ACID와 격리수준) (1) | 2024.07.22 |
[DB] 1~3정규화 (0) | 2024.07.11 |
[DB] 데이터 무결성 (0) | 2024.07.11 |
[DB] 제 2정규화 (0) | 2024.07.10 |