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

Functional Dependency ใน DBMS: ความหมาย ประเภท และ Armstrong's Axioms


Functional Dependency คืออะไร?

Functional Dependency ใน DBMS คือความสัมพันธ์ระหว่างแอตทริบิวต์ของตารางที่พึ่งพากัน ถูกนำเสนอโดย E.F. Codd ช่วยป้องกัน Data Redundancy และรู้จัก Bad Designs

เพื่อเข้าใจอย่างลึกซึ้ง สมมติ P เป็น Relation ที่มีแอตทริบิวต์ A และ B Functional Dependency แสดงด้วย -> (ลูกศร)

Functional Dependency ระหว่างแอตทริบิวต์:

A → B

ข้างต้นบ่งชี้ว่า:

Functional Dependency ใน DBMS: ความหมาย ประเภท และ Armstrong s Axioms

ตัวอย่าง

ตาราง <Department> มี 2 แอตทริบิวต์: DeptId และ DeptName

DeptId DeptName
001Finance
002Marketing
003HR

DeptId เป็น Primary Key ระบุ DeptName ได้อย่างเดียว เพราะถ้าต้องการรู้ชื่อแผนก ต้องมี DeptId ก่อน

Functional Dependency ระหว่าง DeptId และ DeptName:

DeptId → DeptName

ประเภทของ Functional Dependency (3 แบบ)

  • Trivial Functional Dependency
  • Non-Trivial Functional Dependency
  • Completely Non-Trivial Functional Dependency

1. Trivial Functional Dependency

เกิดเมื่อ B เป็น Subset ของ A ใน A → B

ตัวอย่าง: {DeptId, DeptName} → DeptId (เพราะ DeptId เป็น subset ของ {DeptId, DeptName})

2. Non-Trivial Functional Dependency

เกิดเมื่อ B ไม่ใช่ Subset ของ A ใน A → B

ตัวอย่าง: DeptId → DeptName (DeptName ไม่ใช่ subset ของ DeptId)

3. Completely Non-Trivial Functional Dependency

เกิดเมื่อ A intersection B เป็น NULL ใน A → B

Armstrong's Axioms ( 공理ของ Armstrong)

พัฒนาโดย William Armstrong ในปี 1974 เพื่อให้เหตุผลเกี่ยวกับ Functional Dependencies กฎที่เป็นจริงถ้าเงื่อนไขต่อไปนี้เป็นจริง:

  • Transitivity (การอนุกรม): ถ้า A→B และ B→C แล้ว A→C (ความสัมพันธ์แบบอนุกรม)
  • Reflexivity (การสะท้อน): A→B ถ้า B เป็น Subset ของ A
  • Augmentation (การเพิ่ม): AC→BC ถ้า A→B