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

ประเภทของการอ้างอิงใน DBMS


การพึ่งพาใน DBMS เป็นความสัมพันธ์ระหว่างแอตทริบิวต์ตั้งแต่สองรายการขึ้นไป มีประเภทต่อไปนี้ใน DBMS -

  • ขึ้นอยู่กับการทำงาน
  • การพึ่งพาการทำงานอย่างเต็มที่
  • การพึ่งพาสกรรมกริยา
  • การพึ่งพาหลายค่า
  • การพึ่งพาอาศัยกันบางส่วน

มาเริ่มกันที่ Functional Dependency -

ขึ้นกับการทำงาน

หากข้อมูลที่จัดเก็บไว้ในตารางสามารถระบุข้อมูลอื่นในตารางเดียวกันได้โดยไม่ซ้ำกัน ก็จะเรียกว่าการพึ่งพาฟังก์ชัน ถือว่าเป็นการเชื่อมโยงระหว่างคุณลักษณะสองประการของความสัมพันธ์เดียวกัน

ถ้า P ทำหน้าที่กำหนด Q แล้ว

P -> Q

เรามาดูตัวอย่างกัน −

<พนักงาน>

EmpID
EmpName
EmpAge
E01
อามิท
28
E02
โรฮิท
31


ในตารางด้านบน EmpName ทำงานขึ้นอยู่กับ EmpID เพราะ EmpName สามารถรับได้เพียงค่าเดียวสำหรับค่าที่กำหนดของ EmpID:

EmpID -> EmpName


เช่นเดียวกันที่แสดงด้านล่าง −

ประเภทของการอ้างอิงใน DBMS

พึ่งพาได้อย่างเต็มที่

แอ็ตทริบิวต์ทำงานได้อย่างสมบูรณ์ขึ้นอยู่กับแอททริบิวต์อื่น หากเป็น 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 ซึ่งความสัมพันธ์บางส่วนขึ้นอยู่กับ.