資料庫正規化工具
資料庫正規化形式(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) );
