RDBMS와 NoSQL의 차이점

오하수·2026년 1월 16일

데이터베이스 관리 시스템으로 RDMS이 널리 쓰이고 있지만 대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응하기 어려울 때가 있다.

그래서 RDBMS와 다른 데이터베이스 관리 툴인 NoSql이 등장했다.


RDBMS( Relational DataBase Management System)

  • 관계형 데이터베이스 관리 시스템
    -> 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원의 열과 행(테이블)의 형태로 표현

  • 외래 키(foreign key)를 사용하여 테이블 간 join이 가능

  • ACID(Atomicity, Consistency, Isolation, Durability) 원칙을 기본으로 구성

장점

  • 정해진 스키마에 따라 데이터를 저장해야 해서 명확한 데이터 구조 보장 (데이터 정합성)

  • 각 데이터를 중복 없이 한 번만 저장 가능 (데이터 무결성)


데이터 정합성 (Consistency)
-> 어떤 데이터들이 값이 서로 일치하는 상태

데이터 무결성 (Integrity)
-> 데이터가 전송, 저장되고 처리되는 모든 과정에서 변경되거나 손상되지 않고 완정성, 정확성, 일관성을 유지함을 보장하는 특성

스키마가 뭘까?

데이터 베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것이다. 개체의 특성을 나타내는 속성(Attribute)과 속성들의 집합으로 이루어진 개체(ENtity), 개체 사이에 존재하는 관계(Relation)에 대한 정의와 이들이 유지해야 할 제약조건들을 기술한 것입니다.

단점

  • 테이블 간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리 발생 가능

  • 성능 향상을 위해 Scale-up만 지원
    -> Scale-out이 불가능하기 때문에 처리 비용이 기하급수적으로 커질 수 있음

  • 스키마로 인해 데이터가 유연하지 못함
    -> 나중에 스키마가 변경될 경우 번거롭고 어려움


NoSQl(Not onlt SQL)

SQL을 사용하지 않는다는 의미에서 NoSQL이 아니라, RDBMS가 갖고 있는 특성뿐만 아니라 다른 특성들도 부가적으로 지원한다는 의미이다.

NoSQL 모델 종류

1. Key-Value DB

  • key-Value 방식으로 데이터를 저장
  • key값은 모든 데이터 타입을 수용할 수 있고, 중복되지 않는 유니크한 값
  • 메모리 기반으로 빠르게 데이터를 읽어올 수 있음

2. Document DB

  • 비정형 대량 데이터를 저장하기 위한 방식
  • key-Value에서 확장된 방식으로, key-Document 형태로 저장
  • Document는 계층적인 데이터 타입(JSON, XML)으로 저장됨
  • JSON 타입을 사용하므로 HTTP 기반의 웹서버의 경우 데이터를 편리하게 주고받을 수 있음

3.Wide Column DB

  • Row가 아닌 Column 위주로 데이터를 저장하는 방식
  • key, Value와 유사한 형태의 Column-family Model
  • 데이터가 내부에서 key를 기준으로 오름차순 저장됨
  • 이전의 모델들이 key-value 값을 이용해 필드를 결정했다면, 이 모델은 키에서 필드를 결정

4. Graph DB

  • 객체와 관계를 그래프 형식의 데이터로 저장하기 위한 방식
  • 데이터를 Node와 Edge, Property와 함께 그래프 구조를 사용하여 데이터를 저장
  • SNS, Network Diagrams 등과 SNS에서 함께 아는 친구 찾기, 추천 등 연관된 데이터를 추천해주는 엔진이나 패턴 기능에 사용

장점

  • 스키마가 없어 유연하고 자유로운 데이터 구조
    -> 언제든 저장된 데이터 조정과 새로운 필드 추가가 가능

  • 성능 향상을 위해 Scale-up / Scale-out이 모두 가능
    -> 데이터 분산이 용이하고, RDBMS에 비해 대용량의 데이터 저장 가능

단점

  • 스키마가 존재하지 않아 데이터의 일관성이 존재하지 않고 데이터 구조를 결정하기 어려울 수 있음

  • 데이터의 중복 발생 가능
    -> 이 경우 데이터를 변경하려면 모든 컬렉션에서 update해야 함

profile
오늘하루도수고하세용~

0개의 댓글