ການພົວພັນຫນຶ່ງຫາຫຼາຍຄົນຢູ່ໃນຖານຂໍ້ມູນ

ການ ພົວພັນ ແບບດຽວກັບຫລາຍຄົນ ໃນຖານຂໍ້ມູນ ເກີດຂື້ນໃນເວລາທີ່ແຕ່ລະບັນທຶກໃນຕາຕະລາງ A ອາດມີບັນທຶກການເຊື່ອມໂຍງຫຼາຍໃນຕາຕະລາງ B ແຕ່ແຕ່ລະບັນທຶກໃນຕາຕະລາງ B ສາມາດມີພຽງແຕ່ຫນຶ່ງບັນທຶກທີ່ສອດຄ້ອງກັນໃນຕາຕະລາງ A. ການພົວພັນຫນຶ່ງຫາຫຼາຍຄົນໃນ ຖານຂໍ້ມູນແມ່ນການອອກແບບຖານຂໍ້ມູນທີ່ສໍາຄັນທີ່ສຸດແລະເປັນຫົວໃຈຂອງການອອກແບບທີ່ດີ.

ພິຈາລະນາຄວາມສໍາພັນລະຫວ່າງຄູສອນແລະຫຼັກສູດທີ່ເຂົາເຈົ້າສອນ. ຄູສອນສາມາດສອນຫລັກສູດຕ່າງໆແຕ່ຫຼັກສູດບໍ່ມີຄວາມສໍາພັນກັບຄູ.

ເພາະສະນັ້ນ, ສໍາລັບບັນທຶກແຕ່ລະຕາຕະລາງຄູອາຈານ, ມັນອາດຈະມີບັນທຶກຈໍານວນຫຼາຍໃນຕາຕະລາງຮຽນ. ນີ້ແມ່ນຄວາມສໍາພັນອັນຫນຶ່ງກັບຫລາຍຄົນ: ຄູຫນຶ່ງຄົນເຂົ້າຮຽນຫຼາຍໆຄັ້ງ.

ເປັນຫຍັງການສ້າງຄວາມສໍາພັນຫນຶ່ງຫາຫຼາຍແມ່ນເປັນສິ່ງສໍາຄັນ

ເພື່ອເປັນຕົວແທນຂອງການພົວພັນຫນຶ່ງຫາຫຼາຍ, ທ່ານຕ້ອງການຢ່າງນ້ອຍສອງຕາຕະລາງ. ໃຫ້ເບິ່ງວ່າເປັນຫຍັງ.

ບາງທີພວກເຮົາສາມາດສ້າງຕາຕະລາງຄູສອນທີ່ພວກເຮົາຕ້ອງການທີ່ຈະບັນທຶກຊື່ແລະວິຊາທີ່ໄດ້ສອນ. ພວກເຮົາອາດຈະອອກແບບມັນຄືດັ່ງນີ້:

ຄູແລະວິຊາ
Teacher_ID Teacher_Name ຫລັກສູດ
Teacher_001 Carmen ຊີວະສາດ
Teacher_002 Veronica Math
Teacher_003 Jorge ພາສາອັງກິດ

ຈະເປັນແນວໃດຖ້າ Carmen ສອນສອງຫຼືຫຼາຍກວ່ານັ້ນ? ພວກເຮົາມີສອງທາງເລືອກທີ່ມີການອອກແບບນີ້. ພວກເຮົາພຽງແຕ່ສາມາດເພີ່ມໃສ່ບັນທຶກທີ່ມີຢູ່ຂອງ Carmen ໄດ້ເຊັ່ນ:

ຄູແລະວິຊາ
Teacher_ID Teacher _Name ຫລັກສູດ
Teacher_001 Carmen ຊີວະສາດ, ຄະນິດສາດ
Teacher_002 Veronica Math
Teacher_003 Jorge ພາສາອັງກິດ

ການອອກແບບຂ້າງເທິງ, ຢ່າງໃດກໍຕາມ, ແມ່ນບໍ່ຍືນຍົງແລະສາມາດສົ່ງຜົນຕໍ່ບັນຫາຕໍ່ມາໃນເວລາທີ່ພະຍາຍາມໃສ່, ດັດແກ້ຫຼືລຶບຂໍ້ມູນ.

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

ອີກທາງເລືອກການອອກແບບອາດຈະເປັນພຽງແຕ່ເພີ່ມບັນທຶກສອງສໍາລັບ Carmen:

ຄູແລະວິຊາ
Teacher _ID Teacher _Name ຫລັກສູດ
Teacher_001 Carmen ຊີວະສາດ
Teacher_001 Carmen Math
Teacher_002 Veronica Math
Teacher_003 Jorge ພາສາອັງກິດ

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

ວິທີການສ້າງຖານຂໍ້ມູນທີ່ມີຄວາມສໍາພັນແບບຫນຶ່ງກັບຫຼາຍ

ເພື່ອປະຕິບັດຄວາມສໍາພັນແບບຫນຶ່ງກັບຫຼາຍໃນຕາຕະລາງຄູແລະຕາຕະລາງ, ພວກເຮົາແບ່ງຕາຕະລາງເປັນສອງແລະເຊື່ອມຕໍ່ພວກເຂົາໂດຍນໍາໃຊ້ຫຼັກ ຕ່າງປະເທດ .

ນີ້, ພວກເຮົາໄດ້ຖອດຖອນຖັນຫຼັກສູດໃນຕາຕະລາງຄູອາຈານ:

ຄູສອນ
Teacher _ID Teacher _Name
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

ແລະນີ້ແມ່ນຕາຕະລາງຫຼັກສູດ. ໃຫ້ສັງເກດວ່າຫຼັກຕ່າງປະເທດຂອງຕົນ, Teacher_ID, ເຊື່ອມຕໍ່ແນ່ນອນກັບຄູອາຈານໃນຕາຕະລາງຄູສອນ:

ຫລັກສູດ
Course_ID Course_Name Teacher_ID
Course_001 ຊີວະສາດ Teacher_001
Course_002 Math Teacher_001
Course_003 ພາສາອັງກິດ Teacher_003

ພວກເຮົາໄດ້ພັດທະນາສາຍພົວພັນລະຫວ່າງຄູອາຈານແລະຕາຕະລາງຫຼັກສູດໂດຍນໍາໃຊ້ຫຼັກຕ່າງປະເທດ.

ນີ້ບອກພວກເຮົາວ່າຊີວະສາດແລະຄະນິດສາດແມ່ນສອນໂດຍ Carmen ແລະ Jorge ສອນພາສາອັງກິດ.

ພວກເຮົາສາມາດເບິ່ງວິທີການອອກແບບນີ້ຫຼີກເວັ້ນການຢືດຢຸ່ນທີ່ເປັນໄປໄດ້, ອະນຸຍາດໃຫ້ຄູສອນແຕ່ລະຄົນສອນຫຼາຍວິຊາ, ແລະປະຕິບັດການພົວພັນຫນຶ່ງຫາຫຼາຍ.

ຖານຂໍ້ມູນຍັງສາມາດປະຕິບັດການພົວພັນຫນຶ່ງກັບຫນຶ່ງແລະເປັນຄວາມສໍາພັນຫຼາຍໆຄົນ.