컴퓨터공학 공부/SQLD (SQL 전문가 가이드)

SQLD 자격증 공부 데이터 모델과 성능-분산 데이터베이스와 성능 (SQL 전문가 가이드)

개발학생 2024. 4. 22. 17:59
반응형

*본 게시물은 2013년도 SQL 전문가 가이드 교재(일명 '노랭이')를 참고하여 공부하고 정리한 게시물입니다

 

1과목 데이터 모델링의 이해: 제2장 데이터 모델과 성능

1. 분산 데이터베이스의 개요

  • 여러 곳으로 분산하여 저장한 DB를 하나의 가상 시스템으로 사용할 수 있는 DB
  • 물리적 사이트는 분산되어 있으나 논리적으로 동일한 시스템에 속함
  • 과거에는 위치 중심이었으나 현재는 업무 필요에 따라 분산 설계

*설계 방식

‒ 상향식: 지역 스키마 작성 후 전역 스키마 작성
‒ 하향식: 전역 스키마 작성 후 지역사상 스키마 작성

2. 분산 데이터베이스의 투명성(Transparency)

  • 분산 데이터베이스가 되기 위해서는 6가지 투명성을 만족해야 함
투명성 설명
분할 투명성
(단편화)
하나의 논리적 관계가 분할되어 각 단편의 사본이 여러 사이트에 저장됨 
위치 투명성 사용하려는 데이터의 저장 장소 명시하지 않아도 됨, 위치정보가 System Catalog에 유지되어야 함
지역사상 투명성 지역 DBMS와 물리적 DB 사이의 사상(Mapping)이 보장되어, 각 지역시스템 이름과 무관한 이름 사용 가능
중복 투명성 DB 객체가 여러 사이트에 중복 되어 있는지 알 필요 없음
장애 투명성 구성요소(DBMS, 컴퓨터)의 장애에 무관하게 트랜잭션의 원자성이 유지됨
병행 투명성 다수 트랜잭션 동시 수행 시 결과의 일관성이 유지되며, 타임스탬프와 분산 2단계 Locking을 이용하여 구현

 

 

3. 분산 데이터베이스 적용 방법 및 장단점

1) 적용 방법

  • 업무의 흐름을 보고 업무 구성에 따른 아키텍처 특징에 따라 데이터베이스를 구성
    -> 단순히 분산 환경에서 데이터베이스를 구축할 뿐만 아니라,
         업무의 특징에 따라 데이터베이스 분산구조를 선택적으로 설계하는 능력 필요

2) 장단점 

장점 단점
지역 자치성, 점증적 시스템 용량 확장 소프트웨어 개발 비용 및 처리 비용 증가
신뢰성과 가용성 증가(특히 데이터) 오류의 잠재성 증대
효용성과 융통성 증가 설계, 관리의 복잡성과 비용 증가
빠른 응답 속도로 인한 통신비용 절감 불규칙한 응답 속도
시스템 규모의 적절한 조절 통제의 어려움
각 지역 사용자의 요구 수용 증대 데이터 무결성 관리 어려움

 

4. 분산 데이터베이스의 적용 기법 

1) 테이블 위치 분산

  • 테이블의 구조는 변하지 않고, 테이블이 다른 데이터베이스에 중복되어 생성되지도 않음
  • 설계된 테이블의 위치를 각각 다르게 분산함
  • 예시: 자재품목은 본사에서 구입하여 관리하고 각 지사별로 자재품목을 이용하여 제품을 생산한다고 하면,
             다음 이미지와 같이 데이터베이스를 본사와 지사단위로 분산 가능 

위치/테이블 자재품목 생산제품 협력회사 사원 부서
본사    
지사      

2) 테이블 분할(Fragmentation) 분산

  • 설계된 테이블의 위치를 각각 다르게 분산하면서, 각 테이블을 쪼개서 분산함

