지구정복

[SQLD] 11. 분산 데이터베이스와 성능 본문

자격증 정복/SQLD

[SQLD] 11. 분산 데이터베이스와 성능

eeaarrtthh 2020. 11. 9. 22:27
728x90
반응형

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

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

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

구분내용

분할 투명성 사용자가 입력한 전역 질의를 여러 개의 단편 질의로 변환해 주기 때문에 사용자는 전역 스키마가 어떻 게 분할되어 있는지 알 필요가 없음
위치 투명성 어떤 작업을 수행하기 위해 분산 데이터베이스상에 존재하는 어떠한 데이터의 물리적인 위치도 알 필요가 없음
지역사상 투명성 지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능
중복 투명성 어떤 데이터가 중복되었는지, 또는 어디에 중복 데이터를 보관하고 있는지 사용자가 알 필요가 없음
장애 투명성 분산되어 있는 각 컴퓨터 시스템이나 네트워크에 장애가 발생하더라도 데이터의 무결성이 보장됨
병행 투명성 다수 Transaction 동시 수행시 결과의 일관성 유지, 잠금(Locking)과 타임스탬프(Timestamp)의 두 가지 방법을 주로 사용

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

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

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

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

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

  • 이전에는 위치 중심의 분산설계를 하였다면 현재는 업무필요에 의한 분산설계를 하고 있음

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

  • 분산 환경으로 데이터베이스를 구성하였을 때 통합 데이터베이스에서 비해 빠른 성능을 제공한다는 점이 핵심가치임
  • 통합 데이터베이스 환경하에서의 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 분산된 데이터베이스 환경을 구축하므로써 빠른 성능을 제공하는 것이 가능해 진다는 의미

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

  • 테이블 위치 분산, 테이블 분할 분산, 테이블 복제 분산, 테이블 요약 분산 전략으로 구분
  • 테이블 복제 분산이 가장 널리 사용

가. 테이블 위치 분산

 

  • 테이블의 각각이 지역별로 분산되어 생성되는 경우
  • 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서가 필요

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

  1. 수평분할

    • 각 지사(Node)별로 사용하는 로우(Row)가 다를 때 이용
    • 데이터를 수정할 때는 타 지사에 있는 데이터를 수정하지 않고 자신의 데이터에 대해서 수정
    • 지사에 존재하는 테이블에 대해서 통합처리를 해야 하는 경우는 조인(JOIN, ?)이 발생하여 성능 저하가 예상
    • 데이터 중복은 발생하지 않음
    • 데이터의 무결성이 보장되는 형태
  2. 수직분할

    • 테이블 컬럼을 기준으로 컬럼을 분리( 로우 단위로는 분리되지 않음)
    • 각 노드별 각 테이블에는 동일한 Primary Key구조와 값을 가지고 있어야 함
    • 각 노드별로 쪼개진 테이블을 PK를 기준으로 조합해야 하나의 완전한 테이블이 구성
    • 데이터 중복은 발생하지 않음
    • 각 지사(Node)별로 흩어져 있는 테이블들을 조인(JOIN)하여 가져와야 하므로 통합처리 프로세스가 많은 경우는 적용하지 않도록 주의

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

  • 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형
    1. 부분복제(Segment Replication) : 테이블의 일부의 내용만 다른 지역이나 서버에 복제
    2. 광역복제(Broadcast Replication) : 마스터 데이터베이스의 테이블의 내용을 각 지역이나 서버에 복제
  1. 부분복제(Segment Replication)

    • 통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사별로는 지사에 해당된 로우(Row)를 가지고 있는 형태
    • 본사 데이터 = SUM(지사 데이터)
    • 각 지사에서 데이터 처리가 용이할 뿐만 아니라 전체 데이터에 대한 통합처리도 본사에 있는 통합 테이블을 이용하게 되므로 여러 테이블에 조인(JOIN)이 발생하지 않는 빠른 작업 수행이 가능
    • 본사와 지사간에는 데이터의 중복이 항상 발생
    • 지사에서 데이터에 대한 입력, 수정, 삭제가 발생하여 본사에서 이용하는 방식
    • 실제 프로젝트에서 많이 사용하는 데이터베이스 분산기법
    • 다른 지역간의 데이터를 복제(Replication)하는데 많은 시간이 소요
    • 복제 시 데이터베이스와 서버에 부하(Load)가 발생 -> 야간에 배치 작업을 주로 이용하여 복제
    • 지사에서 데이터의 수정이 발생하면 본사로 복제(Replication)를 하도록 구성하는 것이 유리
  2. 광역복제(Broadcast Replication)

    • 통합된 테이블을 본사에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태
    • 본사 데이터 = 각 지사 데이터
    • 실제 프로젝트에서 많이 사용하는 데이터베이스 분산기법
    • 본사에서 데이터가 입력, 수정, 삭제가 되어 지사에서 이용하는 형태
    • 부분 복제와 마찬가지로 데이터 복제에 시간이 많이 소요되고, 서버에 부하가 발생하여 주로 야간 배치에 의해 복제됨

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

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

  1. 분석요약(Rollup Replication) :각 지사별 동일한 내용의 정보를 본사에서 통합하여 전체에 대한 요약정보를 산출

    • 각 지사는 동일한 내용의 자기지사의 요약 정보를 가지고 있고, 본사에서는 각 지사의 요약정보를 통합 후 재산출한 전체 요약정보를 가지고 있음
    • 통합 통계데이터에 대한 정보제공에 용이한 분산방법
    • 본사에서 통계정보를 산정할 경우, 각 지사의 데이터를 사용하므로 지사 서버에 부하를 주게되어 주로 야간에 배치 작업을 통해 수행됨
  2. 통합요약(Consolidation Replication) : 각 지사별로 다른 내용의 정보를 본사에서는 단순 통합하여 보여줌
    • 분석요약과 마찬가지로 통계데이터를 산정할 경우, 각 지사의 서버에 부하를 주게되어 주로 야간에 배치 작업을 통해 수행됨
