DB

RDBMS vs NOSQL / RDBMS특징 , NOSQL 특징 (ACID / BASE)

吳버플로우 2025. 2. 24. 16:54

DBMS (Database Management System)란?

DBMS(Database Management System, 데이터베이스 관리 시스템)는 데이터베이스를 생성, 관리, 운영할 수 있도록 도와주는 소프트웨어를 말한다. 쉽게 말해, 데이터를 효율적으로 저장하고, 수정하고, 조회할 수 있게 해주는 시스템이다.

 

RDBMS( Relational Database Management System ) 란?

R + DBMS 로 쉽게 말하자면 테이블 기반의 DBMS이다. 테이블(표) 형태로 저장하고, 관계(Relation)를 이용해 데이터를 관리하는 데이터베이스 시스템을 말한다.

 

RDBMS의 주요 특징

  1. 테이블 구조
    • 데이터를 행(Row)과 열(Column)로 구성된 테이블(table) 형태로 저장함.
    • 예: 고객 테이블(Customer), 주문 테이블(Order) 등
  2. 관계(Relation) 정의
    • 각 테이블 간 외래 키(Foreign Key) 를 통해 관계를 맺음.
    • 예: 고객 ID를 주문 테이블에서 참조하면, 고객 정보와 주문 정보를 연결할 수 있음.
  3. SQL(Structured Query Language) 사용
    • 데이터를 삽입(INSERT), 조회(SELECT), 수정(UPDATE), 삭제(DELETE)하는 데 SQL을 사용함.
  4. ACID 특성 보장 (데이터 무결성과 신뢰성을 유지하기 위한 4가지 원칙)
    • Atomicity(원자성): 트랜잭션이 모두 실행되거나 전혀 실행되지 않음 (실패 시 롤백).
    • Consistency(일관성): 트랜잭션 실행 후에도 데이터의 무결성이 유지됨.
    • Isolation(고립성): 여러 트랜잭션이 동시에 실행되어도 서로 영향을 주지 않음.
    • Durability(지속성): 시스템 장애 발생 후에도 트랜잭션이 완료된 데이터는 보존됨.
  5. 정규화(Normalization) 지원
    • 데이터 중복을 최소화하고 저장 효율성을 높이는 데이터 설계 방법을 제공함.

RDBMS의 대표적인 시스템

MySQL 오픈소스, 가볍고 빠름 (웹 서비스에 많이 사용됨)
PostgreSQL 강력한 트랜잭션 처리 및 확장 기능 지원 (ERP, 금융 시스템에서 많이 사용됨)
Oracle DB 기업용 데이터베이스, 높은 안정성과 성능 제공
SQL Server Microsoft의 관계형 데이터베이스, 윈도우 환경에서 강점

 

NOSQL란?

NoSQL관계형 데이터베이스의 제약을 벗어난 비관계형 데이터베이스 시스템을 일컫는다. 정형 데이터 뿐만 아니라 다양한 형태의 데이터를 저장하고 관리할 수 있다.

 

BASE의 속성

NoSQL은 RDBMS의 ACID 속성과 다르게 BASE라는 속성을 따릅니다. BASE는 NoSQL 시스템에서 유연한 성능, 확장성, 가용성을 제공하기 위한 모델로 사용됩니다.

 

BA (Basically Available) 시스템은 항상 응답할 수 있도록 기본적으로 사용 가능해야 한다는 원칙.
S (Soft state) 데이터베이스 상태는 일시적으로 불일치할 수 있으며, 시간이 지나면서 최종적으로 일관성을 맞춘다.
E (Eventual consistency) 최종 일관성을 보장하며, 시스템의 모든 복제본이 시간이 지나면 결국 일관성 있게 된다.

BASE와 ACID 비교

속성 ACID (관계형 데이터베이스) BASE (NoSQL)
A (Atomicity) 트랜잭션은 완전하게 실행되거나 전혀 실행되지 않음 없음 (일부 데이터는 실패할 수 있음)
C (Consistency) 데이터베이스는 항상 일관성 있는 상태를 유지 최종 일관성(시간이 지나면 일관성 회복)
I (Isolation) 트랜잭션은 서로 독립적으로 실행됨 트랜잭션 격리 수준이 낮을 수 있음
D (Durability) 트랜잭션은 커밋 후에도 영구적으로 저장됨 시스템 장애 후에도 데이터 복구는 가능하지만, 일부 데이터는 유실될 수 있음

