RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 데이터를 저장하고 관리하는 두 가지 주요 데이터베이스 유형입니다.

RDBMS(관계형 데이터베이스 관리 시스템)
RDBMS는 데이터를 관리하고 저장하기 위한 소프트 웨어 시스템으로, 관계형 데이터 모델을 기반으로 합니다.
이 모델에서 데이터는 테이블(Table)이라 불리는 2차원 구조의 엑셀 시트와 같은 형태로 저장됩니다.
여기서 테이블은 행(Row)과 열(Column)로 이루어져 있습니다.
다음은 RDBMS에 대한 주요 특징과 개념들입니다.
- 테이블(Table)
데이터가 저장되는 가장 기본적인 단위로, 2차원 행과 열의 구조를 가지고 있습니다.
테이블은 명확한 스키마(구조 및 데이터 유형 정의)를 가지고 있습니다. - 열(Column)
각 열은 특정한 데이터 유형을 가지고 있으며, 특정 속성을 나타냅니다.
이는 일반적으로 필드 또는 속성이라고 불립니다. - 행(Row)
각 행은 실제로 데이터 레코드를 나타냅니다.
테이블에서 저장된 각 행은 고유한 식별자를 가질 수 있습니다. - 키(key)
테이블에서 행을 고유하게 식별하는 데 사용되는 하나 이상의 열입니다.
기본 키(Primary Key)는 각 행을 고유하게 식별하는 주 키로 사용되며, 다른 키들은 보조적인 역할을 할 수 있습니다. - SQL(Structured Query Language)
RDBMS와 상호 작용 하기 위한 표준화된 언어입니다.
SQL을 사용하여 데이터 검색, 삽입, 수정 삭제 등의 작업을 수행할 수 있습니다. - 관계(Relation)
테이블 간의 관계를 정의할 수 있습니다.
이는 주로 외래 키(Foreign Key)를 사용하여 구현됩니다. - ACID 속성
RDBMS는 트랜잭션 처리에 있어서 ACID 속성을 준수합니다.
원자성(Atomicity): 모든 트랜잭션 연산은 원자적으로 수행되어야 합니다.
일관성(Consistency): 트랜잭션이 완료된 후에도 데이터베이스는 일관된 상태를 유지해야 합니다.
고립성(Isolation): 여러 트랜잭션이 동시에 실행되더라도 각 트랜잭션은 다른 트랜잭션에 영향을 미치지 않아야 합니다.
지속성(Durability): 트랜잭션이 성공적으로 완료된 경우, 그 결과는 영구적으로 저장되어야 합니다. - 인덱스(Index)
데이터 검색 성능을 향상하기 위해 사용되는 데이터베이스 객체입니다.
인덱스를 통해 데이터베이스는 빠르게 원하는 데이터를 찾을 수 있습니다.
주요 RDBMS 제품들
- MySQL, PostgreSQL, SQLite, Oracle Database, Microsoft SQL Server 등
NoSQL
NoSQL(Not Only SQL)은 관계형 데이터베이스 관리 시스템(RDBMS)과 달리 데이터를 저장하고 검색하기 위한 다양한 모델과 접근 방식을 제공하는 데이터베이스 유형입니다. NoSQL은 주로 대량의 분산된 데이터를 다루는 데에 적합하며, 스키마가 동적이거나 변경될 수 있습니다.
다음은 NoSQL에 대한 주요 특징과 개념입니다.
- 다양한 데이터 모델
NoSQL은 다양한 데이터 모델을 제공합니다.
가장 흔한 유형으로는 문서형, 키-값, 열 지향, 그래프 등이 있습니다. - 문서형 데이터베이스
데이터를 문서(Document) 형태로 저장합니다.
문서는 주로 JSON 또는 BSON형식으로 표현되며, 각 문서는 필드와 값의 쌍으로 구성됩니다. - 키-값 저장소
간단한 키와 해당하는 값을 저장하는 방식으로, 매우 높은 읽기 및 쓰기 성능을 제공합니다. - 열 지향 데이터베이스
데이터를 테이블 형태로 저장하지만, 관계형 데이터 베이스와 달리 각 행은 다른 열의 집합을 가질 수 있습니다. - 그래프 데이터베이스
데이터의 관계를 그래프로 표현하며, 복잡한 연결 구조를 저장하고 검색하는 데에 적합합니다. - 동적인 스키마
NoSQL은 동적인 스키마를 가집니다. 이는 데이터의 구조와 런타임에 유연하게 변경될 수 있음을 의미합니다. - 분산 확장성
NoSQL은 수평적 확장(Horizontal Scaling)이 가능하며, 새로운 서버를 추가함으로써 대량의 데이터 및 트래픽을 처리할 수 있습니다. - 트랜잭션 일관성
일부 NoSQL 데이터베이스는 ACID 속성을 완전히 지키지 않을 수 있습니다.
대신 느슨한 일관성 모델을 사용하는 경우가 많습니다. - CAP 이론
CAP 이론에 따르면 일관성(Consistency), 가용성(Availability), 분할 허용성(Partition Tolerance) 중에서 두 가지만 선택 가능하다는 원칙을 따릅니다. - 사용 사례
대규모 분산시스템, 대량의 비정형 또는 반정형 데이터, 실시간 처리가 필요한 경우, 데이터의 스키마가 자주 변경되는 경우 등에 NoSQL이 적합합니다.
주요 NoSQL 데이터베이스 제품
- MongoDB(문서형), Cassandra(열 지향), Redis(키-값), Neo4 j(그래프) 등
RDBMS와 NoSQL 차이점
RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 다양한 측면에서 차이가 있습니다.
데이터 모델
- RDBMS: 관계형 데이터 모델을 사용하며, 데이터는 테이블(2차원 구조)로 표현됩니다.
- NoSQL: 다양한 데이터 모델을 사용합니다. 주로 문서, 키-값, 열 지향, 그래프 등이 있습니다.
스키마
- RDBMS: 고정된 스키마를 가지고 있습니다. 데이터 구조는 사전에 정의되어야 합니다.
- NoSQL: 동적인 스키마를 가지고 있어 데이터의 구조가 런타임에 유연하게 변경될 수 있습니다.
트랜잭션
- RDBMS: ACID 속성(원자성, 일관성, 고립성, 지속성)을 준수하며, 강력한 트랜잭션 관리를 제공합니다.
- NoSQL: ACID 속성을 완전히 준수하지 않는 경우가 많으며, 일관성 모델이 느슨할 수 있습니다.
확장성
- RDBMS: 주로 수직적 확장(Vertical Scaling)을 사용하며, 더 많은 리소스를 추가하여 성능을 향상할 수 있습니다.
- NoSQL: 주로 수평적 확장(Horizontal Scaling)이 가능하며, 새로운 서버를 추가하여 대량의 데이터와 트래픽을 처리합니다.
쿼리 언어
- RDBMS: SQL(Structured Query Language)을 사용하여 데이터를 검색, 수정, 삭제하는 등의 작업을 수행합니다.
- NoSQL: 다양한 데이터베이스마다 다른 쿼리 언어 또는 API를 사용합니다.
관계
- RDBMS: 테이블 간의 관계를 정의하고, JOIN 연산을 사용하여 데이터를 결합할 수 있습니다.
- NoSQL: 데이터 간의 관계를 나타내는데 다양한 방식을 사용하며, 복잡한 JOIN 연산이 자주 사용되지 않습니다.
CAP 이론
- RDBMS: CA(Consistency, Availability) 중심으로 설계되어 있습니다.
- NoSQL: CP(Consistency, Partition Tolerance) 또는 AP(Availability, Partition Tolerance) 중 하나를 선택하는 경향이 있습니다.
사용 사례
- RDBMS: 정형화된 데이터 모델이 필요한 경우, 트랜잭션의 일관성이 중요한 경우, 복잡한 쿼리와 조인이 자주 사용되는 경우 등에 적합합니다.
- NoSQL: 대량의 분산된 데이터를 다루어야 하는 경우, 스키마가 자주 변경되는 경우, 빠른 읽기/쓰기 속도가 요구되는 경우 등에 적합합니다.
주어진 상황에 따라 RDBMS와 NoSQL 중에서 어떤 데이터베이스를 선택할지는 프로젝트의 특정 요구사항과 성능 목표에 따라 다를 수 있습니다. RDBMS와 NoSQL 각각의 특징을 이해하고 선택하여 사용하는 것이 좋을 것 같습니다.
'Data > DataBase' 카테고리의 다른 글
| 프록시 DB란? 읽기·쓰기 분리 (0) | 2025.11.19 |
|---|---|
| Nested Set Model: 효율적인 트리 구조 (0) | 2025.03.14 |
| 데이터베이스 Anti-Pattern 피하기 (0) | 2024.11.25 |
| [DataBase] 샤딩(Sharding), 파티셔닝(Partitiong), 레플리케이션(Replication) (0) | 2024.10.20 |