เครื่องมือนอร์มอลไลซ์ฐานข้อมูล
คู่มือเชิงโต้ตอบเกี่ยวกับรูปแบบนอร์มอลไลเซชันของฐานข้อมูล (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) );
