IT/SQLD(SQL개발자)

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

pandada 2019. 6. 21. 15:52
반응형

분산데이터베이스

 

분산 데이터베이스

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

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

 

Therefore. 

  분산 데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스라고 정의할 수 있다.

 

 

분산 데이터베이스의 6가지 투명성

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

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

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

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

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

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

 

 

분산 데이터베이스 장단점

장점 

단점 

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

 - 신뢰성과 가용성

 - 효용성과 융통성

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

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

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

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

 - 소프트웨어 개발 비용 증가

 - 오류의 잠재성 증대 

 - 처리 비용의 증대

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

 - 불규칙한 응답 속도

 - 통제의 어려움

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

 

 

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

  * 테이블 위치 분산

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

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

    - 설계의 위치를 각각 다르게 위치 시키는 것임

< 테이블 위치 분산 >

Therefore. 

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

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

 

 

 * 테이블 분할 분산

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

  - 테이블을 Row 단위로 분리하는 수평분할

  - Node에 따라 테이블을 특정 칼럼의 값을 기준으로 Row를 분리한다.

  - 각 Node별로 Row가 다를때 이용한다. 데이터를 수정할 때는 타 Node에 있는 데이터를 원칙적으로 수정하지 않고 자신의 데이터에 대해서 수정한다. 

  - 데이터가 지사별로 별도로 존재하므로 중복은 발생하지 않는다.

  - 데이터의 무결성이 보장된다.

< 테이블 분할 분산 >

 

  - 테이블을 Column 단위로 분리하는 수직분할

  - Node에 따라 테이블 칼럼을 기준으로 Column을 분리한다.

  - 모든 데이터가 각 지사별로 분리되어 있는 형태를 가지고 있다.

  - 칼럼을 기준으로 분할하였기 때문에 각각의 테이블에 동일한 PK와 갑을 가지고있어야 한다.

  - Node 별로 쪼개어진 테이블들을 조합하면 PK가 동일한 데이터의 조합이 가능해야하며 완전한 테이블이 구성되어야 한다.

  - 데이터를 한군데 집합시켜 놓아도 동일한 PK는 하나로 표현되므로 중복은 발생되지 않는다.

 

< 테이블 복제 분산 >

 

 

* 테이블 복제 분산

  * 부분복제

    - 통합된 테이블을 한군데에 가지고 잇으면서 각 지사별로는 지사에 해당된 Row를 가지고 있는형태

    - 본사의 데이터는 지사데이터의 합이 된다.

    - 각 지사에서 데이터 처리가 용이할 뿐만 아니라 전체 데이터에 대한 통합처리도 본사에 있는 통합 테이블을 이용하게 되므로 여러 테이블에 Join이 발생하지 않는 빠른 작업 수행이 가능해진다.

    - 수평분할 분산과 마찬가지로 지사간에는 데이터 중복이 발생하지 않으나 본사와 지사간에는 데이터 중복이 항상 발생하게 되는 경우

 

  * 광역복제

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

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

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

    - 본사와 지사모두 동일한 정보를 가지고 있으므로 본사나 지사나 데이터처리에 특별한 제약을 받지 않는다.

    - 본사에서 코드테이블에 데이터에 대해 입력, 수정, 삭제가 발생하고 각 지사에서는코드 데이터를 이용하는 프로세스가 발생한다.

    - 본사에서는 데이터를 관리하고 지사에서는 이 데이터를 읽어 업무프로세스를 발생시킨다.

< 광역 복제 분산 >

 Difference. 

  부분복제의 경우는 지사에서 데이터에 대한 입력, 수정, 삭제가 발생하여 본사에서 이용하는 방식이 많은 반면 광역복제의 경우에는 본사에서 데이터가 입력, 수정, 삭제가 되어 지사에서 이용하는 형태.

 

* 테이블 요약 분산

   - 분석 요약

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

-> 테이블에 있는 모든 Column과 Row가 지사에도 동일하게 존재하지만, 각 지사에는 동일한 내용에 대해 지사별로 요약되어 있는 정보를 가지고 있고 본사에는 각 지사의 요약정보를 통합하여 재산출하여 전체에 대한 요약정보를 가지고 있는 것으로 표시됨.

 

 

     But. 

각종 통계데이터를 산정할 경우에, 모든 지사의 데이터를 이용하여 처리하면 성능이 지연되고 각 지사 서버에 부하를 주기 때문에 업무장애가 발생할 수 있다.

     Therefore. 

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

 

   - 통합 요약

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

    -> 테이블에 있는 모든 Column과 Row가 지사에도 동일하게 존재하지만 각 지사에는 타지사와 다른 요약 정보를 가지고 잇고 본사에는 각 지사의 요약정보를 데이터를 같은 위치에 두는 것으로 통합아여 전체에 대한 요약정보를 가지고 있는 것으로 표시된다.

< 통합 요약 >

Difference. 

통합요약은 단지 지사에서 산출한 요약정보를 한군데 취합하여 보여주는 형태이다. 분석요약은 지사에 있는 데이터를 이용하여 본사에서 통합하여 요약 데이터를 산정하였지만 통합요약에서는 지사에서 요약한 정보를 본사에서 취합하여 각 지사별로 데이터를 비교하기 위해 이요되는 것이다.

 

 

데이터 분산 설계를 이용시 효과적인 경우 

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

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

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

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

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

반응형