본문 바로가기

자격증/SQLD

분산 데이터베이스와 성능

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


분산 데이터베이스의 정의

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

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



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


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

  • 분할 투명성(단편화) : 논리적 Relation이 여러 단편으로 분할, 각 사본이 여러 site에 복제되어 저장

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

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

  • 중복 투명성 : DB 객체가 여러 사이트에 중복되어 있는지 알 필요가 없는 성질

  • 장애 투명성 : DMBS, Computer의 장애에 무관한 Transaction의 원자성 유지

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



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


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

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


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

장점

단점

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

  • 신뢰성과 가용성

  • 효용성과 융통성

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

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

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

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

  • 소프트웨어 개발 비용

  • 오류의 잠재성 증대

  • 처리 비용의 증대

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

  • 불규칙한 응답 속도

  • 통제의 어려움

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


분산 구성의 가치 : 데이터 처리 성능 증대



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


테이블 위치 분산

각각의 테이블의 다른 위치의 DB에 분산 시키는 방법

A 테이블은 본사에, B 테이블은 지사에 할당


테이블 분할 분산

테이블을 쪼개어 분산하는 방법 ( 수평 분할(row), 수직 분할(column) )


  • 수평분할
    각 노드별로 사용하는 데이터가 다른 경우 분할,
    통합 처리 프로세스가 많으면 사용하지 않음 (반드시 선 검토가 되어야 함)

  • 수직분할
    각 노드별로 사용하는 컬럼이 다른 경우


테이블 분할 분산하는 사례는 드믈다.


테이블 복제 분산

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


종류

  • 부분 복제 (Segment Replication)
    통합된 데이터는 본사에, 각 지사 데이터 만을 지사에 두는 형식
    실제 프로젝트에서 많이 사용하는 방식
    지사에서 데이터를 관리, 본사가 이용하는 방식


  • 광역 복제 (Broadcast Replication)
    본사와 지사의 같은 테이블에 같은 데이터를 가지고 있음
    본사에서 데이터 관리함, 지사가 이를 이용하는 방식


테이블 요약 분산


  • 분석요약
    지사별 데이터를 본사에 통합하여 전체에 대해서 요약정보를 산출하는 분산방법
    통계 데이터 산정시 지사데이터까지 모두 이용하므로 업무시간 중엔 장애가 발생할 확률이 높다.

  • 통합요약
    지사별로 데이터를 요약하여 본사에서 통합(취합)하는 방식



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


예)
업무 DB와 인사DB가 서로 다른 시스템에 있을 때, 업무DB는 항상 인사DB에 관련되어 업무가 처리된다, 하지만 네트워크 등의 제약으로 인해 성능이 현저히 낮아지게 되는데 이럴 경우 주기적으로 업무DB에 필요한 사용자테이블 받아와서 처리하면 성능이 월등히 좋아진다.



적용하면 좋은 사례

  • 성능이 중요한 사이트에 적용해야함

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

  • 실시간 동기화가 요구되지 않을 때 좋다, Near Real Time 업무적 특징을 가지고 있을 때도 분산 환경을 구성할 수 있다.

  • 특정 서버에 부하가 집중이 될 때  부하를 분상해도 좋음

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


'자격증 > SQLD' 카테고리의 다른 글

DDL (Data Definition Language)  (0) 2016.09.09
관계형 데이터베이스 개요  (0) 2016.09.09
데이터베이스 구조와 성능  (0) 2016.09.09
대량 데이터에 따른 성능  (0) 2016.09.09
반정규화와 성능  (0) 2016.09.09