❗ RDBMS이란?
- Relational Database Management System
- RDBMS는 관계형 데이터베이스에서 데이터를 관리하고 조작하는 시스템
- 데이터는 테이블(스키마)에 저장되며, 각 테이블은 고정된 컬럼과 데이터 타입을 정의
- SQL은 RDBMS에서 데이터를 질의하고 처리하는 표준 언어
- 예시: MySQL, PostgreSQL, Oracle, MS SQL Server
✏️특징
- 정형화된 스키마: 데이터를 삽입하기 전에 미리 정의된 스키마(테이블 구조)가 있어야 하며, 데이터는 이 구조를 따라야 함
- 관계: 테이블 간의 관계가 중요하며, 이를 외래 키(Foreign Key)로 연결하여 데이터 무결성을 보장
- ACID: 데이터베이스 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 보장하는 ACID 속성을 따름
- 쿼리 언어: 데이터 질의에 사용되는 SQL(Structured Query Language)이 표준화되어 있어 데이터 관리가 편리
❗NoSQL이란?
- Not Only SQL
- NoSQL은 비관계형 데이터베이스
- 스키마가 없거나 유연하며 데이터는 문서, 키-값, 그래프 등 다양한 형태로 저장될 수 있음
- 예시: MongoDB, Cassandra, Redis, Couchbase, Neo4j.
✏️특징:
- 유연한 스키마: 미리 정의된 스키마가 필요 없으며, 각 레코드는 다른 구조를 가질 수 있음. 데이터를 필요에 따라 자유롭게 추가하고 변경 가능
- 확장성: 수평적 확장이 용이하며 클러스터를 통해 대규모 데이터를 처리할 수 있음
- CAP 이론: 일관성(Consistency), 가용성(Availability), 분산 허용성(Partition Tolerance) 중 두 가지를 보장하는 것이 일반적임
- 다양한 데이터 모델: NoSQL 데이터베이스는 키-값(Key-Value), 문서(Document), 그래프(Graph), 컬럼(Column) 기반으로 데이터를 저장할 수 있음
❗ RDBMS과 NoSQL의 차이점
특징 | RDBMS | NoSQL |
데이터 저장 구조 | 정형화된 테이블 구조(행과 열) | 유연한 데이터 저장(문서, 키-값, 그래프, 컬럼 등) |
스키마 | 고정된 스키마를 사용하여 데이터 구조를 미리 정의 | 스키마가 유연하거나 필요 없음 |
확장성 | 수직적 확장(서버 성능 향상) | 수평적 확장(서버를 추가하여 빠른 확장) |
트랜잭션 지원 | ACID 속성을 지원 | 대부분의 NoSQL은 CAP이론을 따르며 일관성을 일부 포기할 수 있음 |
관계 | 테이블 간 관계를 중요시함 | 관계보다는 데이터 중복을 허용하여 성능을 중시함 |
데이터 유형 | 정형화된 데이터, 트랜잭션이 중요한 애플리케이션 | 비정형 데이터, 대용량 데이터, 빠른 성능이 필요한 애플리케이션 |
쿼리 | 표준화된 SQL 사용 | 다양한 쿼리 언어 또는 API 사용(데이터베이스에 따라 다름) |
❗하이브리드 데이터베이스
- 일부 데이터베이스는 SQL과 NoSQL의 특성을 혼합하여 사용하는 데이터베이스
- 예시: Cassandra는 NoSQL 기반이지만 CQL(Cassandra Query Language)이라는 SQL 유사한 쿼리 언어를 사용함
728x90
반응형
'🔻Computer Science > Database' 카테고리의 다른 글
[Database] Sharding (0) | 2024.10.14 |
---|