분석요약 vs 통합요약의 예
  1. 분석요약 : A, B, C 각 지사는 모두 '가-상품'의 판매실적을 가지고 있으며, 지사별 판매실적은 서로 다름
    이를 본사 S 가 통합하여 '가-상품'의 전체 판매실적을 산출함
  2. 통합요약 : 지사 A는 '가-상품'만을 전문으로 하여 '가-상품'의 판매실적만 가지고 있고,
    지사 B는 '나-상품'만을 전문으로 하여 '나-상품'의 판매실적만 가지고 있으며,
    지사 C는 '다-상품'만을 전문으로 하여 '다-상품'의 판매실적만 가지고 있음
    이를 본사 S가 통합하여 '가, 나, 다 - 상품'의 통합 판매실적을 산출함

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

  • 왼쪽 그림은 개인정보를 관리하는 인사 데이터베이스의 정보를 업무 데이터베이스에서 빈번하게 참조할 때 원격지 조인이 발생하여 성능이 저하되는 경우로
  • 인사 데이터베이스의 개인정보를 업무 데이터베이스에 복제분산 함으로써 성능이 향상되는 것을 보여줌

데이터베이스 분산 설계 시 효과적인 적용방법

  • 성능이 중요한 사이트에 적용해야 한다.
  • 공통코드, 기준정보, 마스터 데이터 등에 대해 분산환경을 구성하면 성능이 좋아진다.
  • 실시간 동기화가 요구되지 않을 때 좋다. 거의 실시간(Near Real Time)의 업무적인 특징을 가지고 있을 때도 분산 환경을 구성할 수 있다
  • 특정 서버에 부하가 집중이 될 때 부하를 분산할 때도 좋다.
  • 백업 사이트(Disaster Recovery Site)를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있다.

 

 

 

[출처]

http://wiki.gurubee.net/pages/viewpage.action?pageId=27427190&

728x90
반응형
Comments