제2절_정규화와_성능
2012.03.04 01:52
2절 정규화와 성능
1.정규화를 통한 성능 향상 전략
정규화란?
속성들간의 종속성을 분석해서 기본적으로 하나의 종속성이 하나의 릴레이션으로 표현되도록 분해해 나가는 과정
데이터 처리의 입력/수정/삭제이상을 제거하기 위해 분리 통합하는 방법
데이터 모델을 구조화시키고 개선시켜나가는 절차
→ 정보가 손실되지 않고 중복성을 제거하는 절차
정규화 내용 정리
2.반정규화된 테이블의 성능저하 사례
2차 정규화가 안된 경우
사례1
만약 조건을 관서등록일자로 검색하는 경우
반정규화 경우 : 같은 관서등록일자 데이터를 누적된 데이터양 만큼 조회
정규화 경우 : 필요한 관서번호만 읽고 조인
사례2
어떤 물건을 매각할 때 매각일자를 정하고 그 일자에 해당하는 매각시간과 매각장소가 결정하는 속성의 성격을 가짐.
→ 매각일자:결정자 매각시간,매각장소 : 의존자 함수 종속성
특정 매각장소에서 매각된 총매각금액, 총유찰금액을 조회할 경우
SELECT B.총매각금액 , B.총유찰금액
FROM (SELECT DISTINCT 매각일자, 매각장소
FROM 일자별매각물건
WHERE 매각장소 = '서울 7호') A, <== 100만건의 데이터를 읽어 DISTINCT함
매각일자별매각내역 B
WHERE A.매각일자 = B.매각일자
AND A.매각장소 = B.매각장소;
SELECT B.총매각금액 , B.총유찰금액
FROM 매각기일 A, 매각일자별매각내역 B
WHERE A.매각장소 = '서울 7호' <== 5천건의 데이터를 읽음
AND A.매각일자 = B.매각일자
AND A.매각장소 = B.매각장소;
사례3
동일한 속성 형식을 두개 이상의 속성으로 나열 → 속성중복(1정규화 위배)
SELECT 모델코드, 모델명
FROM 모델
WHERE ( A유형기능분류코드1 = '01' )
OR ( B유형기능분류코드2 = '02' )
OR ( C유형기능분류코드3 = '07' )
OR ( D유형기능분류코드4 = '01' )
OR ( E유형기능분류코드5 = '02' )
OR ( F유형기능분류코드6 = '07' )
OR ( G유형기능분류코드7 = '03' )
OR ( H유형기능분류코드8 = '09' )
OR ( I유형기능분류코드9 = '09' )
인덱스 과다로 인한 입력/수정/삭제 성능 저하. 위의 쿼리에서 or 조건에 해당하는 컬럼중 하나라도 인덱스가 생성되어있지 않을 경우 조회시 성능저하.
유형추가시에도 테이블 구조가 변경될 필요 없는 유연한 데이터 모델
사례4
1정규화 위반사례로 동일함
6.함수적 종속성에 근거한 정규화 수행 필요
함수의 종속성은 데이터들이 어떤 기준값에 의해 종속되는 형상을 지칭하는 것.
이때 기준값을 결정자, 종속되는 값을 종속자라고 한다.
정규화의 궁극적인 목적은 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하는 것.
→ 함수의 종속성을 이용하여 정규화 작업 진행에 이용
주민등록번호가 이름, 출생지, 호주를 함수적으로 결정함.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
18 |
제5절_WHERE_절
![]() | 보라빛고양이 | 2012.03.10 | 15070 |
17 | 제4절_TCL(TRANSACTION_CONTROL_LANGUAGE) | 보라빛고양이 | 2012.03.10 | 8338 |
16 | 제3절_DML(DATA_MANIPULATION_LANGUAGE) | balto | 2012.03.09 | 7037 |
15 |
제2절_DDL(DATA_DEFINITION_LANGUAGE)
[1] ![]() | balto | 2012.03.09 | 11935 |
14 | 제1절_관계형_데이터베이스_개요 | balto | 2012.03.09 | 10647 |
13 | 제5절_데이터베이스_구조와_성능 | 오예스 | 2012.03.07 | 6268 |
12 | 제4절_대량_데이터에_따른_성능 | 오예스 | 2012.03.07 | 7252 |
11 |
제3절_반정규화와_성능
![]() | ljw | 2012.03.04 | 15483 |
» |
제2절_정규화와_성능
![]() | ljw | 2012.03.04 | 10576 |
9 |
제1절_성능_데이터_모델링의_개요
![]() | ljw | 2012.03.04 | 44725 |
8 | 제4절_관계(Relationship) [1] | 실천하자 | 2012.03.04 | 13216 |
7 | 제3절_속성(Attribute) | 실천하자 | 2012.03.04 | 7434 |
6 | 제2절_엔터티(Entity) | 실천하자 | 2012.03.04 | 9875 |
5 | 제1절_데이터_모델의_이해 | 실천하자 | 2012.03.03 | 22777 |
4 |
제5절_식별자
![]() | ljw | 2012.03.03 | 19131 |
3 |
Front Page
![]() | 운영자 | 2012.02.20 | 186898 |
2 | 제3절_조인_수행_원리 | 실천하자 | 2012.04.11 | 7163 |
1 | 제3절_조인_기본_원리 | 보라빛고양이 | 2012.05.30 | 4108 |