- 테이블위치분산, 테이블분할분산, 테이블복제분산, 테이블요약분산 전략이 있음
- 가장 많이 사용하는 방식은 테이블 복제 분할 분산 방법
- 분산 환경으로 데이터베이스 설계 시 통합 데이터 모델링을 하고
각 테이블별 업무적인 특징에 따라 지역, 서버로 분산배치, 복제배치하는 형태로 설계
* 테이블 위치 분산
- 테이블의 구조는 변하지 않음
- 다른 데이터베이스에 중복되어 생성되지도 않음
- 설계된 테이블 위치를 각각 다르게 위치시키는 것
자재품목은 본사에서 관리하고, 지사별로 자재품목을 이용하여 생산
테이블이 각 지역별로 분산되어 생성되는 경우
테이블마다 위치가 다르게 지정되어야 하면 위치를 표기하여 테이블 생성
테이블의 위치가 위치별로 다르므로 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서 필요
* 테이블 분할 분산
- 각 테이블을 쪼개서 분산하는 방법
- 로우단위로 분리하는 수평분할, 컬럼단위로 분할하는 수직분할
1) 수평분할 : 노드에 따라 테이블을 특정 컬럼의 값을 기준으로 분리, 컬럼은 분리되지 않음
데이터를 한 군데 집합시켜 놓아도 PK에 의해 중복이 발생되지 않음
데이터 수정 시 타 지사에 있는 데이터를 원칙적으로 수정하지 않고 자신의 데이터만 수정
각 지사에 존재하는 테이블 통합처리해야하는 경우 조인이 발생하여 성능 저하 예상 -> 통합처리 프로세스 검토
타 지사에 있는 데이터가 지사구분이 변경되면 단순히 수정이 발생하는 것 외에 변경된 지사로 데이터 이송
한 시점에는 한 지사에서 하나의 데이터만이 존재하므로 데이터 무결성 보장
일의 시작과 끝이 항상 다르게 발생하면 각 테이블은 지사별로 수평분할하여 표 생성
2) 수직분할 : 노드에 따라 테이블 컬럼을 기준으로 컬럼을 분리, 로우 단위로는 분리되지 않음
동일한 PK 구조와 값을 갖고 있어야 함, 데이터를 집합시켜도 동일한 PK는 하나로 표현되면 데이터 중복 발생 안함
제품의 재고량은 지사별로 관리하고 단가는 본사에서 관리
테이블의 전체 컬럼 데이터를 보기 위해 지사별로 흩어진 테이블을 조인해야함
가능하면 통합하여 처리하는 프로세스가 많은 경우에는 이용하지 않음
일반적으로 수직분할 분산 환경 사례는 드뭄
* 테이블 복제 분산
- 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형
- 부분복제 : 테이블의 일부의 내용만 다른 지역이나 서버에 위치
- 광역복제 : 마스터 데이터베이스의 테이블 내용을 각 지역이나 서버에 존재시킴
1) 부분복제
통합된 테이블은 본사에 갖고 있음, 지사별로 로우를 갖는 형태
통합처리도 본사에 있는 통합테이블을 이용하여 여러 테이블에 대한 조인이 발생하지 않음
본사 데이터베이스에 있는 테이블에는 테이블의 전체 내용이 들어가고
각 지사 데이터베이스에 있는 테이블에는 지사별 관계가 들어감
지사간 데이터 중복이 발생하지 않지만 본사와 지사간에는 데이터 중복이 발생할 수 있음
전국고객에 대한 정보를 관리하고 지사에는 각 지사와 거래하는 고객정보를 관리
본사의 데이터를 이용해서 통계, 이동 등을 관리하며 지사에 있는 데이터를 이용해서 지사별로 빠른 업무수행
다른 지역간 데이터 복제에 많은 시간을 소요, 데이터베이스와 서버에 부하 발생, 야간에 배치 작업으로 수행
2) 광역복제
통합된 테이블을 한군데에 갖고 있으면서 지사와 본사와 동일한 데이터 모두 갖고 있는 형태
지사에 존재하는 데이터는 반드시 본사에 존재
모든 지사에 있는 데이터량과 본사에 있는 데이터량이 동일
본사에서 코드테이블에 데이터 입력,수정,삭제 발생, 각 지사에서는 코드데이터를 이용하는 프로세스 발생
본사에서는 데이터를 관리하고 지사에서는 데이터를 읽어서 업무프로세스 발생
광역복제도 실제 프로젝트에서 많이 사용하는 데이터베이스 분산기법에 해당
부분복제의 경우 지사에서 데이터에 대한 입력, 수정, 삭제가 발생하여 본사에서 이용하는 방식이 많음
광역복제는 본사에서 데이터가 입력, 수정, 삭제 되어 지사에서 이용하는 형태가 차이점
부분복제와 마찬가지고 복제에 많은 시간 소요, 데이터베이스와 서버에 부하가 발생하여 실시간 처리 보다는 배치
* 테이블 요약 분산
- 지역 간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우
- 요약의 방식에 따라 동일한 테이블 구조를 갖고 분산되어 있는 동일한 내용의 데이터를 이용하여 통합
- 분석요약 : 분산된 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식
- 통합요약 : 분산된 다른 내용이 데이터를 이용하여 통합된 데이터를 산출하는 방식
1) 분석요약
각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해 요약정보를 산출하는 분산방법
테이블에 있는 모든 컬럼과 로우가 지사에도 동일하게 존재
각 지사에는 동일한 내용에 대해 지사별로 요약되어 있는 정보를 갖고,
본사에는 각 지사의 요약정보를 통합하여 재산출하여 전체에 대한 요약정보를 가짐
제품별판매실적 테이블 가정, 각 지사에서 취급제품 동일, 지사별 판매된 제품에 대해 지사별 판매실적 관리
지사1, 지사2에 동일한 제품 취급되므로 본사에서 판매실적 집계 시 통합된 판매실적 관리 가능
각종 통계 데이터 산정할 경우, 모든 지사의 데이터 이용하면 성능 저하, 서버 부하, 업무 장애
통합 통계 데이터에 대한 정보제공에 용이한 분산 방법
본사에 분석 요약된 테이블을 생성하고 데이터는 역시 일반 업무가 종료되는 야간에 수행하여 생성
2) 통합요약
각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해 요약정보를 산출하는 방법
테이블에 있는 모든 컬럼과 로우가 지사에도 동일하게 존재하지만
각 지사에는 타지사와 다른 요약정보를 갖고 있고
본사의 각 지사에 대한 요약정보는 데이터를 같은 위치에 두는 것으로 통합하여 전체에 대한 요약정보를 가짐
본사에 통계 데이터를 산정하는 유형은 분석요약과 비슷하나
통합요약은 지사에서 산출한 요약정보를 한 군데 취합하여 보여줌
각종 통계 데이터 산정 시, 모든 지사의 데이터를 조인하면 성능 지연, 서버 부하, 업무 장애
본사에 통합 요약된 테이블을 생성하고 데이터는 역시 일반 업무가 종료되는 야간에 수행하여 생성
* 분산 데이터베이스를 적용하여 성능이 향상된 사례
- 성능이 중요한 사이트에 적용
- 공통코드, 기준정보, 마스터 데이터 등에 대해 분산환경을 구성하면 성능이 좋아짐
- 실시간 동기화가 요구되지 않을 때 좋음. 거의 실시간 업무적인 특징을 갖고 있을 때도 분산환경 구성
- 특정 서버에 부하가 집중이 될 때 부하를 분산할 때도 좋음
- 백업 사이트를 구성할 때 간단하게 분산기능을 적용하여 구성 가능
'SQLD' 카테고리의 다른 글
[SQLD : Ⅲ. SQL 기본] 2. DDL (0) | 2020.08.16 |
---|---|
[SQLD : Ⅲ. SQL 기본] 1. 관계형 데이터베이스 개요 (0) | 2020.08.16 |
[SQLD : Ⅱ. 데이터 모델과 성능] 6-1. 분산데이터베이스와 성능 - 개요 (0) | 2020.08.16 |
[SQLD : Ⅱ. 데이터 모델과 성능] 5-2. 데이터베이스 구조와 성능 - PK/FK (0) | 2020.08.16 |
[SQLD : Ⅱ. 데이터 모델과 성능] 5-1. 데이터베이스 구조와 성능 - 슈퍼타입/서브타입 모델 (0) | 2020.08.13 |