대량 데이터에 따른 성능

대량의 데이터가 하나의 테이블에 집약되어 있고 하나의 하드웨어 공간에 저장되어 있으면 성능저하를 피하기 힘들다.

  • 로우체이닝(Row chaining)현상

로우길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태.

  • 로우마이그레이션(Row migration)현상

데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식.

대량 데이터 처리방법 → 파티셔닝 - Partitioning

- LIST Partitoning

지점, 사업소, 사업장, 핵심적인 코드값 등으로 PK가 구성되어 있고 대량의 데이터가 있는 테이블이라면 LIST Partitioning 적용가능

하나의 테이블에서 데이터를 처리하기에는 SQL문장의 성능이 저하되어 지역을 나타내는 사업소코드 별로 적용

→ 대용량 데이터를 특정값에 따라 분리 저장할 수는 있으나 RANGE와 같이 데이터 보관주기 따라 쉽게 삭제하는 기능은 제공될 수 없다.

- RANGE Partitioning

요금테이블에 PK가 요금일자+요금번호로 구성되어 있는 경우. 요금의 특성상 항상 월단위로 데이터 처리를 하는 경우가 많으므로 PK인 요금일자의 년+월을 이용하여 12개의 파티션 테이블 생성.

가장많이 사용되는 파티셔닝 기법이며 대상 테이블이 날짜 또는 숫자값으로 분리가 가능하고 각 영역별로 트랜잭션이 분리된다면 RANGE를 사용하는 것이 유리하다.

RANGE 파티셔닝은 데이터보관주기에 따라 테이블에 데이터를 쉽게 지우는 것이 가능하므로 테이블 관리가 매우 용이하다.

- HASH Partitioning

지정된 Hash 조건에 따라 해쉬 알고리즘이 적용되어 테이블이 분리되며 설계자는 테이블에 데이터가 정확하게 어떻게 들어있는지 알 수 없다.

분산 데이터베이스와 성능

데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스라고 정의할 수 있다.


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

- 분할투명성

하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장

- 위치 투명성

사용하려는 데이터의 저장 장소 명시 불필요. 위치정보가 System catalog에 저장되어 있어야 한다.

- 지역사상 투명성

지역 DBMS와 물리적 DB사이의 Mapping보장. 각 지역시스템 이름과 무관한 이름 사용가능

- 중복 투명성

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

- 장애 투명성

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

- 병행 투명성

다수 Transaction 동시 수행시 결과의 일관성 유지


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

- 테이블 위치 분산

테이블 위치 분산은 테이블의 구조는 변하지 않는다. 설계된 테이블의 위치를 각각 다르게 위치시키는 것이다.

ex) 자재품목은 본사에서 구입하여 관리하고 각 자사별로 자재품목을 이용하여 제품을 생산할 경우

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

- 테이블 분할(Fragementation) 분산

단순히 위치만 다른 곳에 두는 것이 아니라 각각의 테이블을 쪼개어 분산하는 방법이다. 테이블 분할 분산 방식의 종류로는 수평&수직 분할이 있다.

- 수평분할을 이용하는 경우는 각 지사(Node)별로 사용하는 로우(Row)가 다를때 이용한다.

각 지사에 존재하는 테이블에 대해서 통합처리를 해야하는 경우는 조인(Join)이 발생하여 성능 저하가 예상되므로 통합처리 프로세스가 많은지를 먼저 검토한 이후에 많지 않은 경우에 수평분할해야한다.

한 시점에는 한 지사(Node)에서 하나의 데이터만이 존재하므로 데이터의 무결성은 보장되는 형태


- 수직분할을 이용하는 경우는 각 지사(Node)에 따라 테이블 칼럼을 기준으로 칼럼을 분리한다.

각각의 테이블에는 동일한 Primary key구조와 값을 가지고 있어야 한다.

테이블 전체 칼럼 데이터를 보기 위해서는 각 지사(Node)별로 흩어져 있는 테이블들을 조인(join)하여 가져와야 하므로 가능하면 통합하여 처리하는 프로세스가 많은 경우에는 이용하지 않는다.

- 테이블 복제(Replication) 분산

동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형이다.

- 부분복제: 마스터 DB에서 테이블의 이불의 내용만 다른 지역 or 서버에 위치시키는 방법

통합된 테이블을 한군데(본사)가 가지고 있으면서 각 지사별로는 지사에 해당된 로우를 가지고 있는 형태이다. 지사에 존재하는 데이터는 반드시 본사에 존재하게 된다.

본사 데이터 = 지사 데이터들의 합

보통 지사에 데이터가 먼저 발생하고 본사에 데이터는 지사에 데이터를 이용하여 통합하여 발생된다.

- 광역복제

통합된 테이블을 한군데(본사)에 가지고 있으면서 각 지사에도 본사와 동일한 데이터를 모두 소유

본사에서 코드테이블에 데이터에 대해 입력, 수정, 삭제가 발생하고 각 지사에서는 코드데이터를 이용하는 프로세스가 발생한다. 즉 본사에서는 데이터를 관리하고 지사에서는 이 데이터를 읽어 업무프로세스를 발생시키는 것이다.

부분복제의 경우는 지사에서 데이터에 대한 입력, 수정, 삭제가 발생하여 본사에서 이용하는 방식이 많은 반면 광역복제의 경우에는 본사에서 데이터가 입력, 수정, 삭제가 되어 지사에서 이용하는 형태가 차이점이다.

- 테이블 요약(Summarization)분산

지역간에 또는 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우이다.

- 분석요약(Roll up replication)

각 지사별로 존재하는 요약정보를 본사에 통합하여 다시 전체에 대해서 요약정보를 산출하는 방법

- 통합요약(Consolidation replication)

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

- 분석요약과 통합요약의 차이점

EX)제품별 판매실적이라는 테이블이 존재

분석요약에서는 지사1과 지사2에도 동일한 제품이 취급된다. 이를 본사에서 판매실적을 집계할 경우 통합된 판매실적을 관리하는 것

통합요약의 경우에는 각 지사는 타지사와 다른 요약정보를 가지고 있고 본사에는 각 지사의 요약정보를 단지 데이터를 같은 위치에 두는 것으로 통합하여 전체에 대한 요약정보를 가지고 있다.

+ Recent posts