🔍 데이터베이스의 종류

2025. 12. 3. 14:22·Computer Science/Database

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

Relational DataBase Management System 행(Row)과 열(Column)로 구성된 표(Table) 형식으로 데이터를 저장하고 관리하는 데이터베이스입니다. 테이블 간의 '관계'를 통해 데이터를 구조화하며, SQL(Structured Query Language)이라는 언어를 사용하여 데이터를 조작합니다.

  • 대표적인 제품: MySQL, PostgreSQL, Oracle, SQL Server (MSSQL) 등
  • SQL의 특징: 모든 RDBMS는 ANSI SQL(표준 SQL)을 준수하지만, 각 제품마다 성능 향상이나 고유 기능을 위해 특화된 독자적인 문법을 가집니다.
    • Oracle: PL/SQL
    • SQL Server: T-SQL
    • MySQL: SQL (표준을 따르되 독자적 함수 존재)

🐬 MySQL

전 세계적으로 가장 많이 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 대부분의 운영체제와 호환되며, 웹 개발의 표준 스택(LAMP 등)으로 자리 잡았습니다.

  • 구조 및 기술적 특징:
    • C, C++ 언어 기반: 높은 이식성과 성능을 제공합니다.
    • 인덱싱 기술: MyISAM 인덱스 압축 기술과 B-트리(B-Tree) 기반의 인덱싱을 사용하여 검색 속도가 매우 빠릅니다. 테이블당 최대 64개의 인덱스를 생성할 수 있습니다.
    • 메모리 관리: 스레드(Thread) 기반의 메모리 할당 시스템을 사용하여 리소스를 효율적으로 관리합니다.
    • 대용량 처리: 이중 암호 지원 보안, 롤백, 커밋 등 트랜잭션 기능을 완벽히 지원하며 대용량 데이터 처리에 최적화되어 있습니다.
  • 모듈식 아키텍처 (스토리지 엔진): 데이터베이스의 심장인 스토리지 엔진(Storage Engine)을 레고 블록처럼 교체할 수 있습니다. 필요에 따라 트랜잭션 처리에 강한 InnoDB, 읽기 성능에 특화된 MyISAM 등을 선택하여 사용할 수 있습니다. 스토리지 엔진 위에는 커넥터 API와 서비스 계층이 있어 사용자와 DB 간의 상호작용을 돕습니다.
  • 쿼리 캐시 (Query Cache): 동일한 쿼리가 들어오면 복잡한 구문 분석(Parsing), 최적화(Optimization), 실행 과정을 생략하고, 메모리에 저장된 캐시 결과를 즉시 반환합니다. 이는 읽기 위주의 서비스에서 엄청난 성능 향상을 가져옵니다.

🐘 PostgreSQL

MySQL 다음으로 개발자들에게 가장 사랑받는 RDBMS입니다. 표준 SQL 호환성이 매우 높고, 데이터 무결성과 안정성을 최우선으로 설계되었습니다.

  • VACUUM (디스크 공간 회수): 데이터를 업데이트하거나 삭제해도 디스크의 물리적 공간은 즉시 비워지지 않습니다. PostgreSQL은 VACUUM이라는 기능을 통해 불필요한 데이터(Dead Tuple)가 차지하는 디스크 영역을 정리하고 재사용 가능하게 만듭니다.
  • 확장성 및 기능:
    • 최대 32TB의 거대한 테이블 크기를 지원합니다.
    • JSON 데이터 지원: 관계형 DB이지만 NoSQL처럼 JSON 데이터를 저장하고 쿼리할 수 있어 유연성이 뛰어납니다.
    • 지정 시간 복구(PITR), 정교한 로깅, 접근 제어, 중첩된 트랜잭션 등 엔터프라이즈급 기능을 제공합니다.

🧩 NoSQL 데이터베이스

"Not Only SQL" 기존 RDBMS의 한계(스키마 제약, 확장성 문제)를 극복하기 위해 등장했습니다. 고정된 스키마가 없고(Schema-less), 관계(Join)보다는 데이터의 집합과 확장에 초점을 맞춥니다. 대표적으로 MongoDB, Redis 등이 있습니다.

