DBMS / RDBMS / SQL / NoSQL

최석훈·2025년 10월 20일

데이터베이스

목록 보기
13/18

1. DBMS (Database Management System)

개념: 데이터베이스 관리 시스템(DBMS)은 데이터베이스를 생성, 관리, 조작할 수 있도록 하는 소프트웨어입니다.

  • 주요 기능: 데이터를 저장, 검색, 수정, 삭제하고 데이터 무결성과 보안을 유지합니다.

  • 예시: MySQL, PostgreSQL, Oracle, MongoDB, SQLite 등.

  • 특징:
    데이터의 효율적인 관리와 데이터 무결성을 유지하며, 동시성 제어와 백업 기능을 제공합니다.
    데이터 중복을 줄이고, 데이터의 일관성을 보장하여 애플리케이션 성능을 최적화합니다.

2. RDBMS (Relational Database Management System)

  • 개념: 관계형 데이터베이스 관리 시스템(RDBMS)은 관계형 모델을 기반으로 데이터 간의 관계를 테이블 형태로 관리하는 DBMS입니다.
  • 주요 특징:

테이블 구조: 데이터를 행(Row)과 열(Column)로 구성된 테이블에 저장합니다.

SQL 사용: 데이터를 정의, 조회, 조작하는 데 SQL(Structured Query Language)을 사용합니다.

관계 설정: 테이블 간의 관계를 설정하여 중복 데이터를 줄이고 데이터 일관성을 높입니다.

ACID 지원: 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)이라는 트랜잭션 특성을 보장하여 데이터 무결성을 유지합니다.

  • 예시: MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등.

3. SQL (Structured Query Language)

  • 개념: SQL은 관계형 데이터베이스에서 데이터를 정의, 관리, 조작하기 위한 표준 언어입니다.
  • 주요 기능:
    DDL (Data Definition Language): 데이터베이스 구조를 정의하는 명령어 (CREATE, ALTER, DROP 등).
    DML (Data Manipulation Language): 데이터베이스 데이터를 조회, 추가, 수정, 삭제하는 명령어 (SELECT, INSERT, UPDATE, DELETE 등).
    DCL (Data Control Language): 사용자 권한을 관리하고 접근을 제어하는 명령어 (GRANT, REVOKE 등).

추후 구체적인 내용은 다른 포스트에서 확인가능

  • 특징:

직관적이고 강력한 쿼리: SQL은 데이터 검색, 집계, 필터링을 직관적이고 간단하게 표현할 수 있습니다.

표준화된 언어: 대부분의 RDBMS가 SQL을 지원하며, SQL 표준을 따릅니다.

4. NoSQL (Not Only SQL)

  • 개념: NoSQL은 비관계형 데이터베이스로, 관계형 모델을 사용하지 않고, 데이터를 다양한 구조로 관리하는 DBMS입니다.
  • 주요 특징:

유연한 데이터 모델: 테이블, 행, 열 구조가 아닌 유연한 데이터 모델을 지원합니다. 문서(Document), 키-값(Key-Value), 열(Column), 그
래프(Graph) 등 여러 데이터 모델을 사용할 수 있습니다.

스키마리스(Schema-less): 사전에 정의된 스키마가 없어 데이터를 유연하게 추가 및 수정할 수 있습니다.
수평적 확장: 분산 아키텍처를 통해 수평적으로 확장할 수 있어, 대량의 데이터를 처리하는 데 용이합니다.

ACID 대신 CAP 이론: 일부 NoSQL 데이터베이스는 데이터 일관성 대신 가용성이나 파티션 허용성을 중시하며, CAP 이론(일관성, 가용성, 파티션 허용성)을 따릅니다.

  • 예시:
    문서 기반: MongoDB, Couchbase
    키-값 저장소: Redis, DynamoDB
    열 기반: Cassandra, HBase
    그래프 데이터베이스: Neo4j

CAP 이론: 분산 시스템의 3가지 속성

Consistency (일관성), Availability (가용성), Partition Tolerance (파티션 허용성) 중 3가지 모두 동시에 만족 불가, 2가지만 선택 가능

  • Consistency (일관성) 모든 노드가 같은 데이터를 보여줌
  • Availability (가용성) 항상 응답을 반환함 (성공/실패 여부 상관없이)
  • Partition Tolerance (파티션 허용성) 네트워크 분할 상황에서도 시스템이 동작함
시스템선택된 속성비고
RDBMS (일반적)C + A분산 시스템이 아니므로 Partition Tolerance 미지원
MongoDBC + P일관성과 파티션 허용성에 초점
CassandraA + P높은 가용성과 확장성 중심, 일관성은 약하게 유지

요약

용어설명예시
DBMS데이터베이스를 관리하는 소프트웨어로, 데이터의 저장, 관리, 무결성 유지MySQL, MongoDB, Oracle
RDBMS관계형 모델을 기반으로 테이블 형태로 데이터를 관리하는 DBMSMySQL, PostgreSQL, SQL Server
SQLRDBMS에서 데이터를 정의하고 조작하기 위한 표준 언어SELECT, INSERT, UPDATE
NoSQL비관계형 데이터베이스로, 다양한 데이터 모델과 유연한 스키마를 제공MongoDB, Redis, Cassandra

실전 적용사례

상황사용 추천이유 및 도구
은행 시스템RDBMS계좌 이체, 거래 기록 등 ACID 보장 필수
→ Oracle, PostgreSQL
전자상거래RDBMS주문-결제-재고 간 데이터 정합성 중요
→ MySQL, SQL Server
정형화된 데이터 + 복잡한 JOINRDBMS관계형 데이터 모델에 적합
SNS 타임라인NoSQL빠른 읽기/쓰기 + 스키마 유연성
→ MongoDB
실시간 채팅NoSQL빠른 응답 속도, 메모리 기반 저장
→ Redis
로그 수집/분석NoSQL대용량 데이터 처리, 수평 확장
→ Cassandra
추천 시스템NoSQL사용자-상품 관계 분석 필요
→ Neo4j
profile
기술 노트 블로그 (2025.09.01~)

2개의 댓글

comment-user-thumbnail
2025년 10월 21일

RDBMS와 NoSQL 비교가 개념적으로만 되어 있고,
실제 언제 뭘 써야 하는지 구체적인 사례가 없음.

RDBMS 사용

  • 은행 시스템: 계좌 이체 시 ACID 보장 필수
  • 전자상거래: 주문-결제-재고 데이터 정합성 중요한 경우
  • 정형화된 데이터, 복잡한 JOIN 필요한 경우

NoSQL 사용

  • SNS 타임라인: 빠른 읽기/쓰기, 스키마 유연성 (MongoDB)
  • 실시간 채팅: 빠른 응답 속도 (Redis)
  • 로그 데이터: 대용량 쓰기, 수평 확장 (Cassandra)
  • 추천 시스템: 관계 데이터 (Neo4j)

이런 식으로 구체적인 상황별 선택 기준 제시해야
어떤 프로젝트에 뭘 써야 하는지 판단 가능함.

CAP 이론도 언급만 하고 설명 없음.
Consistency, Availability, Partition Tolerance 중 2개만 선택 가능하다는 것,
RDBMS는 CA, MongoDB는 CP, Cassandra는 AP 선택한다는 식

1개의 답글