데이터베이스 정규화기
데이터베이스 정규화 형태(1NF~5NF/BCNF)에 대한 대화형 가이드. 비정규화된 데이터와 올바르게 정규화된 결과를 보여주는 시각적 예제와 함께 학습합니다.
모든 처리는 브라우저에서 이루어집니다. 데이터가 업로드되지 않습니다.
데이터베이스 정규화기
데이터베이스 정규화 형태(1NF~5NF/BCNF)에 대한 대화형 가이드. 비정규화된 데이터와 올바르게 정규화된 결과를 보여주는 시각적 예제와 함께 학습합니다.
🔒모든 처리는 브라우저에서 이루어집니다. 데이터가 업로드되지 않습니다.
정규화 형태 개요
1NF
2NF
3NF
BCNF
4NF
5NF
1NF
2NF
3NF
BCNF
4NF
5NF
위반 예제 및 수정
이전 (비정규화)
| StudentID | Name | Courses |
|---|---|---|
| 1 | Alice | Math, Physics, Chemistry |
| 2 | Bob | English, Math |
| 3 | Carol | Biology, Chemistry, Physics |
이후 (정규화)
StudentCourses
| StudentID | Name | Course |
|---|---|---|
| 1 | Alice | Math |
| 1 | Alice | Physics |
| 1 | Alice | Chemistry |
| 2 | Bob | English |
| 2 | Bob | Math |
| 3 | Carol | Biology |
| 3 | Carol | Chemistry |
| 3 | Carol | Physics |
SQL 예제
SQL 이전 (정규화 위반)
-- Violates 1NF: multi-valued column CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(100), Courses VARCHAR(500) -- comma-separated! );
SQL 이후 (정규화)
-- 1NF: Each cell has atomic values CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(100) ); CREATE TABLE StudentCourses ( StudentID INT, Course VARCHAR(100), PRIMARY KEY (StudentID, Course), FOREIGN KEY (StudentID) REFERENCES Students(StudentID) );
