[DB] RDBMS vs NoSQL

2025. 6. 10. 16:59·Computer Science/데이터베이스

먼저, 각각의 개념을 살펴보자.

RDBMS(Relational DataBase Management System)

관계형 데이터베이스 관리 시스템

데이터를 2차원 테이블 형태로 저장하고, 테이블 간의 관계로 데이터를 관리하는 시스템.

SQL 언어를 사용해서 CRUD를 수행한다.

 

RDBMS의 특징

테이블 간 JOIN

: RDBMS는 외래키(Foreign Key)를 통해 테이블 간의 관계를 설정하여 데이터를 연결할 수 있다.

부서번호는 직원 테이블에서의 외래키(Foreign Key)

 

RDBMS의 장/단점

■ 장점

    - ACID(원자성, 일관성, 격리성, 지속성)의 트랜잭션 특성을 통해 데이터의 일관성을 보장한다.

    - Scale-Up: 하드웨어 성능을 높여 대용량 데이터 처리가 가능하다.

■ 단점
    -  스키마 유연성 부족: 스키마는 고정되어 있어서, 변경이 필요한 경우 작업 비용이 크다.

    - Scale-Out: 여러 서버에 데이터를 분산하기 어려워, 대규모 분산 처리에 한계가 있다.

 

RDBMS의 종류

MySQL

- 오픈 소스 기반의 대표적인 관계형 데이터베이스 관리 시스템

- 데이터베이스 확장이 용이하며, 다양한 보안 기능을 제공

 

MariaDB

- MySQL에서 파생된 오픈 소스 관계형 데이터베이스 관리 시스템

- MySQL과 호환성을 유지할 수 있고, MySQL보다 더 빠른 성능을 제공한다.

 

Oracle

- Oracle Corporation에서 개발한 상용 관계형 데이터베이스 관리 시스템

- 대규모 데이터 처리가 가능하지만, 비용이 많이 든다는 단점이 있다.

 


 

다음은 NoSQL에 대해서 알아보도록 하자!!!

NoSQL

RDBMS와 달리 비정형·반정형 데이터를 저장하고 관리하는데 사용되는 데이터베이스 관리 시스템

 

NoSQL의 특징

Scale-Out

: 여러 서버에 데이터를 분산하여 대용량 데이터를 효율적으로 처리할 수 있다.

 

관계 미정의

: 테이블 간의 관계를 정의하지 않는다. 즉 JOIN이 불가능하다.

 

NoSQL 구조

Document 구조

- 데이터가 key - document 쌍으로 저장된다.

- document에 JSON, XML 등 다양한 형식의 문서가 저장된다.

- 대표적으로 MongoDB가 있다.

 

Key-Value 구조

- 데이터가 key - value의 쌍으로 저장된다.

- value에 다양한 타입(이미지, 오디오, JSON 데이터 등)을 허용한다.

- 빠른 연산을 지원한다.

- 세션, 캐시 저장 등 다양한 용도로 활용된다.

- 대표적으로 Redis가 있다.

 

Wide-Column 구조

- 데이터가 key(Row) - Column Family- Column의 3단계 구조로 저장된다.

출처: https://medium.com/@fullstacktips/nosql-databases-explained-59fbfbbef396

- 대규모 데이터의 분산 처리에 적합하다.

- 스키마가 유연해서, 새로운 Column 추가가 자유롭다.

- 대표적으로 Cassandra가 있다.

 

Graph 구조

- 데이터를 Node(노드) - Edge(엣지) - Property(속성)으로 저장한다.

- 데이터 간의 복잡한 연결에 최적화되어있다.

- 대표적으로 Neo4j가 있다.

 


 

그래서... 둘은 무슨 차이가 있나요❓❓❓❓

RDBMS와 NoSQL의 차이점

1. 데이터 형태(정형 vs 비·반정형 데이터)

- RDBMS는 정형 데이터를 저장한다. 즉, 해당 데이터를 고정된 스키마에 저장하여 다룬다.

- NoSQL은 비정형 및 반정형 데이터를 저장한다. 또한 스키마가 없거나 유연하다.

 

2. Scale Up vs Scale Out

- RDBMS는 Scale-Up을 지원하여 비용이 많이 든다.

- NoSQL은 Scale-Up과 Scale-Out을 지원하며, 데이터 분산이 용이하다.

 

3. 데이터 중복 여부

- RDBMS는 데이터를 중복없이 한 번만 저장해야 한다.

- NoSQL은 데이터 중복 저장을 허용한다.
  단, 중복 데이터에 변경이 발생하면 다른 중복 데이터들도 함께 수정해야 한다.

 

4. 언제 사용할까?

- RDBMS는 정형 데이터 환경에서 트랜잭션 처리가 필요할 때, 관계를 맺고 있는 데이터가 자주 변경될 때 사용한다.

- NoSQL은 데이터 구조가 정확하지 않으며 자주 변경 또는 확장될 때 사용한다.
   또한, 3번처럼 중복 데이터의 변경 시 일일이 수정해주어야 하기 때문에 데이터가 자주 변경되지 않을 때 사용한다.

 

:)

 

출처

https://cloud.google.com/learn/what-is-a-relational-database?hl=ko

https://mysterlee.tistory.com/106

 

'Computer Science > 데이터베이스' 카테고리의 다른 글

[DB] 트랜잭션 고립 수준(Transaction Isolation Level)  (0) 2025.09.19
[DB] 공통 테이블 식(CTE)  (0) 2025.09.19
[DB] Union vs Union All  (0) 2025.09.10
[DB] 트랜잭션(Transaction)  (2) 2025.08.22
[MySQL] JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN  (4) 2025.08.07
'Computer Science/데이터베이스' 카테고리의 다른 글
  • [DB] 공통 테이블 식(CTE)
  • [DB] Union vs Union All
  • [DB] 트랜잭션(Transaction)
  • [MySQL] JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
jjangsudiary
jjangsudiary
jjangsudiary 님의 블로그 입니다.
  • jjangsudiary
    jjangsudiary 님의 블로그
    jjangsudiary
  • 전체
    오늘
    어제
    • 분류 전체보기 (81) N
      • 이모저모 (0)
        • 회고 (0)
      • Development (17) N
        • 개발 공부 (14) N
        • 프로젝트 (2)
      • Android (10)
        • Compose (1)
      • AI (15)
      • Computer Science (25)
        • 네트워크 (8)
        • 데이터베이스 (10)
        • 운영체제 (6)
        • 자료구조 (0)
        • 컴퓨터구조 (1)
      • Java (9)
        • 디자인패턴 (2)
      • Spring (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    TensorFlow
    백준
    코딩 테스트
    딥러닝
    baekjoon
    인공지능
    안드로이드
    database
    머신러닝
    android
    Ai
    db
    Python
    파이썬
    운영체제
    CS
    프로그래머스
    java
    os
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
jjangsudiary
[DB] RDBMS vs NoSQL
상단으로

티스토리툴바