분산 데이터베이스

agnusdei·2025년 5월 26일

Database

목록 보기
56/76

분산데이터베이스 기술사 답안

문제

분산데이터베이스(Distributed Database)의 개념과 특징, 구조 및 핵심 기술에 대하여 설명하시오.

답안

1. 개념

분산데이터베이스(Distributed Database, DDB)는 지리적으로 분산된 여러 컴퓨터 시스템에 저장되고 관리되는 데이터베이스로, 네트워크를 통해 연결된 다수의 독립적인 데이터베이스들이 하나의 논리적 데이터베이스처럼 동작하는 시스템이다. DDBMS(Distributed Database Management System)에 의해 통합 관리되며, 사용자는 데이터의 물리적 위치를 인식하지 않고도 투명하게 접근할 수 있다.

2. 역할 및 목적

주요 역할

  • 데이터 통합 관리: 분산된 다양한 데이터를 논리적으로 통합하여 관리
  • 투명성 제공: 위치, 복제, 분할, 장애 등에 대한 투명성 보장
  • 성능 향상: 부하 분산을 통한 시스템 성능 최적화
  • 가용성 확보: 시스템 장애 시에도 서비스 연속성 보장

목적

  • 확장성(Scalability): 데이터양 증가와 사용자 증가에 대한 대응
  • 신뢰성(Reliability): 분산을 통한 단일 장애점(SPOF) 제거
  • 성능(Performance): 지역적 접근을 통한 응답시간 단축
  • 자율성(Autonomy): 각 지역 데이터베이스의 독립적 운영

3. 구조

3.1 아키텍처 구조

[사용자 인터페이스]
        ↓
[글로벌 스키마(Global Schema)]
        ↓
[분산 처리기(Distributed Processor)]
        ↓
[로컬 스키마 1] [로컬 스키마 2] ... [로컬 스키마 N]
        ↓                ↓                    ↓
[로컬 DB 1]    [로컬 DB 2]    ...    [로컬 DB N]

3.2 스키마 구조

  • 글로벌 스키마: 전체 분산데이터베이스의 논리적 뷰
  • 프래그멘테이션 스키마: 데이터 분할 정보 정의
  • 할당 스키마: 프래그먼트의 물리적 위치 정보
  • 로컬 스키마: 각 지역 데이터베이스의 물리적 구조

4. 구성요소

4.1 하드웨어 구성요소

  • 처리기(Processor): 각 사이트의 컴퓨터 시스템
  • 메모리(Memory): 주기억장치 및 보조기억장치
  • 통신 네트워크: LAN, WAN, 인터넷 등 네트워크 인프라

4.2 소프트웨어 구성요소

  • DDBMS: 분산데이터베이스 관리시스템
  • 로컬 DBMS: 각 사이트의 데이터베이스 관리시스템
  • 통신 소프트웨어: 네트워크 통신을 위한 미들웨어
  • 데이터 사전: 메타데이터 관리 시스템

4.3 데이터 구성요소

  • 프래그먼트(Fragment): 분할된 데이터 단위
  • 복제본(Replica): 동일 데이터의 복사본
  • 글로벌 디렉토리: 전체 데이터 위치 정보
  • 로컬 디렉토리: 지역 데이터 정보

5. 원리

5.1 데이터 분할 원리

  • 수평 분할(Horizontal Fragmentation): 튜플 단위로 분할
  • 수직 분할(Vertical Fragmentation): 속성 단위로 분할
  • 혼합 분할(Mixed Fragmentation): 수평과 수직의 결합

5.2 투명성 원리

  • 위치 투명성: 데이터 위치를 사용자가 인식하지 않음
  • 복제 투명성: 데이터 복제 여부를 사용자가 인식하지 않음
  • 분할 투명성: 데이터 분할 여부를 사용자가 인식하지 않음
  • 장애 투명성: 시스템 장애를 사용자가 인식하지 않음

5.3 분산 트랜잭션 원리

  • 2단계 커밋(Two Phase Commit, 2PC): 분산 트랜잭션 일관성 보장
  • 분산 동시성 제어: 타임스탬프, 분산 락킹 등
  • 분산 복구: 장애 발생 시 데이터 일관성 복구

6. 핵심 용어 정리

