토픽 이름 | 정규화 |
분류 | 데이터베이스 > 정규화 |
키워드(암기) | Anomaly 정규화의 원칙 – 정보의 무손실, 데이터 중복성 감소, 분리의 원리 1차 정규화(1NF) - 반복 속성 제거, 의존자의 중복 제거 2차 정규화(2NF) - 부분함수 종속성 제거 3차 정규화(3NF) - 이행함수 종속성 제거 BCNF(Boyce-Codd NF) – 결정자 함수 종속성 제거 4차 정규화 – 다중값 종속성 제거 5차 정규화 – 결합 종속성 분리 |
암기법 | 무중분 |
I. 이상 현상 제거를 위한 무손실 분해 과정, 정규화의 개요
나. 정규화(Normalization)의 정의
- 관계형 데이터베이스 모델에서 데이터의 중복을 제거하여 삽입, 갱신, 삭제 이상현상을 방지하기 위한
무손실 분해 과정
다. 정규화의 3대 원칙 (무중분)
구 분 | 설 명 |
정보의 무손실 | 분해된 Relation이 표현하는 정보는 분해되기 전의 정보를 모두 가지고 있어야 함 |
데이터 중복성 감소 | 중복으로 인한 이상 현상의 제거 |
분리의 원칙 | 하나의 독립된 관계성은 하나의 독립된 Relation으로 분리하여 표현 |
II. 정규화의 절차 및 유형
가. 정규화의 절차 (중부이결다조)
- 데이터들의 함수 종속성을 이용하여 데이터 모델링을 최적화하는 과정
나. 정규화의 유형
구분 | 단계 | 내용 | 특성 |
기초적 정규화 | 1차 정규화 (1NF) | - 반복되는 속성 제거 - Relation R에 속한 모든 도메인이 원자값(atomic value)만 되어 있는 경우 | 데이터간 중복성 강함
데이터간 결합성 강함 |
2차 정규화 (2NF) | - 부분함수 종속성 제거 - 두 개의 결정자(합성키) 존재 - Relation R이 1NF이고 Relation의 기본키가 아닌 속성들이 기본키에 완전히 함수적으로 종속 할 경우 | ||
3차 정규화 (3NF) | - 이행함수 종속성제거 - 의존자에서 FD 관계 있다면 Table 분리 - Relation R이 2NF이고 기본키가 아닌 모든 속성들이 기본키에 대하여 이행적 함수 종속성(Transitive FD)의 관계를 가지지 않는 경우, 즉 기본키외의 속성들간 함수적 종속성을 가지지 않는 경우 | ||
BCNF (Boyce/Codd NF) | - 결정자 함수 종속성 제거 - 결정자에서 함수적 관계가 있다면 Table - 분리Relation R의 모든 결정자가 후보키 경우 | ||
진보적 정규화 | 4차 정규화 (4NF) | - 다중값 종속성 제거 - BCNF를 만족시키면서 다중값 종속을 포함하지 않는 경우 | |
5차 정규화 (5NF) | - 결함종속성제거 - 4NF를 만족시키면서 후보키를 통해서만 조인 종속이 성립되는 경우 |
III. 정규화 시 고려사항
가. 실전에서의 정규화 전략
- 데이터 모델링 시 논리 모델 → 물리모델 단계로 수행
- 객체지향 설계: 클래스 다이어그램 → OR Mapping → 물리모델 단계
- 업무가 익숙하고 시스템 규모가 작은 경우는 바로 물리모델링
- 모델링 시 기술적 능력과 업무프로세스에 충분한 지식을 겸비한 DA(Data Architect) 참여
나. 정규화 방안
- entity 타입을 오브젝트 분석방법에 의해 도출할지라도 분석방법의 배경에는 이미 중복 제거 및 부분 종속과 이행 종속을 제거하는 3NF규칙이 모델링 작업의 기초
- entity 타입을 분석해가면서 각각의 오브젝트가 적절하게 도출되었는지 또는 더 분리되어야 하는지를 정규화 규칙에 대입하여 검증
- 질의 성능향상 및 모델의 복잡도를 개선하기 위해 정합성을 고려한 비정규화
| 4차 정규화 |
키워드 |
|
암기법 |
|
I. 특정 속성 값에 따라 선택적인 속성의 분리, 4차 정규화의 개요
가. 4차 정규화의 정의
- 하나의 Relation에 두 개 이상의 다치 종속 (MVD: Multi-Valued Dependency)이 발생하여 이를 제거하는 과정 또는 제거된 상태
나. 다치 종속의 개념
- Relation 내 두 Attribute 집합 사이에 성립하는 제약 조건 중 하나
- 하나의 Attribute가 다른 Attribute의 값 하나를 결정하는 것이 아니라 몇 개의 값, 즉, 값의 집합을 결정하는 속성
- 함수 종속은 다치 종속의 일종이나, 함수 종속과 달리 이중화살표로 표기
II. 이상 현상 발생 원인과 4차 정규화 해결 방안
가. 이상 현상 종류
이상 현상 | 내용 |
입력이상 | 만약 10이라는 사원번호를 가진 직원이 JA라는 새로운 프로젝트 입력 시 프로젝트와 상관없는 기술코드 입력필요 |
수정이상 | 만약 직원이 경험한 프로젝트 코드가 PA에서 BB로 변경 시 보유하고 있는 기술 수만큼 반복적 수정 필요 |
삭제이상 | 만약 직원이 보유한 기술을 삭제하면 경험한 프로젝트까지 모두 삭제 발생 |
나. 이상 현상 원인, 4차 정규화 해결 방안
발생원인 | 해결방법 |
어떤 종속적 관계가 하나의 테이블 안에 두 개 이상으로 존재 | 상호관계가 있는 속성끼리 분리시킴 (4차 정규화) 수행 |
III. 정규화 수행 효과
효과 | 내용 |
데이터 무결성 | 입력, 수정, 삭제시 발생한 이상현상 제거로 데이터 무결성 유지가 가능해짐 |
성능향상 | 사원내역에 불필요한 데이터를 줄임으로써 성능향상 |
업무흐름 이해 명확 | 업무규칙에 따른 모델 표현으로 업무흐름 표기가 정확해 짐에 따라 커뮤니케이션 효율성 증대 |
| 5차 정규화 |
키워드 |
|
암기법 |
|
I. Join 종속성 제거, 5차 정규화의 개요
가. 5차 정규화의 정의
- 2개의 Relation이 아니라 3개 또는 그 이상의 Relation으로 분해를 해야 정보 무손실 분해 가능 (4차까지는 2개 Relation으로 분해)
나. 5차 정규화의 특징
- 정규화를 통해 제거된 중복 데이터를 고의로 입력하는 작업
- 정규화가 잘 되어 있는 모델의 경우 무결성이 보장되지만 성능 감소
II. 5차 정규화의 문제점 및 해결 방안
- 정규화로 인한 테이블의 개수 증가로 인하여 Join이 많이 발생하여 응답속도의 지연 가능성 존재
- 특정 시점의 정보를 표현하기 위해 이력관리 엔티티의 발생 및 업무규칙 수용 난이도가 증가 가능성 존재
- 데이터 공간의 비효율적인 활용이 발생
- 따라서 보통 대부분의 현업에서는 제 3정규화 정도 수행하고 속도 튜닝 등의 필요에 따라 비 정규화(Denormalization) 과정을 수행
- 만약 5정규화를 수행하고 응답 속도의 지연이 생겼다면 비정규화 과정을 수행
III. 5차 정규화의 사례
- 정규화를 통해 제거된 중복 데이터를 입력 하고 모든 키를 단일 속성으로 구성 시켜 5차 정규화 적용
- 하나의 테이블을 N개로 나누어야 하는 경우 상품 DB를 예
토픽 이름 | 1차 정규화(1NF) |
분류 | 데이터베이스 > 정규화 > 1차 정규화 |
키워드 | 결정자, 의존자, 중복제거, 속성, 반복속성 제거, 원자값(Atomic Value) |
암기법 |
|
기출문제
번호 | 문제 | 회차 |
1 | 다음은 컴퓨터에서 사용되는 제품에 대해 여러 개의 주문서가 접수된 내용을 보여주는" 주문목록" 초기 테이블이다. 각각의 물음에 답하시오.
가. 1차 정규화된 테이블과 E-R 다이어그램을 표현하시오. 나. 2차 정규화된 테이블과 E-R 다이어그램을 표현하시오. 다. 3차 정규화된 테이블과 E-R 다이어그램을 표현하시오. | 111/응용/3 |
I. 중복 값 제거를 통한 정규화, 1차 정규화의 정의
- 모든 엔티티 타입의 속성에는 하나의 속성 값 만을 가지고 있어야 하며, 반복되는 속성의 집단은 별도의 엔티티 타입으로 분리하는 정규화 기법
- 각 속성에 값이 반복집단이 없는 원자 값으로만 구성되어 있어야 함을 의미
II. 1차 정규화 사례
가. 의존자 중복 제거를 통한 1차 정규화
- 제품번호 1001에 대해 3개의 주문이 중복되는 현상(중복속성 분리)
- ERD 표기법으로 기술(제임스 마틴)
- 제일 먼저 해야 할 일 : 결정자 찾기
중복(반복)을 해결하는 방법 : 테이블 분리, 키를 바꾸는 방법(주문번호로 변경)
나. Repeating Value를 분리한 1차 정규화
문제 상황 | 설명 |
| - 한 명의 회원이 여러 번의 카드를 분실 할 겨우 Repeating Value 부분의 반복 발생 - 결정자이면서 PK인 회원번호에 대해 여러 개의 값이 존재하는 1차 정규형 위반 - 입력/수정/삭제 이상(Anomaly) 발생 분실정보 데이터 입력시 원하지 않는 회원의 회원명, 전화번호등을 입력 해야 하며, 회원정보 수정 할 때 분실한 수 만큼 수정해야 하고, 분실정보를 삭제하는데 원하지 않는 회원정보까지 삭제하는 이상현상 발생. |
| -회원번호 + 상품카드번호에 대해 ‘분실신고일자’아래 내용이 반복되어 원자성이 확보 안됨 1차 정규화 필요 |
| - 1차 정규화 완료 BUT. 상품카드번호 상품카드명의 부분함수종속성립 2차 정규화 필요 |
III. 1차 정규화의 반정규화 예시
- 1차 정규화의 과정 및 반정규화 예시
- 고객에 대한 엔티티 타입에 방문을 두 번까지 가능하다고 할 때 고객번호, 고객명이 중복 속성 값을 갖기 때문에 1차 정규화의 대상이 되어 중간에 있는 고객방문 엔티티 타입으로 1차 정규화가 되었다. 그러나 최대 2회까지 방문이 가능하다는 업무 규칙을 이용하여 성능과 단순성을 고려하여 오른쪽에 있는 1차 정규화에 대한 비정규화 엔티티 타입으로 설계된 예
- 1차 정규화의 JOIN을 통한 조회 시 성능 문제와 업무 규칙을 이용하여 반정규화 시행. 하지만 확장성 또는 유연성 저하로 인한 문제 고려 필요
- 최대 발생하는 값을 이용한 이와 같은 비정규화의 유형은 실전 프로젝트에서 자주 사용되지만 최대 발생 값을 변할 수 있는 경우는 정규화된 모습으로 모델링해야 확장성(Flexible)이 보장된다는 것을 기억.
“끝”
토픽 이름 | 2차 정규화(2NF) |
분류 | 데이터베이스 > 정규화 > 2차 정규화(2NF) |
키워드(암기) | 부분 함수 종속 제거, 결정자 2개 이상 |
암기법(해당경우) |
|
기출문제
번호 | 문제 | 회차 |
1 | 다음은 컴퓨터에서 사용되는 제품에 대해 여러 개의 주문서가 접수된 내용을 보여주는" 주문목록" 초기 테이블이다. 각각의 물음에 답하시오.
가. 1차 정규화된 테이블과 E-R 다이어그램을 표현하시오. 나. 2차 정규화된 테이블과 E-R 다이어그램을 표현하시오. 다. 3차 정규화된 테이블과 E-R 다이어그램을 표현하시오. | 111/응용/3 |
I. 부분함수 종속제거, 2차 정규화의 개요
가. 2차 정규화의 정의
- 릴레이션 R이 1차 정규화가 된 상태이고 Key에 속하지 않는 속성 모두가 기본 키에 완전함수 종속이면 2차 정규형
- 부분 함수 종속 : X→Y에서 Y가 X의 부분집합에 대해서도 함수적으로 종속되는 경우
나. 2차 정규화 미 시행 시 발생하는 이상현상
구분 | 설명 |
삽입이상 | 특정 튜플을 삽입할 경우 원하지 않는 불필요한 정보까지도 삽입해야 하는 현상 |
수정이상 | 특정 속성 값 갱신시 중복 저장된 속성값 중 하나만 갱신되고 나머지는 누락되는 현상 |
삭제이상 | 특정 튜플을 삭제할 경우 원하지 않는 정보까지도 삭제되는 현상 |
II. 2차 정규화 사례
가. 2차 정규화 사례(1)
- 2개 이상 결정자에서 이상현상 발생으로 2차 정규화 시행
나. 2차 정규화 사례(2)
구분 | 설명 |
2차 정규화 (전) |
- > 이상현상 발생 : 삽입, 삭제, 갱신 이상 |
2차 정규화 (후) |
|
III. 2차 정규화의 반정규화 예시
- 2
“끝”
토픽 이름 | 3차 정규화(3NF) |
분류 | 데이터베이스 > 정규화 > 3차 정규화(3NF) |
키워드 | 이행함수 종속 제거, 2차 정규화 후 이상현상, 키를 제외한 속성들 간 함수적 종속성(FD) |
암기법 |
|
기출문제
번호 | 문제 | 회차 |
1 | 다음은 컴퓨터에서 사용되는 제품에 대해 여러 개의 주문서가 접수된 내용을 보여주는" 주문목록" 초기 테이블이다. 각각의 물음에 답하시오.
가. 1차 정규화된 테이블과 E-R 다이어그램을 표현하시오. 나. 2차 정규화된 테이블과 E-R 다이어그램을 표현하시오. 다. 3차 정규화된 테이블과 E-R 다이어그램을 표현하시오. | 111/응용/3 |
I. 이행함수 종속 제거, 3차 정규화의 개요
가. 3차 정규화의 정의
- 관계형 데이터 모델에서 기본 키 외의 속성들 간 함수적 종속성(FD)
나. 이행함수 종속제거(TD, Transitive Dependency)
- A -> B 와 B-> C ⇒ A-> C (즉, 애트리뷰트 C는 애트리뷰트 A에 이행적 함수 종속)
다. 3차 정규화 방법
- 2NF의 이상현상을 해결하기 위해 프로젝션으로 릴레이션을 분해하여 이행적 함수 종속 제거
II. 3차 정규화(Normalization) 사례
가. 3차 정규화 사례(1)
- 주 식별자가 아닌 속성 중 종속관계를 이루는 속성들을 분해하고, 대표 속성을 키로 만들어서 서로 참조관계 구성
나. 3차 정규화 사례(2)
- 지도교수 ->
III. 3차 정규화의 반정규화
- 3
“끝”