การพึ่งพาใน DBMS เป็นความสัมพันธ์ระหว่างแอตทริบิวต์ตั้งแต่สองรายการขึ้นไป มีประเภทต่อไปนี้ใน DBMS -
- ขึ้นอยู่กับการทำงาน
- การพึ่งพาการทำงานอย่างเต็มที่
- การพึ่งพาสกรรมกริยา
- การพึ่งพาหลายค่า
- การพึ่งพาอาศัยกันบางส่วน
มาเริ่มกันที่ Functional Dependency -
ขึ้นกับการทำงาน
หากข้อมูลที่จัดเก็บไว้ในตารางสามารถระบุข้อมูลอื่นในตารางเดียวกันได้โดยไม่ซ้ำกัน ก็จะเรียกว่าการพึ่งพาฟังก์ชัน ถือว่าเป็นการเชื่อมโยงระหว่างคุณลักษณะสองประการของความสัมพันธ์เดียวกัน
ถ้า P ทำหน้าที่กำหนด Q แล้ว
P -> Q |
เรามาดูตัวอย่างกัน −
<พนักงาน>
EmpID | EmpName | EmpAge |
E01 | อามิท | 28 |
E02 | โรฮิท | 31 |
ในตารางด้านบน EmpName ทำงานขึ้นอยู่กับ EmpID เพราะ EmpName สามารถรับได้เพียงค่าเดียวสำหรับค่าที่กำหนดของ EmpID:
EmpID -> EmpName |
เช่นเดียวกันที่แสดงด้านล่าง −
พึ่งพาได้อย่างเต็มที่
แอ็ตทริบิวต์ทำงานได้อย่างสมบูรณ์ขึ้นอยู่กับแอททริบิวต์อื่น หากเป็น Functionally Dependent บนแอททริบิวต์นั้นและไม่ใช่ชุดย่อยใดๆ ที่เหมาะสม
ตัวอย่างเช่น แอตทริบิวต์ Q ทำงานได้อย่างสมบูรณ์โดยขึ้นอยู่กับแอตทริบิวต์ P อื่น หากแอตทริบิวต์นั้นขึ้นอยู่กับฟังก์ชัน P และไม่อยู่บนเซตย่อยที่เหมาะสมของ P
เรามาดูตัวอย่างกัน −
รหัสโครงการ | ต้นทุนโครงการ |
001 | 1000 |
002 | 5000 |
<โครงการพนักงาน>
EmpID | รหัสโครงการ | วัน (ใช้จ่ายในโครงการ) |
E099 | 001 | 320 |
E056 | 002 | 190 |
ความสัมพันธ์ข้างต้นระบุว่า:
EmpID, ProjectID, ProjectCost -> วัน |
อย่างไรก็ตาม มันไม่ได้ขึ้นอยู่กับการทำงานทั้งหมด
ในขณะที่เซตย่อย {EmpID, ProjectID} สามารถกำหนด {วัน} . ได้อย่างง่ายดาย พนักงานใช้ในโครงการ
สิ่งนี้สรุปและให้การพึ่งพาที่ทำงานได้อย่างสมบูรณ์ของเรา -
{EmpID, ProjectID} -> (วัน) |
การพึ่งพาอาศัยกันแบบสกรรมกริยา
เมื่อความสัมพันธ์ทางอ้อมทำให้เกิดการพึ่งพาฟังก์ชัน จะเรียกว่า Transitive Dependency
หาก P -> Q และ Q -> R เป็นจริง ดังนั้น P-> R คือการพึ่งพาสกรรมกริยา
การพึ่งพาหลายค่า
เมื่อการมีอยู่ของแถวอย่างน้อยหนึ่งแถวในตารางแสดงถึงแถวอื่นอย่างน้อยหนึ่งแถวในตารางเดียวกัน การขึ้นต่อกันแบบหลายค่าจะเกิดขึ้น
หากตารางมีคุณสมบัติ P, Q และ R ดังนั้น Q และ R จะเป็นข้อเท็จจริงที่มีหลายค่าของ P
มันถูกแทนด้วยลูกศรคู่ −
->-> |
สำหรับตัวอย่างของเรา:
P->->Q Q->->R |
ในกรณีข้างต้น การขึ้นต่อกันแบบหลายค่าจะเกิดขึ้นก็ต่อเมื่อ Q และ R เป็นแอตทริบิวต์อิสระ
ขึ้นอยู่กับบางส่วน
Partial Dependency เกิดขึ้นเมื่อแอตทริบิวต์ nonprime ขึ้นอยู่กับฟังก์ชันส่วนหนึ่งของคีย์ตัวเลือก
แบบฟอร์มปกติที่ 2 (2NF) กำจัดการพึ่งพาบางส่วน เรามาดูตัวอย่างกัน −
<โครงการนักศึกษา>
StudentID | ProjectNo | StudentName | ชื่อโครงการ |
S01 | 199 | Katie | ตำแหน่งทางภูมิศาสตร์ |
S02 | 120 | Ollie | การสำรวจคลัสเตอร์ |
ในตารางด้านบน เรามีการพึ่งพาบางส่วน มาดูกันว่า −
คุณสมบัติที่สำคัญคือ StudentID และหมายเลขโครงการ
ตามที่ระบุไว้ คุณลักษณะที่ไม่ใช่เฉพาะเช่น StudentName และ ชื่อโครงการ ควรจะขึ้นอยู่กับหน้าที่ของรหัสผู้สมัคร จะต้องขึ้นอยู่กับบางส่วน
ชื่อนักเรียน สามารถกำหนดได้โดย StudentID ที่ทำให้ความสัมพันธ์ขึ้นอยู่กับบางส่วน
ชื่อโครงการ สามารถกำหนดได้โดย ProjectID ซึ่งความสัมพันธ์บางส่วนขึ้นอยู่กับ.