[DB] NoSQL 비교와 종류 정리

NoSQL 비교와 종류 정리

구분 관계 데이터베이스 NoSQL
처리 데이터 정형 데이터 정형 데이터, 비정형 데이터
대용량 데이터 대용량 처리시 성능 저하 대용량 데이터 처리 지원
스키마 미리 정해진 스키마가 존재 스키마가 없거나 변경이 자유로움
트랜잭션 트랜잭션을 통해 일관성 유지를 보장 트랜잭션을 지원하지 않아 일관성 유지를 보장하기 어려움
검색 기능 조인 등의 복잡한 검색 기능 제공 단순한 데이터 검색 기능 제공
확장성 클러스터 환경에 적합하지 않음 클러스터 환경에 적합
라이선스 고가의 라이선스 비용 오픈 소스
대표 사례 오라클, MySQL 등 카산드라, 몽고DB, H 베이스 등

NoSQL 종류

  1. 키-값 데이터 베이스
    1. 이미지, 동영상은 물론 어떠한 형태의 값 저장 가능, 질의 처리 속도 빠르다.
    2. 키와 값의 쌍으로 데이터 저장
    3. 키를 이용해 값 전체 검색 가능하지만, 값의 일부를 검색하거나 값의 내용을 이용한 질의는 불가
    4. DynamoDB, Redis 등이 대표적

2) 문서 기반 데이터베이스

  1. 키-값 데이터 모델이 확장된 형태로 키와 문서의 쌍으로 데이터를 저장한다.
  2. 키-값 모델과 달리 트리 형태의 XML, JSON 등과 같은 반정형 형태의 문서로 데이터를 저장한다.
  3. 키를 통한 질의, 문서 내의 일부를 활용한 질의도 가능
  4. MongoDB, CouchDB 등이 대표적

  5. 컬럼 기반 데이터 베이스

    1. 키-컬럼 패밀리의 쌍으로 데이터를 저장한다.
    2. 컬럼 패밀리는 테이블에서 한 개의 투플, 즉 한 개의 행을 구성하는 속성들의 모임으로 생각 할 수 있다.
    3. 관계 데이터 모델의 테이블과 유사하지만 다양한 형태의 데이터를 값으로 저장할 수 있고, 컬럼 패밀리마다 컬럼의 구성을 다르게 할 수 있다.
    4. 구글의 BigTable, H베이스, 카산드라 등이 대표적
  6. 그래프 기반 데이터 베이스
    1. 데이터 간의 관계를 표현하는데 적합하다.
    2. 노드에 데이터를 저장하고 간선으로 데이터 간의 관계를 표현하는 그래프의 형태다.
    3. 질의는 그래프 순회과정을 통해 처리한다.
    4. 트랜잭션을 통한 ACIDfmf wldnjsgksek.
    5. Neo4J, OrientDB 등이 대표적