การพึ่งพาการทำงานแบบเต็มรูปแบบในการสร้างฐานข้อมูลมาตรฐาน

การพึ่งพาการทำงานแบบเต็มรูปแบบคือสถานะของการ ทำให้เป็นบรรทัดฐาน ของ ฐานข้อมูล ซึ่งสอดคล้องกับมาตรฐาน normalization ของ Normal Normal Form (2NF) สรุปได้ว่านี่เป็นไปตามข้อกำหนดของ First Normal Form (1NF) และคุณลักษณะที่ไม่สำคัญทั้งหมดขึ้นอยู่กับคีย์หลัก

นี่ไม่ซับซ้อนเท่าที่ควร ลองดูที่รายละเอียดเพิ่มเติม

สรุปแบบฟอร์มปกติครั้งแรก

ก่อนที่ฐานข้อมูลจะสามารถทำงานได้โดยขึ้นอยู่กับฟอร์แมทแรกจะต้องสอดคล้องกับ First Normal Form

ทั้งหมดนี้หมายความว่าแต่ละแอ็ตทริบิวต์ต้องมีค่าอะตอมเดี่ยว

ตัวอย่างเช่นตารางต่อไปนี้ ไม่ สอดคล้องกับ 1NF เนื่องจาก Tina พนักงานเชื่อมโยงกับตำแหน่งที่ตั้งสองแห่งทั้งในเซลล์เดียว:

การไม่ปฏิบัติตามข้อกำหนดในรูปแบบปกติครั้งแรก
ลูกจ้าง ที่ตั้ง
จอห์น Los Angeles
ทีน่า Los Angeles, Chicago

การอนุญาตการออกแบบนี้อาจส่งผลเสียต่อการอัปเดตข้อมูลหรือรายการ เพื่อให้แน่ใจว่าการปฏิบัติตามข้อกำหนด 1NF ให้จัดเรียงตารางใหม่เพื่อให้แอตทริบิวต์ทั้งหมด (หรือคอลัมน์คอลัมน์) มีค่าเดียว:

การปฏิบัติตามรูปแบบปกติครั้งแรก
ลูกจ้าง ที่ตั้ง
จอห์น Los Angeles
ทีน่า Los Angeles
ทีน่า เมืองชิคาโก

แต่ 1NF ยังไม่เพียงพอที่จะหลีกเลี่ยงปัญหาเกี่ยวกับข้อมูล

2NF ทำงานอย่างไรเพื่อให้แน่ใจว่ามีความพึ่งพาอาศัยกันอย่างเต็มที่

แอตทริบิวต์ที่สำคัญทั้งหมดที่ไม่ใช่ผู้สมัครจะต้องขึ้นอยู่กับคีย์หลัก (โปรดจำไว้ว่าแอ็ตทริบิวต์ หลักของผู้สมัคร คือคีย์ใด ๆ (เช่นคีย์หลักหรือคีย์ต่างประเทศ) ที่ใช้ในการระบุระเบียนฐานข้อมูลโดยไม่ซ้ำกัน

นักออกแบบฐานข้อมูลใช้สัญกรณ์เพื่ออธิบายถึงความสัมพันธ์ระหว่างแอตทริบิวต์:

ถ้าแอ็ตทริบิวต์ A กำหนดค่าของ B เราจะเขียน A -> B - ความหมายว่า B เป็นฟังก์ชันขึ้นอยู่กับ A. ในความสัมพันธ์นี้ A กำหนดค่าของ B ในขณะที่ B ขึ้นอยู่กับ A.

ตัวอย่างเช่นในตาราง หน่วยงาน ต่อไปนี้ EmployeeID และ DeptID มีคีย์ candidate: EmployeeID เป็นคีย์หลักของตารางในขณะที่ DeptID เป็นคีย์ต่างประเทศ

แอตทริบิวต์อื่น ๆ - ในกรณีนี้ EmployeeName และ DeptName - ต้องขึ้นอยู่กับคีย์หลักเพื่อรับค่า

แผนกพนักงาน
EmployeeID ชื่อพนักงาน DeptID DeptName
Emp1 จอห์น Dept001 การเงิน
Emp2 ทีน่า Dept003 ขาย
Emp3 คาร์ลอ Dept001 การเงิน

ในกรณีนี้ตารางไม่ได้ขึ้นอยู่อย่างสมบูรณ์เนื่องจากในขณะที่ EmployeeName ขึ้นอยู่กับคีย์หลัก EmployeeID DeptName ขึ้นอยู่กับ DeptID แทน นี้เรียกว่า การพึ่งพาบางส่วน

เพื่อให้ตารางนี้สอดคล้องกับ 2NF เราจำเป็นต้องแยกข้อมูลออกเป็นสองตาราง:

พนักงาน
EmployeeID ชื่อพนักงาน DeptID
Emp1 จอห์น Dept001
Emp2 ทีน่า Dept003
Emp3 คาร์ลอ Dept001

เราลบแอตทริบิวต์ DeptName ออกจากตาราง Employees และสร้าง แผนก ใหม่:

หน่วยงาน
DeptID DeptName
Dept001 การเงิน
Dept002 ทรัพยากรมนุษย์
Dept003 ขาย

ตอนนี้ความสัมพันธ์ระหว่างตารางจะขึ้นอยู่อย่างเต็มที่หรือใน 2NF

เพราะเหตุใด Full Dependency เป็นสิ่งสำคัญ

การพึ่งพาอาศัยกันระหว่างแอตทริบิวต์ฐานข้อมูลช่วยให้มั่นใจได้ถึงความสมบูรณ์ของข้อมูลและหลีกเลี่ยงความผิดปกติของข้อมูล

ตัวอย่างเช่นพิจารณาตารางในส่วนด้านบนที่ใช้เฉพาะกับ 1NF เท่านั้น นี่เป็นอีกครั้ง:

การปฏิบัติตามรูปแบบปกติครั้งแรก
ลูกจ้าง ที่ตั้ง
จอห์น Los Angeles
ทีน่า Los Angeles
ทีน่า เมืองชิคาโก

Tina มีสองระเบียน ถ้าเราปรับปรุงหนึ่งโดยไม่ทราบว่ามีสองผลลัพธ์จะเป็นข้อมูลที่ไม่สอดคล้องกัน

หรือสิ่งที่ถ้าเราต้องการเพิ่มพนักงานลงในตารางนี้ แต่เรายังไม่ทราบสถานที่นี้หรือไม่? เราอาจจะไม่ได้รับอนุญาตให้เพิ่มพนักงานใหม่หากแอตทริบิวต์ Location ไม่อนุญาตค่า NULL

การพึ่งพาแบบเต็มไม่ได้เป็นภาพรวม แต่เมื่อพูดถึงการทำให้เป็นบรรทัดฐาน คุณต้องตรวจสอบให้แน่ใจว่าฐานข้อมูลของคุณอยู่ใน Third Normal Form (3NF)