으쌰으쌰💪/SQL

데이터 모델과 성능 - 분산 데이터베이스와 성능

_꼬마돌 2023. 8. 22. 00:48
반응형

분산 데이터베이스 개요

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에도 위치 시키면 성능이 향상된다. (로컬 조인으로 인한 성능 향상)

반응형