DB

DB – RDBMS VS NoSQL

  • DataBase
    • 데이터를 구조화하여 체계적으로 저장한 데이터의 집합체
  • DBMS
    • 사용자와 데이터베이스 사이의 상호작용을 도와 정보를 삽입, 삭제, 갱신할 수 있고 사용자의 권한 부여를 하는 등 데이터베이스를 관리하는 역할의 소프트웨어

RDBMS 특징

관계형 DBMS라 불리며 SQL을 통해 접근하여 스키마를 통해 데이터 구조를 저장하고 테이블에 데이터를 저장하는 소프트웨어를 말합니다.

  • SQL
    • RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어
  • 스키마 (Schema)
    • 데이터베이스의 자료 구조로 표현 방법과 자료 간의 관계를 SQL 형식 언어로 정의한 구조
스키마 예시
  • 테이블 (Table)
    • 데이터 저장 형태
테이블 예시

NoSQL 특징

NoSQL (Not Only SQL)은 의미 그대로 SQL이 아닌 다른 저장 기술을 의미합니다.

SQL를 통한 접근 방식을 취하는 RDBMS의 반대에 속하는 여러 방식들이라고 볼 수 있습니다.

  • Key-Value
    • 데이터 타입이 제목과 같이 Key-Value 구조로 단순한 형태로 보입니다.
      Key와 Value는 1:1 관계이며 Key를 통해 Value에 접근하는 방식입니다.
      Value는 다양한 형태의 데이터를 저장할 수 있습니다.
    • 대표 제품
      • Redis, Amazon Dynamo DB
  • Document
    • 데이터 타입이 구조화된 데이터 (JSON, XML, YAML) 형태로 Key-Value의 계층 구조 표현이 가능하고 추가적인 기능이 다양하지만 그만큼 사용이 번거로운 점이 있습니다.
    • 대표 제품
      • CoucbDB, CouchBase, Mongodb
  • Wide Column
    • Key 안에서 Key(Column)-Value로 저장하는 형태이며 Key 안에서 Colume을 결정합니다.
      RDBMS의 경우 하나의 Column을 추가하면 모든 row에 저장되지만 이 경우 Key 별로 별도의 MiddleColumn을 가질 수 있어 매우 유연한 형태입니다.
    • 대표 제품
      • HBase, Hypertable, Cassandra
  • 그 외 저장 방식
    • Graph
    • Full Text Search Engins

SQL과 NoSQL 비교

기준 SQL NoSQL
SELECT, INSERT 성능 느림 빠름
UPDATE 성능 빠름 느림
JOIN 지원 지원 미지원
복잡도 복잡함 단순함
데이터 규격화 명확 불명확
확장성 수직적 유연함
신뢰도 높음 비교적 낮음
데이터 타입 Table Key-value, document, graph, wide-column
무결성 이론 ACID CAP, BASE

무결성 이론

  • ACID
    • 트랜잭션의 안정적인 수행을 보장하기 위해 갖춰야하는 특성에 대한 이론
    • Atomicity (원자성)
      • 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장하는 것
    • Consistency (일관성)
      • 모든 요청은 항상 최신의 동일한 데이터를 보장하는 것
    • Isolation (격리성)
      • 트랜잭션 간의 영향을 주지 않도록 보장하는 것
    • Durability (영속성)
      • 한번 적용된 내용은 변하지 않고 지속 반영되도록 보장하는 것
  • CAP
    • 분산 시스템이 CAP 중 3가지를 다 만족하지 못하고 2가지만 만족할 수 있다는 이론
    • Consistency 
      • 모든 요청은 항상 최신의 동일한 데이터를 보장하는 것
    • Availability
      • 특정 DB가 장애가 발생해도 서비스 동작을 보장하는 것
    • Partitions Tolerance
      • 물리적인 분할로 통신에 장애가 발생해도 시스템 동작을 보장하는 것
  • BASE
    • Basically Available
      • 분산 시스템으로서 서버에 장애가 발생해도 (백업 서버로) 언제든 데이터 접근을 보장하는 것
    • Soft state
      • 특정 시점에 일관성이 보장되지 않는 것
      • 스키마가 없기 때문에 불일치한 데이터가 저장될 수 있다는 말
    • Eventual consistency (결과적 일관성)
      • 일시적으로 일관성이 보장되지 않더라도 최신 데이터로 덮어씌여지므로서 결과적으로 일관성을 보장하는 것

댓글 한 개

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.