CS/데이터베이스(Database)

데이터베이스 기본 개념 정리 (RDBMS vs NoSQL)

배씌 2025. 3. 31. 11:28

데이터베이스와 DBMS란?

데이터베이스란?

체계적으로 저장된 데이터의 집합을 의미한다.

즉, 여러사람이 데이터를 쉽게 접근, 관리, 활용할 수 있도록 만든 저장 공간

 

- 주요 특징

  • 일관성 : 데이터가 논리적으로 일관성을 유지해야 함.
  • 무결성 : 데이터가 정확하고 신뢰할 수 있어야 함.
  • 보안 : 데이터 접근 권한을 설정할 수 있어야 함.
  • 동시성 : 데이터를 여러명이 동시에 접근해도 문제가 없어야 함.
  • 영속성 : 데이터가 영구적으로 저장될 수 있어야 함.

DBMS(Database Management System) 란?

 

데이터베이스를 관리하는 소프트웨어이다.

단순히 파일 시스템이 아니라, 데이터를 효율적으로 저장, 검색, 수정, 삭제 하는 기능을 제공한다.

 

- 주요 기능

  • 데이터 저장 및 관리 : 데이터를 저장하고 쉽게 관리할 수 있는 기능 제공
  • 데이터 보안 : 접근 권한 설정 및 암호화
  • 동시성 제어 : 여러 사용자가 동시에 데이터 접근할 때 충돌 방지
  • 트랙잭션 관리 : 데이터의 일관성과 무결성 유지

대표적인 DBMS로 RDBMS와, NoSQL 이 있다.


RDBMS vs NoSQL

DBMS는 크게 RDBMS(관계형 데이터베이스) 와, NoSQL로 나뉜다.

 

RDBMS(관계형 데이터베이스) 란?

 

데이터를 테이블(표) 형태로 저장하는 DBMS 이다.

SQL을 사용하여 데이터를 관리하고, 각 테이블을 정해진 스키마(구조)를 가지며, 데이터 간의 관계를 유지한다.

 

이러한 관계를 나타내기 위해 RDBMS 는 외래키(foreign key) 라는 것을 사용한다. 외래키를 이용한 테이블 간의 join이 가능하다는 점이 RDBMS의 가장 큰 특징이다.

 

[회원 Table]

회원 번호(Primary key) 회원 이름 이메일
1111 김XX abc123@naver.com
2222 박XX qwe987@gmail.com

 

[주문 Table]

주문 번호(Primary key) 주문 회원 번호(Foreign key) 상품
01250331 1111 노트북
02250331 2222 마우스

 

RDBMS 장점

  1. 데이터 무결성 & 일관성 보장
  2. SQL을 통한 표준 질의어 제공 -> 복잡한 데이터 쿼리 가능
  3. 관계형 데이터 저장에 강점 -> 데이터 간 관계를 명확히 확인할 수 있다.
  4. 데이터 중복 최소화 -> 정규화를 통해 데이터 중복을 줄일 수 있음.

RDBMS 단점

  1. 확장성이 떨어짐 -> 데이터가 많아질 수록 수직 확장(Scale-Up) 필요
  2. 쓰기 성능이 상대적으로 낮음 -> 데이터 입력 시 스키마 검증 및 관계 체크로 인해 속도가 느려질 수 있음
  3. 유연성이 부족 -> 스키마가 고정되어 있어 데이터 구조 변경이 어렵다.

RDBMS 종류

  • MySQL
  • PostgreSQL
  • Oracle DB
  • SQL Server

NoSQL 이란?

(Not Only SQL) 말 그대로, 위에서 설명한 RDB(관계형 데이터베이스) 가 아닌 다른 형태의 저장 기술.

RDBMS와 달리, 테이블 간 관계를 정의하지 않으며 스키마가 유연하다는 특징이 있다.

 

RDBMS의 단점이었던, 데이터가 많아질 수록 수직 확장(Scale-Up)의 비용 문제를 피하기 위해, 데이터 일관성은 포기하되 여러 대의 데이터를 분산하여 저장하는 수평 확장 (Scale-Out) 방식을 택한다. 

 

따라서, 트랜잭션 보다는 속도와 확장성에 집중한 DBMS 라고 볼 수 있다.

 

- 주요 특징

  • 유연한 데이터 모델 -> 스키마가 필요 없음
  • 빠른 읽기/쓰기 성능
  • 수평 확장 용이 -> 많은 데이터(빅데이터) 처리에 용이함.

 

NoSQL 장점

  1. 수평 확장에 용이 -> 서버를 여러대 추가해야 하는 작업(빅데이터 처리)에 용이함
  2. 고성능 처리 가능 -> 스키마를 신경쓰지 않아도 돼서, 빠른 데이터 저장 및 조회가 가능하다.
  3. 유연한 스키마 -> 정해진 테이블 구조가 없어, 자유롭게 필드 추가가 가능하다.
  4. 비정형 데이터 처리 가능 -> (key-value, JSON) 등 다양한 데이터 구조 지원

NoSQL 단점

  1. 트랜잭션 & 일관성 보장 어려움 -> 대부분의 NoSQL은 ACID를 완벽하게 지원하지 않는다.
  2. 복잡한 쿼리 처리 어려움 -> Join 을 사용하지 못하여 복잡한 관계형 SQL 처리가 힘듬
  3. 데이터 중복 가능성 -> 정규화 과정이 없어, 데이터 중복의 가능성 O

NoSQL 종류

  • Key-Value Store : Redis, Dynamo DB
  • Document Store : Mongo DB
  • Column-Family Store 
  • Graph DB

RDBMS, NoSQL 언제 사용해야 하나?

필요한 기능 RDBMS NoSQL
트랜잭션 (ACID) 필요  
데이터 모델이 고정됨  
빅데이터 & 빠른 확장성  
복잡한 관계형 데이터 처리  
읽기/쓰기 성능 최적화  
구조가 자주 바뀌는 데이터  

 

정리하자면,

- RDBMS : 트랜잭션이 중요, 복잡한 데이터 관계

- NoSQL : 확장성이 필요, 빠른 데이터 처리

 

RDBMS는 일관성과  신뢰성을 보장하기 위해 데이터의 유형에 제약을 두고, NoSQL 은 이러한 제약을 없애, 속도, 유연성 및 확장성을 제공하는 DBMS 이다.

 

각 DBMS의 특징을 고려하여 상황에 맞는 설계를 하는 것이 중요해보인다.  물론, 두 DBMS를 혼용하는 경우도 있다.

 

예를 들어, MySQL + Redis 를 사용하여 RDBMS로 핵심 데이터를 저장하고, NoSQL로는 데이터를 캐싱하여 데이터 처리 속도를 높이는 방법도 있으니, 여러 사용 사례를 살펴보며 자신의 상황에 맞는 설계를 고려하는 것이 좋을 것 같다.