SQLP

2장 6절 분산 데이터베이스와 성능

Any DB 2013. 8. 10. 03:55

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

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

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

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

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

     등을 극대화 시킨 데이터베이스라고 정의할 수 있따.

 

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

  1) 분할 투명성(단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장

  2) 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 System Catalog에 유지되어야 함

  3) 지역사상 투명성 : 지역DBMS와 물리적 DB사이의 Mapping보장. 각 지역시스템 이름과 무관한 이름사용 가능

  4) 중복 투명성 : DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질

  5) 장애 투명성 : 구성요소(DBMS, Computer)의 장애에 무관한 Transaction의 원자성 유지

  6) 병행 투명성 : 다수 Transaction 동시 수행시 결과의 일관성 유지. Time Stamp, 분산 2단계 Locking을 이용 구현

 

 

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

가. 분산 데이터베이스 적용방법

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

   - 업무의 특징에 따라 데이터베이스 분산구조를 선택적으로 설계하는 능력이 필요

 

나. 분산 데이터베이스 장단점

 장점

단점 

- 지역 자치성, 점중적 시스템 용량 확장

- 신뢰성과 가용성

- 효용성과 융통성

- 빠른 응답 속도와 통신비용 절감

- 데이터의 가용성과 신뢰성 증가

- 시스템 규모의 적절한 조절

- 각 지역 사용자의 요구 수용 증대 

- 소프트웨어 개발 비용

- 오류의 잠재성 증대

- 처리 비용의 증대

- 설계, 관리의 복잡성과 비용

- 불규칙한 응답 속도

- 통제의 어려움

- 데이터 무결성에 대한 위협 

 

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

  - 업무적인 특징에 따라 분산 데이터베이스를 활용하는 기술이 필요함

 

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

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

   - 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 해결

 

 

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

가. 테이블 위치 분산

  - 테이블의 구조는 변하지 않는다.

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

  - 설계된 테이블의 위치를 각각 다르게 위치시키는 것이다.

 

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

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

 

나. 테이블 분할(Fragmentation) 분산

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

 

  1) 수평분할 (Horizontal Fragmentation)

   - 특정 컬럼의 값을 기준으로 로우(Row)를 분리

   - 컬럼은 분리되지 않으며, 데이터를 한군데 집합시켜 놓아도 PK에 의해 중복발생이 일어나지 않음.

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

   - 각 지사에 존재하는 테이블에 대해 통합처리하는 경우 JOIN이 발생하여 성능저하가 예상되므로, 통합처리 프로세스가

     많지 않은 경우에만 이용

 

 

  2) 수직분할 (Vertical Fragmentation)

   - 특정 컬럼값을 기준으로 컬럼을 분리한다.

   - 로우(Row)단위로는 분리되지 않는다.

   - 컬럼을 기준으로 분할하였으므로 각각의 테이블에는 동일한 PK구조와 값을 가지고 있어야 한다.

   - 실제 프로젝트에는 이런 환경을 구성하는 사례는 드물다.

 

 

 

다. 테이블 복제(Replication) 분산

   - 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형

 

  1) 부분복제 (Segment Replication)

   - 본사의 데이터는 지사데이터의 합이 되는것.

   - 각 지사에서 데이터 처리가 용이하다.

   - 전체 데이터에 대한 통합처리도 본사에 있는 통합 테이블을 이용하게 되므로 여러 테이블에 조인이 발생하지 않는 빠

    른 작업수행이 가능해짐

  

 

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

   - 각 지사별로 업무수행이 용이하고 본사에 있는 데이터를 이용하여 보고서를 출력하거나 통계를 산정하는 등 다양한

     업무형태로 이용 가능

 

  2) 광역복제 (Broadcast Replication)

   - 통합된 테이블을 한군데에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태

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

   - 모든 지사에 있는 데이터양과 본사에 있는 데이터양이 다 동일하다.

 

   - 실제 프로젝트에서 많이 사용하는ㄷ ㅔ이터베이스 분산기법에 해당한다.

 

라. 테이블 요약(Summarization) 분산

  - 지역간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재

  - 요약의 방식에 따라 동일한 테이블 구조를 가지고 있으면서 분산되어 있는 동일한 내용의 데이터를 이용하여 통합된

    데이터를 산출하는 방식

 

  1) 분석요약 (Rollup Replication)

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

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

 

 

 2) 통합요약 (Consolidation Replication)

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

 

 

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

 

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

 

 -  성능이 중요한 사이트에 적용해야 한다.

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

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

 - 특정 서버에 부하가 집중이 될 때 부하를 분산할 때도 좋다.

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