본문 바로가기
개념

[개념] NoSQL

by hs_seo 2019. 8. 8.

NoSQL은 전통적인 관계형 데이터베이스와 달리 유연한 데이터 저장 모델을 가지며, 저장 및 검색에 특화된 형태의 데이터 저장 모델입니다.

특징

  • 데이터간 관계를 정의하지 않음
    • 관계를 정의하지 않기 때문에 Join이 안됨
  • 대용량 데이터 저장 가능
    • 트랜잭션을 제공하지 않고, 단순한 모델을 사용하여 대량의 데이터 저장 가능
  • 분산형 구조
    • 고성능 머신으로 데이터를 처리하지 않고, 범용 장비를 클러스터로 묶어서 데이터를 처리하여 스케일 아웃, 장애복구 등에 용이함
  • 스키마가 없음
    • 데이터가 정해진 형태로 들어가는 것이 아니라 다양한 형태로 입력할 수 있음
    • 로그 데이터, 비디오, 이미지 형태의 데이터도 저장 가능

CAP 이론

  • NoSQL은 분산구조이기 때문에 분산 컴퓨팅 환경의 CAP특징을 가지고, 이중에서 두 가지만 만족할 수 있으면 됨
    • Consistency: 일관성
      • 분산 노드 중 어디에 접근해도 데이터의 값은 동일해야 함
    • Availability: 가용성
      • 모든 요청에 응답을 해야 함
    • Partition tolerance: 분할내성
      • 노드에 장애가 생겨도 동작 가능

NoSQL 분류

  • Key-Value Store
    • Key와 Value의 쌍으로 데이터가 저장되는 가장 단순한 형태의 솔루션
    • Dynamo, Redis
  • Document
    • JSON, XML과 같은 Document 형태로 데이터를 저장
    • 트리형 구조로 데이터를 저장, 검색에 효과적
    • MongoDB, CoughDB
  • Column
    • Key-Value 에서 발전된 형태
    • 하나의 키에 여러개의 칼럼으로 데이터를 저장
    • HBase, Cassandra, ScyllaDB
  • Graph
    • 데이터를 그래프로 표현
    • 노드와 엣지로 관계를 표현
    • Neo4J, OreientDB 등의 제품이 있습니다.
반응형