-
데이터 모델의 성능 3 (분산 데이터베이스)SQLD (자격증)/1-2. 데이터 모델의 성능 2020. 3. 3. 18:53
분산 데이터 베이스
- 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 DB
- 논리적으로 동일한 시스템에 속하지만 컴퓨터, 네트워크를 통해 물리적으로 분산되어 있는
데이들의 모임, 물리적 Site 분산, 논리적으로 사용자 통합, 공유
=> 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러
노드로 위치시켜 사용성 / 성능 등을 극대화 시킨 데이터베이스라고 정의할 수 있다.
분산 데이터베이스의 투명성(Transparency)
1. 분할 투명성(단편화)
- 하나의 논리적인 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 Site에 저장
2. 위치 투명성
- 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 System Catalog에 유지되어야 함
3. 지역사상 투명성
- 지역 DBMS와 물리적 DB 사이의 Mapping 보장, 각 지역 시스템 이름과 무관한 이름 사용 가능
4. 중복 투명성
- DB객체가 여러 Site에 중복 되어 있는지 알 필요가 없는 성질
5. 장애 투명성
- 구성요소(DBMS, Computer)의 장애에 무관한 Transaction의 원자성 유지
6. 병행 투명성
- 다수 Transaction 동시 수행시 결과의 일관성 유지, Time Stamp, 분산 2단계 Locking을 이용 구현
=> 대량 데이터의 지역적 처리나 글로벌 처리 등에서는 분산 데이터베이스가 유용하게 활용
분산 데이터베이스 장단점
장점
- 지역자치성, 점증적 시스템 용량 확장
- 신뢰성과 가용성
- 효용성과 융통성
- 빠른 응답 속도와 통신비용 절감
- 데이터의 가용성과 신뢰성 증가
- 시스템 규모의 적절한 조절
- 각 지역 사용자의 요구 수용 증대
단점
- 소프트웨어 개발 비용
- 오류의 잠재성 증대
- 처리 비용의 증대
- 설계, 관리의 복잡성과 비용
- 불규칙한 응답 속도
- 통제의 어려움
- 데이터 무결성에 대한 위협
분산 데이터베이스의 활용 방향성
데이터베이스 분산구성의 가치
- 통합된 데이터베이스에서 제공할 수 없는 빠른 성능 제공
분산 데이터베이스의 적용 기법
데이터베이스의 분산의 종류
1. 테이블 위치 분산
- 테이블의 구조는 변하지 않음
- 테이블이 다른 데이터베이스에 중복되어 생성되지 않는다.
- 설계된 테이블의 위치를 각각 다르게 위치시키는 것
2. 테이블 분할(Fragmentation) 분산
1) 수평분할(Horizontal Fragmentation)
- 지사(Node)에 따라 테이블을 특정 칼럼 값을 기준으로 ROW를 분리
* 칼럼은 분리되지 않는다.
- 모든 데이터가 각 지사별로 분리되어 있는 형태
- 각 지사에 있는 데이터와 다른 지사에 있는 데이터는 항상 배타적으로 존재
* 한군데 집합시켜도 Primary Key에 의해 중복이 발생하지 않음
2) 수직 분할 (Vertical Fragmentation)
- 자사(Node)에 따라 테이블 칼럼을 기준으로 칼럼을 분리한다.
* row 단위로는 분리되지 않는다.
- 모든 데이터가 각 지사별로 분리되어 있는 형태를 가지고 있다.
- 칼럼을 기준으로 분할하였기 때문에 각각의 테이블에는 동일한 Primary Key구조와 값을 가져야 함
-
3. 테이블 복제(Replication) 분산
동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리
1) 부분 복제(Segment Replication)
- 마스터 데이터베이스에서 테이블의 일부의 내용만 다른 지역이나 서버에 위치시킴
- 통합된 테이블을 본사에 가지고 있으면서 각 지사별로는 지사에 해당된 ROW를 가지고 있는 형태
* 지사에 존재하는 데이터는 반드시 본사에 존재
-> 본사의 데이터는 지사데이터의 합
- 각 지사에서 데이터 처리가 용이
- 전체 데이터에 대한 통합처리도 본사에 있는 통합 테이블을 이용하게 되므로 JOIN이 발생하지 않는 빠른 수행 가능
- 수평분할 분산과 마찬가지로 지사간에는 데이터의 중복이 발생 X, 본사와 지사간에는 중복이 항상 발생
단점
- 다른 지역간 데이터를 복제(Replication)하는데 많은 시간 소요
- 데이터베이스와 서버에 부하(Load)가 발생함
=> 보통 실시간(On-Line) 처리에 의해 복사하는 것보다는 야간에 배치작업에 의해 수행됌
- 본사와 지사 양쪽 모두 데이터를 수정하여 전송하는 경우 데이터의 정합성을 일치시키는 것이
어렵기 때문에 가능하면 한쪽(보통 지사)에서 데이터의 수정이 발생하여 본사로 복제(Replication)를 함
2) 광역 복제(Broadcast Replication)
- 마스터 데이터베이스의 테이블의 내용을 각 지역이나 서버에 존재시킴
- 통합된 테이블을 한 군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가짐
- 지사에 존재하는 데이터는 반드시 본사에 존재
- 본사에서 입력, 수정, 삭제가 발생 , 지사에서는 데이터를 조회하는 프로세스 발생
-> 즉, 복사에서는 데이터 관리, 지사에서는 데이터 이용
※ 부분복제 : 지사에서 데이터 입력, 수정, 삭제 발생 -> 본사에서 이용
광역복제 : 본사에서 데이터 입력, 수정, 삭제 발생 -> 지사에서 이용
4. 테이블 요약(Summarization) 분산
1) 분석 요약 (Rolup Summarization)
- 지역간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우가 있는데
요약의 방식에 따라, 동일한 테이블 구조를 가지고 있으면서 분산되어 있는 동일한 내용의
데이터를 이용하여 통합된 데이터를 산출하는 방식
- 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출
2) 통합 요약(Consolidation Summarization)
- 분산되어 있느 다른 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식
- 각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출
-> 분할, 복제 분산이 제일 많이 쓰임
'SQLD (자격증) > 1-2. 데이터 모델의 성능' 카테고리의 다른 글
데이터 모델의 성능 2 (0) 2020.03.03 데이터 모델의 성능(성능 데이터 모델링, 정규화, 반정규화) (0) 2020.03.02