🍃 MongoDB

가장 대표적인 문서(Document) 지향 NoSQL 데이터베이스입니다.

  • 데이터 모델 (JSON & BSON): 데이터를 행/열이 아닌 JSON과 유사한 형태로 저장합니다. 내부적으로는 BSON(Binary JSON) 형식을 사용하여 문자열뿐만 아니라 날짜, 배열 등 다양한 타입을 빠르게 처리합니다.
  • 스토리지 엔진: 와이어드타이거(WiredTiger) 엔진을 기본으로 사용하여 쓰기 성능과 압축 효율이 매우 뛰어납니다.
  • 확장성 (Scalability):
    • 샤딩(Sharding): 데이터를 여러 서버에 분산 저장하여 빅데이터 처리에 강력합니다.
    • 레플리카셋(Replica Set): 데이터를 여러 곳에 복제하여 서버 하나가 죽어도 데이터가 유실되지 않게 하는 고가용성(HA)을 보장합니다.
  • 유연성: 스키마를 미리 정하지 않고 데이터를 넣을 수 있어, 형식이 계속 변하는 로그 데이터나 분석용 데이터를 저장할 때 매우 유리합니다.
  • ObjectID (고유 식별자): RDBMS의 Primary Key와 같은 역할입니다. 생성 시 충돌을 방지하기 위해 정교하게 설계되었습니다.
    • 구성: 타임스탬프(4byte) + 랜덤값(5byte) + 카운터(3byte)

⚡ redis

Remote Dictionary Server 디스크가 아닌 메모리(RAM)에 데이터를 저장하는 인메모리(In-memory) 키-값(Key-Value) 데이터베이스입니다.

  • 특징:
    • 메모리에서 동작하므로 디스크 기반 DB보다 속도가 압도적으로 빠릅니다. (평균 읽기/쓰기 속도 < 1ms)
    • 기본 데이터 타입은 문자열(String)이며, 값 하나에 최대 512MB까지 저장 가능합니다.
  • 다양한 자료구조 지원: 단순 키-값뿐만 아니라 List, Set, Sorted Set, Hash 등 복잡한 자료구조를 지원하여 개발 편의성을 높입니다.
  • 주요 활용 사례:
    1. 캐싱(Caching): RDBMS 앞단에 두어 자주 찾는 데이터를 임시 저장해 DB 부하를 줄임.
    2. 채팅 시스템: Pub/Sub(발행/구독) 기능을 이용해 실시간 메시지 전송 구현.
    3. 세션 관리: 로그인 정보 등 빠르게 접근해야 하는 임시 데이터 저장.
    4. 실시간 순위표 (Leaderboard): Sorted Set을 이용해 점수별 자동 정렬 기능을 구현.

'Computer Science > Database' 카테고리의 다른 글

🔗조인  (0) 2025.12.03
🔖 인덱스  (0) 2025.12.03
🔐 트랜잭션과 무결성  (0) 2025.12.03
📐 ERD와 정규화 과정  (0) 2025.12.02
🗄️ 데이터베이스의 기본  (0) 2025.12.02
'Computer Science/Database' 카테고리의 다른 글
  • 🔗조인
  • 🔖 인덱스
  • 🔐 트랜잭션과 무결성
  • 📐 ERD와 정규화 과정
TECHNING
TECHNING
Hi! I'm techning
  • TECHNING
    TECHNING
    TECHNING
    • 분류 전체보기 (54)
      • Computer Science (45)
        • Design Pattern (11)
        • Programming Paradigm (4)
        • Network (15)
        • Operating System (6)
        • Database (6)
        • Data Structure (3)
      • Algorithm (5)
        • Python (3)
        • Java (1)
      • IT Insight (4)
  • hELLO· Designed By정상우.v4.10.4
TECHNING
🔍 데이터베이스의 종류
상단으로

티스토리툴바