SQLD 2-6 ] 분산 데이터베이스와 성능
분산 데이터베이스
- 데이터베이스를 여러 군데로 위치시켜서 사용성/성능 등을 극대화 시킨 데이터베이스
- 논리적으로는 동일한 시스템에 속하지만, 물리적으로는 분산되어있는 데이터들의 모임.
분산 데이터베이스의 투명성
- 분산 데이터베이스 가 되려면 6가지 투명성 을 만족해야한다!
분할. 위치. 지역사상. 중복. 장애. 병행.
분산 데이터베이스의 적용 방법 및 장단점
1. 분산 데이터베이스 적용 방법
- 업무의 흐름을 보고 업무 구성에 따른 아키텍처 특징에 따라 구성.
단순히 분산환경에서 구축해보자! 라는게 목적이 아니라, 업무에 따라 이건 분산구조를 해야겠군. 설계하는 능력이..
2. 분산 데이터베이스 장단점
* 데이터무결성 : 무결성 은 온전함 을 의미. 데이터 값이 정확한 상태
분산 데이터베이스의 활용 방향성
- 분산 데이터베이스는 데이터의 양이 엄청나게 많아지면서 쓰이는 최근 데이터베이스 기술이다.
업무적인 특징에 따라 활용해야한다. 옛날에는 분산 시스템하면 그냥 단순히 위치 적인 면에서만 멀리 떨어져있었지만.
지금은 확실한 '업무 필요'에 의해 설계해야한다!
데이터베이스 분산구성의 가치
- 통합된 데이터베이스에서 찾아볼 수 없는 빠른성능!!
- 네트워크 부하가 덜 하니까 또 그만큼 제공하는 빠른 성능!!
분산 데이터베이스의 적용 기법
- 무슨 기법들이 있을까. 종류에는 테이블 위치분산, 테이블 분할 분산, 테이블 복제 분산, 테이블 요약 분산 이 있다.
- 가장 많이 쓰이는건 테이블 복제 분산.
1. 테이블 위치 분산
- 테이블의 구조는 변하지 않는다
- 말 그대로 '위치' 분산 이니까. 테이블 이 다른 위치에 정말 있다. 본사, 지사..
- 그만큼 위치가 각각 있으니까.. 위치를 파악할 수 있는 문서가 필요하다.
2. 테이블 분할 분산
- 테이블 분할 분산은.. 위치도 다른곳에 놓기도 하고.. 또 테이블을 분할 시키기 까지..!!
- 테이블 분할 하는데는 두 가지 방법(수평/수직) 분할이 있다.
2-1. 수평분할
- 테이블을 수평으로 짜른다?? 아.. 지사마다 한 테이블을 가로로 짤라서 나눠 저장하는것.
- 각 지사 별로 사용하는 로우(Row)가 다를 때 이용한다.
- 데이터를 수정할 때에는 남의 지사꺼 수정하지말고 자기네 데이터만 수정해야한다.
- 단점은.. 각 지사들 테이블들을 모아서 통합처리 하려면 JOIN 이 발생하여 성능 저하가 에상된다.
- 중복이 발생하지 않고, 데이터의 무결성이 보장된다
2-2. 수직분할
- 칼럼을 기준으로 분리한다. 로우 단위로는 분리하지 않는다(당연한말)
- 칼럼으로 짤랐으니까, PK 를 각각 가지고 있어야 한다.
- 데이터를 한군데 모아놔도 중복이 안된다. (모았을 때 동일한 PK는 하나로 표현하면 되니까)
- 전체 칼럼을 보려면 각 지사마다 떨어져있는걸 다 JOIN 해야하니.. 별로.
3. 테이블 복제 분산
- 동일한 테이블을 다른 지역이나 서버에 동시에 생성하여 관리한다.
- 부분복제 : 마스터 데이터베이스에서 테이블의 일부만 다른데에 저장
- 광역복제 : 마스터 데이터베이스의 테이블의 내용을 다른데에 저장
3-1. 부분복제
- 통합된 테이블을 본사에 갖고 있으면서 각 지사별로 해당된 Row 들을 가지고 있는 형태
- 즉.. 본사 = 지사 + 지사
- 각 지사에서 데이터 처리가 용이하다. 통합처리도 JOIN 안써도 되고 그냥 본사꺼 쓰면 되고.
- 지사간 끼리는 안겹치고.. 실제 프로젝트에서 많이 쓰이는 기법이다.
- 다른 지역간 데이터 복제할때 시간이 좀 걸린다고 한다. 그래서 복제하는건 밤에 한다고...
- 또, 본사와 지사 양쪽에서 수정하면 좀 애매해지기 때문에 지사에서 수정->본사로 복제 한다.
3-2. 광역복제
- 그냥 다 갖고있네
- 실전에서도 많이 쓰임. 부분복제처럼.
- 본사에서 수정, 삭제, 입력 하면 똑같이 지사에서 적용된다.
- 이것도 복제 할때 시간이 좀 걸려서 밤에 작업한다고 한다.
4. 테이블 요약 분산
- 지역간에 데이터가 비슷 하지만 서로 다른 유형으로 존재하는 경우가 있다.
- 분석요약 : 동일한 테이블 구조를 가지고 있는데, 분산되어 있는 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출
- 통합요약 : 분산되어 있는 다른 내용의 데이터를 이용하여 통합된 데이터를 산출
4-1. 분석요약
- 각 지사별로 존재하는 정보를 본사에 올리는 느낌? 본사에서는 각 지사꺼 다 받아서 통합해놓은거 갖고있고.
- 통계 같은거 낼때 좋음.
- 이것 또한 야간에 작업한다..
4-2. 통합요약
- 각 지사별로 다른 내용의 정보를 본사에서 통합하여 다시 산출
- 분석요약이랑 뭐가다른가?
분석요약 vs 통합요약의 예
분석요약 : A, B, C 각 지사는 모두 '가-상품'의 판매실적을 가지고 있으며, 지사별 판매실적은 서로 다름
이를 본사 S 가 통합하여 '가-상품'의 전체 판매실적을 산출함
통합요약 : 지사 A는 '가-상품'만을 전문으로 하여 '가-상품'의 판매실적만 가지고 있고,
지사 B는 '나-상품'만을 전문으로 하여 '나-상품'의 판매실적만 가지고 있으며,
지사 C는 '다-상품'만을 전문으로 하여 '다-상품'의 판매실적만 가지고 있음
이를 본사 S가 통합하여 '가, 나, 다 - 상품'의 통합 판매실적을 산출함
분산 데이터베이스를 적용해서 성능이 향상된 사례
데이터베이스 분산 설계는 다음과 같은 경우에 적용하면 효과적이다.
1. 성능이 중요한 사이트
2. 공통코드, 기준정보, 마스터데이터 등에 적용
3. 실시간 동기화가 요구되지 않을 때가 좋다. 뭐 실시간의 업무적인 특성을 가지고 있어도 구성은 할 수 있다
4. 특정 서버에 부하가 집중이 될 때
5. 백업 사이트를 구성할 때
댓글
이 글 공유하기
다른 글
-
SQLD 3-2 ] DDL (DATA DEFINITION LANGUAGE)
SQLD 3-2 ] DDL (DATA DEFINITION LANGUAGE)
2016.02.18 -
SQLD 3-1 ] 관계형 데이터베이스 개요
SQLD 3-1 ] 관계형 데이터베이스 개요
2016.02.18 -
SQLD 2-5 ] 데이터베이스 구조와 성능
SQLD 2-5 ] 데이터베이스 구조와 성능
2016.02.15 -
SQLD 2-4 ] 대량 데이터에 따른 성능
SQLD 2-4 ] 대량 데이터에 따른 성능
2016.02.14