SQL 개발자 시험

데이터 모델링의 이해

으농농이 2022. 5. 4. 12:15

추상화 수준이 높고 ,업무중심적, 포괄적인 수준의 모델링을 진행 > 개념적 모델링 

이식할 수 있도록 성능 , 저장 등의 물리적인 성격을 고려한 데이터 모델링 > 물리적 모델링 

시스템으로 구축하고자 하는 업무에 대해 key, 속성 , 관계 정확하게 표현하며 재사용성이 높음 > 논리적 데이터 모델링

 

데이터의 정의를 데이터의 사용 프로세스와 분리 , 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 

애플리케이션과 데이터베이스에 중대한 변화를 일으킬 가능성을 줄임 

--> '비유연성' 에 관련된 설명 

 

PK에 대해 반복이 되는 그룹이 존재하지 않으므로 1차 정규형이라고 할 수 있으며, 

부분 함수 종속의 규칙을 가지고 있으므로 2차 정규형이라고 할 수 없음, 

 

중복속성에 대한 분리가 1차 정규화의 대상이 되며, 로우단위의 중복도 1차 정규화 대상이 되지만 컬럼 단위로 중복이 되는 경우도 1차 정규화의 대상이다. 

 

다량 데이터 탐색의 경우 인덱스가 아닌 파티션 및 데이터 클러스터링 등의 다양한 물리 저장 기법을 활용하여 성능 개선을 유도할 수 있다. 다만, 하나의 결과셋을 추출하기 위해 다량의 데이터를 탐색하는 처리가 반복적으로 빈번하게 발생한다면 이때는 반정규화를 고려하는 것이 좋다.

이전 또는 이후 위치의 레코드에 대한 탐색을 window function으로 접근 가능하다. 

집계 테이블 이외에도 다양한 유형에 대하여 반정규화 테이블 적용이 필요할 수 있다. 

 

컬럼에 의한 반복적인 속성값을 갖는 형태는 속성의 원자성을 위배한 제 1차 정규화의 대상이 된다. 

이와 같은 반복적인 속성 나열 형태에서는 각 속성에 대해 or 연산자로 연결된 조건들을 사용되ㅡㄴ데, 

어느 하자의 속성이라도 인덱스가 정의되어 있지 않게 되면 or 로 연결된 모든 조건절들이 인덱스를 사용하지 않고 한번의 전체 데이터 스캔으로 처리되게 되어 성능 저하가 나타날 수 있게 되며, 모든 반복 속성에 인덱스를 생성하게 되면 검색 속도는 좋아지겠지만, 반대급부적으로 너무 많은 인덱스로 인해 입력, 수정 , 삭제의 성능이 저하되므로, 

1차 정규화를 통해서 자연스럽게 문제가 해결될 수 있도록 해야한다. 

 

데이터 모델링 단계에서 성능을 충분히 고려하기 위한 성능 데이터 모델링 수행 절차에 대한 설명으로, 그 과정은 아래와 같다 

1. 데이터 모델링을 할 때 정규화를 정확하게 수행한다. 

2. 데이터베이스 용량산정을 수행한다. 

3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. 

4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다. 

5. 이력모델의 조정 , PK / FK 조정 , 슈퍼타입 /서브타입 조정 수행 

6. 성능관점에서 데이터 모델을 검증 

 

 

'SQL 개발자 시험' 카테고리의 다른 글

아키텍처 기반 튜닝원리  (0) 2022.08.22