(1) 수평분할(Horizontal Fragmentation)

  • 테이블을 로우(Row) 단위로 분할
  • 지사(Node)에 따라 테이블을 특정 칼럼 값을 기준으로 로우(Row)를 분리 [칼럼은 분리되지 않음]
    -> 각 지사별로 사용하는 로우(Row)가 다를 때 사용
  • 모든 데이터가 각 지사별로 분리되어 있는 형태(=데이터가 지사별로 별도로 존재)
    -> 한 지사의 데이터는 항상 다른 지사의 데이터와 배타적으로 존재하며,
        데이터를 한 군데 집합시켜 놓아도 Primary Key에 의해 중복이 발생하지 않음
    => 한 시점에 한 데이터만이 존재하므로 데이터 무결성이 보장되는 형태
  • 통합처리 프로세스가 많은지를 먼저 검토한 이후에 수평분할 고려해야 함
    -> 각 지사에 존재하는 테이블에 대해 통합처리를 하게 되면 조인이 발생하여 성능 저하가 발생할 수 있기 때문

 

위치/테이블
(위 or 아래)
고객 생산제품 협력회사 사원 부서
지사 1 ▲▽ ▲▽ ▲▽ ▲▽ ▲▽
지사 2 △▼ △▼ △▼ △▼ △▼

(2) 수직분할(Vertical Fragmentation)

  • 지사(Node)에 따라 테이블을 칼럼(Column) 단위로 분할
    -> 각 테이블에는 동일한 PK 구조와 값을 가지고 있어야 함
  • 모든 데이터가 각 지사별로 분리되어 있음
    -> 지사별로 쪼개진 테이블들을 조합하면 PK가 동일한 데이터의 조합이 가능해야 하며,
        하나의 완전한 테이블이 구성되어야 함
  • 데이터를 한 군데 집합시켜 놓아도 동일한 PK는 하나로 표현하면 되므로, 데이터 중복이 발생하지 않음

위치/테이블 제품 분할 칼럼
본사 제품번호, 단가
지사 제품번호, 재고량

3) 테이블 복제 분산(Table Replication)

  • 동일한 테이블을 다른 지역이나 서버에서 동시 생성하여 관리
  • 마스터 데이터베이스에서 테이블의 내용을 얼마나/어떻게 서버에 위치시키냐에 따라 분류

(1) 부분복제(Segment Replication)

통합된 테이블을 한 군데(본사)에 가지고 있는데, 각 지사별로는 지사에 해당된 로우를 가지고 있는 형태 
-> 지사에 존재하는 데이터는 반드시 본사에 존재하게 됨(본사의 데이터는 지사 데이터의 합)

=> 실제 프로젝트에서 많이 사용!!

 

위치/테이블 고객
본사
지사 1
지사 2

(2) 광역복제(Broadcast Replication)

통합된 테이블을 한 군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태 
-> 지사에 존재하는 데이터는 반드시 본사에 존재하게 됨
     (모든 지사에 있는 데이터양과 본사에 있는 데이터양이 동일함
      : 본사와 지사 모두 동일한 정보를 갖고 있으므로 데이터처리에 특별한 제약을 받지 않음)

본사, 지사1, 지사2 모두 동일한 양의 코드 테이블의 데이터를 갖고 있음

위치/테이블 코드
본사
지사 1
지사 2

4) 테이블 요약 분산(Table Summarization) - 둘 다 지사간의 요약 내용은 동일함

(1) 분석요약(Rollup Replication)

각 지사별 요약정보를 본사에서 통합하여, 전체 요약정보 산출

-> 각 지사는 동일한 내용에 대해 지사별로 요약되어 있는 정보를 가지고 있고,
    본사에는 각 지사의 요약정보를 통합한 후 전체에 대한 요약정보를 가지고 있음 

위치/테이블 판매실적
본사
지사 1
지사 2

(2) 통합요약(Consolidation Replication)

각 지사별로 다른 내용의 정보를 본사에서 통합하여, 전체 요약정보 산출
-> 각 지사들은 서로 다른 요약정보를 가지고 있고,
    본사에는 각 지사의 요약정보 데이터를 같은 위치에 두는 것으로 통합하여 전체에 대한 요약정보를 가지고 있음

 

위치/테이블 판매실적
본사
지사 1 ▲▽
지사 2 △▼

5. 분산 데이터베이스를 적용하여 성능 향상

  • 성능이 중요한 시이트에 적용
  • 공통코드, 기준정보, 마스터 데이터 등에는 분산환경을 구성
  • 실시간 동기화가 요구되지 않을 때
    -> 거의 실시간(Near Real Time)의 업무적 특징을 가지고 있을 때는 분산 환경 가능
  • 특정 서버에 부하가 집중될 때 부하 분산
  • 백업 사이트(Disaster Recovery Site)를 구성할 때 간단하게 분산기능을 적용하여 구성

반응형