정규화 개념 누구보다 쉽게 알기|1NF,2NF,3NF

아뇨 민균데요·2025년 5월 23일
0

먼저 집고 갈 것
기본키=primary key
외래키=분리하면 원래 테이블에 생김

🧼 정규화가 뭔데?

"엑셀표처럼 만든 테이블, 좀 더 깔끔하게 만들자!"
데이터가 중복되면 → 수정할 때도 중복으로 고쳐야 함 → 귀찮고 실수 나기 쉬움
그래서 정리하는 거임.


✅ 1NF (제1정규형): 칸마다 하나만!

학생ID이름수강과목
1철수수학, 영어 ❌

→ 하나의 셀에 여러 값이 들어가 있음 = 원자값 ❌

고치면?

학생ID이름수강과목
1철수수학 ✅
1철수영어 ✅

한 칸에 하나씩만! 이게 1NF


✅ 2NF (제2정규형): 복합키면, 부분 종속 막자!

예: 수강기록 테이블

학생ID과목명교수이름
1수학김교수 ❌

→ 교수이름은 과목명에만 관련 있음 → "학생ID + 과목명"이라는 복합키에 부분적으로만 종속된 정보
→ 이럴 땐 테이블을 나눠!

나누면?

📘 수강 테이블

학생ID과목명
1수학

📗 과목 테이블

과목명교수이름
수학김교수 ✅

복합키 썼다면, 거기에 일부만 종속된 애는 따로 떼자! 이게 2NF


✅ 3NF (제3정규형): 키 아닌 것들끼리 의존 NO!

예:

과목코드과목명교수이름교수연락처
MATH101수학김교수010-1234 ❌

→ 교수연락처는 과목이 아니라 교수이름에 의존함 → 키 아닌 값끼리 의존

나누면?

📘 과목 테이블

과목코드과목명교수이름

📗 교수 테이블

교수이름교수연락처

기본키 아닌 값들끼리는 의존하지 마라! → 이게 3NF


🎯 정리하면:

단계뭘 막는 거냐
1NF한 칸에 여러 값 ❌
2NF복합키 일부에만 종속 ❌
3NF키 아닌 애들끼리 의존 ❌

profile
this man을 꿈 속에서 보신 적이 있으신가요?

0개의 댓글