[ SQLD : I. 데이터 모델링의 이해] 2-6. 분산 데이터베이스와 성능

문지은·2023년 6월 1일
0

SQLD

목록 보기
10/30
post-thumbnail

[SQLD 시험 대비] 1과목. 데이터 모델링의 이해 : 2장. 데이터 모델과 성능 - 6. 분산 데이터베이스와 성능

분산 데이터베이스와 성능

분산 데이터베이스의 정의

  • 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스
  • 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임. 물리적 Site 분산, 논리적으로 사용자 통합·공유
  • 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스

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

분산데이터베이스가 되기 위해서는 6가지 투명성(Transparency)을 만족해야 한다.

  • 분할 투명성 (단편화)
    • 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
  • 위치 투명성
    • 사용하려는 데이터의 저장 장소 명시 불필요.
    • 위치정보가 System Catalog에 유지되어야 함
  • 지역사상 투명성
    • 지역DBMS와 물리적 DB사이의 Mapping 보장
    • 각 지역시스템 이름과 무관한 이름 사용 가능
  • 중복 투명성
    • DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질
  • 장애 투명성
    • 구성요소(DBMS, Computer)의 장애에 무관한 Transaction의 원자성 유지
  • 병행 투명성
    • 다수 Transaction 동시 수행시 결과의 일관성 유지
    • Time Stamp, 분산 2단계 Locking을 이용 구현

분산 데이터베이스의 장단점

분산 데이터베이스의 장점

  • 지역 자치성, 점증적 시스템 용량 확장
  • 신뢰성과 가용성
  • 효용성과 융통성
  • 빠른 응답 속도와 통신비용 절감
  • 데이터의 가용성과 신뢰성 증가
  • 시스템 규모의 적절한 조절
  • 각 지역 사용자의 요구 수용 증대

분산 데이터베이스의 단점

  • 소프트웨어 개발 비용
  • 오류의 잠재성 증대
  • 처리 비용의 증대
  • 설계, 관리의 복잡성과 비용
  • 불규칙한 응답 속도
  • 통제의 어려움
  • 데이터 무결성에 대한 위협

데이터베이스 분산구성의 가치

  • 데이터를 분산 환경으로 구성하였을 때 가장 핵심적인 가치는 바로 통합된 데이터베이스에서 제공할 수 없는 빠른 성능을 제공한다는 점
  • 원거리 또는 다른 서버에 접속하여 처리하므로 인해 발생되는 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 분산된 데이터베이스 환경을 구축함으로 빠른 성능을 제공하는 것이 가능해짐

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

테이블 위치 분산

  • 설계된 테이블의 위치를 각각 다르게 위치시키는 것
  • 테이블의 구조는 변하지 않고, 테이블이 다른 데이터베이스에 중복되어 생성되지도 않음
  • 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우에 이용
  • 테이블의 위치가 위치별로 다르므로 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서 필요

테이블 분할(Fragmentation) 분산

  • 단순히 위치만 다른 곳에 두는 것이 아니라 각각의 테이블을 쪼개어 분산하는 방법
  • 테이블을 나누는 기준에 따라 두 가지로 구분

수평분할(Horizontal Fragmentation)

  • 지사(Node)에 따라 테이블을 특정 칼럼의 값을 기준으로 로우(Row)를 분리. 칼렴은 분리되지 않음
  • 데이터를 수정할 때는 타 지사에 있는 데이터를 원칙적으로 수정하지 않고 자신의 데이터에 대해서 수정
  • 각 지사에 존재하는 테이블에 대해서 통합처리를 해야 하는 경우는 조인(JOIN)이 발생하여 성능 저하가 예상되므로 통합처리 프로세스가 많은지를 먼저 검토한 이후에 많지 않은 경우에 수평분할을 해야 함.
  • 데이터가 지사별로 별도로 존재하므로 중복은 발생하지 않음 (데이터 무결성 보장)

수직분할(Vertical Fragmentation)

  • 지사(Node)에 따라 테이블 칼럼을 기준으로 칼럼(Row)을 분리한다. 로우(Row) 단위로 는 분리되지 않는다.
  • 칼럼을 기준으로 분할하였기 때문에 각각의 테이블에는 동일한 Primary Key구조와 값을 가지고 있어야 함.
    • 지사별로 쪼개어진 테이블들을 조합하면 Primary Key가 동일한 데이터의 조합이 가능해야 하며 하나의 완전한 테이블이 구성되어야 함.
    • 데이터를 한군데 집합시켜 놓아도 동일한 Primary Key는 하나로 표현하면 되므로 데이터 중복은 발생되지 않음.
  • 테이블의 전체 칼럼 데이터를 보기 위해서는 각 지사(Node)별로 흩어져 있는 테이블들을 조인(JOIN)하여 가져와야 하므로 가능하면 통합하여 처리하는 프로세스가 많은 경우에는 이용하지 않음.

테이블 복제(Replication) 분산

  • 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형
  • 복제 방식에 따라 두 가지로 구분

부분복제(Segment Replication)

  • 마스터 데이터베이스에서 테이블의 일부의 내용만 다른 지역이나 서버에 위치
  • 통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사별로는 지사에 해당된 로우(Row)를 가지고 있는 형태
  • 지사에 존재하는 데이터는 반드시 본사에 존재. 즉, 본사의 데이터는 지사데이터의 합
  • 각 지사에서 데이터 처리가 용이할 뿐 만 아니라 전체 데이터에 대한 통합처리도 본사에 있는 통합 테이블을 이용하게 되므로 여러 테이블에 조인(JOIN)이 발생하지 않는 빠른 작업 수행이 가능해짐.

광역복제(Broadcast Replication)

  • 마스터 데이터베이스의 테이블의 내용을 각 지역이나 서버에 존재시킴
  • 통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태
  • 지사에 존재하는 데이터는 반드시 본사에 존재. 모든 지사에 있는 데이터량과 본사에 있는 데이터량이 동일
  • 본사와 지사모두 동일한 정보를 가지고 있으므로 본사나 지사나 데이터처리에 특별한 제약을 받지는 않는다.
  • 부분복제의 경우는 지사에서 데이터에 대한 입력, 수정, 삭제가 발생 하여 본사에서 이용하는 방식이 많은 반면, 광역복제의 경우에는 본사에서 데이터가 입력, 수정, 삭제가 되어 지사에서 이용하는 형태가 차이점

테이블 요약(Summarization) 분산

  • 지역간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우
  • 요약의 방식에 따라 두 가지로 구분

분석요약 (Rollup Replication)

  • 동일한 테이블 구조를 가지고 있으면서 분산되어 있는 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식
  • 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시
    전체에 대해서 요약정보를 산출

통합요약 (Consolidation Summarization)

  • 분산되어 있는 다른 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식
  • 각 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출

분산 데이터베이스를 적용하여 성능이 향상된 사례

데이터베이스 분산 설계는 다음과 같은 경우에 적용하면 효과적이다.

  • 성능이 중요한 사이트에 적용해야 한다.
  • 공통코드, 기준정보, 마스터 데이터 등에 대해 분산환경을 구성하면 성능이 좋아진다.
  • 실시간 동기화가 요구되지 않을 때 좋다. 거의 실시간(Near Real Time)의 업무적인 특징을 가지고 있을 때도 분산 환경을 구성할 수 있다.
  • 특정 서버에 부하가 집중이 될 때 부하를 분산할 때도 좋다.
  • 백업 사이트(Disaster Recovery Site)를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있다.
profile
코드로 꿈을 펼치는 개발자의 이야기, 노력과 열정이 가득한 곳 🌈

0개의 댓글