# 4. 자격증/SQLD

SQLD 자격증 # 데이터 모델과 성능(과목1)_분산 데이터베이스와 성능

둥굴둥굴둥굴레차 2021. 11. 11. 20:35

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

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

 

 

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

 

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


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


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


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


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


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

 

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

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

단순히 분산 환경에서 데이터베이스를 구축하는 것이 목적이 아니라업무의 특징에 따라 데이터베이스 분산구조를 선택적으로 설계

 

분산 데이터베이스 장단점

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

 - 업무적인 특징에 따라 분산 데이터베이스를 활용하는 기술 필요

 

 

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

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

 

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

테이블 위치 분산

 - 테이블 구조 변하지 않음
 - 테이블이 다른 데이터베이스에 중복 생성되지 않음
 - 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우 이용
 - 테이블 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서가 필요

 

 

 

 

테이블 분할(Fragmentation) 분산

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

 

◆ 수평분할(Horizontal Fragmentation) 

특정 칼럼의 값을 기준으로 로우(Row)단위로 분리
칼럼은 분리되지 않음

- Primary Key에 의해 중복이 발생되지 않음

-  지사별로 사용하는 로우(Row)가 다를 때 이용


 -  데이터 수정 타 지사에 있는 데이터를 원칙적으로 수정하지 않고 자신의 데이터에 대해서 수정


-  각 지사의 테이블 통합처리 조인이 발생하여 성능 저하 예상통합처리 프로세스가 많은지를 먼저 검토한 후 많지 않은 경우에 수평분할


-  데이터 무결성 보장  :  데이터가 지사별로 별도로 존재하므로 중복은 발생하지 않는다타 지사 데이터의 지사구분이 변경되면 단순히 수정이 발생하는 것 이외에 변경된 지사로 데이터를 이송해야 한다한 시점에는 한 지사(Node)에서 하나의 데이터만 존재


-  지사별로 데이터베이스를 운영하는 경우  :  데이터베이스가 속한 서버가 지사에 존재하던지 아니면 본사에 통합해서 존재하건 간에 데이터베이스 테이블들은 수평 분할하여 존재

 

 

 ◆ 수직분할(Vertical Fragmentation)

 

칼럼을 기준으로 칼럼단위로 분리
로우(Row) 단위로 분리되지 않음

각 테이블에는 동일한 Primary Key구조와 값을 가지고 있어야 함
  데이터를 한군데 집합시켜 놓아도 동일한 Primary Key는 하나로 표현하면 되므로 데이터 중복은 발생되지 않음



 

 

테이블의 전체 칼럼 데이터 조회 가능하면 통합하여 처리하는 프로세스가 많은 경우에는 이용하지 않도록 한다


 실제 프로젝트에서 수직분할 분산 환경을 구성하는 사례는 드물다.

 

 

테이블 복제(Replication) 분산

 

동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리
프로젝트에서 많이 사용하는 데이터베이스 분산기법 

 

 ◆ 부분복제(Segment Replication)

 

마스터 데이터베이스에서 테이블의 일부의 내용만 다른 지역이나 서버에 위치
통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사별로는 지사에 해당된 로우(Row)를 가지고 있는 형태
  

  본사 데이터  =  지사데이터의 합


여러 테이블에 조인이 발생하지 않는 빠른 작업 수행 가능 (각 지사에서 데이터 처리 용이할 뿐 아니라 전체 데이터에 대한 통합처리도 본사의 통합 테이블을 이용)



그림 -2-47  지사간에는 데이터의 중복이 발생하지 않으나 본사와 지사간에는 데이터의 중복이 항상 발생하게 되는 경우

 

본사 데이터는 통계이동 등을 관리 지사 데이터를 이용하여 지사별로 빠른 업무수행
지사에 데이터가 먼저 발생본사 데이터는 지사 데이터를 이용하여 통합하여 발생 (광역복제와 차이점)
다른 지역간의 데이터를 복제는 실시간 처리보다 배치 작업에 의해 수행 (시간 소요데이터베이스와 서버에 부하 발생)
데이터의 정합성을 일치시키는 것이 어렵기 때문에 가능하면 한쪽(지사)에서 데이터의 수정이 발생하여 본사로 복제 하도록 한다

 


◆ 광역복제(Broadcast Replication)

 

통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 가지고 있는 형태
본사나 지사나 데이터처리에 특별한 제약을 받지는 않음
본사에서 데이터가 입력수정삭제가 되어 지사에서 이용하는 형태 (부분복제와 차이점)
다른 지역간의 데이터를 복제는 실시간 처리보다 배치 작업에 의해 수행 (시간 소요데이터베이스와 서버에 부하 발생)



 

테이블 요약(Summarization) 분산

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

  

◆ 분석요약(Rollup Replication)

 

각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약정보 산출
동일한 테이블 구조를 가지고 있으면서 분산되어 있는 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식

 

 

그림 -2-51  테이블에 있는 모든 칼럼(Column)과 로우(Row)가 지사에도 동일하게 존재하지만각 지사에는 동일한 내용에 대해 지사별로 요약되어 있는 정보를 가지고 있고 본사에는 각 지사의 요약정보를 통합하여 재산출하여 전체에 대한 요약정보를 가지고 있다.

 

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

지사에 있는 데이터를 이용하여 본사에서 통합하여 요약 데이터 산정

통합 통계데이터에 대한 정보제공에 용이
본사에 분석 요약된 테이블을 생성하고 데이터는 역시 일반 업무가 종료되는 야간에 수행하여 생성

 

 

◆ 통합요약(Consolidation Replication)


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

 

그림 -2-53  테이블에 있는 모든 칼럼(Column)과 로우(Row)가 지사에도 동일하게 존재하지만 각 지사에는 타지사와 다른 요약정보를 가지고 있고 본사에는 각 지사의 요약정보를 데이터를 같은 위치에 두는 것으로 통합하여 전체에 대한 요약정보를 가지고 있다.

  

본사에 통계데이터를 산정 분석요약과 비슷하나 단지 지사에서 산출한 요약정보를 한군데 취합하여 보여주는 형태모든 지사의 데이터를 이용하여 처리하면 성능이 지연되고 각 지사 서버에 부하를 주기 때문에 업무에 장애가 발생 가능성 있음
지사에서 요약한 정보를 본사에서 취합하여 각 지사별로 데이터를 비교하기 위해 이용
통계데이터에 대한 정보제공에 용이

본사에 통합 요약된 테이블을 생성하고 데이터는 역시 일반 업무가 종료되는 야간에 수행하여 생성

 

 

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

분산 환경의 원리를 이해하지 않고 데이터베이스를 설계하여 성능이 저하되는 경우 빈번
  복제분산의 원리를 간단하게 응용하면 많은 업무적인 특성이 있는 곳에서 그 성능을 향상시켜 설계 가능

 

그림 -2-55 분산이 안된 경우의 각 서버에 독립적으로 테이블이 있을 때 트랜잭션과 복제분산을 통해 테이블의 정보가 양쪽에 있을 때 트랜잭션 처리위의 원리가 복잡한 업무처리에서 효과적으로 성능을 향상시킬 수 있음을 주목

 

데이터베이스 분산 설계는 다음과 같은 경우에 적용하면 효과적이다.

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

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

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

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

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