ໄລຍະຖານຂໍ້ມູນ "ການພົວພັນ" ຫຼື "ຄວາມສໍາພັນ" ອະທິບາຍວິທີການທີ່ຂໍ້ມູນໃນຕາຕະລາງຖືກເຊື່ອມຕໍ່.
ຜູ້ມາໃຫມ່ໃນໂລກຂອງຖານຂໍ້ມູນມັກພົບຄວາມແຕກຕ່າງລະຫວ່າງຖານຂໍ້ມູນແລະຕາຕະລາງ. ພວກເຂົາເຫັນຕາຕະລາງຂໍ້ມູນແລະຮັບຮູ້ວ່າຖານຂໍ້ມູນອະນຸຍາດໃຫ້ທ່ານຈັດລະບຽບແລະ ສອບຖາມຂໍ້ມູນ ໃນທາງໃຫມ່, ແຕ່ບໍ່ເຂົ້າໃຈເຖິງຄວາມສໍາຄັນຂອງຄວາມ ສໍາພັນລະຫວ່າງຂໍ້ມູນ ທີ່ໃຫ້ຊື່ວ່າເທກໂນໂລຍີຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ.
Relationships ອະນຸຍາດໃຫ້ທ່ານອະທິບາຍການເຊື່ອມຕໍ່ລະຫວ່າງຖານຂໍ້ມູນທີ່ແຕກຕ່າງກັນໃນແບບທີ່ມີປະສິດທິພາບ. ຫຼັງຈາກນັ້ນ, ການພົວພັນເຫຼົ່ານີ້ສາມາດໄດ້ຮັບການສະຫນັບສະຫນູນຈາກການສອບຖາມໂຕ້ແຍ້ງທີ່ມີປະສິດທິພາບ, ທີ່ເອີ້ນວ່າການເຂົ້າຮ່ວມ.
ປະເພດຂອງການພົວພັນຖານຂໍ້ມູນ
ມີສາມປະເພດທີ່ແຕກຕ່າງກັນຂອງການພົວພັນຖານຂໍ້ມູນ, ແຕ່ລະຊື່ຕາມຈໍານວນແຖວຕາຕະລາງທີ່ອາດຈະມີສ່ວນຮ່ວມໃນສາຍພົວພັນ. ແຕ່ລະປະເພດຄວາມສໍາພັນເຫຼົ່ານີ້ສາມລະຫວ່າງສອງຕາຕະລາງ.
- ການພົວພັນຫນຶ່ງກັບຫນຶ່ງ ເກີດຂຶ້ນເມື່ອແຕ່ລະບັນຊີໃນຕາຕະລາງທໍາອິດມີຫນຶ່ງ, ແລະພຽງແຕ່ຫນຶ່ງ, ຄູ່ໃນຕາຕະລາງທີສອງ. ການພົວພັນຫນຶ່ງກັບຫນຶ່ງແມ່ນບໍ່ຄ່ອຍຈະໃຊ້ເພາະວ່າມັນມັກຈະມີປະສິດທິພາບຫຼາຍກວ່າພຽງແຕ່ເອົາຂໍ້ມູນທັງຫມົດໃນຕາຕະລາງດຽວ. ບາງຄົນອອກແບບຖານຂໍ້ມູນໃຊ້ປະໂຍດຈາກຄວາມສໍາພັນນີ້ໂດຍການສ້າງຕາຕະລາງທີ່ມີຊຸດຍ່ອຍຂອງຂໍ້ມູນຈາກຕາຕະລາງອື່ນ.
- ການພົວພັນ ຫນຶ່ງຫາຫຼາຍແມ່ນປະເພດທີ່ພົບເລື້ອຍທີ່ສຸດຂອງການພົວພັນຖານຂໍ້ມູນ. ແຕ່ລະບັນທຶກໃນຕາຕະລາງ B ມີພຽງແຕ່ຫນຶ່ງບັນທຶກໃນຕາຕະລາງ A. ແຕ່ຕົວຢ່າງ, ຄວາມສໍາພັນລະຫວ່າງຕາຕະລາງຄູອາຈານແລະຕາຕະລາງນັກຮຽນໃນໂຮງຮຽນປະຖົມ ຖານຂໍ້ມູນອາດຈະເປັນສາຍພົວພັນຫນຶ່ງຫາຫຼາຍ, ເນື່ອງຈາກວ່າແຕ່ລະນັກຮຽນມີພຽງແຕ່ຫນຶ່ງຄູ, ແຕ່ຄູສອນແຕ່ລະຄົນມີນັກຮຽນຫຼາຍຄົນ. ການອອກແບບແບບດຽວກັບຫຼາຍໆນີ້ຊ່ວຍລົບລ້າງຂໍ້ມູນທີ່ຊ້ໍາກັນ.
- ບັນດາການພົວພັນຫຼາຍໆຄົນ ຈະເກີດຂື້ນໃນເວລາທີ່ແຕ່ລະບັນທຶກໃນຕາຕະລາງ A ກົງກັນຂ້າມກັບບັນທຶກຫນຶ່ງຫຼືຫຼາຍກວ່ານີ້ໃນຕາຕະລາງ B ແລະບັນທຶກໃນຕາຕະລາງ B ແມ່ນເທົ່າກັບບັນທຶກຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນໃນຕາຕະລາງ A. ຕົວຢ່າງ: ຄວາມສໍາພັນລະຫວ່າງຄູແລະວິຊາ ຕາຕະລາງອາດຈະເປັນຈໍານວນຫຼາຍເພາະວ່າຄູແຕ່ລະຄົນສາມາດແນະນໍາຫຼາຍກວ່າຫນຶ່ງຫຼັກສູດ, ແລະແນ່ນອນແຕ່ລະຄົນອາດມີຫຼາຍກ່ວາຜູ້ສອນ.
ການພົວພັນການອ້າງອີງຕົນເອງ: ກໍລະນີພິເສດ
ການພົວພັນການອ້າງອີງຕົນເອງເກີດຂຶ້ນເມື່ອມີພຽງແຕ່ຫນຶ່ງຕາຕະລາງທີ່ກ່ຽວຂ້ອງ. ຕົວຢ່າງທົ່ວໄປຫນຶ່ງແມ່ນຕາຕະລາງພະນັກງານທີ່ມີຂໍ້ມູນກ່ຽວກັບຜູ້ຄຸມງານຂອງແຕ່ລະພະນັກງານ. ຜູ້ຄຸມງານແຕ່ລະຄົນແມ່ນພະນັກງານແລະມີຜູ້ຄຸມງານຂອງຕົນເອງ. ໃນກໍລະນີນີ້, ມີການພົວພັນກັບຕົວເອງກັບຫຼາຍໆຄົນ, ແຕ່ລະພະນັກງານແຕ່ລະຄົນມີຜູ້ຄຸມງານແຕ່ຜູ້ຄຸມງານແຕ່ລະຄົນອາດມີຫຼາຍກວ່າຫນຶ່ງຄົນ.
ການສ້າງຄວາມສໍາພັນກັບຄີຕ່າງປະເທດ
ທ່ານສ້າງສາຍພົວພັນລະຫວ່າງຕາຕະລາງໂດຍ ກໍານົດແປ້ນຕ່າງປະເທດ . ຄີນີ້ບອກຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກ່ຽວກັບຕາຕະລາງທີ່ກ່ຽວຂ້ອງ. ໃນຫລາຍໆກໍລະນີ, ຄໍລໍາໃນຕາຕະລາງ A ມີຫຼັກຫຼັກທີ່ຖືກອ້າງອີງຈາກຕາຕະລາງ B.
ພິຈາລະນາອີກເທື່ອຫນຶ່ງຕົວຢ່າງຂອງຕາຕະລາງຄູອາຈານແລະນັກຮຽນ. ຕາຕະລາງຄູອາຈານມີພຽງແຕ່ຊື່, ຊື່, ແລະຄໍລໍາຫຼັກສູດ:
InstructorID | Teacher_Name | ຫລັກສູດ |
---|---|---|
001 | John Doe | ພາສາອັງກິດ |
002 | Jane Schmoe | Math |
ຕາຕະລາງນັກຮຽນລວມມີ ID, ຊື່ແລະຄໍລໍາທີ່ສໍາຄັນຕ່າງປະເທດ:
StudentID | Student_Name | Teacher_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
The Teacher_FK column ໃນຕາຕະລາງນັກຮຽນອ້າງອີງໃສ່ ຄ່າທີ່ສໍາຄັນ ຂອງ instructor ໃນຕາຕະລາງ Teachers.
ເລື້ອຍໆ, ຜູ້ອອກແບບຖານຂໍ້ມູນຈະໃຊ້ "PK" ຫຼື "FK" ໃນຊື່ຄໍລໍາເພື່ອໃຫ້ສາມາດລະບຸຫຼັກການຫລັກຫຼືຄໍລໍາສໍາຄັນຕ່າງປະເທດ.
ໃຫ້ສັງເກດວ່າຕາຕະລາງສອງເຫຼົ່ານີ້ສະແດງໃຫ້ເຫັນເຖິງຄວາມສໍາພັນລະຫວ່າງຄູກັບນັກຮຽນ.
ການພົວພັນແລະການເຊື່ອມໂຍງຄວາມນັບຖື
ເມື່ອທ່ານໄດ້ເພີ່ມແປ້ນຕ່າງປະເທດໄປຫາຕາຕະລາງ, ທ່ານກໍ່ສາມາດສ້າງຂໍ້ຈໍາກັດຖານຂໍ້ມູນທີ່ບັງຄັບໃຊ້ການ ເຊື່ອມໂຍງ ລະຫວ່າງສອງຕາຕະລາງ. ນີ້ຈະຮັບປະກັນວ່າສາຍພົວພັນລະຫວ່າງຕາຕະລາງຍັງສອດຄ່ອງກັນ. ໃນເວລາຫນຶ່ງຕາຕະລາງທີ່ມີກຸນແຈຕ່າງປະເທດກັບຕາຕະລາງອື່ນ, ແນວຄວາມຄິດຂອງຄວາມສົມບູນແບບອ້າງອີງໄດ້ກ່າວວ່າຄ່າທີ່ສໍາຄັນຂອງຕ່າງປະເທດໃນຕາຕະລາງ B ຕ້ອງອ້າງອີງໃສ່ບັນຊີທີ່ມີຢູ່ໃນຕາຕະລາງ A.
ການປະຕິບັດການພົວພັນ
ຂຶ້ນຢູ່ກັບຖານຂໍ້ມູນຂອງທ່ານ, ທ່ານປະຕິບັດການພົວພັນລະຫວ່າງຕາຕະລາງໃນທາງທີ່ແຕກຕ່າງກັນ. Microsoft Access ສະຫນອງຕົວຊ່ວຍສ້າງທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດເຊື່ອມຕໍ່ຕາຕະລາງແລະປະຕິບັດຕາມຄວາມສົມບູນແບບອ້າງອີງ.
ຖ້າທ່ານຂຽນ SQL ໂດຍກົງ, ຄັ້ງທໍາອິດທ່ານຈະສ້າງຄູສອນຕາຕະລາງ, ປະກາດຄໍລໍາ ID ເປັນຫລັກຫຼັກ:
CREATE TABLE Teachers (
InstructorID INT AUTO_INCREMENT KEY PRIMARY,
Teacher_Name VARCHAR (100),
ຫລັກສູດ VARCHAR (100)
)
ເມື່ອທ່ານສ້າງຕາຕະລາງນັກຮຽນ, ທ່ານປະກາດຄໍລໍາ Teacher_FK ເປັນຫຼັກຕ່າງປະເທດທີ່ອ້າງອີງໃສ່ຄໍລໍາ InstructorID ໃນຕາຕະລາງຄູອາຈານ:
CREATE TABLE Students (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
ຫລັກສູດຕ່າງປະເທດ (Teacher_FK) ການອ້າງອິງຄູ (InstructorID))
)
ການນໍາໃຊ້ການພົວພັນເພື່ອເຂົ້າຮ່ວມໃນຕາຕະລາງ
ເມື່ອທ່ານໄດ້ສ້າງສາຍພົວພັນຫນຶ່ງຫຼືຫຼາຍໃນຖານຂໍ້ມູນຂອງທ່ານ, ທ່ານສາມາດໃຊ້ອໍານາດຂອງຕົນໂດຍໃຊ້ SQL JOIN queries ເພື່ອສົມທົບຂໍ້ມູນຈາກຕາຕະລາງຫຼາຍ. ປະເພດທີ່ພົບເລື້ອຍທີ່ສຸດແມ່ນ SQL INNER JOIN, ຫຼືເຂົ້າຮ່ວມງ່າຍດາຍ. ປະເພດຂອງການເຂົ້າຮ່ວມນີ້ຈະສົ່ງຄືນການບັນທຶກທັງຫມົດທີ່ຕອບສະຫນອງເງື່ອນໄຂການເຂົ້າຮ່ວມຈາກຕາຕະລາງຫຼາຍ. ສໍາລັບຕົວຢ່າງ, ເງື່ອນໄຂນີ້ຈະສົ່ງຄືນ Student_Name, Teacher_Name, ແລະ Course ທີ່ຄີຕ່າງປະເທດຢູ່ໃນຕາຕະລາງນັກຮຽນທີ່ກົງກັບຫຼັກຫຼັກໃນຕາຕະລາງ Teachers:
SELECT StudentsStudent_Name, TeachersTeacher_Name, TeachersCourse
ຈາກນັກຮຽນ
INNER JOIN Teachers
ON StudentsTeacher_FK = TeachersInstructorID
ຄໍາສັ່ງນີ້ຜະລິດບາງສິ່ງບາງຢ່າງໃນຕາຕະລາງດັ່ງນີ້:
ຕາລາງສົ່ງຄືນຈາກຄໍາສັ່ງເຂົ້າຮ່ວມ SQL
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish