티스토리 뷰
728x90
반응형
📘 제2정규형(2NF)과 제3정규형(3NF)의 비교
✅ 정규화란 무엇인가?
정규화(Normalization)는 데이터베이스 설계에서 데이터 중복을 제거하고 이상(anomaly)을 방지하기 위한 과정입니다.
정규화는 여러 단계로 이루어지며, 각 단계마다 더 엄격한 함수 종속성의 제약을 부여합니다.
🔷 제2정규형 (2NF)
✅ 정의
제2정규형(2NF)은 테이블이 제1정규형(1NF)을 만족하고, 모든 속성이 기본키 전체에 대해 완전 함수 종속이어야 한다는 조건을 갖습니다.
>✅ 완전 함수 종속이란?
기본키가 두 개 이상의 속성으로 이루어졌을 때, 어떤 속성이 기본키의 일부분에만 종속되면 안됨을 의미합니다.
✅ 2NF가 해결하려는 문제
- 부분 함수 종속으로 인한 중복 데이터 발생
- 삽입 이상, 삭제 이상, 갱신 이상 발생
⚠ 2NF 위배 예시 ① – 수강정보
정규화 전 테이블: 수강정보
학번 | 과목코드 | 학생이름 | 과목명 | 성적 |
---|---|---|---|---|
1001 | CS101 | 홍길동 | 자료구조 | A |
1001 | CS102 | 홍길동 | 운영체제 | B+ |
1002 | CS101 | 김영희 | 자료구조 | A- |
- 기본키: (학번, 과목코드)
- 학생이름은 학번에만 종속, 과목명은 과목코드에만 종속 → 부분 종속 → 2NF 위배
✅ 정규화 후 테이블
수강
학번 | 과목코드 | 성적 |
---|---|---|
1001 | CS101 | A |
1001 | CS102 | B+ |
1002 | CS101 | A- |
학생
학번 | 학생이름 |
---|---|
1001 | 홍길동 |
1002 | 김영희 |
과목
과목코드 | 과목명 |
---|---|
CS101 | 자료구조 |
CS102 | 운영체제 |
⚠ 2NF 위배 예시 ② – 주문정보
정규화 전 테이블: 주문정보
주문번호 | 상품코드 | 상품명 | 단가 | 수량 |
---|---|---|---|---|
ORD01 | P100 | 무선마우스 | 25,000 | 2 |
ORD01 | P200 | 키보드 | 40,000 | 1 |
ORD02 | P100 | 무선마우스 | 25,000 | 1 |
- 기본키: (주문번호, 상품코드)
- 상품명, 단가는 상품코드에만 종속 → 부분 종속 → 2NF 위배
✅ 정규화 후 테이블
주문상세
주문번호 | 상품코드 | 수량 |
---|---|---|
ORD01 | P100 | 2 |
ORD01 | P200 | 1 |
ORD02 | P100 | 1 |
상품정보
상품코드 | 상품명 | 단가 |
---|---|---|
P100 | 무선마우스 | 25,000 |
P200 | 키보드 | 40,000 |
🔶 제3정규형 (3NF)
✅ 정의
제3정규형(3NF)은 테이블이 2NF를 만족하고, 모든 속성이 기본키에 대해 이행적 함수 종속을 가지지 않아야 합니다.
>✅ 이행적 함수 종속이란?
기본키 A → B → C가 성립할 때, A → C가 존재하는 경우. 이 때 C는 B에 직접 종속되어야 하며 A를 통해 간접 종속되면 안 됩니다.
✅ 3NF가 해결하려는 문제
- 의미상 연결되지 않은 데이터가 함께 움직임
- 중복된 정보로 인해 불일치 오류 발생
⚠ 3NF 위배 예시 ① – 직원 테이블
정규화 전 테이블: 직원
직원ID | 부서번호 | 부서명 |
---|---|---|
E001 | D10 | 인사팀 |
E002 | D20 | 회계팀 |
E003 | D10 | 인사팀 |
- 직원ID → 부서번호 → 부서명 → 이행 종속 → 3NF 위배
✅ 정규화 후 테이블
직원
직원ID | 부서번호 |
---|---|
E001 | D10 |
E002 | D20 |
E003 | D10 |
부서
부서번호 | 부서명 |
---|---|
D10 | 인사팀 |
D20 | 회계팀 |
⚠ 3NF 위배 예시 ② – 제품재고 테이블
정규화 전 테이블: 재고
제품ID | 창고ID | 창고주소 |
---|---|---|
A101 | W01 | 서울 중구 |
A102 | W01 | 서울 중구 |
A103 | W02 | 부산 해운대 |
- 제품ID → 창고ID → 창고주소 → 이행 종속 → 3NF 위배
✅ 정규화 후 테이블
재고
제품ID | 창고ID |
---|---|
A101 | W01 |
A102 | W01 |
A103 | W02 |
창고
창고ID | 창고주소 |
---|---|
W01 | 서울 중구 |
W02 | 부산 해운대 |
✅ 최종 요약표
항목 | 제2정규형 (2NF) | 제3정규형 (3NF) |
---|---|---|
정규화 조건 | 1NF 만족 + 완전 함수 종속 | 2NF 만족 + 이행 함수 종속 제거 |
제거 대상 | 부분 종속 | 이행 종속 |
주요 이상 해결 | 삽입·삭제·갱신 이상 | 의미 불일치, 중복, 갱신 이상 |
예시 1 | 수강정보 (학생이름/과목명) | 직원정보 (부서명) |
예시 2 | 주문정보 (상품명/단가) | 재고정보 (창고주소) |
728x90
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
데이터 사전(Data Dictionary) (0) | 2025.04.24 |
---|---|
SQL 언어 정리 - DDL, DML, DCL, DUL (0) | 2025.04.24 |
정규화: 제2유형 vs 제 3유형 헷갈릴 수 있는 상황! (0) | 2025.04.15 |
제 3 정규형이란? (0) | 2025.04.15 |
제2정규형(2NF) 완전 정복 (0) | 2025.04.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 조건형성
- 행동심리학
- 심리학
- 회계
- K-MOOC
- 통계학
- 일본어
- 통계
- 정보처리기사
- 행동주의
- 파이썬
- C
- 오블완
- Python
- 윤성우
- 데이터분석
- 보세사
- 열혈프로그래밍
- 코딩테스트
- 일본어문법무작정따라하기
- 일문따
- 물류관리사
- 백준
- 학습이론
- 인지부조화
- 류근관
- 학습심리학
- c++
- 티스토리챌린지
- 강화학습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형
250x250