ឃ្លាំងទិន្នន័យ "ទំនាក់ទំនង" ឬ "ទំនាក់ទំនង" ពិពណ៌នាអំពីវិធីដែលទិន្នន័យក្នុងតារាងត្រូវបានភ្ជាប់។
អ្នកចំណូលថ្មីក្នុងពិភពទិន្នន័យជារឿយៗមានការលំបាកក្នុងការឃើញភាពខុសគ្នារវាងទិន្នន័យនិងសៀវភៅបញ្ជី។ ពួកគេឃើញតារាងទិន្នន័យនិងទទួលស្គាល់ថាមូលដ្ឋានទិន្នន័យអនុញ្ញាតឱ្យអ្នករៀបចំនិង សួរទិន្នន័យ ក្នុងវិធីថ្មីប៉ុន្តែបរាជ័យក្នុងការយល់ដឹងពីសារៈសំខាន់នៃ ទំនាក់ទំនងរវាងទិន្នន័យ ដែលផ្តល់ឱ្យឈ្មោះវិទ្យាសាស្ត្រទិន្នន័យទំនាក់ទំនង។
ទំនាក់ទំនងអនុញ្ញាតឱ្យអ្នកពិពណ៌នាអំពីការតភ្ជាប់រវាងតារាងមូលដ្ឋានទិន្នន័យខុសៗគ្នាតាមវិធីដ៏មានអានុភាព។ ទំនាក់ទំនងទាំងនេះបន្ទាប់មកអាចត្រូវបានប្រើអានុភាពដើម្បីធ្វើសំណួរឆ្លងកាត់តារាងដែលមានអនុភាពដែលត្រូវបានគេស្គាល់ថាជាការចូលរួម។
ប្រភេទនៃទំនាក់ទំនងមូលដ្ឋានទិន្នន័យ
មានបីប្រភេទខុសៗគ្នានៃទំនាក់ទំនងមូលដ្ឋានទិន្នន័យនីមួយៗដែលត្រូវបានដាក់ឈ្មោះតាមចំនួនជួរដេកដែលអាចពាក់ព័ន្ធនៅក្នុងទំនាក់ទំនង។ ប្រភេទទំនាក់ទំនងទាំងបីនេះមានចន្លោះរវាងតារាងពីរ។
- ទំនាក់ទំនងមួយទល់មួយមួយ កើតឡើងនៅពេលធាតុចូលគ្នាក្នុងតារាងទីមួយមានមួយហើយមានតែមួយប៉ុណ្ណោះនៅក្នុងតារាងទីពីរ។ ទំនាក់ទំនងមួយទល់មួយគឺកម្រត្រូវបានគេប្រើព្រោះវាច្រើនតែមានប្រសិទ្ធភាពក្នុងការដាក់ពត៌មានទាំងអស់ក្នុងតារាងតែមួយ។ អ្នករចនាមូលដ្ឋានទិន្នន័យមួយចំនួនទាញយកគុណប្រយោជន៍នៃទំនាក់ទំនងនេះដោយបង្កើតតារាងដែលមានសំណុំរងនៃទិន្នន័យពីតារាងផ្សេងទៀត។
- ទំនាក់ទំនងមួយទៅច្រើន គឺជាប្រភេទទំនាក់ទំនងមូលដ្ឋានទិន្នន័យទូទៅបំផុត។ វាកើតឡើងនៅពេលដែលកំណត់ត្រានីមួយៗនៅក្នុងតារាងមួយត្រូវគ្នាទៅនឹងកំណត់ត្រាមួយឬច្រើននៅក្នុងតារាង B ប៉ុន្តែកំណត់ត្រានីមួយៗនៅក្នុងតារាងខមានតែមួយកំណត់ប៉ុណ្ណោះក្នុងតារាង A. ឧទាហរណ៍ទំនាក់ទំនងរវាងតារាងគ្រូនិងតារាងសិស្សនៅសាលាបឋមសិក្សា។ ទិន្នន័យប្រហែលជាទំនងជាទំនាក់ទំនងមួយទៅមួយច្រើនពីព្រោះសិស្សម្នាក់ៗមានគ្រូតែមួយប៉ុន្ដែគ្រូនីមួយៗមានសិស្សច្រើន។ ការរចនាមួយទៅច្រើននេះជួយលុបបំបាត់ទិន្នន័យស្ទួន។
- ទំនាក់ទំនងជាច្រើនទៅច្រើន កើតឡើងនៅពេលដែលកំណត់ត្រានីមួយៗនៅក្នុងតារាងមួយត្រូវគ្នាទៅនឹងកំណត់ត្រាមួយឬច្រើននៅក្នុងតារាង B និងកំណត់ត្រានីមួយៗនៅក្នុងតារាងខត្រូវគ្នាទៅនឹងកំណត់ត្រាមួយឬច្រើននៅក្នុងតារាង A. ឧទាហរណ៍ទំនាក់ទំនងរវាងគ្រូបង្រៀននិងវគ្គសិក្សា តុទំនងជាមានចំនួនច្រើនណាស់ដោយសារតែគ្រូនីមួយៗអាចណែនាំច្រើនជាងមួយហើយវគ្គនីមួយៗអាចមានគ្រូច្រើនជាងមួយ។
ការភ្ជាប់ទំនាក់ទំនងខ្លួនឯង: ករណីពិសេស
ទំនាក់ទំនងការយោងដោយខ្លួនឯងកើតឡើងនៅពេលដែលមានតារាងតែមួយប៉ុណ្ណោះដែលពាក់ព័ន្ធ។ ឧទាហរណ៏ទូទៅមួយគឺតារាងនិយោជិកដែលមានព័ត៌មានអំពីអ្នកគ្រប់គ្រងរបស់និយោជិតនីមួយៗ។ អ្នកគ្រប់គ្រងម្នាក់ៗក៏ជានិយោជិកម្នាក់ហើយមានអ្នកគ្រប់គ្រងផ្ទាល់ខ្លួនផងដែរ។ ក្នុងករណីនេះមានទំនាក់ទំនងដោយខ្លួនឯងដែលមាននិយោជិកម្នាក់មានអ្នកគ្រប់គ្រងម្នាក់ប៉ុន្តែអ្នកគ្រប់គ្រងម្នាក់ៗអាចមាននិយោជិកលើសពីមួយនាក់។
ការបង្កើតទំនាក់ទំនងជាមួយកូនសោបរទេស
អ្នកបង្កើតទំនាក់ទំនងរវាងតារាងដោយ បញ្ជាក់កូនសោជនបរទេស ។ កូនសោនេះប្រាប់ពីមូលដ្ឋានទិន្នន័យទំនាក់ទំនងអំពីរបៀបដែលតារាងពាក់ព័ន្ធ។ ក្នុងករណីជាច្រើនជួរឈរក្នុងតារាង A មានកូនសោសំខាន់ដែលត្រូវបានយោងពីតារាងខ។
សូមពិចារណាម្តងទៀតនូវឧទាហរណ៍នៃតារាងគ្រូនិងសិស្ស។ តារាងគ្រូបង្រៀនមានលេខសម្គាល់ឈ្មោះនិងជួរឈរវគ្គសិក្សាប៉ុណ្ណោះ:
InstructorID | ឈ្មោះអ្នកគ្រូ | វគ្គសិក្សា |
---|---|---|
001 | John Doe | អង់គ្លេស |
002 | Jane Schmoe | គណិតវិទ្យា |
តារាងសិស្សរួមមានលេខសម្គាល់ឈ្មោះនិងខ្ទង់គន្លឹះបរទេស:
លេខសំគាល់សិស្ស | ឈ្មោះរបស់និស្សិត | Teacher_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | ម៉ូនីកាចូន | 001 |
ជួរឈរ Teacher_FK នៅក្នុងតារាងសិស្សយោងតាម តម្លៃកូនសោសំខាន់ របស់គ្រូក្នុងតារាងគ្រូ។
ជាញឹកញាប់អ្នករចនាមូលដ្ឋានទិន្នន័យនឹងប្រើ "PK" ឬ "FK" ក្នុងឈ្មោះជួរឈរដើម្បីងាយស្រួលកំណត់អត្តសញ្ញាណកូនសោសំខាន់ឬជួរឈរគន្លឹះបរទេស។
សូមកត់សម្គាល់ថាតារាងទាំងពីរនេះបង្ហាញពីទំនាក់ទំនងមួយទៅច្រើនរវាងគ្រូនិងសិស្ស។
ទំនាក់ទំនងនិងសុចរិតភាពយោង
ពេលអ្នកបន្ថែមកូនសោបរទេសទៅតារាងមួយអ្នកអាចបង្កើតកម្រិតមូលដ្ឋានទិន្នន័យដែលបង្ខំឱ្យមាន ភាពត្រឹមត្រូវ រវាងតារាងពីរ។ នេះធានាថាទំនាក់ទំនងរវាងតារាងនៅតែមានភាពស៊ីសង្វាក់។ នៅពេលតារាងមួយមានកូនសោរបរទេសមួយទៅតារាងផ្សេងទៀតគំនិតនៃភាពត្រឹមត្រូវបញ្រ្ចាសបញ្ជាក់ថាតម្លៃគន្លឹះបរទេសណាមួយនៅក្នុងតារាង B ត្រូវតែសំដៅទៅលើកំណត់ត្រាដែលមានស្រាប់នៅក្នុងតារាង A.
អនុវត្តទំនាក់ទំនង
អាស្រ័យលើមូលដ្ឋានទិន្នន័យរបស់អ្នកអ្នកអនុវត្តទំនាក់ទំនងរវាងតារាងតាមវិធីផ្សេងៗគ្នា។ Microsoft Access ផ្តល់នូវអ្នកជំនួយការមួយដែលងាយស្រួលអនុញ្ញាតឱ្យអ្នកភ្ជាប់តារាងហើយនិងពង្រឹងបញ្ផានផងដែរ។
ប្រសិនបើអ្នកសរសេរ SQL ដោយផ្ទាល់អ្នកដំបូងបង្កើត Teacher Teacher ដោយប្រកាសជួរឈរលេខសម្គាល់ជាកូនសោសំខាន់:
បង្កើតថេបគ្រូ (
InstructorID INT AUTO_INCREMENT កូនសោបឋម,
Teacher_Name VARCHAR (100),
វគ្គសិក្សា VARCHAR (100)
);
នៅពេលអ្នកបង្កើតតារាងសិស្សអ្នកប្រកាសជួរឈរ Teacher_FK ជាកូនសោជនបរទេសយោងតាមជួរឈរ InstructorID នៅក្នុងតារាងគ្រូបង្រៀន:
បង្កើតតារាង (
StudentID INT AUTO_INCREMENT កូនសោអាទិភាព,
Student_Name VARCHAR (100), Teacher_FK INT,
កូនសោរបរទេស (Teacher_FK) សេចក្តីយោងគ្រូ (InstructorID))
);
ការប្រើប្រាស់ទំនាក់ទំនងដើម្បីចូលរួមតារាង
ពេលអ្នកបង្កើតទំនាក់ទំនងមួយឬច្រើនក្នុងមូលដ្ឋានទិន្នន័យរបស់អ្នកអ្នកអាចប្រើថាមពលរបស់ខ្លួនដោយប្រើសំណួរ SQL JOIN ដើម្បីបញ្ចូលព័ត៌មានពីតារាងច្រើន។ ប្រភេទចូលរួមទូទៅបំផុតគឺ SQL INNER JOIN ឬជាការចូលរួមសាមញ្ញ។ ប្រភេទនៃការចូលរួមនេះនឹងត្រឡប់នូវកំណត់ត្រាទាំងអស់ដែលបំពេញលក្ខខណ្ឌចូលរួមពីតារាងច្រើន។ ឧទាហរណ៍ល័ក្ខខ័ណ្ឌ JOIN នេះនឹងត្រឡប់ឈ្មោះ Student_Name_ និងឈ្មោះដែលកូនសោបរទេសនៅក្នុងតារាងសិស្សផ្គូផ្គងកូនសោសំខាន់នៅក្នុងតារាងគ្រូបង្រៀន:
SELECT សិស្ស។ ឈ្មោះសិស្ស, គ្រូបង្រៀនឈ្មោះសិស្ស, គ្រូបង្រៀន
ពីសិស្ស
ចូលរួមក្នុងគ្រូបង្រៀន
ON Students.Teacher_FK = TeachersInstructorID;
សេចក្តីថ្លែងការណ៍នេះបង្កើតតារាងមួយដូចនេះ:
តារាងត្រឡប់ពីសេចក្តីថ្លែងការណ៍របស់ SQL មួយ
Student_NameTeacher_NameCourseLowell SmithJohn Doe អង់គ្លេសអង់គ្លេសអយល័រខ្លីចនដូអេហ្វខេមិចម៉ាឌែលជេនស៍ម៉ាក់ម៉ូនីកា JonesJohn Doe ភាសាអង់គ្លេស