មេរៀនទី៧: បង្កើត Relationship

មេរៀនទី៧: បង្កើត Relationship

បង្រៀនដោយលោកគ្រូ: ទាវ ឈុនណន
ព្រឹទ្ធបរុស មហាវិទ្យាល័យ វិទ្យាសាស្រ្ត និង បច្ចេកវិទ្យា
នៃ សាកលវិទ្យាល័យកម្ពុជា
Tel: 077778647-070778647-0977778647
Yahoo, Skype, google: chhunnan

ទិន្នន័យ database របស់យើងត្រូវការច្រើន ជាងតារាងមួយ  ព្រោះយើងត្រូវការ មិនមែនតែ customer  មួយ។ ដូច្នេះអនុញ្ញាតបង្កើត តារាងពីរបន្ថែម ហើយនិង relationship រវាងវា។ តារាងមួយនឹង  ដាក់ជាព័ត៌មាន ផលិតផល product និងផ្សេទៀតជាព័ត៌មាន order

បង្កើតតារាង Related Table បង្កើតតារាងពីរដូចខាងក្រោម
Access 2013កំណត់អោយច្បាស់ ដើម្បីបង្កើតទម្រង់ format មួយហើយប្រើជាតម្លៃ default value សម្រាប់ DateCreated field លើតារាងទាំពីរ(user មិនត្រូវការបញ្ចូល field នេះ ប្រព័ន្ធ system អាចធ្វើដូច្នេះ)។
Access 2013Primary Key ចាំថា key icon បង្ហាញក្នុង field គឺជា primary key។ primary key កំណត់ថា ទិន្នន័យ data នៅក្នុង field នេះមានតែមួយគត់។ Access បង្កើតដោយស្វ័យ ប្រវត្តិ ID field ដូចជា primary key, កែប្រើឈ្មោះ rename ID ទៅជា ProductId (ឬ OrderId ក្នុងករណីនេះ) វានឹងមាន primary key ជាស្រេច។

បង្កើត Relationship ឥឡូវនេះ លោកអ្នកបានបង្កើត តារាង table ខាងក្រោយ ទិន្នន័យ database មានបីតារាង table។ ឥឡូវ ដើម្បីបង្កើត relationship រវាងបីតារាង table។
1. មើលតារាង table ក្នុង Design view ហើយកំណត់ថា DESIGN tab ត្រូវបានជ្រើសរើស ចុចលើ Relationships ពី Ribbon:
Access 20132. បង្ហាញប្រអប់ Table dialog box នឹងលោតឡើង ការបង្ហាញតារាងទាំងបី ជ្រើសរើសវារួចហើយចុចលើ Add:
Access 20133. ចុចលើ Close ដើម្បីបិទប្រអប់ dialog box
4. លោកអ្នកនឹងឃើញបីប្រអប់  ដែលតំណាង បីតារាង table របស់អ្នក ចុចហើយទាញ CustomerId ពីតារាង Customers table ឆ្លងកាត់ CustomerId field លើតារាង Orders table:។
Access 20135. ប្រអប់ Edit Relationships dialog និងលោតបង្ហាញ ចុចលើ Enforce Referential Integrity ដូច្នេះវាត្រូវបានឆែក។ ឆែក ដែលបណ្តាលតម្លៃ ដូចគ្នា បង្ហាញខាងក្រោម ហើយចុចលើ Create:
Access 2013លោកអ្នក នឹងមើលឃើញ បន្ទាត់ បានបង្កើត រវាង CustomerId field លើ Customers table និង CustomerId លើ Orders table។

6. ឥឡូវនេះ មានតារាង សម្រាប់ Products table ដូចគ្នា។  ចុចហើយទាញ ProductId ពី Products table ឆ្លងកាត់ ProductId field លើ Orders table។ តារាង table relationships នឹងមើលឃើញដូចខាងក្រោម:
Access 2013ប្រភេទ Relationship យើងទើប បានបង្កើតទំនាក់ទំនង many-to-many relationship។ មានបីប្រភេទនៃ relationships ដែលអាច បង្កើតរវាងតារាងបី table។

ទំនាក់ទំនង Many-To-Many Relationship ជួរ row ក្នុងតារាង table A អាចមាន rows ច្រើននៅក្នុងតារាង table B។ ក្នុងករណីនេះ single customer អាច order ផលិតផល products ច្រើនហើយ  single product និងមាន អតិថជន customers ច្រើន។ លោកអ្នកអាចបង្កើតទំនាក់ទំនង many-to-many relationship ដោយប្រើតារាង table ទីបី ដែលហៅថាតារាង ប្រសព្វ junction table។

