티스토리 뷰

1. 분산 데이터베이스의 개요

 

▷ 분산 데이터베이스의 정의 

    (1) 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스

    (2) 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임.

        물리적 Site 분산, 논리적으로 사용자 통합 · 공유

 

 

분산 데이터베이스는,

데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜

사용성/성능 등을 극대화 시킨 데이터베이스이다.

 

 

 

 

 

 

 


2. 분산 데이터베이스의 투명성 ( Transparency )

 

분산 데이터베이스가 되려면 6가지 투명성을 만족해야 한다.

 

 

① 분할 투명성 (단편화)

② 위치 투명성

③ 지역사상 투명성

④ 중복 투명성

⑤ 장애 투명성

⑥ 병행 투명성

 

 

 

분산 데이터베이스 투명성 내용
분할 투명성 (단편화) 하나의 논리적 Relation 이 여러 단편으로 분할되어
각 단편의 사본이 여러 site 에 저장
위치 투명성 사용하려는 데이터 저장 명소 명시 불필요.
위치 정보가 System Catelog 에 유지되어야 함
지역사상 투명성 지역 DBMS 와 물리적 DB 사이의 Mapping 보장.
지역시스템 이름과 무관한 이름 사용 가능
중복 투명성 DB 객체가 여러 site 에 중복 되어 있는지 알 필요가 없는 성질
장애 투명성 구성요소 (DBMS, Computer) 의 장애에 무관한 Transaction 의 원자성 유지
병행 투명성 다수 Transaction 동시 수행시 결과의 일관성 유지,
Time Stamp, 분산 2 단계 Locking 을 이용 구현

 

 

 

최근에는 분산 데이터베이스의 투명성을 모두 만족하여서 분산 환경의 데이터베이스를 구축하기 보다는,

통합하여 데이터베이스를 구축하는 사례가 많다.

 

그렇지만,

분산 환경의 데이터베이스를 업무적/지역적인 특징에 따라 적절하게 활용하면 다양한 장점을 제공한다.

대량 데이터 처리의 지역적/글로벌 처리 등에서 분산 데이터베이스가 유용하게 활용된다.

 

 

 

 

 

 

 


3. 분산 데이터베이스의 적용 방법 및 장단점

 

① 분산 데이터베이스 적용 방법

 

▷ 분산 환경의 데이터베이스를 성능이 우수하게 사용하는 방법

    : 업무의 흐름을 보고 업무 구성에 따른 아키텍처 특징에 따라 데이터베이스를 구성하는 것.

 

∴ 데이터베이스 분산설계 측면보다는 데이터베이스 구조설계 (아키텍처) 

 

 

 

 

 

② 분산 데이터베이스 장단점

 

장점 단점
지역 자치성, 점증적 시스템 용량 확장 소프트웨어 개발 비용
신뢰성과 가용성 처리 비용의 증대
효용성과 융통성 오류의 잠재성 증대
빠른 응답 속도와 통신비용 절감 설계, 관리의 복잡성과 비용
데이터의 가용성과 신뢰성 증가 불규칙한 응답 속도
시스템 규모의 적절한 조절 통제의 어려움
각 지역 사용자의 요구 수용 증대 데이터 무결성에 대한 위협

 

 

 

 

 

 


4. 분산 데이터베이스의 활용 방향성

 

분산설계 방향성

 

 

분산 데이터베이스는 업무적인 기능이 다양해지고, 데이터 양이 기하급수적으로 증가하는 최근 데이터베이스 환경에서 업무적인 특징에 따라 활용 적용하는 기술이다.

 

 

 

 

 

 

 


5. 데이터베이스 분산 구성의 가치

 

분산 데이터베이스 핵심 가치

 

 

▷ 분산 환경의 데이터 구성의 가장 핵심적인 가치

    : 통합된 데이터베이스에서 제공할 수 없는 빠른 성능을 제공한다는 점

 

▷ 분산 환경의 데이터베이스 구축 목적

원거리 또는 다른 서버에 접속하여 처리하므로 인해 발생되는 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인

분산된 데이터베이스 환경을 구축하므로 빠른 성능을 제공한다.

 

 

 

 

 

 


 

6. 분산 데이터베이스의 적용 기법

 

※ 데이터베이스 분산 종류

① 테이블 위치 분산

② 테이블 분할 분산 ★

