728x90
반응형
RDBMS란?
- Relational Database Management System로 데이터를 테이블이라는 구조로 관리하는 데이터베이스 시스템.
테이블은 행(Row)과 열(Column)로 구성되며, 데이터는 고정된 스키마(Schema)에 따라 저장된다. 대표적인 RDBMS로는 MySQL, PostgreSQL, OracleDB 등이 있습니다.
RDBMS의 주요 개념
- 스키마: 데이터를 저장하기 위한 구조를 정의. 테이블의 컬럼 이름, 데이터 타입, 제약 조건 등이 포함됨.
- ACID 속성: 트랜잭션의 안정성을 보장하는 원칙.
- Atomicity(원자성): 모든 작업이 성공하거나 모두 실패함.
- Consistency(일관성): 트랜잭션 전후에 데이터 무결성 유지.
- Isolation(격리성): 트랜잭션 간 간섭을 최소화.
- Durability(내구성): 성공한 트랜잭션의 결과는 영구적으로 저장.
RDBMS의 장점
- 데이터 무결성과 신뢰성
- RDBMS는 ACID 속성을 통해 트랜잭션의 안정성을 보장.
- 금융, 의료, 법률 등 데이터의 무결성과 일관성이 중요한 분야에서 필수.
- 관계 데이터 모델 지원
- 데이터 간의 복잡한 관계를 명확하게 정의하고 관리 가능.
- 예: 고객-주문 관계를 명확히 표현 가능.
- 표준화된 쿼리 언어(SQL)
- 전 세계적으로 사용되는 표준 언어로, 데이터 검색 및 조작이 쉬움.
- 다양한 RDBMS에서 유사한 쿼리를 사용할 수 있음.
- 성숙한 기술과 생태계
- RDBMS는 오랜 역사를 가지고 있어 안정적이고 검증된 기술로 평가.
- 풍부한 문서, 커뮤니티, 툴 등이 지원됨
- 보안 기능
- 사용자 권한 제어, 암호화 등 강력한 보안 기능을 제공.
- 데이터 접근을 계층적으로 제어할 수 있어 민감한 데이터를 보호하기 용이.
RDBMS의 한계
- 스케일 아웃의 어려움 RDBMS는 일반적으로 수직 확장(Scale-up)에 최적화되어 있습니다. 즉, 성능을 높이기 위해 더 강력한 하드웨어를 사용하는 방식입니다. 그러나 데이터가 폭증하면 물리적 한계에 도달할 수 있습니다. 반면 RDBMS는 기본적으로 수직 확장(Scale-Up)에 최적화되어 있으며, 수평 확장도 가능하지만 NoSQL에 비해 복잡하고 제약이 많습니다.
- 복잡한 스키마 변경
- RDBMS는 스키마에 의존하므로 데이터 구조가 변경되면 테이블 설계를 수정하고 데이터 이관(Migration) 작업을 해야 합니다. 이러한 작업은 대규모 시스템에서 매우 복잡하고 비용이 많이 듭니다.
- 대량 데이터 처리의 비효율성
- 데이터를 관계형 테이블로 저장하다 보니 JOIN 연산이 빈번하게 발생합니다. 데이터가 많아질수록 성능 저하가 심해질 수 있습니다.
- 비정형 데이터 처리의 한계
- RDBMS는 텍스트, 이미지, 동영상 같은 비정형 데이터를 저장하고 처리하기 어렵습니다. 구조화되지 않은 데이터는 별도의 처리 과정을 요구하거나, 비효율적으로 저장됩니다.
NoSQL이란?
- Not Only SQL은 RDBMS와 달리, 테이블 기반이 아닌 다양한 데이터 모델을 지원하는 데이터베이스.
- 스키마가 고정되지 않으며, 대규모 데이터와 비정형 데이터 처리에 적합합니다.
NoSQL에는 여러 유형이 있습니다:
- 문서형(Document-Based)
- 데이터가 JSON, BSON 등의 형태로 저장.
- 예: MongoDB, CouchDB
- 키-값(Key-Value)
- 키-값 쌍으로 데이터를 저장.
- 예: Redis, DynamoDB
- 열 기반(Column-Family)
- 대규모 데이터를 열 단위로 분할하여 저장.
- 예: Cassandra, HBase
- 그래프형(Graph-Based)
- 데이터를 노드(Node)와 관계(Edge)로 표현.
- 예: Neo4j, ArangoDB
NoSQL의 장점
- 스키마가 없어 유연한 데이터 구조를 가짐 → 언제든 데이터 조정 및 새로운 필드 추가 가능
- 성능 향상을 위해 Scale-up/Scale-out 모두 가능
NoSQL의 단점
- 스키마가 없어 데이터 일관성이 존재하지 않음
- 데이터 구조를 결정하기 어려울 수 있음
- 데이터의 중복 발생 가능
RDBMS와 NoSQL은 상호 배타적인 관계가 아닌 보완적인 관계
RDBMS의 강점은 여전히 중요함, 데이터 무결성과 복잡한 관계를 처리해야 하는 많은 애플리케이션에서 이상적인 선택.
그러나 데이터 환경이 대규모로 확장되고, 비정형 데이터가 폭증하며, 데이터 구조가 유동적인 상황에서는 RDBMS가 가진 한계가 명확해짐.
- RDBMS: 관계 데이터, 트랜잭션 처리 등 높은 무결성이 필요한 데이터 관리.
- NoSQL: 비정형 데이터 처리, 빠른 읽기/쓰기, 실시간 데이터 요구사항 처리.
RDBMS와 NoSQL의 공존
현대 시스템에서는 RDBMS와 NoSQL을 조합해 사용하는 경우가 많다.
- RDBMS는 데이터 무결성과 관계를 보장해야 하는 핵심 데이터 관리.
- NoSQL은 빠른 읽기/쓰기, 유연한 데이터 구조가 필요한 애플리케이션에 활용.
예: 전자상거래 플랫폼
- 고객 정보, 주문 정보: RDBMS 사용 (관계형 데이터)
- 실시간 사용자 로그, 추천 시스템: NoSQL 사용 (비정형 데이터)
참고
https://cloud.google.com/learn/what-is-a-relational-database?hl=en
728x90
반응형
'박치기 공룡' 카테고리의 다른 글
React에서 전역 상태 관리 (0) | 2025.04.22 |
---|---|
CSR, SSR, SSG 뭐가 다르냐~~? (0) | 2025.04.22 |
OAuth 2.0 카카오 로그인 구현하기 (Express) (0) | 2025.02.01 |
k8s에서 데이터 영속성을 보장하는 방법 (0) | 2025.01.23 |