물리데이터베이스
분산 데이터베이스의 정의
-
하나의 데이터베이스 관리 시스템(DBMS)이 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스
-
논리적으로 같은 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터베이스
-
데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 노드로 위치시켜 사용성과 성능을 극대화 시킨 데이터베이스
분산 데이터베이스 설계 시 고려사항
- 작업부하(Work Load)의 노드별 분산 정책
- 지역의 자치성 보장 정책
- 데이터의 일관성 정책
- 사이트나 회선의 고장으로 부터의 회복 기능
- 통신 네트워크를 통한 원격 접근 기능
분산 데이터베이스의 목표
-
투명성
-
위치투명성
- 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 할 수 있음
-
중복투명성
- 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행
-
병행투명성
- 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
-
장애투명성
- 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리
분산 데이터베이스의 장/단점
- 장점
- 지역 자치성, 점증적 시스템 용량 확장
- 신뢰성과 가용성이 높음
- 효용성과 융통성이 높음
- 빠른 응답 속도와 통신비용 절감
- 시스템의 성능 향상
- 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음
- 자료의 공유성 향상
- 시스템 규모의 적절한 조절 가능
- 각 지역 사용자의 요구 수용 증대
- 단점
- 소프트웨어 개발 비용 증가
- DBMS가 수행할 기능이 복잡
- 데이터베이스 설계, 관리의 복잡성
- 오류의 잠재성 증가
- 처리 비용의 증가
- 데이터 무결성에 대한 위협
분산 데이터베이스 설계 방법
1. 테이블 위치 분산
- 테이블 위치 분산은 데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치하는 방법
- 테이블 위치를 분산할 때는 테이블의 구조를 변경하지 않으며, 다른 데이터베이스의 테이블과 중복되지 않게 배치
- 데이터베이스의 테이블을 각각 다른 위치에 배치하려면 해당 테이블들이 놓일 서버들을 미리 설정해야 함
2. Fragment 분할
- 테이블의 데이터를 분할하여 분산시키는 것
- 분할 규칙
- 완전성 : 전체 데이터를 대상으로 분할해야 함
- 재구성 : 분할된 데이터는 관계 연산을 활용하여 본래의 데이터로 재구성할 수 있어야 함
- 상호 중첩 배제 : 분할된 데이터는 서로 다른 분할의 항목에 속하지 않아야 함
- 주요 분할 방법
- 수평 분할 : 테이블을 행(Row) 단위로 분할
- 수직 분할 : 테이블을 열(Column) 단위로 분할
3. Allocation 할당
- 할당은 동일한 분할을 여러 개의 서버에 생성하는 분산 방법
- 중복이 없는 할당과 중복이 있은 할당으로 구분됨
- 비중복 할당 방식
- 최적의 노드를 선택해서 분산 데이터베이스의 단일 노드에서만 분할이 존재하도록 하는 방식
- 일반적으로 애플리케이션에는 릴레이션을 배타적 분할로 분리하기 힘든 요구가 포함되므로 분할된 테이블 간의 의존성은 무시되고 비용 증가, 성능 저하 등의 문제가 발생할 수 있음
- 중복 할당 방식
- 동일한 테이블을 다른 서버에 복제하는 방식
- 일부만 복제하는 부분 복제와 전체를 복제하는 완전 복제가 있음