데이터베이스의 유형

2025. 1. 24. 10:45Database/Database

데이터베이스의 유형

1. 관계형 데이터베이스 (Relational Database)

  • 데이터를 테이블(행과 열) 형식으로 저장.
  • 테이블 간의 관계를 정의하고 SQL로 데이터를 다룸.
  • 장점: 구조화된 데이터를 다루기 적합하고, 데이터 무결성 보장에 유리하다. 
  • 단점: 복잡한 객체 관계를 표현하는데 한계가 있다. 스키마 변경이 어렵고 비용이 많이 든다.
  • DBMS: MySQL, PostgreSQL, Oracle DB, Microsoft SQL Server 등 
  • 사용 방식:
    • 데이터의 무결성과 정합성이 중요한 애플리케이션에서 주로 사용.
    • 금융 거래 시스템, 전자상거래, ERP(전사적 자원 관리), CRM(고객 관계 관리) 등.
    • 여전히 널리 사용되며, 특히 구조화된 데이터 관리와 정합성이 중요한 시스템에서 필수적.
  • 사용 서비스 예시:
    • Facebook: 초기에는 MySQL을 사용했고, 지금도 일부 서비스에서 MySQL을 사용하며, 필요에 따라 확장된 구조를 추가.
    • Google: Cloud SQL과 같은 관계형 DB 서비스를 제공하며, 내부적으로도 RDBMS를 사용.
    • 네이버: 검색 기록, 사용자 정보 관리 등에서 관계형 DBMS를 활용.

 

2. 비관계형 데이터베이스 (NoSQL)

  • 데이터를 테이블이 아닌 다양한 구조로 저장.
  • 장점: 유연한 데이터 모델, 대량의 비정형 데이터 처리에 강함
  • 단점: 복잡한 데이터 관계를 다루는 데 한계가 있을 수 있음, 트랜잭션 일관성 보장이 어렵거나 추가 설정이 필요.
  • 종류 
    • 문서형(Document-based)
      • 데이터를 JSON, BSON 형식으로 저장.
      • DBMS: MongoDB, CouchDB.
    • 키-값(Key-Value)
      • 데이터를 키와 값으로 저장.
      • DBMS : Redis, DynamoDB.
    • 열 기반(Column-family)
      • 데이터를 열 중심으로 저장.
      • DBMS: Cassandra, HBase.
    • 그래프(Graph-based)
      • 노드와 엣지로 데이터를 저장.
      • DBMS: Neo4j, Amazon Neptune.
  • 사용 방식:
    • 대규모 분산 시스템이나 비정형 데이터를 다룰 때 사용.
    • 소셜 미디어, 실시간 분석, 로그 처리, IoT 시스템 등에 적합.
    • 빅데이터 처리와 대규모 시스템 확장이 필요한 환경에서 필수적.
  •  사용 서비스 예시:
    • Instagram: 초기에는 PostgreSQL을 사용했지만, 대규모 유저 데이터를 처리하기 위해 Cassandra(NoSQL)를 도입.
    • Amazon: DynamoDB(아마존 자체 NoSQL DBMS)를 사용해 쇼핑 카트 데이터와 트랜잭션을 관리.
    • Netflix: 대규모 스트리밍 데이터와 사용자의 추천 시스템에 Cassandra를 활용.
  •  

 

3. In-Memory 데이터베이스

  • 데이터를 디스크가 아니라 메모리에 저장해 속도를 극대화.
  • 장점: 디스크 I/O 없이 메모리에 직접 저장하여 빠른 처리 속도를 제공
  • 단점: 데이터를 영구적으로 저장하려면 추가 조치 필요.
  • DBMS: Redis, Memcached.
  • 사용 방식 / 예시
    • 데이터를 메모리에 저장하여 초고속 데이터 처리를 필요로 하는 실시간 애플리케이션에서 사용.
    • 실시간 데이터 처리가 중요한 모든 시스템에서 활발히 사용.
    • Twitch: 실시간 채팅 메시지를 Redis로 처리.
    • LinkedIn: 실시간 알림 시스템에서 Redis를 활용.
    • 카카오톡: 채팅 메시지와 알림 처리에서 In-Memory DBMS 사용.

 

4. 그래프 데이터베이스

  • 특징: 노드와 엣지 구조로 데이터와 관계를 저장.
  • 장점: 복잡한 관계 데이터 처리에 강함, 경로 탐색과 네트워크 분석에 적합.
  • 단점: 대규모 데이터 처리 시 성능 저하 가능.
  • DBMS: Neo4j, Amazon Neptune 
  • 사용 방식 / 예시    
    • 소셜 네트워크나 추천 시스템처럼 복잡한 관계를 탐색해야 하는 서비스에서 매우 활발히 사용되고 있어. 데이터가 더 복잡해지고 관계의 중요성이 커짐에 따라 점점 더 많이 사용되고 있어!
    • Facebook: 사용자 간의 친구 관계와 추천 시스템에 Neo4j 사용.
    • LinkedIn: 직업 네트워크 및 인맥 관계 추적에 Apache Giraph 사용

 