③ 테이블 복제 분산

④ 테이블 요약 분산

 

테이블의 복제 / 분할 분산의 방법이 성능이 저하되는 많은 데이터베이스에서 가장 유용하게 적용할 수 있는 기술적인 방법이다.

가장 많이 사용한다.

 

 

 

 

▷ 분산 환경으로 데이터베이스를 설계하는 방법

: 통합 데이터 모델링 후 각 테이블별로 업무적인 특징에 따라 지역 / 서버별로 테이블을 분산 배치나 복제 배치하는 형태로 설계한다.

 

 

 

 

 

★ 정리 표

데이터베이스 분산 종류 상세
테이블 위치 분산 X
테이블 분할 분산 수평분할 수직분할
테이블 복제 분산 부분복제 광역복제
테이블 요약 분산 분석요약 통합요약

 

 

 

 


① 테이블 위치 분산

 

테이블 위치 분산은 테이블의 구조는 변하지 않는다.

테이블이 다른 데이터베이스에 중복되어 생성되지도 않는다.

 

테이블별 위치 분산

 

'자재품목'은 본사에서 구입/관리 , 각 지사별로 '자재품목'을 이용하여 제품을 생산한다고 하면 데이터베이스를 '본사'와 '지사' 단위로 분산시킬 수 있다.

 

분산 방법은 설계된 테이블 각각이 지역별로 분산되어 생성되는 경우이다.

 

 

테이블별 위치 분산

 

각각의 테이블마다 위치가 다르게 지정되어야 한다면 각각 테이블마다 위치를 표기하여 테이블을 생성한다.

 

테이블별 위치 분산은 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우에 이용한다.

테이블의 위치가 위치별로 다르므로 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서가 필요하다.

 

 

 

 

 


② 테이블 분할 분산 (Fragmentation) ★

 

단순히 위치만 다른 곳에 두는 것이 아니라 각각의 테이블을 쪼개어 분산하는 방법이다.

 

테이블을 분할 분산하는 방법은 테이블을 나누는 기준에 따라 두 가지로 구분 된다.

 

(1) 수평분할 (Horizontal Fragmentation) : 테이블을 Row 단위로 분리

(2) 수직분할 (Vertical Fragmentation) : 테이블을 Column 단위로 분할

 

 

 

 


< 수평분할 >

테이블 분할 분산 - 수평분할

 

[ 특징 ]

지사(Node)에 따라 테이블을 특정 칼럼의 값을 기준으로 Row를 분리한다.

Column 은 분리되지 않는다.

모든 테이터가 각 지사별로 분리되어 있는 형태를 가지고 있다.

각 지사에 있는 데이터와 다른 지사에 있는 데이터와 항상 배타적으로 존재하며 한군데 집합시켜도 Primary Key 에 의해 중복이 발생하지 않는다.

 

 

[ 이용 ]

각 지사(Node)별로 사용하는 Row 가 다를 때 이용한다.

데이터를 수정할 때, 타 지사에 있는 데이터를 원칙적으로 수정하지 않고, 자신의 데이터에 대해서 수정한다.

각 지사의 테이블에 대해 통합처리를 하면 JOIN 이 발생하여 성능 저하가 예상되므로,

통합처리 프로세스가 많은지 검토 이후 많지 않을 경우에 수평분할을 한다.

 

 

[ 예시 ]

지사별로  '고객', '생산제품', '협력회사', '사원', '부서' 테이블이 '지사1' 과 '지사2' 에서 일의 시작과 끝이 항상 다르게 발생하면 각 테이블은 지사별로 수평분할 하여 표와 같이 생성된다.

테이블 수평분할 예시

 

 

 

 

 


< 수직분할 >

테이블 분할 분산 - 수직분할

 

[ 특징 ]

지사(Node)에 따라 테이블 칼럼을 기준으로 Column을 분리한다.

Row 단위로는 분리되지 않는다.

모든 테이터가 각 지사별로 분리되어 있는 형태를 가지고 있다.

칼럼을 기준으로 분할하여서, 각각의 테이블에는 동일한 Primary Key 구조와 값을 가지고 있어야 한다.

지사별로 쪼개어진 테이블들을 조합하면, Primary Key 가 동일한 데이터의 조합이 가능해야 하며 하나의 완전한 테이블이 되어야 한다.

