카테고리 없음

정보처리기사 실기 – 데이터베이스 정규화 1~3NF + BCNF 한방 정리

selectBox 2025. 4. 15. 10:57

 


✅ 정규화란?

정규화(Normalization)는 데이터베이스 설계 시 데이터 중복을 최소화하고, 이상 현상(삽입·삭제·갱신 이상)을 방지하기 위한 과정입니다.

복잡하고 중복된 테이블을 단계적으로 나누어 더 안정적이고 논리적인 구조로 만들어주는 과정이죠.


✅ 제1정규형 (1NF)

🔹 조건: 반복 속성 제거, 모든 속성은 원자값(Atomic value)

📌 예시 (1NF 위반)

학생ID 이름 수강과목
101 홍길동 DB, OS

수강과목이 복수 개이므로 1NF 위반

✅ 1NF 적용 후

학생ID 이름 수강과목
101 홍길동 DB
101 홍길동 OS

✅ 제2정규형 (2NF)

🔹 조건: 1NF 만족 + 부분 함수 종속 제거

📌 예시

학번 과목코드 학생이름 성적
101 C001 홍길동 90

학생이름은 과목코드와 무관 → 부분 종속 → 2NF 위반

✅ 2NF 적용 후

  • 성적 테이블: (학번, 과목코드, 성적)
  • 학생 테이블: (학번, 학생이름)

✅ 제3정규형 (3NF)

🔹 조건: 2NF 만족 + 이행 함수 종속 제거

📌 예시

사번 부서번호 부서명
1001 D01 영업부

사번 → 부서번호 → 부서명은 이행 종속 → 3NF 위반

✅ 3NF 적용 후

  • 직원 테이블: (사번, 부서번호)
  • 부서 테이블: (부서번호, 부서명)

✅ 보이스-코드 정규형 (BCNF)

🔹 조건: 모든 결정자는 반드시 후보키여야 한다

📌 예시

교수 과목 강의실
홍길동 DB 201호

교수 → 과목 / 과목 → 강의실
→ 교수는 후보키가 아닐 수 있음 → BCNF 위반 가능성

📌 참고: 3NF까지 만족해도 BCNF는 위반할 수 있습니다.


🧪 실전 기출형 문제

문제:
다음 릴레이션은 학생의 수강 정보를 저장한 것이다.
이 릴레이션이 제1정규형을 만족하지 못하는 이유를 쓰시오.
학번 이름 전화번호 수강과목
1001 홍길동 010-1111-2222 DB, OS

✅ 정답

수강과목에 복수의 데이터(DB, OS)가 포함되어 있어 원자값이 아님
→ 반복 속성이 존재하여 제1정규형 위반


📌 핵심 요약 정리

정규형 조건 제거 대상
1NF 모든 속성은 원자값 반복 속성
2NF 1NF 만족 + 부분 함수 종속 제거 부분 종속
3NF 2NF 만족 + 이행 함수 종속 제거 이행 종속
BCNF 모든 결정자는 후보키여야 함 후보키가 아닌 결정자

 

📌 정보처리기사 실기 – 정규화 실전 문제 풀이 (1탄)


🧪 문제 1

다음 릴레이션은 학생의 수강 정보를 나타낸 것이다.
이 릴레이션은 어떤 정규형(NF)을 만족하지 못하는가?

학번 이름 수강과목
1001 홍길동 DB, OS

✍️ 보기
A. 제1정규형 (1NF)
B. 제2정규형 (2NF)
C. 제3정규형 (3NF)
D. BCNF

 

 

 

 

 

✅ 정답: A. 제1정규형 (1NF)

💡 해설

수강과목 속성에 복수의 값(DB, OS)가 포함되어 있음 → 원자값 위반
즉, 반복 속성이 존재하여 제1정규형 위반

 


🧪 문제 2

다음 릴레이션에서 ‘학생이름’은 어떤 종속성을 위반하는가?

학번 과목코드 학생이름 성적
  • 기본키: (학번, 과목코드)
  • 학생이름은 학번에만 종속

✍️ 보기
A. 부분 함수 종속
B. 이행 함수 종속
C. 다치 종속
D. 조인 종속

 

 

 

 

✅ 정답: A. 부분 함수 종속

💡 해설

학생이름은 복합키 전체가 아닌 학번에만 종속
→ 부분 함수 종속 → 제2정규형 위반


 

🧪 문제 3

다음 릴레이션은 2NF는 만족하나, 3NF는 만족하지 못한다.
그 이유는 무엇인가?

사번 부서번호 부서명
1001 D01 영업부
  • 기본키: 사번
  • 사번 → 부서번호 → 부서명

✍️ 보기
A. 이행 함수 종속 존재
B. 부분 함수 종속 존재
C. 반복 속성 존재
D. 다치 종속 존재

 

 

 

 

✅ 정답: A. 이행 함수 종속 존재

💡 해설

사번 → 부서번호 → 부서명
일반 속성이 다른 일반 속성에 종속된 구조 → 이행 함수 종속
제3정규형 위반

 


 

📌 핵심 요약 정리

위반 정규형 주요 위반 요소 대표 키워드
1NF 원자값 위반, 반복 속성 존재 복수 값, 쉼표
2NF 부분 함수 종속 복합키 일부에만 종속
3NF 이행 함수 종속 A → B → C 구조