분산 데이터베이스 개요
1. 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스
2. 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임. 물리적 Site 분산, 논리적으로 사용자 통합 및 공유
분산 데이터베이스의 투명성 (Transparency)
분할 투명성 (단편화)
- 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
위치 투명성
- 사용하려는 데이터의 저장 장소 명시 불필요. 위치 정보가 System Catalog에 유지되어야 함.
지역 사상 투명성
- 지역 DBMS와 물리적 DB 사이의 Mapping 보장. 각 지역 세스템 이름과 무관한 이름 사용 가능.
중복 투명성
- DB 객체가 여러 site에 중복되어 있는지 알 필요가 없는 성질
장애 투명성
- 구성요소 (DBMS, Computer)의 장애에 무관한 Transaction의 원자성 유지
병행 투명성
- 다수 Transaction 동시 수행 시 결과의 일관성 유지, Time Stamp, 분산 2단계 Locking을 이용 구현
분산 데이터베이스의 적용 방법 및 장단점
분산 데이터베이스 적용방법
- 분산 환경의 데이터베이스를 성능이 우수하게 현장에서 가치 있게 사용하는 방법은 업무의 흐름을 보고 업무 구성에 따른 아키텍쳐 특징에 따라 데이터베이스를 구성하는 것
- 단순히 분산 환경에서 데이터베이스를 구축하는 것이 목적이 아니라, 업무의 특징에 따라 데이터베이스 분산구조를 선택적으로 설계하는 능력이 필요
분산 데이터베이스의 장단점
장점
- 지역자치성, 점증적 시스템 용량 확장
- 신뢰성과 가용성
- 효용성과 융통성
- 빠른 응답 속도와 통신비용 절감
- 데이터의 가용성과 신뢰성 증가
- 시스템 규모의 적절한 조절
- 각 지역 사용자의 요구 수요 증대
단점
- 소프트웨어 개발 비용
- 오류의 잠재성 증가
- 처리 비용의 증가
- 설계, 관리의 복잡성과 비용
- 불규칙한 응답 속도
- 통제의 어려움
- 데이터 무결성에 대한 위협
분산 데이터베이스의 활용 방향성
위치 중심의 분산 설계 (과거 방식)
업무 필요에 의한 분산 설계 (현재 방식)
- 통합된 데이터베이스에서 제공할 수 없는 빠른 성능을 제공
- 원거리 또는 다른 서버에 접속하여 처리함으로 인해 발생되는 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 분석하여 분산 데이터베이스 환경 구축을 함으로써 성능 상 문제 발생 원인을 제거할 수 있음.
분산 데이터베이스의 적용 기법
테이블 위치 분산
- 설계된 테이블의 위치를 각각 다르게 위치시키는 것 (예: 자재품목은 본사 DB, 생산제품은 지사 DB)
테이블 분할(Fragmentation) 분산
- 각각의 테이블을 쪼개 분산하는 방법
- 수평분할: 지사(Node)에 따라 테이블을 특정 칼럼의 값을 기준으로 로우(row)를 분리
- 수직분할: 지사(Node)에 따라 테이블 칼럼을 기준으로 칼럼(column)을 분리. 로우단위로는 분리되지 않는다.
테이블 복제(Replication) 분산
- 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형
- 부분복제: 통합된 테이블을 한 군데(본사)에 가지고 있으면서 각 지사별로는 지사에 해당된 로우를 가지고 있는 형태
- 광역 복제: 통합된 테이블을 한 군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태
테이블 요약(Summarization) 분산
- 지역간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우
- 분석요약(Rollup Replication): 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법
- 통합요약: 각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법
분산 데이터베이스를 적용하여 성능이 향상된 사례
트랜잭션 마다 개별적으로 원격지 조인
트랜잭션 마다 내부적으로 조인 (복제분산 -> 광역복제)
- 개인정보를 관리하는 데이터베이스가 인사 데이터베이스일 때, 분산이 안 된 경우 각 서버에 독립적으로 테이블이 있을 때 성능이 저하될 수 있다. (원격지 조인으로 인한 성능 저하)
- 인사DB의 사용자 정보를 복제분산하여 업무 DB에도 위치 시키면 성능이 향상된다. (로컬 조인으로 인한 성능 향상)
'으쌰으쌰💪 > SQL' 카테고리의 다른 글
SQL기본 - 관계형 데이터베이스 개요 (0) | 2023.08.23 |
---|---|
데이터 모델과 성능 - 연습문제 오답노트 (0) | 2023.08.22 |
데이터 모델과 성능 - 데이터베이스 구조와 성능 (0) | 2023.08.21 |
데이터 모델과 성능 - 대량 데이터에 따른 성능 (0) | 2023.08.17 |
데이터 모델과 성능 - 반정규화와 성능 (0) | 2023.08.16 |