제 5절 데이터베이스 구조와 성능

 

 1. 슈퍼타입/서브타입 모델의 성능고려 방법.

  가. 슈퍼/서브타입 데이터 모델.

     - Extended ER 모델이라고 부르는 이른바 슈퍼/서브타입 데이터 모델은 최근에 데이터 모델링을 할 때 자주 쓰이는

모델링 방법이다.  이 모델이 자주 쓰이는 이유는 업무를 구성하는 데이터의  특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문이다. 즉 공통의 부분을 슈퍼타입으로 모델링하고 공통으로 부터 상속받아 다른 엔티티와 차이가 있는 속성에 대해서 는 별도의 서브엔티티로 구분하여 업무의 모습을 정확하게 표현하면서 물리적인 데이터 모델로 변환 할 대 선택의 폭을 넓힐 수 있는 장점이 있다.

 

   나. 슈퍼/서브타입 데이터 모델의 변환.

      - 슈퍼/서브타입에 대하 변환을 잘못하면 성능이 저하되는 이유는 트랜잭션 특성을 고려하지 않고 테이블이 설계되었기 떼문이다.

        이것을 3가지 경우의 수로 정리하면 다음과 같다.

       1)  트랜잭션은 항상 일괄로 처리하는테 테이블은 개별로 유지되어 union 연산에 의해 성능이 저하될 수 있다.

       2)  트랜잭션은 항상 서브타입 개별로 처리하는데 ㅔ이블은 하나로 통합되어 있어 불필요하게 많은 양의 데이터가 집약되어 있어 성능이 저하되는 경우가 있다.

        3)  트랜잭션은 항상 슈퍼 + 서브 타입을 공통으로 처리하는데 개별로 유지되어 있거나 하나의 테이블로 집약되어 있어 성능이 저하되는 경우가 있다.

   

     슈퍼/서브타입 변환 기준 : 데이터 양 & 트랜잭션의 유형.

     데이터의 양은 데이터량이 소량일 경우 서능에 영향을 미치지 않기 때문에 데이터처리의 유연성을 고려하여 가급적 1:1 관계를 유지하는것이 바람직하다. 그러나 데이터용량이 많아지는 경우 그리고 해당 업무적인 특징이 성능에 민감한 경우는 트랜잭션이 해당 테이블에 어떻게 발생되는지에 따라 3가지 변환방법을 참조하여 상황에 맞게 변환하도록 해야 한다.

 

   다. 슈퍼/서브 타입 데이터 모델의 변환기술

    -  데이터량이 많지 않은 경우는 트랜잭션의 성격을 고려하지 않고 전체를 하나의 테이블로 묶어도 상관없다.

        하지만, 데이터량이 많고 지속적으로 증가하는 양도 많다면 슈퍼타입/서브타입에 대해 물리적인 데이터 모델로 변환하는 세 가지 유형에 대해 세심하게 적용을 해야한다.

 

        1) 개별로 발생되는 트랜잭션에  대해서는 개별 테이블로 구성

        2)  슈퍼타입+서브타입에 대해 발생되는 ㅡ랜잭션에 대해서는 슈퍼타입+서브타입 테이블로 구성.

        3). 전체를 하나로 묶어 트랜잭션이 발생할 때는, 하나의 테이블로 구성.

 

     라 슈퍼/서브타입 데이터 모델의 변환타입 비교.

 

구분 onetoone type plus type single type
특징 개별 테이블 유지 슈퍼+서브타입 테이블 하나의 테이블
확장성 우수함 보통 나쁨
조인성능 나쁨 나쁨 우수함
I/O 성능 좋음 좋음 나쁨
관리용이성 좋지않음 좋지않음 좋음
트랜잭션 유형에 따른 선택방법 개별 테이블로 접근이 많은 경우 선택 슈퍼+서브 형식으로 데이터를 처리하는 경우 선택 전체를 일괄적으로 처리하는 경우 선택