Third Normal Form

การสร้างฐานข้อมูล PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

นิยาม Third Normal Form

เงื่อนไข

  • ผ่าน 2NF แล้ว
  • ไม่มี "transitive dependencies"
    • กล่าวคือ คอลัมน์ที่ไม่ใช่คีย์ทุกคอลัมน์ขึ้นอยู่กับ PRIMARY KEY เท่านั้น
การสร้างฐานข้อมูล PostgreSQL

Transitive dependencies

  • มี 3 คอลัมน์ในตาราง
  • คอลัมน์ X, Y, Z
  • คอลัมน์ X -> คอลัมน์ Y
  • คอลัมน์ Y -> คอลัมน์ Z
  • คอลัมน์ X -> คอลัมน์ Z
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  • ชื่อวิชา -> ครูผู้สอน
  • ครูผู้สอน -> หมายเลขห้อง
  • ชื่อวิชา -> หมายเลขห้อง
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  • ชื่อวิชา -> ครูผู้สอน
  • ครูผู้สอน -> หมายเลขห้อง
  • ชื่อวิชา -> หมายเลขห้อง
           (transitive dependency)
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  1. อัปเดตหมายเลขห้อง
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  1. อัปเดตหมายเลขห้อง
  2. เพิ่มครูผู้สอนใหม่
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

id name teacher num
157 Algebra Maggie Winters 244
162 Physics Maggie Winters 244
321 Spanish I Jeremy Smith 309
497 History I Sarah Williams 313
613 Spanish II Jeremy Smith 309
  1. อัปเดตหมายเลขห้อง
  2. เพิ่มครูผู้สอนใหม่
  3. ลบวิชาทั้งหมดของครูผู้สอนคนหนึ่ง
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

จะปรับโครงสร้างข้อมูลอย่างไรเพื่อแก้ปัญหาเหล่านี้?

การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

ตาราง teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การจัดห้องเรียน

ตาราง teacher

id name room_num
1 Maggie Winters 244
2 Jeremy Smith 309
3 Sarah Williams 313

ตาราง course_assignment

id name teacher_id
157 Algebra 1
162 Physics 1
321 Spanish I 2
497 History I 3
613 Spanish II 2
การสร้างฐานข้อมูล PostgreSQL

มาฝึกกันเถอะ!

การสร้างฐานข้อมูล PostgreSQL

Preparing Video For Download...