[CS] 데이터베이스의 종류

눈치없어·2025년 5월 23일

관계형 데이터베이스 (RDBMS)

  • 행(Row)과 열(Column)로 구성된 테이블 구조
  • SQL 언어 사용, 스키마 엄격, 트랜잭션/무결성 강력

특징설명
대표 DBMySQL, PostgreSQL, Oracle, SQL Server 등
데이터 구조테이블 (Table) – 행/열 기반
언어SQL (Structured Query Language) 사용
스키마엄격한 스키마 (컬럼 타입 사전 정의)
장점복잡한 JOIN 처리, ACID 보장, 데이터 무결성 관리 우수
단점수평 확장 어려움, 유연한 구조 부족

📌 MySQL

  • 가장 많이 쓰이는 오픈소스 RDBMS (Meta, Twitter도 사용)
  • 모듈형 스토리지 엔진 구조
  • InnoDB 엔진 기반 → 트랜잭션, 커밋/롤백 지원
  • 쿼리 캐시 기능 지원 (입력 쿼리와 결과 저장)

기본 SQL 사용 / 오라클의 PL-SQL, MSSQL의 T-SQL과 차이 있음


📌 PostgreSQL

  • 확장성과 성능이 뛰어난 오픈소스 RDBMS
  • VACUUM 기능으로 디스크 공간 회수
  • JSON 타입 데이터도 지원 → 반구조화 데이터 처리 가능
  • 중첩 트랜잭션, 로깅, 백업 등 고급 기능 지원


NoSQL 데이터베이스

  • Not Only SQL
  • 유연한 스키마, 수평 확장에 유리함 → 빅데이터/실시간 시스템에 강점
특징설명
대표 DBMongoDB, Redis, Cassandra, DynamoDB 등
데이터 구조도큐먼트, 키-값, 그래프, 컬럼 기반 등 다양한 구조 지원
언어SQL 사용 X (대부분 JSON-like 명령어 또는 자체 API 사용)
스키마스키마 유연 (컬럼 사전 정의 필요 없음)
장점수평 확장 용이, 빠른 읽기/쓰기 성능, 비정형 데이터 처리에 적합
단점JOIN 어려움, 복잡한 트랜잭션 처리 미약, 정합성 유지 어려움 가능성

📌 MongoDB

  • 도큐먼트 기반 NoSQL DB (BSON 저장 형식)
  • 스키마 유연 → 다양한 구조 삽입 가능
  • 기본키로 ObjectID 사용 (타임스탬프 + 랜덤값 + 카운터)
  • 레플리카셋/샤딩/고가용성 지원

📌 Redis

  • 인메모리 기반 키-값 저장소 → 매우 빠름
  • 기본 자료형: String, Set, List, Hash, Sorted Set
  • 캐시/세션 관리, 실시간 순위 시스템, Pub/Sub에 주로 사용


비교 요약

항목RDBMSNoSQL
구조테이블 (정형화된 구조)키-값, 도큐먼트, 그래프 등 다양
스키마엄격유연
확장성수직 확장 (Scale-Up)수평 확장 (Scale-Out)
트랜잭션ACID 보장일반적으로 미흡 (BASE 원칙)
사용처전통적인 업무 시스템, 정형데이터빅데이터, 실시간 처리, 로그 분석 등



참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 4-4)

profile
dock 사이즈 다르잖아

0개의 댓글