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

การสลายตัวแบบไม่สูญเสียและการสูญเสียใน DBMS


การสลายตัวใน DBMS จะลบความซ้ำซ้อน ความผิดปกติ และความไม่สอดคล้องออกจากฐานข้อมูลโดยแบ่งตารางออกเป็นหลายตาราง

ต่อไปนี้เป็นประเภท -

การสลายตัวแบบไม่สูญเสีย

การสลายตัวจะไม่สูญเสียหากเป็นไปได้ในการสร้างความสัมพันธ์ R ขึ้นใหม่จากตารางที่สลายโดยใช้การรวม นี่คือตัวเลือกที่ต้องการ ข้อมูลจะไม่สูญหายจากความสัมพันธ์เมื่อย่อยสลาย การรวมจะส่งผลให้เกิดความสัมพันธ์แบบเดิม

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

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
Dept_Name
E001
จาค็อบ
29
แอละแบมา
Dpt1
การดำเนินการ
E002
เฮนรี่
32
แอละแบมา
Dpt2
HR
E003
ทอม
22
เท็กซัส
Dpt3
การเงิน


แบ่งตารางด้านบนออกเป็นสองตาราง:

Emp_ID
Emp_Name
Emp_Age
Emp_Location
E001
จาค็อบ
29
แอละแบมา
E002
เฮนรี่
32
แอละแบมา
E003
ทอม
22
เท็กซัส


Dept_ID
Emp_ID
Dept_Name
Dpt1
E001
การดำเนินการ
Dpt2
E002
HR
Dpt3
E003
การเงิน


ตอนนี้ Natural Join ถูกนำไปใช้กับสองตารางด้านบน -

ผลลัพธ์จะเป็น −

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
Dept_Name
E001
จาค็อบ
29
แอละแบมา
Dpt1
การดำเนินการ
E002
เฮนรี่
32
แอละแบมา
Dpt2
HR
E003
ทอม
22
เท็กซัส
Dpt3
การเงิน


ดังนั้นความสัมพันธ์ข้างต้นจึงมีการสลายตัวแบบไม่สูญเสียข้อมูล กล่าวคือ ไม่มีข้อมูลสูญหาย

การสูญเสียการสลายตัว

ตามชื่อที่แนะนำ เมื่อความสัมพันธ์ถูกแยกออกเป็นสองสกีมาเชิงสัมพันธ์ การสูญเสียข้อมูลจะหลีกเลี่ยงไม่ได้เมื่อมีการดึงความสัมพันธ์ดั้งเดิม

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

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
Dept_Name
E001
จาค็อบ
29
แอละแบมา
Dpt1
การดำเนินการ
E002
เฮนรี่
32
แอละแบมา
Dpt2
HR
E003
ทอม
22
เท็กซัส
Dpt3
การเงิน


แบ่งตารางด้านบนออกเป็นสองตาราง -

Emp_ID
Emp_Name
Emp_Age
Emp_Location
E001
จาค็อบ
29
แอละแบมา
E002
เฮนรี่
32
แอละแบมา
E003
ทอม
22
เท็กซัส


Dept_ID
Dept_Name
Dpt1
การดำเนินการ
Dpt2
HR
Dpt3
การเงิน


ตอนนี้ คุณจะไม่สามารถเข้าร่วมตารางด้านบนได้ เนื่องจาก Emp_ID ไม่ได้เป็นส่วนหนึ่งของ DeptDetails ความสัมพันธ์

ดังนั้นความสัมพันธ์ข้างต้นจึงมีการสลายตัวที่สูญเสียไป