데이터를 한군데 집합시켜도 동일한 Primary Key 는 하나로 표현하면 되므로 데이터 중복이 발생하지 않는다.

 

 

[ 예시 ]

제품의 '재고량' 은 각 지사에서, '단가' 는 본사에서 관리하면,

본사 테이블에는 '제품번호', '단가' 가 존재하고 , 지사에는 '제품번호', '재고량' 이 존재한다.

테이블 수직분할 모델링

테이블의 전체 칼럼 데이터를 보기 위해 각 지사별로 흩어져 있는 테이블들을 JOIN 하여 가져와야 하므로

가능하면 통합하여 처리하는 프로세스가 많은 경우 이용하지 않도록 한다.

 

 

 

 

 

 


③ 테이블 복제 분산 (Replication)

 

테이블 복제 분산은 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형이다.

 

 

[ 부분복제 ( Segment Replication )  /  광역복제 ( Broadcast Replication ) ]

◎ 부분복제 : 마스터 데이터베이스에서 테이블의 일부의 내용만 다른 지역이나 서버에 위치시킨다.

◎ 광역복제 : 마스터 데이터베이스의 테이블의 내용을 각 지역이나 서버에 존재시킨다.

 

 

 

 

 


< 부분복제 (Segment Replication) >

 

테이블 복제 분산 - 부분복제

 

통합된 테이블을 한군데(본사) 에서 가지고, 각 지사에 해당된 Row를 지사에서 가진다.

→ 본사의 데이터는 지사 데이터의 합이다.

 

각 지사에서 데이터 처리가 용이하고, 전체 데이터에 대한 통합 처리도 통합 테이블을 이용하므로 여러 테이블에 JOIN 이 발생하지 않는 빠른 작업 수행이 가능하다.

 

수평분할 분산과 마찬가지로 지사간에는 데이터의 중복이 발생하지 않으나, 본사와 지사간에 데이터의 중복이 항상 발생한다.

 

지사에 데이터가 먼저 발생하고 본사에 데이터는 지사에 데이터를 이용하여 통합하여 발생된다.

 

 

 

테이블 복제 분산 - 부분복제

 

부분복제는 실제 프로젝트에서 많이 사용하는 데이터베이스 분산기법이다.

각 지사별로 업무 수행이 용이하고, 본사의 데이터를 이용하여 다양한 업무형태로 이용 가능하다.

 

다른 지역간의 '데이터를 복제'하는데 많은 시간이 소요되고, 데이터베이스와 서버에 부하가 발생하므로

실시간 처리에 의해 복사하는 것보다는 야간에 배치 작업에 의해 수행되는 경우가 많다.

 

'본사와 지사' 양쪽 모두 데이터를 수정하여 전송하는 경우,

데이터의 정합성을 일치시키는 것이 어렵기 때문에 한쪽에서 데이터의 수정이 발생하여 본사로 복제를 하도록 한다.

 

 

 

 

 

 

 

 


< 광역복제 (Broadcast Replication) >

 

테이블 복제 분산 - 광역복제

" 본사 = 지사 = 전체 = 동일한 정보 "

통합된 테이블을 한군데(본사)에 가지고 있고 각 지사에도 본사와 동일한 데이터를 모두 가지고 있다.

지사에 존재하는 데이터는 반드시 본사에 존재한다.

모든 지사의 데이터량과 본사의 데이터량이 다 동일하다.

본사, 지사 모두 데이터 처리에 특별한 제약을 받지는 않는다.

 

 

 

테이블 복제 분산 - 광역복제

 

본사에서 코드테이블에 데이터에 대해 입력, 수정, 삭제가 발생한다.

각 지사에서 코드데이터를 이용하는 프로세스가 발생한다.

즉, 본사에서는 데이터를 관리하고 지사에서는 이 데이터를 읽어 업무프로세스를 발생시키는 것이다.

 

 

광역복제 역시 실제 프로젝트에서 많이 사용하는 데이터베이스 분산기법이다.

 

'데이터를 복제'하는데 많은 시간이 소요되고, 데이터베이스와 서버에 부하가 발생하므로

실시간 처리에 의해 복사하는 것보다는 배치에 의해 수행되는 경우가 많다.     ( 부분복제와 같음 )

 

 

 

[ 부분복제 VS 광역복제 ]

 

