본문 바로가기
  • 기억보단 기록을..
Database/NoSQL

NoSQL 개념 및 특징

by reine94._.dev 2020. 12. 15.

NoSQL

(Not Only SQL)


  • 개념
    • NoSQL은 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어
    • 데이터 저장에 고정된 스키마가 필요하지 않고, 조인연산을 사용할 수 없다.
    • 수평적으로 확장이 가능한 DBMS
  • 특성
    • 관계형 모델을 사용하지 않는 데이터 저장소 또는 인터페이스이며,
      대규모 데이터를 처리하기 위한 기술로 확장성, 가용성, 높은 성능을 제공한다.
    • 스키마-리스로 고정된 스키마 없이 자유롭게 데이터베이스의 레코드에 필드를 추가할 수 있다.
    • 대부분 오픈 소스이다.
    • 종류
      • 구글 BigTable
      • 아파치 HBase
      • 아마존 SimpleDB
      • 마이크로소프트 SSDS
  • 데이터 저장 방식에 따른 분류(유형)
    • Key - Value
      • Redis, DynamoDB
    • Column
      • HBase, Cassandra
    • Document
      • MongoDB, Couchbase
    • Graph
      • Neo4j, BlazeGraph, OrientDB
  • CAP이론
    • 개념 
      • 분산 컴퓨팅 환경은 Availability, Consistency, Partition Tolerance 3가지 특징을 가지고 있다.
      • 이 중 2가지만 만족할 수 있다는 이론
      • NoSQL은 CAP이론을 기반으로 하고 있다.
    • 특성
      • 유효성(A)
        • 모든 클라이언트가 읽기 및 쓰기가 가능해야 한다는 특성
        • 하나에 노드에 장애가 일어나더라도 다른 노드에는 영향을 미치면 안되는 특성
      • 일관성(C)
        • 모든 사용자에게 같은 시간에는 같은 데이터만 보여주어야 한다
      • 분산가능(P)
        • 물리적 네트워크 분산 환경에서 시스템이 원활하게 동작해야 한다
        • 네트워크 전송 중 데이터 손실 상황이 생겨도 시스템은 정상적으로 동작해야 한다.

 

데이터 유형별 저장방식 수립

데이터 유형 요구 데이터 종류 저장 시스템 사례
정형 데이터 RDB, Excel RDB(Oracle, MSSQL, MySQL, PostgreSQL)
반정형 데이터 HTML, XML, JSON, 웹문서, 웹로그,
센서 데이터
RDB, NoSQL(MongoDB, Redis, HBase, Cassandra)
비정형 데이터 소셜 데이터, 문서(워드, 한글), 이미지,
오디오, 비디오, IoT
NoSQL, HDFS

 

 

 

 

 

댓글