Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

Second Normal Form (2NF) ใน Database Normalization

2NF (Second Normal Form) คืออะไร

ขั้นตอนที่ 2 ของ Normalization ตารางต้องอยู่ใน 1NF แล้ว และ Non-key Attribute ทุกตัว ต้อง Fully Functionally Dependent บน Primary Key ทั้งหมด (ไม่ใช่แค่ส่วนหนึ่ง)

ตัวอย่าง違反 2NF: ตาราง StudentProject (มี Partial Dependency)

StudentIDProjectIDStudentNameProjectName
S89P09OliviaGeo Location
S76P07JacobCluster Exploration
S56P03AvaIoT Devices
S92P05AlexandraCloud Deployment

PK = {StudentID, ProjectID} (Composite Key)

  • StudentName ขึ้นกับ StudentID เดียว → Partial Dependency
  • ProjectName ขึ้นกับ ProjectID เดียว → Partial Dependency

→ 違反 2NF

แก้ไขเป็น 2NF: แยกตาราง

StudentInfo (StudentID, ProjectID, StudentName)

StudentIDProjectIDStudentName
S89P09Olivia
S76P07Jacob
S56P03Ava
S92P05Alexandra

ProjectInfo (ProjectID, ProjectName)

ProjectIDProjectName
P09Geo Location
P07Cluster Exploration
P03IoT Devices
P05Cloud Deployment

สรุป: 2NF กำจัด Partial Dependency โดยแยก Non-key Attributes ที่ขึ้นกับส่วนหนึ่งของ PK ไปตารางใหม่ พร้อม FK อ้างอิง