일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- index
- 데이터통합
- 더미데이터
- 제5정규형
- mysql
- 제4정규형
- 제3정규형
- 물리모델
- SQL
- vue3
- 정규형
- 제2정규형
- 완전서브타입
- 요구사항명세서
- 워크벤치
- 샘플데이터
- 실행계획
- 서브타입
- 인덱스
- bc정규형
- group-by
- 함수종속
- Workbench
- 크롬원격데스크톱
- 공통코드
- order-by
- 배타서브타입
- 중복서브타입
- 불완전서브타입
- 제1정규형
- Today
- Total
domsam - IT 기술 블로그
제2정규형 (Second Normal Form) 본문
제1정규형을 만족 릴레이션에서 후보 식별자 속성과 일반 속성 간의 종속성에 의해 수행된다. 릴레이션의 모든 일반 속성이 후보 식별자 전체에 종속적이면 제2정규형이다. 만약 일반 속성 중에 후보 식별자 전체에 종속적이지 않고 후보 식별자를 구성하는 속성 일부에 종속적인 일반 속성이 있다면 중복이 발생했으므로 그 속성을 릴레이션에서 분리해야 제2정규형이 된다. 이를 완전 함수 종속 (Fully Functional Dependency)이라 한다.
제2정규화는 그림(1)과 같이 후보 식별자(A, B)를 구성하는 속성이 두 개 이상일 때만 대상이 되고 단일 속성으로 후보 식별자가 구성되면 대상이 아니다. 두 개 이상의 속성이 후보 식별자로 구성된 경우(그림(1)) 일반 속성(C, D) 중에 후보 식별자 전체에 종속적이지 않고 후보 식별자 일부에 종속되는 일반 속성(C)이 있다면 중복이 발생했으므로 그 속성을 릴레이션 분리해야 제2정규형이 된다. 일반 속성(C)는 부분 함수 종속이기에 중복 데이터를 제거하는 것이 제2정규화이다.
쉽게 생각해서 복합키(A, B)인 상황에서 일반 속성(C, D)가 복합키에 완전 종속이 되면 제2정규형을 만족한다.
그림(2) 릴레이션에서 일반 속성인 상품명과 단가는 복합키(주문번호, 상품코드)에 종속되지 않고 상품코드에만 종속되는 부분 함수 종속이다.
그림(2) 릴레이션을 제2정규화를 거치면 그림(3)과 같다. 주문상품 릴레이션에서 주문수량은 주문번호 속성만 알았을 때나 상품코드만 알았을 때는 알 수 없는 값이고 주문번호와 상품코드 두 값을 모두 알았을 때 알 수 있는 속성이다. 그래서 주문수량은 주문번호, 상품코드 속성에 종속되며 모든 속성이 복합키에 종속되기에 완전 함수 종속을 만족한다.
'SQL > 정규형' 카테고리의 다른 글
BC정규형 (Boyce-Codd Normal Form) (0) | 2025.02.21 |
---|---|
제3정규형 (Third Normal Form) (0) | 2025.02.21 |
제1정규형 (First Normal Form) (0) | 2025.02.20 |
정규화(Normalization), 정규형(Normal Form) (0) | 2025.02.19 |
함수 종속 (0) | 2025.02.18 |