분산 데이터베이스
IT위키
더 많은 작업
- Distribute Database
- 물리적으로 분산되어 있는 데이터를 네트워크를 통해 논리적으로 동일한 시스템에서 하나의 데이터베이스처럼 이용하는 기술, 그 기술로 구현된 데이터베이스
| 장점 | 단점 |
|---|---|
|
|
- 분산데이터베이스는 6가지 투명성(Transparency)을 만족해야 한다.[1]
- 분할 투명성 : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
- 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 시스템 카탈로그에 유지되어야 함
- 지역사상 투명성 : 지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능
- 중복 투명성 : DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질
- 장애 투명성 : 구성요소(DBMS 등)의 장애에 무관한 트랜잭션의 원자성 유지
- 병행 투명성 : 다수 트랜잭션 동시 수행시 결과의 일관성 유지, Time Stamp, 2PL 구현
- 장애 투명성은 사이트나 통신선에 장애가 나도 트랜잭션이 전부 반영되거나 전부 취소되도록(원자성) 지키는 성질이다. 2단계 커밋이 이를 구현한다
- 여러 트랜잭션이 동시에 수행되어도 결과의 일관성이 유지되는 성질은 병행 투명성이다. 둘을 바꿔 부르면 틀린다
- 위치 투명성은 데이터의 저장 위치를 몰라도 논리적 이름만으로 접근하는 성질, 중복 투명성은 같은 데이터가 여러 사이트에 복제되어 있어도 사용자가 하나처럼 쓰는 성질이다
분할(단편화) 투명성을 제공하려면 릴레이션 R 을 단편 R1, R2, …, Rn 으로 나눌 때 다음 세 조건을 지켜야 한다.[2][3]
- 완전성(completeness) - R 의 모든 데이터 항목이 적어도 한 단편에 들어 있어야 한다. 빠진 행이나 열이 있으면 안 된다
- 재구성(reconstruction) - 단편들을 관계 연산으로 합치면 R 이 그대로 되살아나야 한다. 수평 단편은 합집합, 수직 단편은 키로 조인해 재구성한다
- 분리성(disjointness) - 한 데이터 항목이 두 단편에 함께 들어가지 않아야 한다. 수직 단편에서 재구성을 위해 키를 단편마다 두는 것은 예외이다
엘마스리(Elmasri)와 나바테(Navathe)는 투명성을 구현 세부를 최종 사용자에게 감추는 것으로 보고, 데이터 조직(분산·네트워크) 투명성, 위치 투명성, 이름부여 투명성, 중복 투명성, 단편화 투명성, 설계 투명성, 실행 투명성으로 나눈다.[4]
| 투명성 | 사용자에게 감추는 것 |
|---|---|
| 분산(네트워크) 투명성 | 네트워크의 세부와 데이터가 저장된 장소 |
| 위치 투명성 | 명령이 데이터의 위치와, 명령을 입력한 시스템의 위치에 무관하다 |
| 이름부여(명명) 투명성 | 객체에 이름을 한 번 붙이면 위치 정보를 덧붙이지 않고 그 이름만으로 모호함 없이 접근할 수 있다 |
| 중복 투명성 | 가용성·성능·신뢰도를 위해 여러 사이트에 둔 사본의 존재 |
| 단편화 투명성 | 릴레이션이 수평·수직으로 나뉘어 있다는 사실 |
| 설계 투명성 | 분산 데이터베이스가 어떻게 설계(단편화·배치)되었는지 |
| 실행 투명성 | 트랜잭션이 어느 사이트에서 실행되는지 |
- "데이터베이스가 어떻게 설계되었는지와 트랜잭션이 어느 사이트에서 실행되는지를 감춘다"는 설명은 설계 투명성과 실행 투명성이다. 이름부여 투명성의 설명이 아니다
- 본사 IDC: 자재 DB, 파트너 DB, 부서 DB
- 지사 IDC: 생산 DB, 판매 DB, 직원 DB
- 본사 IDC: 최근 7일을 제외한 전체 이력 데이터베이스
- 지사 IDC: 최근 7일 데이터베이스
- 본사 IDC: 제품 번호, 생산 원가
- 지사 IDC: 제품 번호, 재고량, 판매가
- 부분 복제: 본사의 제품 DB중 지사에서 판매하는 제품만 복제하여 지사 DB로 활용
- 광역 복제: 지사에 본사의 제품 DB를 그대로 복사하여두고 사용
- 분석 요약: 지사1, 지사2의 실적 DB를 분석한 결과를 본사 DB에 저장
- 통합 요약: 지사1, 지사2의 실적 DB를 통합한 DB를 본사에 저장
- ↑ DB가이드넷
- ↑ M. Tamer Özsu, Patrick Valduriez, 「Distributed DBMS Design: Fragmentation」 강의 슬라이드(Purdue University CS542), https://www.cs.purdue.edu/homes/bb/cs542-20Spr/slides/lecture/5_DDBDesignFragmentation.pdf, 확인일: 2026-11-04.
- ↑ 「Fragmentation」 강의 슬라이드, Universität Freiburg Web Science, https://websci.informatik.uni-freiburg.de/teaching/ws201213/infosys/slides/m2_l2_fragmentation.pdf, 확인일: 2026-11-04.
- ↑ Ramez Elmasri, Shamkant B. Navathe, 「Chapter 23: Distributed Database Concepts」 강의 슬라이드, Pearson, 2016(Purdue University CS448 게시본), https://www.cs.purdue.edu/homes/bb/cs448_Fall2017/lpdf/Chapter23.pdf, 확인일: 2026-11-04.