부분복제의 경우, 지사에서 데이터에 대한 입력, 수정, 삭제 발생하여 본사에서 이용하는 방식이다.

반면 광역복제의 경우, 본사에서 데이터가 입력, 수정, 삭제되어 지사에서 이용하는 방식이다.

 

 

 

 

 

 

 

 


④ 테이블 요약 분산 (Summarization)

 

지역/서버 간에 데이터가 비슷하지만, 서로 다른 유형으로 존재하는 경우에 있다.

 

동일한 테이블 구조를 가지며 분산되어 있는 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식분석요약과,

분산되어 있는 다른 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식통합요약이 있다.

 

 

 

[ 분석요약 (Rollup Replication)  /  통합요약 (Consolidation Replication) ]

◎ 분석요약 : 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약 정보를 산출하는 분산 방법.

◎ 통합요약 : 각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법

 

 

 

 


< 분석요약 (Rollup Replication) >

 

테이블 요약 분산 - 분석요약

 

분선요약은 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약 정보를 산출하는 분산 방법이다.

 

테이블의 모든 Column 과 Row 가 지사에도 동일하게 존재하지만,

각 지사에는 동일한 내용에 대해 지사별로 요약되어 있는 정보를 가지고 있고,

본사에는 각 지사의 요약정보를 통합하여 재산출하여 전체에 대한 요약정보를 가진다.

 

 

∴ 지사 요약 → ( 통합 ) → 전체 요약

 

 

테이블 요약 분산 - 분석 요약

 

제품별 판매실적이라는 테이블에서, 각 지사별로 판매실적이 관리된다. 

'지사1' 과 '지사2' 가 동일한 제품을 취급하므로, 본사에서 '판매실적'을 집계할 경우 통합된 '판매실적'을 관리한다.

 

 

 

각종 통계데이터를 산정하면, 모든 지사의 데이터를 이용하여 처리하면 성능이 지연되고 각 지사 서버에 부하를 주기 때문에 업무에 장애가 발생한다.

통합 통계데이터에 대한 정보제공에 용이한 분산 방법이다.

본사에 분석 요약된 테이블을 생성하고, 데이터는 일반 업무가 종료되는 야간에 수행하여 생성한다.

 

 

 

 

 

 

 


< 통합요약 (Consolidation Replication) >

 

테이블 요약 분산 - 통합 요약

 

각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법이다.

 

 

 

테이블 요약분산 - 통합 요약

 

테이블에 있는 모든 Column 과 Row 가 지사에 동일하게 존재하지만,

각 지사는 다른 요약정보를 가지고 있고 본사에는 각 지사의 요약정보를 통합하여 전체에 대한 요약정보를 가진다.

 

∴ 지사마다 다른요약 → ( 통합 ) → 전체 요약

 

 

통합요약은 지사에서 산출한 요약정보를 한군데 취합하여 보여주는 형태이다.

각 지사별로 데이터를 비교하기 위해 이용된다.

 

 

통합 통계데이터에 대한 정보제공에 용이한 분산 방법이다.

본사에 분석 요약된 테이블을 생성하고, 데이터는 일반 업무가 종료되는 야간에 수행하여 생성한다.     ( 분석요약과 같음 )

 

 

 

 

 

 

 

 


7. 분산 데이터베이스를 적용하여 성능이 향상된 사례

 

복제 분산의 원리를 간단하게 응용하면 많은 업무적인 특성이 있는 곳에서 그 성능을 향상시켜 설계할 수 있다.

 

 

업무 특성에 따른 분산환경 구성

 

▷ 각 서버에 독립적으로 테이블이 있을 때 / 트랜잭션과 복제분산을 통해 테이블의 정보가 양쪽에 있을 때

 

 

 

효과적인 데이터베이스 분산 설계

(1) 성능이 중요한 사이트에 적용한다.

(2) 공통코드, 기준정보, 마스터 데이터 등에 대해 분산환경을 구성하면 성능이 좋아진다.

(3) 실시간 동기화가 요구되지 않을 때 좋다. 거의 실시간의 업무적인 특징을 가지고 있을 때 분산환경을 구성할 수 있다.

(4) 특정 서버에 부하가 집중될 때 부하를 분산할 때 좋다.

(5) 백업 사이트를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있다.

 

 

 

 

 

 

 

 


 

댓글