데이터베이스 정규화기

데이터베이스 정규화 형태(1NF~5NF/BCNF)에 대한 대화형 가이드. 비정규화된 데이터와 올바르게 정규화된 결과를 보여주는 시각적 예제와 함께 학습합니다.

모든 처리는 브라우저에서 이루어집니다. 데이터가 업로드되지 않습니다.
Offline Ready

데이터베이스 정규화기

데이터베이스 정규화 형태(1NF~5NF/BCNF)에 대한 대화형 가이드. 비정규화된 데이터와 올바르게 정규화된 결과를 보여주는 시각적 예제와 함께 학습합니다.

🔒모든 처리는 브라우저에서 이루어집니다. 데이터가 업로드되지 않습니다.
정규화 형태 개요
1NF
2NF
3NF
BCNF
4NF
5NF
1NF
2NF
3NF
BCNF
4NF
5NF
위반 예제 및 수정

이전 (비정규화)

StudentIDNameCourses
1AliceMath, Physics, Chemistry
2BobEnglish, Math
3CarolBiology, Chemistry, Physics

이후 (정규화)

StudentCourses
StudentIDNameCourse
1AliceMath
1AlicePhysics
1AliceChemistry
2BobEnglish
2BobMath
3CarolBiology
3CarolChemistry
3CarolPhysics
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)
);