Search

분산 데이터베이스와 성능

분산 데이터베이스의 개요

① 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 ② 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임. 물리적 Site 분산, 논리적으로 사용자 통합·공유
⇒ 분산 데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스라고 정의

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

분산데이터베이스가 되기 위해서는 6가지 투명성(Transparency)을 만족
1) 분할 투명성 (단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
2) 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 System Catalog에 유지되어야 함
3) 지역사상 투명성 : 지역 DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능
4) 중복 투명성 : DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질
5) 장애 투명성 : 구성요소(DBMS, Computer)의 장애에 무관한 Transaction의 원자성 유지
6) 병행 투명성 : 다수 Transaction 동시 수행시 결과의 일관성 유지, Time Stamp, 분산 2단계 Locking을 이용 구현
분산 데이터베이스 적용방법
분산 환경의 데이터베이스를 성능이 우수하게 현장에서 가치 있게 사용하는 방법은 업무의 흐름을 보고 업무구성에 따른 아키텍처 특징에 따라 데이터베이스를 구성하는 것
단순히 분산 환경에서 데이터베이스를 구축하는 것이 목적이 아니라, 업무의 특징에 따라 데이터베이스 분산구조를 선택적으로 설계하는 능력이 필요
분산 데이터베이스 장단점
분산 데이터베이스의 활용 방향성
업무적인 특징에 따라 분산 데이터베이스를 활용하는 기술이 필요
데이터베이스 분산 구성의 가치
통합된 데이터베이스에서 제공할 수 없는 빠른 성능을 제공
원거리 또는 다른 서버에 접속하여 처리함으로 인해 발생되는 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 분석하여
분산 데이터베이스 환경 구축을 함으로써 성능 상 문제 발생 원인을 제거할 수 있음

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

데이터베이스의 분산의 종류
1.
테이블 위치 분산
설계된 테이블의 위치를 각각 다르게 위치시키는 것(자재품목은 본사DB, 생산제품은 지사DB)
테이블 위치 분산은 테이블의 구조는 변하지 않음
또한 테이블이 다른 데이터베이스에 중복되어 생성 X.
테이블별 위치 분산은 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우에 이용
자재품목은 본사에서 구입하여 관리하고 각 지사별로 자재품목을 이용하여 제품을 생산한다고 하면 [그림 Ⅰ-2-41]과 같이 데이터베이스를 본사와 지사단위로 분산
2.
테이블 분할(Fragmentation) 분산
각각의 테이블을 쪼개어 분산하는 방법
수평분할 : 지사(Node)에 따라 테이블을 특정 칼럼의 값을 기준으로 로우(Row)를 분리
수평분할을 이용하는 경우는 각 지사(Node)별로 사용하는 로우(Row)가 다를 때 이용
데이터가 지사별로 별도로 존재하므로 데이터를 한군데 집합시켜 놓아도 Primary Key에 의해 중복이 발생되지 않는다.
테이블 고객, 생산제품, 협력회사, 사원, 부서 테이블이 지사1과 지사2에서 일의 시작과 끝이 항상 다르게 발생한다고 하면 각 테이블은 지사별로 수평 분할
수직분할 : 지사(Node)에 따라 테이블 칼럼을 기준으로 칼럼(Row)을 분리한다. 로우 (Row) 단위로는 분리되지 않는다. 모든 데이터가 각 지사별로 분리되어 있는 형태를 가지고 있다.
칼럼을 기준으로 분할 ⇒ 각각의 테이블에는 동일한 Primary Key구조와 값을 가지고 있어야 한다.
제품의 재고량은 각 지사별로 관리하고 제품에 대한 단가는 본사에서 관리한다고 하면
본사 테이블에는 제품번호, 단가가 존재하고
지사에는 제품번호, 재고량이 존재
테이블의 전체 칼럼 데이터를 보기 위해서는 각 지사(Node)별로 흩어져 있는 테이블들을 조인(JOIN)하여 가져와야 함 ⇒ 실제 프로젝트에서는 이와 같이 칼럼을 쪼개는 테이블의 수직분할 분산 환경을 구성하는 사례는 드물다.
3.
테이블 복제(Replication) 분산
동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형
부분복제 : 통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사별로는 지사에 해당된 로우(Row)를 가지고 있는 형태
부분복제의 경우는 지사에서 데이터에 대한 입력, 수정, 삭제가 발생하여 본사에서 이용하는 방식이 많음
광역복제 : 통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태
광역복제(Broadcast Replication) 역시 실제 프로젝트에서 많이 사용하는 데이터베이스 분산기법에 해당
광역복제(Broadcast Replication)의 경우에는 본사에서 데이터가 입력, 수정, 삭제가 되어 지사에서 이용하는 형태
4.
테이블 요약(Summarization) 분산
지역간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우
분석요약 : 분석요약(Rollup Replication)은 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법
테이블에 있는 모든 칼럼(Column)과 로우(Row)가 지사에도 동일하게 존재,
각 지사에는 동일한 내용에 대해 지사별로 요약되어 있는 정보를 가지고 있고 본사에는 각 지사의 요약정보를 통합하여 재산출하여 전체에 대한 요약정보를 가지고 있는 것
분석요약은 지사에 있는 데이터를 이용하여 본사에서 통합하여 요약 데이터를 산정
통합요약 : 각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법
테이블에 있는 모든 칼럼(Column)과 로우(Row)가 지사에도 동일하게 존재
각 지사에는 타지사와 다른 요약정보를 가지고 있고 본사에는 각 지사의 요약정보를 데이터를 같은 위치에 두는 것으로 통합하여 전체에 대한 요약정보를 가지고 있는 것
분석요약과 비슷하나 통합요약은 단지 지사에서 산출한 요약정보를 한군데 취합하여 보여주는 형태
통합요약에서는 지사에서 요약한 정보를 본사에서 취합하여 각 지사별로 데이터를 비교하기 위해 이용되는 것

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

복제분산을 이용
개인정보를 관리하는 데이터베이스가 인사 데이터베이스일 때 분산이 안된 경우의 각 서버에 독립적으로 테이블이 있을 때 성능이 저하될 수 있음 (원격지 조인으로 인한 성능 저하)
인사DB의 사용자 정보를 복제분산하여 업무DB에도 위치 시키면 성능이 향상됨 (로컬 조인으로 성능이 향상됨)
데이터베이스 분산 설계는 다음과 같은 경우에 적용하면 효과적
성능이 중요한 사이트에 적용
공통코드, 기준정보, 마스터 데이터 등에 대해 분산환경을 구성하면 성능이 좋아진다.
실시간 동기화가 요구되지 않을 때 좋다. 거의 실시간(Near Real Time)의 업무적인 특징을 가지고 있을 때도 분산 환경을 구성 가능
특정 서버에 부하가 집중이 될 때 부하를 분산할 때도 좋음
백업 사이트(Disaster Recovery Site)를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있음