ទំនាក់ទំនង One-To-Many Relationship នេះជាទំនាក់ទំនងប្រភេទរួម លោកអ្នកមិនត្រូវការ តារាងទីបី (junction) table សម្រាប់ ប្រភេទទំនាក់ទំនងនេះ ឡើយ ក្នុង row ក្នុង table A អាចមានច្រើន rows ក្នុងតារាង table B, ប៉ុន្តែ row ក្នុងតារាង table B អាចមាន row តែមួយគត់ ក្នុងតារាង table A។ ឧទាហរណ៍ row ក្នុងតារាង Gender table (ដែលផ្ទុក records Male និង Female) អាចមាន row ច្រើននៅក្នុងតារាង Customers table, ប៉ុន្តែ row ក្នុងតារាង Customers table អាចមាន row តែមួយគត់ ក្នុង Gender table។ នោះគឺយ៉ាងហោចណាស់ តួនាទីជំនួញ ដែលបានអនុញ្ញាតអោយ បណ្តាអតិថិជន customers ជា male និង female នៅក្នុងពេល តែមួយ។ ក្នុងករណីនេះទំនាក់ទំនង many-to-many relationship នឹងត្រូវការបង្កើត។

ទំនាក់ទំនង One-To-One Relationship ក្នុង row នៅក្នុងតារាង table A អាចមាន row តែមួយគត់នៅក្នុងតារាង table B។ នេះមិន មែនប្រភេទទំនាក់ទំនងរួម ដូចទិន្នន័យ data ក្នុងតារាង table B ដែលនឹងមានដោយងាយ ក្នុងតារាង A។ ប្រភេទទំនាក់ទំនង relationship ជាទូទៅប្រើសម្រាប់សុវត្ថិភាព security ឬដើម្បីបែងចែកតារាង table ធំៗ។

តារាងប្រសព្វ Junction Table ក្នុងទំនាក់ទំនងខាងលើ តារាង Orders table គឺស្គាល់ជាតារាង junction table។ ក្នុងតារាង junction table គឺមានផ្ទុក field រួមពី ២ ឬច្រើនតារាង ខាងក្នុងទិន្នន័យដូចគ្នា។ វាប្រើ same database គេប្រើតារាង table ក្នុងទំនាក់ទំនង many-to-many relationship ។

Primary Key និង Foreign Key យើងដឹងហើយថា primary key កំណត់ ទិន្នន័យច្បាស់លាស់ data ក្នុង field។ នេះគឺសារ:សំខាន់ Orders table ត្រូវការ តម្លៃតែមួយគត់។ ឧទាហរណ៍ វាមិនអាចប្រើតម្លៃ FirstName field ពីព្រោះ នឹងអាច មានច្រើនជាងមួយ មនុស្សម្នាក់ ជាមួយ ឈ្មោះ first name ដែលបានផ្តល់ អោយ។ ហើយវាមិនអាចប្រើ តម្លស DateCreated ពីព្រោះវាអាចមាន record នឹងបង្កើត ក្នុងពេលតែមួយ (ឧទាហរណ៍ ប្រមាណវិធីពីរ កំពុងបញ្ចូលទិន្នន័យ data ឬ records ច្រើនត្រូប បានបញ្ចូល ពី external source។

ហើយ foreign key គឺងាយស្រួលជាង primary key field នៅក្នុងទំនាក់ទំនងតារាង table។ ឧទាហរណ៍ CustomerId field ក្នុង Orders table គឺជា foreign key, ខណ:ដែល CustomerId field នៅក្នុង Customers table គឺជា primary key។  ដូចដែរ ProductId field នៅក្នុង Orders table គឺជា foreign key, ខណ:ដែល ProductId field នៅក្នុង Products table ជា primary key។ បណ្តា field មិនចាំបាច់ត្រូវការមានឈ្មោះ ដូចគ្នា។ ប៉ុន្តែវាការអនុវត្តល្អដើម្បីទទួល ប្រើ។

Relationships និង Queries ការបង្កើតទំនាក់ទំនង relationships ដូចខាងលើ អាចជួយក្នុងការដំឡើង queries database។ បន្ទាប់មក យើងបន្ត ដើម្បី បង្កើតទំនាក់ទំនង បង្កើត queries តារាងក្នុងទិន្នន័យ database។