データベース正規化ガイド

データベース正規化形式(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)
);