자격증/SQL개발자(SQLD)

2-6장. 데이터 모델과 성능_분산 데이터베이스와 성능

김엉배 2023. 5. 21. 14:14
728x90
반응형

 

SQLD 단원별 목록으로


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

- 여러 곳으로 분산되어 잇는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스

- 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임

- 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이 터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 

  시킨  데이터베이스

 


 

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

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

1) 분할 투명성 (단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장

2) 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 System Catalog에 유지되어야 함

3) 지역사상 투명성 : 지역 DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능

4) 중복 투명성 : DB 객체가 여러 site에 중복되어 있는지 알 필요가 없는 성질

5) 장애 투명성 : 구성요소(DBMS, Computer)의 장애에 무관한 Transaction의 원자성 유지

6) 병행 투명성 : 다수 Transaction 동시 수행시 결과의 일관성 유지, Time Stamp, 분산 2단계 Locking을 이용 구현

 


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

 


4. 분산 데이터베이스의 활용 방향성

- 업무적인 기능이 다양해지고 데이터의 양이 기하급수적으로 증가하는 최근 데이터베이스 환경에서 적용하는 고급화된 기술이다.

  업무적인 특징에 따라 분산 데이터베이스를 활용하는 기술이 필요하다.

 


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

- 거리 또는 다른 서버에 접속하여 처리하므로 인해 발생되는 네트워크 부하 및 트랜잭션 집중에 따른 성능 저하의 원인을 분산된

  데이터베이스 환경을 구축하므로 빠른 성능을 제공하는 것이 가능해진다.

 

 


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

가) 테이블 위치 분산

- 테이블 위치 분산은 테이블의 구조는 변하지 않는다. 또한 테이블이 다른 데이터베이스에 중복되어 생성되지도 않는다.

   다만 설계된 테이블의 위치를 각각 다르게 위치시키는 것이다.

- 테이블별 위치 분산은 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우에 이용한 다. 테이블의 위치가 위치별로 다르므로 테이블의     위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서가 필요하다.


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

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

- 첫 번째는 테이블의 로우(Row) 단위로 분리하는 수평분할(Horizontal Fragmentation)이 있고 두 번째는 테이블을 칼럼(Column)

  단위로 분할하는 수직분할 (VerticalFragmentation)이 있다.

수평분할(Horizontal Fragmentation)

- 지사(Node)에 따라 테이블을 특정 칼럼의 값을 기준으로 로우(Row)를 분리한다. 칼럼은 분리되지 않는다. 모든 데이터가 각 지사별로

  분리되어 있는 형태를 가지고 있다.


수직분할(Vertical Fragmentation)

- 지사(Node)에 따라 테이블 칼럼을 기준으로 칼럼(Row)을 분리한다. 로우(Row) 단위로 는 분리되지 않는다. 모든 데이터가 각 지사별로    분리되어 있는 형태를 가지고 있다. 칼럼을 기준으로 분할하였기 때문에 각각의 테이블에는 동일한 Primary Key구조와 값을 가지고

  있어야 한다.


다) 테이블 복제(Replication) 분산

- 테이블 복제(Replication) 분산은 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형이다.

부분복제(Segment Replication)

- 통합된 테이블을 한 군데(본사)에 가지고 있으면서 각 지사별로는 지사에 해당된 로우 (Row)를 가지고 있는 형태이다.

- 각 지사에서 데이터 처리가 용이할 뿐 만 아니라 전체 데이터에 대한 통합처리도 본사에 있는 통합 테이블을 이용하게 되므로 여러

  테이블에 조인(JOIN)이 발생하지 않는 빠른 작업 수행이 가능해진다.


광역복제(Broadcast Replication)

- 통합된 테이블을 한 군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 가지고 있는 형태이다.

- 모든 지사에 있는 데이터량과 본사에 있는 데이터량이 다 동일하다. 본사와 지사모두 동일한 정 보를 가지고 있으므로 본사나 지사나

  데이터처리에 특별한 제약을 받지는 않는다.


라) 테이블 요약(Summarization) 분산

- 테이블 요약(Summarization) 분산은 지역 간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우 있다.

분석요약(Rollup Replication)

- 분석요약(Rollup Replication)은 각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법


통합요약(Consolidation Replication)

- 지사별로 존재하는 다른 내용의 정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 분산방법이다.

 


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

- 프로젝트를 수행할 때 단순한 분산 환경의 원리를 이해하지 않고 데이터베이스를 설계하 여 성능이 저하되는 경우가 빈번하다. 특히 복제    분산의 원리를 간단하게 응용하면 많은 업무적인 특성이 있는 곳에서 그 성능을 향상시켜 설계할 수 있다.

  • 성능이 중요한 사이트에 적용해야 한다.
  • 공통코드, 기준정보, 마스터 데이터 등에 대해 분산환경을 구성하면 성능이 좋아진다.
  • 실시간 동기화가 요구되지 않을 때 좋다. 거의 실시간의 업무적인 특징을 가지고 있을 때도 분산 환경을 구성할 수 있다.
  • 특히 서버에 부하가 집중이 될 때 부하를 분산할 때도 좋다.
  • 백업 사이트를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있다.
728x90
반응형