5. 타임 시리즈 데이터베이스 (Time-Series Database)

  • 데이터를 시간에 따라 기록하고 관리.
  • 장점: 시간 기반 데이터의 빠른 조회와 분석.
  • 단점: 범용적인 데이터베이스로 사용하기 어려움.
  • DBMS: InfluxDB, TimescaleDB.
  • 사용 방식 / 예시
    • IoT 데이터, 로그 데이터, 센서 데이터와 같은 시간 기반 데이터를 다룰 때 사용
    • IoT, 금융, 주식 데이터 분석 등 특정 도메인에서 활발히 사용.
    • Tesla: 차량 센서 데이터를 저장하고 분석하기 위해 TimescaleDB를 사용
    • Amazon: CloudWatch Metrics에서 타임 시리즈 데이터 저장.

 

6. 분산 데이터베이스 (Distributed Database)

  • 데이터를 여러 노드에 분산 저장.
  • 장점: 시스템 장애에 강하고, 확장성 좋음.
  • 단점: 분산된 시스템에서 데이터의 일관성을 유지하는 데 추가적인 관리가 필요
  • DBMS: Cassandra, Google Spanner, Amazon Aurora
  • 사용 방식 / 사례 
    • 여러 지역에 분산된 데이터를 관리하는 글로벌 서비스에서 사용.
    • 글로벌 서비스나 대규모 데이터를 다루는 시스템에서 매우 활발히 사용.
  • 사용 서비스 예시 
    • Google: 내부적으로 Spanner를 사용해 분산 데이터베이스를 관리.
    • Uber: GeoSpatial 데이터 관리를 위해 Cassandra와 같은 분산 DBMS를 사용.
    • YouTube: 동영상 메타데이터를 분산 DBMS로 관리.

 

 

7. 계층형 데이터베이스 (Hierarchical Database)

  • 데이터를 트리 구조로 저장.
  • 부모-자식 관계로 데이터가 연결.
  • 장점: 데이터 관계가 명확할 때 빠르게 조회 가능, 정해진 구조 안에서 효율적으로 작동.
  • 단점: 복잡한 데이터 관계를 표현하기 어려움, 유연성이 낮고, 스키마 변경이 까다로움.
  • 사용 방식 / 예시  
    • IBM: IMS(Information Management System)를 기반으로 한 초기 은행 시스템.
    • 주로 과거 메인프레임 환경에서 사용되었으며, 현재는 거의 사용되지 않음.
    • 일부 구형 시스템에서 여전히 사용되긴 하지만, 점차 현대적인 DBMS로 대체되는 추세.

 

8. 네트워크형 데이터베이스 (Network Database)

  • 데이터를 그래프 구조(망형)로 저장.
  • 계층형과 달리 한 자식 노드가 여러 부모 노드와 연결 가능.
  • 장점: 복잡한 관계를 표현하기 유리, 유연한 데이터 구조.
  • 단점: 설계와 관리가 복잡함
  • 사용 방식 / 예시    
    • 초창기 은행 시스템, 정부 데이터 관리 시스템(CODASYL 기반).
    • 초기의 복잡한 관계형 데이터 처리 시스템에서 사용되었으나, 현재는 그래프 DBMS로 대체되는 추세임.
  •  

9. 객체 지향 데이터베이스 (Object-Oriented Database)

  • 데이터를 객체 형태로 저장.
  • 프로그래밍 언어의 객체 지향 개념(상속, 캡슐화, 다형성 등)을 그대로 데이터베이스에 적용해서 OOP와 잘 어울림
  • 장점: 객체 지향 언어와 잘 맞아서 프로그래밍과 연동이 간편, 복잡한 데이터 구조를 효율적으로 표현 가능.
  • 단점: RDB에 비해 복잡하고, 성능이 낮은 경우도 있음, 널리 사용되지 않아 커뮤니티와 지원이 부족한 편.
  • DBMS: ObjectDB, db4o.
  • 사용 방식 / 예시 
    • CAD/CAM, 멀티미디어 애플리케이션.
    • 삼성: CAD/CAM 설계 시스템에서 객체 지향 DBMS를 활용.
    • 점차 사용 빈도가 줄고 있으며, RDBMS와 NoSQL로 대체되는 경우가 많음.

 

DBMS 종류 정리 

  • 관계형 DBMS: MySQL, PostgreSQL, Oracle DB.
  • NoSQL DBMS: MongoDB, Redis, Cassandra.
  • In-Memory DBMS: Redis, Memcached.
  • 그래프 DBMS: Neo4j, Amazon Neptune.
  • 타임 시리즈 DBMS: InfluxDB, TimescaleDB.
  • 분산 DBMS: Cassandra, Google Spanner, Amazon Aurora
  • 클라우드 DBMS: Amazon RDS, Google Cloud SQL, Azure SQL 

RDBMS와 NoSQL은 현재 가장 널리 사용되며, 각각 구조화된 데이터와 비정형 데이터를 처리하는 데 강점이 있다.

In-Memory DBMS와 분산 DBMS는 실시간 처리와 대규모 서비스에서 필수적.

계층형과 네트워크형 DBMS는 현재 거의 사용되지 않지만, 특정 구형 시스템에서 존재.

클라우드 DBMS는 점점 더 대세가 되고 있어, 특히 신규 프로젝트에서는 자주 채택된다.