ຄວາມຕ້ອງການຂອງຖານຂໍ້ມູນແມ່ນຫົວຂໍ້ທີ່ມັກຈະສັບສົນທັງນັກຮຽນແລະຜູ້ຊ່ຽວຊານດ້ານຖານຂໍ້ມູນຄືກັນ. ໂຊກດີ, ພວກເຂົາບໍ່ແມ່ນເລື່ອງທີ່ສັບສົນແລະສາມາດສະແດງໃຫ້ເຫັນໄດ້ດີໂດຍໃຊ້ຕົວຢ່າງຈໍານວນຫນຶ່ງ. ໃນບົດຄວາມນີ້, ພວກເຮົາຈະກວດກາເບິ່ງປະເພດຄວາມຕ້ອງການຖານຂໍ້ມູນທົ່ວໄປ.
Dependencies ຖານຂໍ້ມູນ / ຂໍ້ມູນກ່ຽວກັບການເຮັດວຽກ
ຄວາມຂັດແຍ້ງເກີດຂຶ້ນໃນຖານຂໍ້ມູນເມື່ອຂໍ້ມູນທີ່ເກັບໄວ້ໃນຕາຕະລາງຖານຂໍ້ມູນດຽວກັນກໍານົດຂໍ້ມູນອື່ນທີ່ເກັບໄວ້ໃນຕາຕະລາງດຽວກັນ. ນອກນັ້ນທ່ານຍັງສາມາດອະທິບາຍນີ້ເປັນຄວາມສໍາພັນທີ່ຮູ້ ມູນຄ່າ ຂອງຄຸນສົມບັດຫນຶ່ງ (ຫຼືຊຸດຂອງຄຸນລັກສະນະ) ພຽງພໍທີ່ຈະບອກຄຸນຄ່າຂອງຄຸນສົມບັດອື່ນ (ຫຼືຊຸດຂອງຄຸນລັກສະນະ) ໃນຕາຕະລາງດຽວກັນ.
ເວົ້າວ່າມີຄວາມຂັດແຍ່ງກັນລະຫວ່າງຄຸນລັກສະນະໃນຕາຕະລາງແມ່ນຄືກັນກັບການກ່າວວ່າມີຄວາມເຂົ້າໃຈກ່ຽວກັບຄຸນສົມບັດທີ່ມີຄຸນສົມບັດກັນລະຫວ່າງຄຸນລັກສະນະເຫຼົ່ານັ້ນ. ຖ້າມີຂໍ້ຂັດແຍ່ງໃນຖານຂໍ້ມູນດັ່ງກ່າວທີ່ວ່າ attribute B ແມ່ນຂຶ້ນກັບຄຸນລັກສະນະ A, ທ່ານຈະຂຽນນີ້ເປັນ "A -> B".
ຕົວຢ່າງ: ໃນຕາຕະລາງລາຍລະອຽດກ່ຽວກັບພະນັກງານລວມທັງເລກປະກັນສັງຄົມ (SSN) ແລະຊື່, ມັນສາມາດເວົ້າໄດ້ວ່າຊື່ແມ່ນຂຶ້ນກັບ SSN (ຫຼື SSN -> ຊື່) ເນື່ອງຈາກຊື່ຂອງພະນັກງານສາມາດຖືກກໍານົດໂດຍ SSN ຂອງເຂົາເຈົ້າ. ຢ່າງໃດກໍ່ຕາມ, ຄໍາສັ່ງກັບ (ຊື່ -> SSN) ບໍ່ແມ່ນຄວາມຈິງເພາະຫຼາຍກວ່າຫນຶ່ງຄົນສາມາດມີຊື່ດຽວກັນແຕ່ SSNs ທີ່ແຕກຕ່າງກັນ.
Trivial Functional Dependencies
ການເບິ່ງ ແຍງທີ່ມີປະສິດທິພາບທີ່ບໍ່ສໍາຄັນ ເກີດຂື້ນໃນເວລາທີ່ທ່ານອະທິບາຍການປະຕິບັດຫນ້າທີ່ຂອງຄຸນສົມບັດກ່ຽວກັບການລວບລວມຄຸນລັກສະນະທີ່ມີຄຸນສົມບັດຕົ້ນສະບັບ. ຕົວຢ່າງເຊັ່ນ "{A, B} -> B" ເປັນການ ປະຕິບັດທີ່ບໍ່ມີຜົນປະໂຫຍດ, ຄືກັບ "{name, SSN} -> SSN". ປະເພດການເບິ່ງແຍງທີ່ເປັນປະໂຫຍດນີ້ຖືກເອີ້ນວ່າບໍ່ຖືກຕ້ອງເນື່ອງຈາກມັນສາມາດໄດ້ຮັບຈາກຄວາມຮູ້ສຶກທົ່ວໄປ. ມັນເປັນທີ່ຊັດເຈນວ່າຖ້າທ່ານຮູ້ແລ້ວວ່າຄ່າຂອງ B, ຫຼັງຈາກນັ້ນມູນຄ່າຂອງ B ສາມາດຖືກກໍານົດໂດຍຄວາມຮູ້ດຽວກັນ.
Full Dependencies Functional
ການກໍາຈັດທີ່ມີ ປະໂຫຍດຢ່າງເຕັມທີ່ ເກີດຂື້ນເມື່ອທ່ານໄດ້ຕອບສະຫນອງຄວາມຕ້ອງການສໍາລັບຄວາມເຂົ້າໃຈທີ່ເປັນປະໂຫຍດແລະກໍານົດຂອງຄຸນລັກສະນະຢູ່ດ້ານຊ້າຍຂອງຄໍາສັ່ງ dependency ທີ່ເປັນປະໂຫຍດ ບໍ່ສາມາດຫຼຸດລົງຕື່ມອີກ. ຕົວຢ່າງເຊັ່ນ "{SSN, age} -> name" ແມ່ນຄວາມເປັນໄປໄດ້ທີ່ເປັນປະໂຫຍດ, ແຕ່ມັນບໍ່ແມ່ນຄວາມຕ້ອງການ ທີ່ມີປະໂຫຍດຢ່າງເຕັມທີ່ ເນື່ອງຈາກວ່າທ່ານສາມາດເອົາອາຍຸຈາກເບື້ອງຊ້າຍຂອງຄໍາສັ່ງອອກໄປໂດຍບໍ່ມີຜົນກະທົບຕໍ່ຄວາມສໍາພັນ.
Transitive Dependencies
ຄວາມຂັດແຍ້ງຊ້ໍາຊ້ອນ ເກີດຂື້ນໃນເວລາທີ່ມີຄວາມສໍາພັນທາງອ້ອມທີ່ເປັນສາເຫດຂອງການມີສ່ວນກ່ຽວຂ້ອງ. ຕົວຢ່າງເຊັ່ນ "A-> C" ເປັນຄວາມ ຂັດແຍ້ງທີ່ຄ່ອງແຄ້ວ ເມື່ອມັນເປັນຄວາມຈິງເພາະວ່າທັງ "A - B" ແລະ "B - C" ແມ່ນຄວາມຈິງ.
Multivalued Dependencies
Multivariate dependencies ເກີດຂຶ້ນເມື່ອມີຫນຶ່ງຫຼືຫຼາຍແຖວໃນຕາຕະລາງຫມາຍເຖິງການມີຫນຶ່ງຫຼືຫຼາຍແຖວອື່ນໃນຕາຕະລາງດຽວກັນ. ຕົວຢ່າງ, ຈິນຕະນາການບໍລິສັດລົດໃຫຍ່ທີ່ຜະລິດລົດໃຫຍ່ຈໍານວນຫຼາຍ, ແຕ່ວ່າມັນເຮັດໃຫ້ສີແດງແລະສີຟ້າຂອງແຕ່ລະຮູບແບບ. ຖ້າທ່ານມີຕາຕະລາງທີ່ປະກອບດ້ວຍຊື່ຮູບແບບ, ສີແລະປີຂອງແຕ່ລະລົດທີ່ບໍລິສັດຜະລິດ, ມັນມີຄວາມ ເພິ່ງພໍໃຈຫລາຍ ໃນຕາຕະລາງນັ້ນ. ຖ້າມີແຖວສໍາລັບຊື່ແບບແລະປີທີ່ມີສີຟ້າ, ກໍ່ຕ້ອງມີແຖວທີ່ຄ້າຍຄືກັນກັບລຸ້ນສີແດງຂອງລົດດຽວກັນ.
ຄວາມສໍາຄັນຂອງຄວາມຂັດແຍ່ງ
ຄວາມຕ້ອງການຂອງຖານຂໍ້ມູນເປັນສິ່ງສໍາຄັນທີ່ຈະເຂົ້າໃຈເພາະວ່າພວກເຂົາສະຫນອງການກໍ່ສ້າງພື້ນຖານທີ່ໃຊ້ໃນການ ປົກກະຕິຂອງຖານຂໍ້ມູນ . ຍົກຕົວຢ່າງ:
- ສໍາລັບຕາຕະລາງທີ່ຈະຢູ່ໃນ ຮູບແບບປົກກະຕິທີ 2 (2NF) , ຕ້ອງບໍ່ມີກໍລະນີທີ່ມີຄຸນສົມບັດທີ່ບໍ່ສໍາຄັນໃນຕາຕະລາງທີ່ມີຄວາມສອດຄ່ອງຕາມລໍາດັບຂອງກຸ່ມ ຜູ້ໃຊ້ .
- ສໍາລັບຕາຕະລາງທີ່ຢູ່ໃນ ຮູບແບບປົກກະຕິທີສາມ (3NF) , ທຸກໆເອກະລັກທີ່ບໍ່ຖືກຕ້ອງຕ້ອງມີການປະຕິບັດຫນ້າທີ່ທີ່ບໍ່ແມ່ນການໂຕ້ຖຽງກ່ຽວກັບທຸກໆລະຫັດຜູ້ສະຫມັກ.
- ສໍາລັບຕາຕະລາງທີ່ຈະຢູ່ໃນ ຮູບແບບປົກກະຕິ Boyce-Codd (BCNF) , ທຸກການປະຕິບັດຫນ້າທີ່ (ນອກເຫນືອຈາກຄວາມເຂົ້າໃຈຂະຫນາດນ້ອຍ) ຕ້ອງຢູ່ໃນ superkey .
- ສໍາລັບຕາຕະລາງທີ່ຈະຢູ່ໃນ ຮູບແບບປົກກະຕິທີ່ສີ່ (4NF) , ມັນຕ້ອງບໍ່ມີຄວາມຕ້ອງການທີ່ເພີ່ມເຕີມ.