mirror of
https://github.com/cotes2020/chirpy-starter.git
synced 2025-06-08 09:10:19 +10:00
3.8 KiB
3.8 KiB
published | layout | title | categories | tags | ||
---|---|---|---|---|---|---|
true | post | RDBMS |
|
|
RDBMS란?
**RDBMS(Relational Database Management System)**는 데이터를 행(row)과 열(column)로 구성된 테이블(table) 형태로 저장하고, 테이블 간 **관계(Relation)**를 설정하여 데이터를 효율적으로 관리하는 시스템
대표적인 RDBMS에는 MySQL, PostgreSQL, Oracle, SQL Server 등이 있음
주요 특징
- 테이블 기반 구조: 데이터를 행과 열로 구성된 표 형식의 테이블에 저장
- SQL 사용: 데이터를 정의하고 조회하는 데 SQL(Structured Query Language) 사용
- 정규화: 중복을 줄이고 일관성을 높이기 위해 데이터 구조를 나누는 방식
- ACID 트랜잭션 보장:
- Atomicity (원자성)
- Consistency (일관성)
- Isolation (고립성)
- Durability (지속성)
- 스키마 기반 구조: 데이터의 구조(열 이름, 데이터 타입 등)를 미리 정의해야 함
RDBMS 장점
- 데이터 정합성과 무결성 보장
- 복잡한 관계형 데이터 모델링 가능
- 트랜잭션 처리 신뢰성 확보 (ACID 지원)
- 성숙한 생태계와 도구, 문서 지원
RDBMS 단점
- 스키마 변경이 어려움: 구조가 고정되어 있음
- 수평 확장 어려움: 서버 스펙을 올리는 방식(수직 확장)이 주가 됨
- 비정형/대규모 데이터 처리에 불리함
🗃️ 대표적인 RDBMS 종류
1. MySQL
- 오픈소스 관계형 데이터베이스이며, 전 세계적으로 가장 널리 사용됨
- Oracle이 소유하고 있음
- 웹 애플리케이션, 스타트업, 중소 규모 서비스에 적합
- 빠른 읽기 성능과 쉬운 사용성 제공
2. PostgreSQL
- **객체 관계형 데이터베이스(ORDBMS)**로, 고급 기능과 표준 준수가 강점
- 오픈소스이며, ACID 완벽 지원
- 복잡한 쿼리, JSON 처리, GIS 기능(PostGIS) 등에 뛰어남
- 확장성과 커스터마이징이 뛰어나 대규모 시스템에도 적합
3. Oracle Database
- 상용 RDBMS의 대표주자, 대기업 및 금융권에서 많이 사용됨
- 뛰어난 보안, 트랜잭션 처리 성능, 복잡한 비즈니스 로직에 적합
- 고가의 라이선스 비용이 있음
4. Microsoft SQL Server
- Microsoft에서 개발한 상용 RDBMS
- Windows 환경에 최적화되어 있으며, .NET 프레임워크와 잘 통합됨
- GUI 툴(SQL Server Management Studio)로 관리가 편리
5. MariaDB
- MySQL의 포크(Fork) 버전, MySQL과 호환성 유지
- 오픈소스이며, Oracle 소유의 MySQL을 대체하고자 등장
- MySQL 대비 기능 확장에 더 적극적
RDBMS vs NoSQL
항목 | RDBMS (Relational DB) | NoSQL (Not Only SQL) |
---|---|---|
데이터 구조 | 테이블(행-열) 기반 | 문서, 키-값, 컬럼, 그래프 등 |
스키마 | 고정 스키마 필요 | 유연한 스키마, 자유로운 구조 |
확장성 | 수직 확장 중심 (서버 성능 업그레이드) | 수평 확장 중심 (노드 추가) |
쿼리 언어 | SQL (표준 쿼리 언어) | 시스템별 쿼리 방식 (예: MongoDB DSL) |
정합성 | ACID 트랜잭션 보장 | BASE 모델 (가용성 중심) |
성능 | 복잡한 쿼리에 강함 | 실시간 처리, 대규모 데이터에 강함 |
적합한 사례 | 금융, ERP, 인사, 회계 등 | 로그 수집, 채팅, 캐시, IoT 등 |
NoSQL 장점
- 스키마 자유로움 → 구조 변경이 쉬움
- 수평 확장 용이 → 고성능 분산 시스템 구성 가능
- 대용량 데이터에 강함
- Redis처럼 메모리 기반인 경우 초고속 응답
NoSQL 단점
- 복잡한 JOIN, 트랜잭션 처리에 제약
- 데이터 정합성 보장 어려움
- 표준 쿼리 언어 부재 (학습 비용)