데이터베이스
NoSQL
다른 이름: Not Only SQL
정의
Not Only SQL. 비관계형 데이터베이스 총칭. Key-Value(Redis), Document(MongoDB), Column-Family(Cassandra), Graph(Neo4j). 유연 스키마, 수평 확장, CAP 정리(일관성 vs 가용성 트레이드오프). ACID 대신 BASE(Basically Available, Soft state, Eventually consistent)
상세 설명
기술 스펙
- Key-Value: Redis, Memcached (캐시, 세션)
- Document: MongoDB, CouchDB (JSON, 중첩 구조)
- Column-Family: Cassandra, HBase (대용량 시계열)
- Graph: Neo4j, ArangoDB (관계 탐색)
- CAP 정리: Consistency vs Availability vs Partition Tolerance (2개만 선택)
- BASE: Basically Available(가용성 우선), Soft state(상태 변화), Eventually consistent(최종 일관성)
- Sharding: 수평 분할로 확장
실무 활용
- Redis: 캐시, 세션 저장, 실시간 리더보드
- MongoDB: CMS, 로그, 사용자 프로필 (유연 스키마)
- Cassandra: 시계열 데이터, IoT, 메트릭 (쓰기 최적화)
- Neo4j: 소셜 그래프, 추천 시스템 (관계 탐색)
장점
- 수평 확장: Sharding으로 노드 추가
- 유연한 스키마: ALTER TABLE 없이 필드 추가
- 고성능: 메모리 캐시(Redis), LSM-Tree(Cassandra)
- 가용성: 복제로 장애 허용
단점 및 제약
- 일관성 약화: Eventually Consistent (최종 일관성)
- JOIN 부재: 애플리케이션에서 처리
- 트랜잭션 제한: ACID 대신 BASE (MongoDB 4.0+는 지원)
- 운영 복잡도: 샤딩, 복제 관리
호환성
Redis, MongoDB, Cassandra, Neo4j, DynamoDB 등
표준 정보
표준화 기구: 없음 (각 DB별 독자 표준)
출시 연도: 1998년