NoSQL의 주요 특징

  1. 유연한 데이터 모델
    • 정형 데이터 뿐만 아니라 반정형, 비정형 데이터도 쉽게 저장 가능.
    • 데이터의 스키마가 고정되지 않고 동적으로 변할 수 있음.
  2. 수평 확장(Scale-Out)
    • 데이터가 급증해도 여러 대의 서버에 분산하여 처리함.
    • 데이터베이스 성능 향상을 위해 수직 확장이 아닌 수평 확장을 사용.
  3. 비관계형 데이터 저장
    • 데이터 간 관계를 정의할 필요 없이 문서, 키-값, 그래프 등 다양한 형식으로 데이터를 저장함.
    • 예: 문서형( MongoDB), 키-값형(Redis), 그래프형(Neo4j) 등.
  4. 트랜잭션 처리 방식
    • 궁극적 일관성 (BASE) 을 지원.
    • RDBMS의 ACID 특성과 달리 일관성보다는 가용성, 성능을 중시하는 방식. (고가용성, 빠른 응답속도 등)

NoSQL의 주요 유형

  1. 문서형 데이터베이스 (Document-based)
    • JSON, BSON 형식의 문서로 데이터를 저장.
    • 예: MongoDB, CouchDB
  2. 키-값 데이터베이스 (Key-Value-based)
    • 데이터를 키와 값의 쌍으로 저장.
    • 예: Redis, DynamoDB
  3. 컬럼 패밀리 데이터베이스 (Column-family-based)
    • 컬럼 패밀리라는 구조로 데이터를 저장.
    • 예: Cassandra, HBase
  4. 그래프 데이터베이스 (Graph-based)
    • 노드엣지로 이루어진 그래프 구조로 데이터를 저장.
    • 예: Neo4j, ArangoDB

 

RDBMS vs NOSQL

구분 RDBMS (관계형 데이터베이스) NoSQL (비관계형 데이터베이스)
데이터 구조 테이블(행과 열) 기반의 정형 데이터 문서(Document), 키-값(Key-Value), 컬럼(Column-Family), 그래프(Graph) 등 다양한 형식
스키마 고정된 스키마 (미리 정의된 테이블 구조) 유연한 스키마 (필드 추가/삭제가 자유로움)
확장성 수직 확장(Scale-up) 중심
(하드웨어의 성능을 높여 처리 능력을 증가시키는 방식 , 한계가 있고 비용이 많이 든다. )
수평 확장(Scale-out) 중심 (서버를 여러 대로 분산)
데이터 일관성 강한 일관성 (ACID 지원) 궁극적 일관성 (BASE 모델 적용)
트랜잭션 다중 행 트랜잭션이 강력하게 지원됨 일부 NoSQL만 트랜잭션 지원 (MongoDB는 단일 문서 수준에서 지원)
성능 복잡한 쿼리 처리에 강함 (JOIN, 정규화) 대량의 데이터 처리 및 빠른 읽기/쓰기 성능 강점
사용 사례 금융, ERP, CRM 등 *데이터 정합성이 중요한 경우 빅데이터, IoT, SNS 등 대용량 데이터 처리 및 유연성이 중요한 경우
대표적인 DBMS MySQL, PostgreSQL, Oracle, SQL Server MongoDB, Cassandra, Redis, DynamoDB

 

* 데이터 정합성이란?

데이터 정합성데이터가 정확하고 일관되며 신뢰할 수 있는 상태를 말한다. 쉽게 말해, 데이터가 저장된 형식이나 값에 오류가 없고, 시간이 지나도 변하지 않도록 유지되는 것을 말한다.

 

데이터 정합성의 4가지 유형

  1. 유효성 정합성 (Validity)
    • 데이터가 정해진 규칙이나 제약조건을 만족하는지 확인하는 것.
    • 예: 연령 데이터가 0 이상 120 이하로 입력되어야 한다는 조건.
  2. 일관성 정합성 (Consistency)
    • 여러 시스템이나 데이터베이스에서 데이터를 일관되게 유지하는 것.
    • 예: 사용자 정보가 서로 다른 시스템에서도 동일하게 저장되고 변경되어야 한다.
  3. 완전성 정합성 (Completeness)
    • 필요한 모든 데이터가 누락 없이 존재하는지 확인하는 것.
    • 예: 고객의 이름, 주소, 전화번호와 같은 필수 정보가 모두 채워져 있어야 한다.
  4. 신뢰성 정합성 (Reliability)
    • 데이터가 정확하고 신뢰할 수 있게 유지되는 것.
    • 예: 금융 거래에서 발생한 모든 거래 기록이 정확하게 기록되고 변조되지 않도록 보장하는 것.