제13장 분산 Database - D istributed Database -
2009. 08. 10
경원대학교 IT대학 컴퓨터 소프트웨어학과
13.1 개요
13.2 분산 데이터베이스 구조 13.3 분산 데이터베이스 트랜잭션
익힘문제
3
13.1 개요
분산 DB: 분산: 여러 개체들을 흩어놓는 것 DB: 여러 개체들을 모으는 것
자료를 지역에 흩어놓고 연결하여 하나처럼 사용.
가상적인 Database.
분산: 여러 개체들을 하나처럼 사용하는 기술
[표 13.1)] 분산 데이터베이스의 종류
종류 내 역
연 방
DB 기존의 DB 시스템들을 통합하여 사용하는 DB 분 산 하나의 DB를 여러 시스템에 배치하여 사용하는
4
13.1 개요
병렬처리 Database
하나의 질의를 여러 시스템들이 나누어 처리하는 Database 병렬처리 시스템
처리장치와 입출력장치들을 병렬로 연결하여 자료를 여러 장치에서 동시에 나누어 처리하는 시스템.
[표 13.2) ] 병렬처리 시스템 분류
분 류 기억장치 접근 속
도 실 례
밀 결합 고속 슈퍼컴퓨터 이완 결합 저속 분산 컴퓨터
5
13.1 개요
병렬처리 Database 구조 1) 무공유
2) 공유 메모리 3) 공유 디스크
6
13.1 개요
[표 13.3) ] 병렬처리 데이터베이스의 구조
구 조 내 역 문제점
무 공유 독립된 시스템들을 연결 디스크 공유 곤란 메 모 리 공
유 공유 메모리를 중심 메모리 사용 시 간 섭
디 스 크 공 유
전용 메모리의 프로세서 들이 디스크 공유
디스크 사용 시 간 섭
7
13.1 개요
분산 데이터베이스의 부수기능
부수 기능 내 역
분산 트랜잭션 관
리 전역 트랜잭션과 지역 트랜잭션 관리 메타 자료 관리 분산 DBMS의 모든 메타 정보 유지
(분산, 단편, 할당, 중복 정보 등)
분산 질의처리 비용 감소를 위하여 세미 조인 사용 등 중복 자료관리 사본을 식별하고, 일관성 유지
분산 DB 회복 고장 시 데이터베이스를 회복하는 기 능
보안 불법 침입으로부터 데이터베이스 보호
8
13.1 개요
분산 데이터베이스의 장점
장 점 내 역
성능 작업을 나누어 처리하므로 응답 시간 감소 가 용
성 여러 사이트에 저장되어 있으므로 가용성 증가 지 역
성 접근성과 통신 시간 단축 효과 확 장
성 네트워크에 추가하는 것으로 쉽게 확장 투 명
성 논리적으로 하나의 시스템처럼 쉽게 자료 처리
9
13.1 개요
분산 데이터베이스의 단점
단 점 내 역
복잡성 여러 시스템을 처리해야 하므로 내부 구조 복잡
오류 기능이 복잡하기 때문에 오류 발생 가능성 증대 처리 부
담 통신량 증대와 협동처리로 처리 부담 증가 비용 복잡성과 처리 부담 증가로 인하여 비용 증가
10
13.2 분산 Database 구조
11
13.2 분산 Database 구조
분산 데이터베이스의 물리 구조
구성요소 내 역
지역 DBMS 지역 사이트의 데이터베이스를 관리 지역 DB 지역 사이트에 저장된 자료
(전역 데이터베이스 구성 요소)
통신망 지역 사이트들을 연결하는 통신망
분산 DBMS 전역 트랜잭션과 전역 데이터베이스 관리
전 역 카 탈 로
그 전역 데이터베이스에 대한 메타-자료
12
13.2 분산 Database 구조
[표 13.8) ] 분산 데이터베이스의 특성
특성 내 역
자치성 지역 DB들이 독립적으로 운영할 수 있는 기능
이질성 다양한 DB와 소프트웨어들로 구성될 수 있는 기 능
분산성 DB가 여러 사이트에 설치되어 운영되는 기능
13
13.2 분산 Database 구조
분산 데이터베이스의 3요소
분
산 성
자치성
이질성
분산이질 다중DB 분산이질
연방DB
통합동질 복수DB
분산동질 연방DB
14
13.2 분산 Database 구조
[표 13.9) ] 분산 데이터베이스의 분류
종
류 분류 내역 및 실제 DBMS
동 질 DB
전역 사 용 자 만
자치 자치성이 높은 동질 DBMS. ex. R* 비 자
치 자치성이 낮은 동질 DBMS. ex. SDD-1
이 질 DB
Gateway 이질 DB 시스템들을 통신 인터페이스 방식으로 연결
하나의 System 으로 통합
Full DBMS
모든 DBMS 기능을 지원하는 이질 DBMS. ex.
Porel
부분적인 DBMS 기능
연방 DB
전역과 지역 사용자를 허용하는 DBMS.
ex. Mermaid 비 연 방
DB
전역 사용자만 허용하는 이질 DBMS.
ex. Unibase
15
13.2 분산 Database 구조
분산 데이터베이스 분류
분산 데이터베이스 시스템
동질 Database 이질 Database
자치 Database 비자치 Database 시스템 통합 Gateway 방식
Full DBMS 부분 DBMS
비연방 Database 연방 Database
16
13.2 분산 Database 구조
분산 데이터베이스 스키마 구 조
F2
F3
F4
F5 F1 단편
지역 사이트
할당 스키마 단편 스키마
가상 DB
전역 스키마
지역 스키마 Site
A
Site B
Site C F1
F2
F3
F4
F5
F1
F2
F3 F2
F3
F4
F5
17
13.2 분산 Database 구조
[표 13.10) ] 분산 데이터베이스의 논리 구조
구성 요소 내 역
전역 스키마 모든 지역 스키마의 합집합
단편 스키마 전역 DB를 구성하고 있는 단편들을 정의 할당 스키마 어느 단편이 어느 지역에 할당되었는지를 정
의
지역 스키마 지역에 어느 단편들이 저장되었는지를 정의
18
13.2 분산 Database 구조
단편화 설계
서울 지역
대구 지역
제주 지역
직원 데이터베이스 인사 사항 영업 사항
수평 단편화 수직 단편화
인사부 영업부
서울 본사
울산 공장 인사 사항 영업 사항
영업부 인사부
혼합 단편화
19
13.3 분산 데이터베이스 트랜잭션
분산 트랜잭션
전역 트랜잭션과 지역 트랜잭션
20
13.3 분산 데이터베이스 트랜잭션
분산 트랜잭션
트랜잭션 관리자: 지역 Database 관리 트랜잭션 조정자:
지역 사이트에 기동된 모든 트랜잭션 관리.
트랜잭션 관리자에게 위탁하고 결과를 종합
21
13.3 분산 데이터베이스 트랜잭션
중첩 트랜잭션: 루트 또는 자식 트랜잭션이 취소되면?
전역 트랜잭션 : yymmdd부터 yymmdd까지 부산에서 출발하여 홍콩에 서 차량으로 여행하는 스케줄을 세우시오.
지역 트랜잭션: 1) 항공 스케줄, 2) 호텔 스케줄, 3) 자동차 임대 스케줄
22
13.3.2 분산 질의처리
전역 질의
select balance from Deposit
지역 질의
select balance
from Deposit
Site i분산질의를 수행하는 세 개 사이트 select balance
from Deposit Site1
select balance from Deposit Site2
select balance from Deposit Site3
23
13.3.2 분산 질의처리
자료전송 비용
Query: 사이트 3에서 “영업사원의 이름별로 고객이름을 찾아 라”
전송비용을 계산하시오.
SQL 문장
select S.name C.name
from customer as C, sawon as S where C.eid = S.eid
order by S.name
CID name address tel Site 1
CUSTOMER
EID fields amount
Site 2 SAWON
EID 고객 수: 10,000명
레코드 길이: 200바이트 고객번호 길이: 10바이트
고객 이름 길이: 30바이트
사원 수: 1,000명 영업사원수: 100명 레코드 길이: 100바이트 사원번호 길이: 10바이트
name
...
...
24
13.3.2 분산 질의처리
자료전송 비용
Query: 사이트 3에서 “영업사원 ‘홍길동’이 담당하는 고객이 름을 찾아라”.
select C.name
from customer as C, sawon as S
where C.eid = S.eid and S.name = '홍길동‘
25
13.3.2 분산 질의처리
semi-join
사이트 간의 자료 전송량을 줄이기 위하여 조인에 꼭 필요한 자료만을 이동시키는 기술.
R
A=BS :
SiteR에서 R과 S의 중복되는 속성을 프로젝션한 결과를 SiteS로 보내서 S와 조인을 수행하고, 그 결과에서 필요한 자료만(셀렉트 하고 프로젝션 한 결과) 다시 SR로 가져와 서 R과 조인하는 연산.
26
13.3.2 분산 질의처리
semi-join
1) SiteR에서 EID 공통속성만으로 테이블 temp1 생성.
temp1 = πEID(C)
2) temp1 테이블을 사이트 SiteS로 전송.
3) SiteS에서 temp1과 SAWON을 조인, (EID, name) 속성으로 temp2 생성. temp2 = π EID, name (SAWON EID temp1))
4) temp2를 SiteR 로 전송.
5) SiteR에서 temp2와 CUSTOMER 조인, 필요한 속성들만 출력하여 temp3 테이블 생성.
temp3 = π S.name, C.name (C EID temp2)) 6) temp3 테이블을 사이트 3으로 전송.
27
13.3.2 분산 자료 갱신
여러 사이트에 저장된 사본들을 일관성 있게 갱신하는 기술 동기 중복
모든 사이트의 사본들을 함께 록을 걸고 갱신
사본 2
사본 3
사본 1
사본 4
원본
록 요청 록 요청
록 요청
록 요청
갱신 지시
갱신 지시 갱신 지시
갱신 지시 완료
보고
완료 보고
완료 보고
전역 완료 Site 1
Site 2
Site 3
Site 5
Site 0 완료 보고
28
13.3.2 분산 자료 갱신
비동기 중복
사본들을 원본과 복제본으로 구분하고,
원본 위주로 갱신하고 갱신 결과를 전파하는 방식
사본 2
사본 3
사본 1
사본 4
원본 록 요청
갱신 갱신
지시
갱신 지시
갱신 지시 갱신
지시
갱신 완료 보고
갱신
Site 1 Site 2
Site 3
Site 5
Site 0 갱신
갱신 갱신
29
13 익힘 문제
1. 전문이란? 전문검색이란?
2. 정보검색이란?
3. 자료검색과 정보검색의 차이점을 기술하시오.
4. 역파일?
5. 분산 데이터베이스의 분류 기준과 용도를 설명하시오.
6. 분산 스키마의 구조를 설명하시오.
7. 분산 트랜잭션과 중첩 트랜잭션의 관계를 설명하시오.
8. 세미 조인의 성능 효과를 설명하고, 가장 적합한 응용분야를 설명하시 오.
9. 동기 중복과 비동기 중복의 성능을 비교하시오.
10. 병렬처리 데이터베이스의 구조를 설명하시오.
11. 분산 데이터베이스의 장단점을 설명하시오.