메뉴 건너뛰기

bysql.net

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

2014.03.31 03:37

정희수 조회 수:69622

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

 

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

-데이터베이스를 분산하여 저장하고 그것을 하나의 데이터베이스로 인식하는 기술

많은 데이터베이스는 네트워크를 통한 데이터베이스 간의 공유체계를 통해 분산 데이터베이스를 활용

 

분산 데이터의 정의

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

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

(여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터 베이스)

 

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

6가지 투명성을 만족해야 한다.

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

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

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

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

5)장애 투명성 - 구성요소의 장애에 무관한 Transaction의 원자성 유지

6)병행 투명성 - 다수 Transaction 동시 수행시 결과의 일관성 유지, Time Stamp, 분산 2단계 Locking을 이용 구현 (여러 고객의 응용프로그램에 동시에 분산데이터베이스에 대한 트랜잭션을 수행하여도 결과에 이상이 없어야 한다.)

 

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

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

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

단순히 분산 환경에서 데이터베이스를 구축하는 것이 목적이 아니라 업무의 특징에 따라 데이터베이스 분산 구조를 선택적으로 설계하는 능력이 필요

데이터베이스 분산설계라는 측면 보다는 데이터베이스 구조 설계 라는 의미

 

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

 장점

단점 

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

 소프트웨어 개발 비용

 신뢰성과 가용성

 오류의 잠재성 증대

 효용성과 융통성

 처리 비용의 증대

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

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

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

 불규칙한 응답속도

 시스템 규모의 적절한 조절

 통제의 어려움

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

 데이터 무결성에 대한 위협

 

 

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

 

이전(위치 중심의 분산설계)

현재(업무 필요에 의한 분산 설계)

 

 

 

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

가장 핵심적인 가치- 통합된 데이터베이스에서 제공할 수 없는 성능을 제공

-> 원거리 또는 다른 서버에 접속하여 처리하므로 인해 발생되는 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 분산된 데이터베이스 환경을 구축 함으로 빠른 성능을 제공

 

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

데이터베이스의 분산종류

테이블 위치 분산, 테이블 분할 분산, 테이블 복제 분산, 테이블 요약 분산

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

 

가. 테이블의 위치 분산

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

테이블이 다른 데이터 베이스에 중복되어 생성되지도 않는다. 설계된 테이블의 위치를 각각 다르게

위치 시키는것

--정보를 이용하는 형태가 각 위치별로 차이가 있을 경우에 용이

 

나.테이블 분할 분산

각각의 테이블을 쪼개어 분산하는 방법,

row단위로 분리하는 수평분할. column단위로 분할 하는 수직분할이 있다.

- 수평 분할

지사(node)에 따라 테이블을 특정 칼럼값을 기준으로 roq준리한다.

각 지사에 있는 데이터와 다른 지사에 있는 데이터는 항상 배타적으로 존재, 데이터를 한군데 집합시켜 놓아도 PK에 의해 중복이 발생되지 않는다.

데이터 수정시, 타 지사의 데이터는 수정하지 않고, 자신의 데이터에 대해 쉉한다.

한 시점에 한지사에서 한 데이터만이 존재->무결정 보장

 

-수직분할

지사에 따라 column단위로 분리.

각각의 테이블에는 동일한 PK구조와 갑슬 가지고 있어야 한다. 자사별로 쪼개어진 테이블들을 조합하면 PK가 동일한 데이터의 조합이 가능 , 완전한 테이블이 구성 되어야 한다.

 

 

다. 테이블 복제 분산

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

 

-부분복제

통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사별로 해당되는 row를 가지고 있는 형태.

본사와 지사간에는 데이터의 중복이 항상 발생.

 

-광역 복제

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

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

본사에서는 테이블을 관리하고 지사에서는 이데이터를 읽어 업무 프로세스를 발생시키는 것

 

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

광역복제의 경우 본사에서 데이터에 대한 입력 수정 삭제, 지사에서 이용

 

라. 테이블 요약 분산

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

 

-분석 요약

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

ex) 지사1에서는 지사1의 판매실적이 있고 지사2에서는 지사2의 판매실적이 존재한다. 본사에서는 모든 지사의 판매실적을 통합한 실적 데이터가 생성

 

-통합요약

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

지사1과 지사2에 판매실적이 존재하지만 서로 다른 내용으로 존대. 본사에서는 모든 지사의 판매실적을 통합한 데이터가 생성

 

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

프로젝트를 수행 할 때, 단순한 분산 환경의 원리를 이해하지 않고 데이터 베이스를 설계하여 성능이 저하되는 경우가 빈번하다.

 

데이터베이스 분산 설계는 다음과 같은 경우에 적용하면 효과적이다.

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

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

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

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

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