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

연쇄코딩마·2022년 10월 11일
0

분산 데이터베이스

정의 :

  • 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상시스템으로 사용할수 있도록 한 데이터베이스
  • 논리적으로 동일한 시스템에 속하지만, 컴퓨터 넹트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임. 물리적 site 분산, 논리적으로 사용자 통합 공유

즉 분산 db는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 db

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

분산형 데이터베이스은 6가지 투명성을 만족해야한다.

  • 분할 투명성(단편화) : 하나의 논리적 관계가 여러 단편으로 분할 되어 각 단편의 사본이 여러 site에 저장 되어야 한다.
  • 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 시스템 카탈로그에 유지되어야 함
  • 지역사상 투명성 : 지역 dbms와 물리적 db 사이의 mapping 보장. 각 지역 시스템 이름과 무관한 이름 사용 가능
  • 중복 투명성 : db 객체가 여러 site에 중복 되어 있는 지 알 필요가 없는 성질
  • 장애 투명성 : 구성요소(DBMS, Computer)의 장애에 무관 Transaction의 원자성 유지
  • 병행 투명성 : 다수 Transaction 동시 수행시 결과의 일관 성유지, timestamp, 분산 2단계 locking을 이용 구현

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

활용 방향성

  • 분산 db는 업무적인 기능이 다양해지고 데이터의 양이 기하급수적으로 증가하는 db환경에 적합한 기술

가치

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

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

  • 테이블 위치 분산, 테이블 분할 분산, 테이블 복제 분산, 테이블 요약 분산
  • 그중에서도 가장 많이 사용하는 방식의 테이블의 복제 분할 분산이 있다.
  • 업무적인 특징에 따라 지역별, 서버별로 테이블을 분산 배치, 복사 배치 설계 할 수 있다.

테이블 위치 분산

  • 테이블의 구조는 변하지 않는다. 또한 테이블이 다른 데이터베이스에 중복 되어 생성 되지도 않는다. 설계된 테이블의 위치를 다르게해 각각다르게 위치 시키는 것이다. 예를 들어 자재품목을 이용해서 제품을 생산한다고 하면 db를 본사와 지사단위로 분산할수 있다.

테이블 분할 분산

  • 테이블을 나누는 기준에 따라 두가지로 구분된다. 로우단위로 구분하는 수평분할, 두번쨰는 테이블을 칼럼단위로 분할하는 수직분할

  • 수평 분할 : 지사(node)에 따라 테이블을 특정 칼럼의 값을 기준으로 로우로 분리한다. 칼럼은 모든 데이터가 각 지사별로 분리되어 있는 형태를 가지고 있다. 또한 지사에 있는 데이터와 다르며, 데이터를 한군데 집합 시켜놓아도 기본키에 의해 중복이 발생하지 않는다.

  • 수직 분할 : 지사에 따라 테이블 칼럼을 기준으로 칼럼을 분리한다. 로우는 분리되지 않는다. 각각테이블에는 동일한 기본키 값을 갖고 있어야 한다. 그러므로 중복과 완전한 테이블 구성이 가능하다. 그러나 전체 칼럼을 보기위해서는 조인해서 가져와야 함으로 성능 저하 우려가 있다.

테이블 복제 분산

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

  • 마스터 db에서 테이블의 일부만 다른 지역이나 서버에 위치 시키는 부분복제가 있고, 마스터 db의 테이블의 내용을 각 지역이나 서버에 존재시키는 광역 복제가 있다.

  • 부분 복제 :
    본사가 통합 테이블은 갖고 있으면서도 지사는 그 지사에 해당하는 로우를 가지고 있다. 지사에 존재하는 데이터는 반드시 본사에 존재하게 된다. 각 지사에 데이터 처리가 용이할 뿐만아니라 통합처리도 본사에 있는 통합테이블 이용이 가능하다. 실제 프로젝트에서 많이 사용되는 부분이며, 각지사별로 업무수행이 용이하고 본사에 있는 데이터를 이용하여 보고서를 출력하거나 통계를 산정하는 등 다양한 업무형태로 이용 가능하다.

  • 광역 복제 :

통합된 테이블을 한군데(본사)에 가지고 있으면서 각지사에도 본사와 동일한 데이터를 모두가지고 있는 형태이다. 모두 동일하다. 그래서 본사나 지사에서 데이터처리에 특별한 제약이 없다. 본사에서 수정,삭제,입력하고 지사에서 코드데이터를 이용하는 프로세스가 발생한다.

상기 두 복제의 경우를 더 살펴 보자.
부분복제의 경우는 지사에서 데이터에 대한 입력, 수정,삭제가 발생하여 본사에서 이용하는 방식이 많은 반면
광역복제의 경우는 본사에서 데이터 입력, 수정, 삭제가 되어 지사에서 이용하는 형태가 차이점이다. 부분복제와 마찬가지로 데이터를 복제(Replication)하는데 많은 시간이 소요되고 데이터베이스와 서버에 부하(Load)가 발생하므로 보통 실시간(On-Line) 처리에 의해 복사하는 것보다는 배치에 의해 복제가 되도록 한다.

테이블 요약 분산

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

  • 분석요약 : 요약의 방식에 따라, 동일한 테이블 구조를 가지고 있어 통합된 데이터를 산출하는 방식
  • 통합요약 : 분산되어 있는 다른 내용의 데이터를 이용해서 통합된 데이터를 산출하는 방식의 통합요약이 있다.

분석요약

모든 칼럼과 로우가 지사에서도 동일하지만 각 지사에서는 동일한 내용에 대해 지사별로 요약되어있는 정보를 가지고 있고 본사에는 각지사의 요약정보를 통합하여 재산출하여 전체에 대한 요약정보를 가지고 있는 것으로 표시되어 있다.

각종 통계데이터를 산정할 경우 처리 성능이 지연되고 각 지사 서버에 부하를 준다. 통합 통계데이터에 대한 정보제공에 용이한 분산방법이다. 본사에 분석 요약된 테이블을 생성하고 데이터는 역시 일반 업무가 종료되는 야간에 수행하여 생성한다.

통합요약
본사에 통계데이터를 산정하는 유형은 분석요약과 비슷하나 통합요약은 단지 지사에 산출한 요약정보를 한군데 취합하여 보여주는 형태이다. 분석요약은 지사에 있는 데이터를 이용하여 본사에서 통합 요약 데이터를 산정하는 것이다.

두가지 역시 조인하여 서버의 부하를 주게 된다.

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

설계시 분산 환경의 원리를 이해하지 않고 설계하여 성능이 저하되는 경우가 빈번하다. 특히 복제 분산의 원리를 간단하게 응용하면 많은 업무적인 특성이 있는 곳에서 그 성능 향상 시켜 설계 할수 있다. 개인정보를 관리하는 데이터베이스가 인사데이터베이스 일때 분산이 안된 경우의 각서버에 독립적으로 테이블이 있을 때 트랜잭션과 복제 분산을 통해 테이블의 정보가 양쪾에 있을떄 트랜잭션 처리의 특성을 보여주는 그림이다. 단순한 개념도 이지만 복잡한 업무처리에 효과적으로 성능을 향상시킬 수 있음을 주목해야 한다.

  • 데이터베이스 분산 설계의 효과
  1. 성능이 중요한 사이트에 적용되어야 한다.

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

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

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

  5. 백업 사이트(Disaster Recovery Site)를 구성할떄 간단하게 분산기능을 적용하여 구성할 수 있다.

profile
只要功夫深,铁杵磨成针, 하고자 하면 쇠 막대기도 바늘로 만들 수 있다

0개의 댓글

관련 채용 정보