ຄວາມເຂັ້ມແຂງການເຮັດວຽກຢ່າງເຕັມທີ່ໃນຖານຂໍ້ມູນປົກກະຕິ

ການປະຕິບັດຫນ້າທີ່ເປັນຢ່າງເຕັມທີ່ແມ່ນລັດຂອງ ຖານຂໍ້ມູນປົກກະຕິ ທີ່ສອດຄ່ອງກັບມາດຕະຖານປົກກະຕິຂອງ ແບບປະກະຕິທີ່ສອງ (2NF) . ໂດຍຫຍໍ້ແລ້ວ, ນີ້ຫມາຍຄວາມວ່າມັນສາມາດຕອບສະຫນອງຄວາມຕ້ອງການຂອງ First Normal Form (1NF), ແລະຄຸນລັກສະນະທັງຫມົດທີ່ບໍ່ແມ່ນສໍາຄັນແມ່ນຂຶ້ນຢູ່ກັບຫຼັກການຫຼັກ.

ນີ້ບໍ່ແມ່ນສັບສົນເພາະມັນອາດຈະມີສຽງ. ໃຫ້ເບິ່ງນີ້ໃນລາຍລະອຽດເພີ່ມເຕີມ.

ຂໍ້ສະຫຼຸບຂອງແບບປະກະຕິທໍາອິດ

ກ່ອນທີ່ຈະຖານຂໍ້ມູນສາມາດເຕັມໄປດ້ວຍຫນ້າທີ່ເຮັດວຽກໄດ້, ມັນຕ້ອງໄດ້ປະຕິບັດຕາມ ທໍາອິດ Normal Form .

ທັງຫມົດນີ້ຫມາຍຄວາມວ່າຄຸນລັກສະນະແຕ່ລະຕ້ອງຖືເປັນຄ່າດຽວ, ຄ່າປະລໍາມະນູ.

ຕົວຢ່າງ, ຕາຕະລາງຕໍ່ໄປນີ້ ບໍ່ ປະຕິບັດຕາມ 1NF, ເພາະວ່າພະນັກງານ Tina ໄດ້ເຊື່ອມໂຍງກັບສອງສະຖານທີ່, ທັງສອງຄົນຢູ່ໃນຫ້ອງດຽວ:

ມາດຕະຖານທໍາອິດທີ່ບໍ່ສອດຄ່ອງ
ລູກ​ຈ້າງ ສະຖານທີ່
John Los Angeles
Tina Los Angeles, Chicago

ອະນຸຍາດໃຫ້ການອອກແບບນີ້ສາມາດສົ່ງຜົນກະທົບທາງລົບຕໍ່ການປັບປຸງຂໍ້ມູນຫຼືລາຍການຕ່າງໆ. ເພື່ອຮັບປະກັນການປະຕິບັດຕາມ 1NF, ຈັດຕາຕະລາງໃຫມ່ເພື່ອໃຫ້ຄຸນລັກສະນະທັງຫມົດ (ຫລືຄໍລໍາຄໍລໍາ) ຖືເປັນຄ່າດຽວ:

ທໍາອິດປະຕິບັດແບບປະກະຕິ
ລູກ​ຈ້າງ ສະຖານທີ່
John Los Angeles
Tina Los Angeles
Tina Chicago

ແຕ່ 1NF ຍັງບໍ່ພຽງພໍເພື່ອຫຼີກເວັ້ນບັນຫາກັບຂໍ້ມູນ.

2NF ເຮັດແນວໃດເພື່ອຮັບປະກັນຄວາມຂັດແຍ້ງຢ່າງເຕັມທີ່