6.1 기본 용어

  • DDB (Distributed Database): 분산데이터베이스
  • DDBMS (Distributed Database Management System): 분산데이터베이스관리시스템
  • Site: 분산데이터베이스를 구성하는 각 노드
  • Node: 네트워크상의 개별 처리 단위

6.2 분할 관련 용어

  • Fragment: 분할된 데이터 조각
  • Horizontal Fragmentation: 수평 분할 (행 단위 분할)
  • Vertical Fragmentation: 수직 분할 (열 단위 분할)
  • Derived Fragmentation: 파생 분할

6.3 복제 관련 용어

  • Replication: 데이터 복제
  • Full Replication: 전체 복제
  • Partial Replication: 부분 복제
  • Synchronous Replication: 동기식 복제
  • Asynchronous Replication: 비동기식 복제

6.4 트랜잭션 관련 용어

  • 2PC (Two Phase Commit): 2단계 커밋 프로토콜
  • Coordinator: 트랜잭션 조정자
  • Participant: 트랜잭션 참여자
  • GTM (Global Transaction Manager): 글로벌 트랜잭션 관리자

7. 분산데이터베이스 vs 중앙집중형 데이터베이스 비교

구분분산데이터베이스중앙집중형 데이터베이스
구조다수의 분산된 노드단일 중앙 서버
성능부하 분산으로 높은 성능중앙 집중으로 병목 발생
가용성높음 (단일 장애점 없음)낮음 (중앙 서버 의존)
확장성수평 확장 용이수직 확장 제한적
일관성복잡한 일관성 관리단순한 일관성 관리
복잡성높음 (분산 처리 복잡)낮음 (단순 구조)
비용높음 (네트워크, 관리)상대적으로 낮음

8. 장단점

8.1 장점

  • 높은 가용성: 일부 노드 장애 시에도 서비스 지속
  • 우수한 성능: 지역적 접근으로 응답시간 단축
  • 확장성: 필요에 따른 노드 추가로 시스템 확장
  • 부하 분산: 트래픽을 여러 노드에 분산하여 처리
  • 지역 자율성: 각 지역의 독립적인 데이터베이스 운영
  • 장애 허용성: 단일 장애점 제거로 시스템 안정성 향상

8.2 단점

  • 복잡성 증가: 설계, 구현, 관리의 복잡성
  • 높은 비용: 네트워크, 하드웨어, 소프트웨어 비용
  • 일관성 문제: 분산 환경에서의 데이터 일관성 유지 어려움
  • 보안 취약성: 네트워크를 통한 데이터 전송 시 보안 위험
  • 동기화 오버헤드: 분산 노드 간 동기화로 인한 성능 저하
  • 관리 복잡성: 여러 사이트의 동시 관리 필요

9. 주요 분산 모델 비교

9.1 CAP 정리 관점

  • Consistency(일관성): 모든 노드가 동일한 데이터 보유
  • Availability(가용성): 시스템이 항상 응답 가능
  • Partition Tolerance(분할 허용성): 네트워크 분할에도 동작

9.2 ACID vs BASE

ACID (전통적 RDBMS)

  • Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성)

BASE (NoSQL/분산시스템)

  • Basically Available(기본적 가용성)
  • Soft State(유연한 상태)
  • Eventually Consistent(최종 일관성)

10. 어린이 버전 요약

분산데이터베이스는 마치 여러 도시에 있는 도서관들이 서로 연결되어 하나의 큰 도서관처럼 작동하는 것과 같습니다.

쉬운 예시로 설명하면:

  • 서울, 부산, 대구에 각각 도서관이 있다고 생각해보세요
  • 각 도서관에는 다른 책들이 있지만, 컴퓨터로 연결되어 있어요
  • 서울에서 부산 도서관의 책을 찾을 수 있고, 빌릴 수도 있어요
  • 만약 부산 도서관이 문을 닫아도, 서울과 대구 도서관은 계속 열려있어요

장점을 집으로 비유하면:

  • 방이 여러 개 있어서 한 방이 고장나도 다른 방을 쓸 수 있어요 (가용성)
  • 가족이 늘어나면 방을 더 만들 수 있어요 (확장성)
  • 각자 가까운 방을 쓰면 더 빨라요 (성능)

하지만 모든 방의 물건을 정리하고 관리하는 것은 더 복잡하고 어려워요!

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글