8. 분산 데이터베이스 설계 <중요>
1) 분산 데이터베이스 정의
논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스를 말한다.
데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 한다.
2) 분산 데이터베이스의 구성요소
분산 처리기 | 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템을 말한다 |
분산 데이터베이스 | 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성됨 |
통신 네트워크 | 분산 처리기들을 통신망으로 연결해 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크 |
3) 분산 데이터베이스 설계 시 고려 사항
작업 부하의 노드별 분산 정책
지역의 자치성 보장 정책
데이터의 일관성 정책
사이트나 회선의 고장으로부터의 회복 기능
통신 네트워크를 통한 원격 접근 기능
4) 분산 데이터베이스의 목표
위치 투명성 : 액세스 하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적 명칭만으로 액세스 할 수 있음
중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.
* 이전에도 기출되었던 개념입니다!
5) 분산 데이터베이스의 장단점
장점 | 지역 자치성이 높다 자료의 공유성이 향상됨 분산 제어가 가능 시스템 성능이 향상 중앙 컴퓨터 장애가 전체 시스템에 영향을 끼치지 않음 효용성과 융통성이 높음 신뢰성 및 가용성이 높음 점진적 시스템 용량 확장이 용이 |
단점 | DBMS가 수행할 기능이 복잡해짐 데이터베이스 설계가 어려움 소프트웨어 개발 비용이 증가 처리 비용이 증가 잠재적 오류가 증가 |
6) 분산 데이터베이스 설계
애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것을 목적으로 함
잘못 설계된 분산 데이터베이스는 복잡성 증가, 응답 속도 저하, 비용 증가 등의 문제가 발생
분산 데이터베이스의 설계는 전역 관계망을 논리적 측면에서 소규모 단위로 분할한 후, 분할된 결과를 복수의 노드에 할당하는 과정으로 진행됨
노드에 할당된 소규모 단위를 분할(Fragment)라 부름
분산 설계 방법 : 테이블 위치 분산, 분할, 할당
7) 테이블 위치 분산
데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치하는 방법
테이블의 위치를 분산할 때는 테이블의 구조를 변경하지 않으며, 다른 데이터베이스의 테이블과 중복되지 않게 배치
8) 분할(Fragment)
테이블의 데이터를 분할하여 분산시키는 것
분할 규칙
완전성 : 전체 데이터를 대상으로 분할
재구성 : 분할된 데이터는 관계 연산을 활용해 본래의 데이터로 재구성할 수 있어야 함
상호 중첩 배제 : 분할된 데이터는 서로 다른 분할의 항목에 속하지 않아야 함
9) 할당(Allocation)
동일한 분할을 여러 개의 서버에 생성하는 분산 방법으로, 중복이 없는 할당과 중복이 있는 할당으로 나뉜다.
비중복 할당 방식
최적의 노드를 선택해 분산 데이터베이스의 단일 노드에만 분할이 존재하도록 하는 방식
분할된 테이블 간의 의존성은 무시되고, 비용 증가, 성능 저하등의 문제가 발생할 수 있음
중복할당 방식
동일한 테이블을 다른 서버에 복제하는 방식으로, 일부만 복제하는 부분 복제와 전체를 복제하는 완전 복제가 있다.
9. 데이터베이스 이중화 / 서버 클러스터링
1) 데이터베이스 이중화
시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생시 이를 복구하기 위해 동일한 데이터베이스를 복제해 관리하는 것
2) 데이터베이스 이중화의 분류
Eager 기법 | 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달해 변경 내용이 즉시 적용되도록 하는 기법 |
Lazy 기법 | 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성해 각 데이터베이스에 전달되는 기법으로, 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주 |
3) 데이터베이스 이중화 구성 방법
활동-대기(Active-StandBy) 방법 | 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 모든 서비스를 대신 수행함 |
활동-활동(Active-Active) 방법 | 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공 |
4) 클러스터링(Clustering)
클러스터링은 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
클러스터링은 서버 이중화 및 공유 스토리지를 사용해 서버의 고가용성을 제공함
종류
고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리해 서비스 중단을 방지하는 방식으로, 일반적으로 언급되는 클러스터링은 고가용성 클러스터링이다.
병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식
'2020 정보처리기사 필기 > 3과목 - 데이터베이스 구축' 카테고리의 다른 글
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(물리 데이터베이스 설계_2) (0) | 2020.08.21 |
---|---|
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(물리 데이터베이스 설계_1) (0) | 2020.08.21 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_5) (0) | 2020.08.19 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_4) (0) | 2020.08.19 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_3) (0) | 2020.08.01 |