ເພື່ອໃຫ້ເຂົ້າໃຈຢ່າງເຕັມສ່ວນ, ຄຸນລັກສະນະທີ່ບໍ່ແມ່ນຜູ້ນໍາໃຊ້ທັງຫມົດຕ້ອງຂຶ້ນຢູ່ກັບຫຼັກຫຼັກ. (ຈົ່ງຈື່ໄວ້, ຄຸນລັກສະນະ ສໍາຄັນຂອງຜູ້ນໍາໃຊ້ ແມ່ນສໍາຄັນໃດໆ ​​(ສໍາລັບຕົວຢ່າງຫຼັກຫຼັກຕ່າງປະເທດຫຼືຕ່າງປະເທດ) ທີ່ໃຊ້ເພື່ອບັນທຶກຂໍ້ມູນຖານຂໍ້ມູນເປັນເອກະລັກ.

ຜູ້ອອກແບບຖານຂໍ້ມູນໃຊ້ການຫມາຍເພື່ອອະທິບາຍຄວາມສໍາພັນທີ່ກ່ຽວຂ້ອງກັບລະຫວ່າງຄຸນລັກສະນະ:

ຖ້າຄວາມສໍາຄັນ A ກໍານົດຄ່າຂອງ B, ພວກເຮົາຂຽນ A -> B - ຊຶ່ງຫມາຍຄວາມວ່າ B ແມ່ນຂຶ້ນຢູ່ກັບການເຮັດວຽກໃນ A. ໃນຄວາມສໍາພັນນີ້, A ກໍານົດຄ່າຂອງ B, ໃນຂະນະທີ່ B ແມ່ນຂຶ້ນກັບ A.

ຕົວຢ່າງ, ຢູ່ໃນຕາຕະລາງ ພະແນກພະນັກງານ ດັ່ງຕໍ່ໄປນີ້, EmployeeID ແລະ DeptID ແມ່ນທັງສອງທີ່ໃຊ້ໃນການໃຊ້ງານ: EmployeeID ເປັນຫຼັກຫຼັກຂອງຕາຕະລາງໃນຂະນະທີ່ DeptID ເປັນກຸນແຈຕ່າງປະເທດ.

ຄຸນລັກສະນະອື່ນໃດ - ໃນກໍລະນີນີ້, EmployeeName ແລະ DeptName - ຕ້ອງຂຶ້ນຢູ່ກັບຫຼັກຫຼັກເພື່ອຮັບມູນຄ່າຂອງມັນ.

ພະແນກພະນັກງານ
EmployeeID EmployeeName DeptID DeptName
Emp1 John Dept001 ການເງິນ
Emp2 Tina Dept003 ຂາຍ
Emp3 Carlos Dept001 ການເງິນ

ໃນກໍລະນີນີ້, ຕາຕະລາງບໍ່ແມ່ນຄວາມຕ້ອງການອັນເຕັມທີ່ເພາະວ່າໃນຂະນະທີ່ EmployeeName ຂື້ນກັບ Key employee EmployeeID, DeptName ແມ່ນຂຶ້ນກັບ DeptID. ນີ້ເອີ້ນວ່າ ການອາໄສຢູ່ສ່ວນຫນຶ່ງ .

ເພື່ອເຮັດໃຫ້ຕາຕະລາງນີ້ສອດຄ່ອງກັບ 2NF, ພວກເຮົາຕ້ອງແຍກຂໍ້ມູນເປັນສອງຕາຕະລາງ:

ພະນັກງານ
EmployeeID EmployeeName DeptID
Emp1 John Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

ພວກເຮົາລຶບ DeptName attribute ຈາກ Table Employees ແລະສ້າງຕາຕະລາງໃຫມ່ ຫ້ອງການ :

ພະແນກ
DeptID DeptName
Dept001 ການເງິນ
Dept002 ຊັບ​ພະ​ຍາ​ກອນ​ມະ​ນຸດ
Dept003 ຂາຍ

ໃນປັດຈຸບັນ, ການພົວພັນລະຫວ່າງຕາຕະລາງແມ່ນຂຶ້ນຢູ່ກັບຢ່າງເຕັມສ່ວນ, ຫຼືໃນ 2NF.

ເປັນຫຍັງຄວາມຂັດແຍ້ງຢ່າງເຕັມທີ່ຈຶ່ງເປັນສິ່ງສໍາຄັນ

ຄວາມເຂົ້າໃຈຢ່າງເຕັມທີ່ລະຫວ່າງຄຸນລັກສະນະຂອງຖານຂໍ້ມູນຈະຊ່ວຍໃຫ້ຄວາມສົມບູນຂອງຂໍ້ມູນແລະຫລີກລ່ຽງຄວາມຜິດພາດຂອງຂໍ້ມູນ.

ຕົວຢ່າງ, ພິຈາລະນາຕາຕະລາງໃນພາກຂ້າງເທິງທີ່ຕິດຕາມພຽງແຕ່ 1NF ເທົ່ານັ້ນ. ນີ້ແມ່ນ, ອີກເທື່ອຫນຶ່ງ:

ທໍາອິດປະຕິບັດແບບປະກະຕິ
ລູກ​ຈ້າງ ສະຖານທີ່
John Los Angeles
Tina Los Angeles
Tina Chicago

Tina ມີສອງບັນທຶກ. ຖ້າພວກເຮົາປັບປຸງຫນຶ່ງໂດຍບໍ່ຮູ້ວ່າມີສອງ, ຜົນໄດ້ຮັບຈະເປັນຂໍ້ມູນທີ່ບໍ່ສອດຄ່ອງ.

ຫລື, ຖ້າພວກເຮົາຕ້ອງການເພີ່ມພະນັກງານເຂົ້າມາໃນຕາຕະລາງນີ້, ແຕ່ພວກເຮົາຍັງບໍ່ຮູ້ວ່າບ່ອນໃດ? ພວກເຮົາອາດຈະບໍ່ອະນຸຍາດໃຫ້ເພີ່ມພະນັກງານໃຫມ່ຖ້າຫາກວ່າຄຸນສົມບັດສະຖານທີ່ບໍ່ອະນຸຍາດໃຫ້ຄ່າ NULL.

ການຕິດຕາມຢ່າງເຕັມທີ່ບໍ່ແມ່ນຮູບພາບທັງຫມົດ, ເຖິງແມ່ນວ່າ, ໃນເວລາທີ່ມັນມາກັບການປົກກະຕິ. ທ່ານຕ້ອງໃຫ້ແນ່ໃຈວ່າຖານຂໍ້ມູນຂອງທ່ານຢູ່ໃນ ຮູບແບບປົກກະຕິທີສາມ (3NF).