RDB 와 No-SQL

손정만·2022년 1월 18일
0

RDB (Relational Database)

ACID rules

  • 원자성(Atomicity) - 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것
  • 일관성(Consistency) - 트랜잭션 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것
  • 고립성(Isolation) - 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것
  • 지속성(Durability) - 성공적으로 수행된 트랜잭션은 영원히 반영되는 것

NO-sql (Not Only SQL)

Key-Value

DynamoDB에 키-값 쌍으로 저장된 데이터의 예를 보여주는 다이어그램

  • Set 처럼 자료 저장

document

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2
        }
    },
    ....
    {...}
]
  • json 과 같은 비슷한 형태

그래프

소셜 네트워크 그래프의 사례

인 메모리

  • 디스크 대신 RAM에 저장
  • 휘발성

RDB vs NO-sql

관계형 데이터베이스NO-sql 데이터베이스
최적의 워크로드관계형 데이터베이스는 트랜잭션 및 강력히 일관된 온라인 트랜잭션 프로세싱(OLTP) 애플리케이션을 위해 설계NoSQL 키 값, 문서, 그래프 및 인 메모리 데이터베이스는 낮은 지연 시간의 애플리케이션을 포함한 수많은 데이터 액세스 패턴에 맞도록 OLTP를 위해 설계되었습니다. NoSQL 검색 데이터베이스는 반정형 데이터에서 분석을 위해 설계되었습니다
데이터 모델테이블, 행, 열, 인덱스, 테이블 간 관계, 기타 데이터베이스 요소를 정확하게 규정문서, 그래프, 키 값, 인 메모리, 검색 등 다양한 데이터 모델
ACID 속성ACID(atomicity, consistency, isolation, durability)의 속성을 제공관계형 데이터베이스의 일부 ACID 속성을 완화
성능디스크 하위 시스템에 따름. 쿼리, 인덱스, 테이블 구조 최적화 필요하드웨어 클러스터 크기, 네트워크 지연 시간 및 호출 애플리케이션에 따름
확장머신성능 향상분산형 아키텍처
API 요청SQL(구조화 질의 언어)을 준수하는 쿼리객체 기반 API

성능

데이터 모델성능확장성유연성복잡성기능
키-값 스토어높음높음높음없음가변적 (없음)
컬럼 지향 스토어높음높음준수낮음최소
도큐먼트 지향 스토어높음가변적 (높음)높음낮음가변적 (낮음)
그래프 데이터베이스가변적가변적높음높음그래프 이론
관계형 데이터베이스가변적가변적낮음준수관계대수

0개의 댓글