[DB] NoSQL 비교와 종류 정리
NoSQL 비교와 종류 정리
구분 | 관계 데이터베이스 | NoSQL |
처리 데이터 | 정형 데이터 | 정형 데이터, 비정형 데이터 |
대용량 데이터 | 대용량 처리시 성능 저하 | 대용량 데이터 처리 지원 |
스키마 | 미리 정해진 스키마가 존재 | 스키마가 없거나 변경이 자유로움 |
트랜잭션 | 트랜잭션을 통해 일관성 유지를 보장 | 트랜잭션을 지원하지 않아 일관성 유지를 보장하기 어려움 |
검색 기능 | 조인 등의 복잡한 검색 기능 제공 | 단순한 데이터 검색 기능 제공 |
확장성 | 클러스터 환경에 적합하지 않음 | 클러스터 환경에 적합 |
라이선스 | 고가의 라이선스 비용 | 오픈 소스 |
대표 사례 | 오라클, MySQL 등 | 카산드라, 몽고DB, H 베이스 등 |
NoSQL 종류
- 키-값 데이터 베이스
- 이미지, 동영상은 물론 어떠한 형태의 값 저장 가능, 질의 처리 속도 빠르다.
- 키와 값의 쌍으로 데이터 저장
- 키를 이용해 값 전체 검색 가능하지만, 값의 일부를 검색하거나 값의 내용을 이용한 질의는 불가
- DynamoDB, Redis 등이 대표적
2) 문서 기반 데이터베이스
- 키-값 데이터 모델이 확장된 형태로 키와 문서의 쌍으로 데이터를 저장한다.
- 키-값 모델과 달리 트리 형태의 XML, JSON 등과 같은 반정형 형태의 문서로 데이터를 저장한다.
- 키를 통한 질의, 문서 내의 일부를 활용한 질의도 가능
-
MongoDB, CouchDB 등이 대표적
-
컬럼 기반 데이터 베이스
- 키-컬럼 패밀리의 쌍으로 데이터를 저장한다.
- 컬럼 패밀리는 테이블에서 한 개의 투플, 즉 한 개의 행을 구성하는 속성들의 모임으로 생각 할 수 있다.
- 관계 데이터 모델의 테이블과 유사하지만 다양한 형태의 데이터를 값으로 저장할 수 있고, 컬럼 패밀리마다 컬럼의 구성을 다르게 할 수 있다.
- 구글의 BigTable, H베이스, 카산드라 등이 대표적
- 그래프 기반 데이터 베이스
- 데이터 간의 관계를 표현하는데 적합하다.
- 노드에 데이터를 저장하고 간선으로 데이터 간의 관계를 표현하는 그래프의 형태다.
- 질의는 그래프 순회과정을 통해 처리한다.
- 트랜잭션을 통한 ACIDfmf wldnjsgksek.
- Neo4J, OrientDB 등이 대표적