성능데이터모델링의 개념에 대해 서술하시오.
데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델에서 부터 성능과 관련된 사항을 반영하며 모델링 하는 것을 의미합니다. 데이터의 증가가 빠를 수록 성능저하에 대한 개선비용은 증가합니다. 데이터모델의 성능은 튜닝을 통해 향사될 수 있습니다. 분석/설계 단게에서 미리 성능을 고려한다면 성능개선을 위한 REWORK 비용을 최소화 할 수 있습니다.
성능데이터모델링의 절차에 대해 서술하시오.
첫번째, 데이터모델링 시, 정규화를 정확하게 수행합니다.
두번째, 데이터베이스의 용량을 산정합니다.
세번쩨. 데이터베이스에서 발생하는 트랜잭션의 유형을 파악합니다.
네번째, 용량과 트랜잭션의 유형에 따라 최적화를 위한 반정규화를 수행합니다.
다섯번째, 이력모델/PK/FK/슈퍼타입/서브타입을 조정합니다.
여섯번째, 성능관점에서 모델을 검증합니다.
성능데이터모델링시 고려사항에 대해 서술하시오.
정규화를 통해 엔터티 내부에 중복되서 나타나는 데이터를 제거하여 조회성능을 향상할 수 있습니다. 용량산정과정을 통해 전체적인 데이터베이스에서 발생하는 트랜잭션의 유형과 양을 분석합니다. 물리적인 데이터모델링을 할때, PK/FK 칼럼의 순서조정, FK 인덱스 생성을 통해 성능을 향상시킬 수 있습니다. 이력데이터와 같은 대량 데이터는 특별히 성능을 고려해서 설계해야 합니다.
정규화에 대해 서술하시오.
정규화는 데이터 이상현상이 있는 엔터티를 여러 엔터티로 분해하는 행위입니다. 정규화의 최종적인 목적은 테이블 간 중복된 데이터를 없에는데 있습니다. 1차 정규화를 통해 속성을 추가하거나 추가 테이블을 생성하여 모든 속성이 하나의 속성값만을 갖도록 합니다. 2차 정규화을 통해 엔터티의 일반속성이 주식별자를 구정하는 속성 전체에 종속되도록 합니다. 3차 정규화을 통해 엔터티의 일반 속성 사이의 종속성을 제거합니다.
함수종속성에 대해 서술하시오.
함수 종속성은 특정 속성 A의 값에 의해서만 특정 속성 B의 값이 정해지는 상태를 말합니다. 이때 속성 A를 결정자, 속성 B를 종속자라 합니다. 엔터티 내부에서 발생하는 함수종속성은 크게 3가지로 구분할 수 있습니다.
- 완전함수종속
- 부분함수종속
- 이행적함수종속
완전함수종속은 특정 칼럼이 기본키를 구성하는 모든 속성에 대해 종속되는 상태를 말합니다. 부분함수종속은 특정 칼럼이 기본키를 구성하는 속성 중 일부에만 종속되는 상태입니다. 제 2정규화를 통해 부분함수종속을 해결할 수 있습니다. 이행적함수 종속은 A,B,C 속성에 대해 A->B, B->C 종속관계일때 A->C 종속관계가 성립하는 상태입니다. 제 3정규화를 통해 이행적함수종속을 해결할 수 있습니다.
2차 정규화에 대해 서술하시오.
엔터티의 일반 속성이 기본키 전체에 종속적이지 않고 부분에 대해 종속적일때(부분함수종속) 2차 정규화의 대상이 됩니다.
1차 정규화에 대해 서술하시오.
칼럼에 의해 반복적인 속성값을 갖는 형태의 엔터티는 속성의 원자성을 위배하기 때문에 제1차 정규화의 대상이 됩니다. 이런 형태의 엔터티는 반복되는 속성 중 하나라도 인덱스 구성 칼럼에서 제외 될 경우 전체 데이터 스캔으로 처리되 성능저하가 발생합니다. 전체 속성이 인덱스에 포함되는 경우 과도하게 큰 인덱스로 인해 입력, 수정, 삭제 성능이 저하됩니다.
반정규화에 대해 서술하시오.
정규화된 엔터티에 대해 성능향상을 위한 의도적인 중복, 통합, 분리를 수행햐는 데이터 모델링 기법입니다. 데이터의 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복을 허용하여 조회성능과 조인성능을 높일 수 있습니다.
- 다수의 테이블에 의한 다량의 조인이 불가피한 경우 데이터 제공의 적시성 확보를 위해 반정규화 한다.
테이블, 속성, 관계에 대해 반정규화를 적용할 수 있습니다. 테이블의 병합, 분할, 서브테이블 추가를 통해 성능 향상을 꾀할 수 있습니다. 속성에 대한 대표적인 반정규화 기법은 중복칼럼 추가, 파생칼럼 추가, 이력테이블 칼럼 추가, PK에 의한 칼럼 추가 등이 있습니다.
반정규화의 절차에 대해 서술하시오.
범위처리의 빈도가 높거나, 넓은 범위를 처리하거나, 통계성 프로세스이거나 테이블 조인의 수가 과도하게 많다면 반정규화의 대상이 됩니다. 반정규화에 앞서 뷰 테이블, 클러스터링 적용, 인덱스 조정, 어플리케이션 최적화를 통해 반정규화를 하지 않고도 성능을 개선할 수 있는 대안을 검토합니다. 이후 반정규화가 필요하다느 결론에 이르게 되면 테이블, 속성, 관계를 반정규화 합니다.
반정규화의 대안에 대해 서술하시오
조인이 지나치게 많은 경우 뷰를 사용해 조인한 테이블을 지속적으로 이용할 수 있습니다. 클러스터링과 인덱스 조정을 통해 대량데이터처리나 부분처리에 의한 성능저하를 방지할 수 있습니다. 파티셔닝 기법을 활용해 성능을 높일 수 있습니다. 응용 어플리케이션에서 데이터 처리로직을 변경하여 성능을 향상할 수 있습니다.
반정규화의 단점
반정규화로 하나의 엔터티에 많은 속성이 존재하는 경우, 용량이 커지는 단점이 있습니다.
로우체이닝에 대해 서술하시오.
ROW CHAINING은 INSERT 시 테이블에 할당된 저장공간이 부족할때 발생하는 현상입니다. 동일한 데이터를 읽어올때 2개 이상의 블록을 읽어야 하므로 과도한 디스크 I/O가 발생해 성능이 저하될 수 있습니다. 반정규화로 인해 하나의 엔터티에 과도한 수의 속성이 존재하면 레코드당 용량이 커지기 때문에 로우체이닝이 발생할 수 있습니다. 반정규화로인한 로우체이닝 발생시, 트랜잭션의 접근이 많은 칼럼과 그렇지 않은 칼럼을 1:1 관계로 분리하면 디스크 I/O가 줄어들어 성능을 향상할 수 있습니다.
슈퍼/서브 타입 데이터 모델의 변환기술에 대해 서술하시오.
개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성하고 슈퍼타입 + 서브타입에 대해 발생하는 트랜잭션에 대해서는 슈퍼타입 + 서브타입 테이블로 구성합니다. 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성합니다.
트랜잭션은 항상 전체를 일괄적으로 처리하는데 테이블은 서브타입별로 유지되면 UNINON 연산에 의해 성능이 저하될 수 있습니다. 트랜잭션은 항상 서브타입으로 개별처리하는데 테이블이 하나로 통합하여 변환하면 불필요한 많은 양의 데이터가 직접되어 성능이 저하됩니다.
트랜잭션은 항상 슈퍼 + 서브 타입을 함께 처리하는데 개별로 유지하면 조인에 의해 성능이 저하될 수 있습니다. 트랜잭션은 항상 전체를 통합하여 처리하는데 테이블이 하나로 통합되있으면 데이터 직접으로 성능이 향상됩니다.
범위조건과 EQUAL 조건의 인덱스 구성에 대해 서술하시오.
인덱스는 값의 범위에 따라 일정하게 정렬되 있으므로 EQUAL 조건으로 조회하는 칼럼이 가장 앞으로 나오고 범위조회하는 칼럼이 다음에 오도록하는 것이 인덱스 범위를 좁히는 가장 좋은 방법입니다.
FK가 조인성능에 미치는 영향에 대해 서술하시오.
엔터티간 관계를 정의한 경우 엔터티의 데이터들이 업무적으로 밀접하게 연결되 조인이 자주 발생한다는 것을 의미합니다. 이로인해 FK CONSTRAINTS를 생성했는지 여부에 상관없이 조인성능을 향상하기위해 외래키에 대한 인덱스를 생성해 주는것이 좋습니다.
FK CONSTRAINTS(외래키제약)은 데이터 모델 상에 표현된 논리적 관계에 따라 관련 인스턴스간 일관성을 보장하기 위해 설계된 제약조건 입니다.
분산데이터배이스의 특징에 대해 서술하시오.
마스터 데이터를 한 곳에 두고 운영하는 경우, 원격지에서의 접근이 빈번할수록 업무처리에 대해 좋은 성능을 얻기때문에 분산데이터베이스를 활용할 수 있습니다. 백업 사이트 구성에도 분산 환경을 활용할 수 있습니다 .참고적으로 GSI는 분산데이터 베이스와 대치되는 개념으로통합된 하나의 인스턴스, 즉 통합 데이터베이스 구조를 의미합니다.
'DB > 데이터모델링' 카테고리의 다른 글
| 실전문제 - 데이터모델의 이해(데이터 모델의 이해, 엔터티, 속성, 관계, 식별자) (1) | 2024.06.10 |
|---|---|
| 데이터모델링이론 - 식별자의 구분 본질식별자와 인조식별자 (0) | 2024.01.30 |
| 데이터모델링이론 - NULL 속성의 이해 (0) | 2024.01.24 |
| 데이터모델링이론 - 엔터티의 논리적 연결 관계를 표현하는 조인 (0) | 2024.01.16 |
| 데이터모델링이론 - 데이터 모델링시 정규화가 필요한 이유 (제1정규화, 제2정규화, 제3정규화, 반정규화) (0) | 2024.01.15 |