Data Loading...
Database Management System I Flipbook PDF
DBMS
139 Views
115 Downloads
FLIP PDF 733.24KB
How to write Database
Teacher Hout Chanthou
មេមរៀនជាភាសាខ្មែរ គ្រប់គ្រងគ្បព័នធខ្ែតាមបស កគ្េិត១ Database Management System I
Prepared by Mr. Mey Bunny Year 2 Semester I Prepared by MEY BUNNY
Page 1
How to write Database មេមរៀនទី ១
Teacher Hout Chanthou
ការខ្ែនាំមោយសាាល់នូវគ្បព័នធ េូលដ្ឋានទិននន័យ
១. និយេន័យរបស់េូលដ្ឋានទិនន ន ័យ េូលដ្ឋានទិននន័យ(Database)រឺជាការគ្បេូ លផ្ាំតនិងគ្រប់គ្រងនូវទិននន័យទាំងអស់ ខ្ែល
ទក់ទងមៅនឹងគ្បធានបទឬរាំមោងណាេួយ ែូ ចជាការគ្បេូលផ្ាំតនិងគ្រប់ គ្រងការ បញ្ជ ា ទិញ
របស់អតិថិជនការគ្បេូលផ្ាំតនិងគ្រប់ គ្រងការមចីមសៀវមៅមៅកនតងបណា ្ ល័យ ការគ្បេូ លផ្ាំតនិង គ្រប់គ្រងមលើបតរាលិកននគ្កុេហត ន អងាការ ឬគ្កសួងណាេួយជាមែើេ។ ២. បរ ិសាានននគ្បព័នេ ធ ូលដ្ឋានទិនន ន ័យ គ្បព័នធេូលដ្ឋានទិនន ន ័យ
(Database
System)
រឺសាំមៅចាំម
ោះការសហការគ្បតិបត្ិ
ការរវាងសមាសធាតត េួយចាំនួនរបស់គ្បព័ នក ធ តាំ ពយូទ័ រមែើ េបីគ្បេូលផ្ាំតផតកគ្រប់ ទ គ្រង និងមគ្បើគ្ាស់ ទិននន័យ។ សមាសធាតត ខ្ែលចូលរួេកនតងការបមងកើតគ្បព័ នក ធ តាំ ពយូទ័រមានែូ ចជាាៈ ២.១ ខ្ផនករ ឹង(Hardware) រឺសាំមៅចាំ ម
ោះមគ្រឿងបរ ិកាាកតាំ ពយូទ័ រ
និ ងមគ្រឿងមអឡិចគ្តូនិកេួយចាំនួន
ខ្ែលគ្តូវាន
មគ្បើកតងការមគ្បើ ន គ្ាស់។
២.២ ខ្ផនកទន់ (Software): រឺសាំមៅចាំ ម
ោះកេែវ ិធីទាំងឡាយខ្ែលគ្តូវានមគ្បើ កតាំពយូទ័រ មែើេបីគ្បេូ លផ្ាំត ផទតក
និងគ្រប់គ្រង ទិនន ន ័យ។ Software ខ្ែលោចគ្តូវានមគ្បើរេ ួ មាន Operating System (OS), Database Management System(DBMS) និង Application/Utilities Software។ ២.២.១ គ្បព័នគ្ធ បតិបត្ិការ(Operation System) រឹសាំមៅចាំម
ោះ System Software ខ្ែលមានតួនទីជួយខ្ថរកាខ្ផនក Hardware
និងគ្រប់គ្រងមលើ Software មផេងមទៀត ខ្ែលានែាំ មែើរការកនតងកតាំ ពយូទ័ រ។ System Software ទាំងមនោះរួេមាន (Disk Operating System) Windows, Unix System ជាមែើេ។
២.២.២ គ្បព័នគ្ធ រប់គ្រងេូលដ្ឋានទិនន ន ័យ(Database Management System): រឺសាំមៅចាំម
ោះ Application Software ខ្ែលគ្តូវានមគ្បើសាំោប់កាំែត់
បមងកើតនិងខ្ថរកា Database គ្ពេទាំងផ្ល់នូវការគ្តួតពិនិតយមៅមលើែាំមែើរការបស់ Database។ DBMS ខ្ែលមយើងោចមគ្បើរេ ួ មាន Microsoft Access, SQL Server, Visual FoxPro និង Oracle ជាមែើេ។
Prepared by MEY BUNNY
Page 2
How to write Database
Teacher Hout Chanthou
២.២.៣ Utilities Software រឺសាំមៅចាំ ម
ោះកេែវ ិធី ជាំនួយបខ្នាេ
ខ្ែលជួយសាំរល ួ ែល់ែាំមែើរការរបស់គ្បព័នគ្ធ រប់គ្រង ទិនន ន ័យ និងជួយការ (virus)
មធវើមោយមូចទិននន័យ។
Application/Utilities
Software
រកតាំមោយមេមោរ
ទាំងមនោះ
រួេមាន
Programming Language (C,C++,Visual Basic.......) Anti Virus (AVG, Kaspersky, Avira,..)ជាមែើេ។ ២.៣ េនតសេ (People) សាំមៅចាំម
ោះបត រល ា ទាំងឡាយ ខ្ែលចូ លរួេចាំ ខ្ែកកនតងការបមងកើត គ្រប់ គ្រង វ ិភារ
និងមគ្បើគ្ាស់គ្បព័នគ្ធ រប់គ្រងទិនន ន ័យ។ េនតសេទាំងមនោះរួេមាន System Administrators,
Database Administrators, System Analysts/Programmers, Database Designers និង End USers។ ២.៣.១ អនកគ្រប់គ្រងគ្បព័ន(ធ System Administrator) រឺគ្រប់គ្រងគ្បព័នធរឺជាអនកគ្រប់គ្រងែាំមែើរការគ្បតិបត្ិរបស់គ្បព័នធគ្រប់គ្រងទិននន័យទាំ ងេូល។ ២.៣.២ អនកគ្រប់គ្រងេូលដ្ឋានទិនន ន ័យ(Database Administrator) រឺជាអនកគ្រប់គ្រងការមគ្បើគ្ាស់
DBMS
និងគ្តួតពិនិតយែាំមែើរការរបស់គ្បព័នធគ្រប់គ្រងទិននន័យ
តាេរយាៈ
DBMS
។
មលើសពីមនោះមៅមទៀត DBA ក៏មាននទីសរមសរ Procedures សាំោប់មោយ System Analysts និង Programmer យកមៅមគ្បើគ្ាស់ផងខ្ែរ។ ២.៣.៣ System Analysts/Programmer:
រឺជាអនកវ ិភារនិ ងអនកសរមសរកេែវ ិធី សគ្មាប់បញ្ូច លទិ ននន័យ លតប ខ្កខ្គ្ប រតករក និ ង
ទញយក ទិននន័យេកបង្ហាញ។
២.៣.៤ Database Designer: រឺជាអនកបមងកើត
Database
សាំោប់មោយអនកមគ្បើគ្ាស់បញ្ូច ល
និងបមងកើត ទិ ននន័យ
User លតប
Interface ខ្កខ្គ្ប
និងរតករកទិននន័យមៅតាេតាំរវា ូ ររបស់ពួកមរ។ ២.៣.៥ End Users: Prepared by MEY BUNNY
Page 3
How to write Database
Teacher Hout Chanthou
រឺជាអនកមគ្បើគ្ាស់ Application Program មែើេបីែាំមែើរការគ្បព័នធទិនន ន ័យ ែូ ចជាបញ្ូច ល
ទិននន័យ លតប ខ្កខ្គ្ប និងរតករកទិននការន័យមៅតាេតាំរវួ របស់ពួកមរ។ ២.៤ Procedures: រឺជាចាប់ កបូនរាំមោងបលង់
ខ្ែលគ្តូវានបមងកើតមឡើងរួចជាមរសច Analyst/Programmers
មដ្ឋយសារ
MBA
មគ្បើ គ្ាស់កតងការសរមសរ ន
ឬក៏ បែាំត្ ននវ ិធី សាស្រស្មផេងៗ ទត កសាំោប់មោយ
Application
System
Program
មោយរសបមៅតាេចាប់កបួននិងរាំ មោងបលង់ទាំមនោះ។
២.៥ ទិនន ន ័យ(Data): រឺជាព័ ត៌មានខ្ែលានបាំខ្បលង រួចគ្បេូ លផ្ាំតផតកមៅកន ទ តងគ្បព័នធគ្រប់គ្រងទិ ននន័យ។
៣. េតមង្ហររបស់ DBMS(DBMS Function)
មានេតមង្ហរសាំខាន់ៗេួយចាំនួនែូចជាការគ្រប់គ្រងមៅមលើ Dictionary
Management),
Data
ការគ្រប់ គ្រងមៅមលើកខ្នលងផទតកទិ នន ន ័យ
Dictionary (Data
(Data
Storage
Management), ការផ្លលស់បូរនិ ្ ងការបង្ហាញទិ នន ន ័ យ(Data Transformation and Presentation), ការគ្រប់គ្រងមៅមលើសតវតាិភាព
(Security
Management),
ការគ្តួតពិនិតយមៅ
មលើែាំមែើរការគ្បតិបត្ិការែ៍របស់អក ន មគ្បើគ្ាស់ជាមគ្ចើន (Multi-User-Access Control), ការគ្រប់គ្រងមៅមលើការចាំលងទតកនិ ងការមរសាចរសង់ េកវ ិញ(Backup
and
Recovery
Management) ការគ្រប់គ្រងមៅមលើសតគ្កឹតភាពននទិនន ន ័យ(Data Integrity Management), បមងើកត Interface សាំោប់ Application Program និងភាសាសាំោប់គ្បតិបត្ិមលើ Database (Database Access Language And Application Program Interface) មហើយនិងបមងកើតនូវ Interface សាំោប់ទាំនក់ទាំនងរវាងDatabase (Database Communication Interface)។ ៣.១ ការគ្រប់គ្រង Data Dictionary DBMS
មាននទីកាំែត់និងគ្រប់គ្រងទិននន័យ
មហើយនឹងមធវើទាំនក់ទាំនងរវាងទិននន័យ
ខ្ែលសាិតមៅកនតង Data Dictionary (រឺ ជាកខ្នលងផទតកទិននន័យខ្ែលគ្តូវានមរៀបចាំ តាេលាំដ្ឋប់ លាំមដ្ឋយ)។
មៅមពលខ្ែលកេែវ ិធីទាំឡាយគ្តូវការគ្បតិ បត្ិមលើទិននន័យខ្ែលសាិតកនតង
Database តាេរយាៈ DBMS មនោះ DBMS ានរតករកទិនន ន ័យនិងមធវើទាំនក់ទាំនង (Relationship) រវាងទិនន ន ័យខ្ែលទញមចញពី Data Dictionary។ ៣.២ ការគ្រប់គ្រងមលើកខ្នលងផទកទិ ន ័យ ត នន Prepared by MEY BUNNY
Page 4
How to write Database DBMS
Teacher Hout Chanthou
ានបមងកើតនូវរចនសេព័នធែ៏សតរសា ែ ែញ
សាំោប់ គ្រប់ គ្រងការផទតកទិ ននន័យ។
អនតញ្ជាតមោយផទតកនូវទាំនក់ ទាំនងទិ នន ន ័ យជាេួយនឹ ងការកាំ ែត់ Form សាំោប់ បញ្ូច ល ទិ នន ន ័យ ការកាំែត់
Report
សាំោប់បង្ហាញរាយការែ៍ទិ នន ន ័យ
ននទិននន័យខ្ែលគ្តូវផទតកជាមែើ េ។
និ ងការកាំ ែត់ ចាប់កបូន
៣.៣ ការផ្លលស់បូរនិ ្ ងបង្ហាញទិនន ន ័យាៈ DBMS
មាននទីកតងការផ្ល ន ល ស់បូរទិ ្ ននន័យខ្ែលានបញ្ូច លតាេរចនសេព័នធរបស់វា
ខ្ែលគ្តូវការចាំាច់មែើេបីផតកទិ ទ នន ន ័ យ។ េយ៉ា ងវ ិញមទៀត DBMS ក៏ មានតួ នទីកតងការបង្ហ ន ាញ ពត៌មានខ្ែលានបាំខ្បលងពីទិននន័យមៅតាេតាំរវូ ការរបស់អក ន មគ្បើគ្ាស់។ ៣.៤ ការគ្រប់គ្រងគ្បព័នស ធ តវតាិភាពាៈ DBMSានបមងកើតនូវគ្បព័នធសតវតាិភាពមែើេបីកាំែត់ថាមតើអនកមគ្បើគ្ាស់មលោះោច គ្បតិបត្ិមលើ
Database និងថាមតើ
Data Item េួយណាខ្ែលអនកមគ្បើគ្ាស់ោចគ្បតិបត្ិ
មហើយនិងថាមតើែាំមែើរគ្បតិបត្ិការណាមលោះែូចជា ោន បខ្នាេ លតប និងខ្កខ្គ្ប ខ្ែលអនក មគ្បើគ្ាស់ានមគ្បើ។ ៣.៥ ការគ្តួតពិនិតយមៅមលើែាំមែើរការគ្បតិបត្ិមដ្ឋយអនកមគ្បើគ្ាស់ជាមគ្ចើន DBMSានបមងកើតនូ វរចនសេព័នធែ៏សរសា ែ ញេួយខ្ែលអនតញ្ជាតមោយអនក មគ្បើគ្ា តែ
ស់ជាមគ្ចើននក់ែាំមែើរគ្បតិបត្ិមលើទិនន ន ័ យកនតងមពលែាំ ណាលនន។េយ៉ា ងវ ិញមទៀត មែើ េបីផល ្ ់
នូវសតគ្កឹតភាពនិងភាពេិនផ្លលស់បូរទិ ្ នន ន ័យDBMSានមគ្បើនូវAlgorithm មែើេបីមធវើមោយគ្ាកែ ថាអនកមគ្បើគ្ាស់ជាមគ្ចើនោចែាំមែើរគ្បតិបត្ិមលើDatabaseកនតងមពល រសបននមដ្ឋយពតាំាច់ សាំរបមៅនឹងភាពសតគ្កឹតនន Database មឡើយ។
៣.៦ ការគ្រប់គ្រងនូវការចាំលងទតកនិងការទញយកេកវ ិញ
DBMS ានផ្ល់នូវ Procedures សាំោប់ចាំលងទតក(Back up) និ ងការទញយក េកវ ិញ (Recovery)
នូវទិននន័យខ្ែលានាត់បង់
មែើេបីមធវើមោយគ្ាកែថាទិននន័យសាិត
មៅកនតងភាពធេែតា មដ្ឋយនែនបញ្ជ ា អវីមឡើយ។ DBMS សពវនថៃមនោះានផ្ល់នូវ Utilities ខ្ែល
អនតញ្ជាតមោយ DBA បមងកើតនូវ Routine និង Procedures (រឺជា Sub-Program)សាំោប់ Back Up ទិននន័យទតក និងទញយក (Restore) ទិ ននន័យខ្ែលាត់បង់ជាយថាមហតត េកវ ិញ។ ៣.៧ ការគ្រប់គ្រងមលើសគ្ត កឹតភាពននទិនន ន ័យ DBMS
ានកាំែត់និងគ្បតិបត្ិនូវចាប់កបួនននសតគ្កឹតភាព
េួយចាំនួនខ្ែលមកើតមានមឡើងែូចជាាៈ
មែើេបីបាំាត់ នូវបញ្ជ ា
ការកាត់បនាយនូវភាពមលើសទិននន័យ
(Data
Redundancy) និ ងពគ្ងីកនូ វភាពេិ នផ្លលស់បូរទិ ្ នន ន ័ យ។ ជាទូ មៅទាំនក់ទាំនង (Relationship) Prepared by MEY BUNNY
Page 5
How to write Database
Teacher Hout Chanthou
រវាងទិនន ន ័យខ្ែលផទតកមៅកនតង Data Dictionary គ្តូវានមគ្បើមែើេបីមធវើមោយមានសតគ្កឹតភាព ននទិននន័យ។ ៣.៨
ការបមងកើតនផទសោ ាំ ប់
Application
Program
និង
ភាសាសាំោប់គ្បតិបត្ិមលើ
Database DBMS Query
ានផ្ល់នូវែាំមែើរការគ្បតិបត្ិមលើទិនន ន ័យតាេរយាៈ
Language
Query
Language។
រឺជាភាសាេួយសាំោប់កាំែត់និងបមងកើតនូវរចនសេព័នធរបស់ទិននន័យ
តាេរយាៈសមាសភាពរបស់វាេួយរឺ DDL(Data Definition Language)។ Query Language ក៏មានតួនទី កតងការមរៀបចាំ ន ចត់ ខ្ចងទិ នន ន ័យែូចជាការរតករកការបខ្នាេ ការលតបទិននន័យ Language)។
តាេរយាៈសមាសភាពរបស់វាេួយមទៀតរី
េយ៉ា ងវ ិញមទៀត
DBMS
DML
ការខ្កខ្គ្ប (Data
និង
Manipulation
ានផ្ល់ែល់អនកសរមសរកេែវ ិធី(Programmer)
ែាំមែើរគ្បតិបត្ិមលើទិននន័យ តាេរយាៈ Procedural 3GL (Third Generation Language) ែូចជា Pascal, C, C++, និង Visual Basic ជាមែើេ។ DBMS ក៏ានផ្ល់នូវ Utilities សាំោប់
គ្រប់គ្រងទិននន័យផងខ្ែរ មែើេបីមោយ DBA និង Database Designer យកមៅមគ្បើកតងការ ន បមងកើតនូវការគ្បតិបត្ិគ្រប់គ្រង និង ការខ្ថរកា Database។
៣.៩ ការបមងកើតនូវនផទសោ ាំ ប់ទាំនក់ទាំនងរវាងេូលដ្ឋានទិនន ន ័យ: DMBS កនតងជាំនន់សពវនថៃានផ្ល់នូវ Routines (រឺជា Sub-program ឬFunction)
សាំោប់ទាំនក់ទាំនងជាពិមសស មែើេបីអនតញ្ជាតមោយ End Users ែាំមែើរគ្បតិបត្ិមលើ Database ខ្ែលសាិតមៅកនតងគ្បព័នធននការតបណា ្ ញ (Network)។ ជាឧទហរែ៏ DBMS មាន Function សាំោប់ែាំមែើរគ្បតិបត្ិមលើ
Database
តាេរយាៈ
Internet។
មៅកនតងបរ ិសាាន
ខ្បបមនោះការមធវើទាំនក់ទាំនងរឺ គ្បពឹ ត្មៅានោរស័យតាេរយាៈវ ិធីេួយចាំនួនែូ ចជាាៈ End
Users
ោចទទួ លាននូវចាំ មលើយពីការរតករក
Screen Form តាេរយាៈ World Wide Web Browser របស់ពួកមរ។ DBMS
មដ្ឋយការបាំមពញកនតង
ោចបមងកើតនូវរាយការែ៍ខ្ែលានកាំែត់ជាសវ័យគ្បវត្មៅមលើ
Internet មដ្ឋយការមគ្បើ Web Format មដ្ឋយអនតញ្ជាតមោយ Web Users ោចរតករកវាាន DBMS ោចភាាប់មៅនឹង Third-Party System មែើេបីពែ៌នអាំពីពត៌មានអវី េួយតាេរយាៈ ឬក៏ Application ណាេួយែូចជា Lotus Note ជាមែើេ។ សាំនួរ ១.អីវមៅខ្ែលមៅថាេូលដ្ឋានទិននន័យ?
អីវមៅខ្ែលមៅថាគ្បព័នេ ធ ូលដ្ឋាន
ទិននន័យ? Prepared by MEY BUNNY
Page 6
How to write Database
Teacher Hout Chanthou
២.មតើគ្បព័នេ ធ ូលដ្ឋានទិនន ន ័យគ្តូវការសមាសធាតតអីវមលោះ?
ចូរមរៀបោប់នូវ
សមាសធាតតទាំងមនោះ។ ៣.មតើអីវមៅខ្ែលមៅថាគ្បព័នធគ្រប់គ្រងេូលដ្ឋានទិននន័យ
(Database
Management System? DBMS មោយាន១០។
Prepared by MEY BUNNY
Page 7
How to write Database
Teacher Hout Chanthou
មេមរៀនទី ២
គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិននន័យ (Database Model)
គ្ទង់ គ្ទយរាំរនូ នេូលដ្ឋានទិ ននន័យរឺ ជាការគ្បេូលផ្ាំតនូវការសាាបនខ្បបរាំ មោងខ្ែលគ្តូវ
ានមគ្បើមែើេបីតាងមោយរចនសេព័នធទិននន័យ
មហើយនឹងទាំនក់ទាំនង
ទិននន័យខ្ែលសាិតមៅកនតងេូ លដ្ឋាន ទិ ននន័យេួយ។ ១. Entity Sets
េូលដ្ឋានគ្រឹោះននទិននន័យោចគ្តូវានមរៀបចាំតាេរមបៀបរាំរូ ែូចជាការគ្បេូលផ្ាំតននសាំែតាំរបស់ Entity ឬក៏ទាំនក់ទាំនងរវាង Entity និង Entity ។ ១.១ Entity:
រឺជាព័ ត៌មានជាក់ លាក់ េួយខ្ែលមយើងោចគ្បេូលផ្ាំតមធវើជាទិ នន ន ័ យាន។
គ្បមេទននទិ នន ន ័យ
មានែូ ចជាព័ ត៌មានេនតសេ
ទី កខ្នលងេួយ
ឬក៏គ្ពឹតកា ្ រែ៍ណាេួយ។
វតាតអវីេួយ
ឧទហរែ៏: -
01 Chan Davy Female 10/Feb/1984 Phnom Penh រឺជា Entity ខ្ែលបញ្ជ ា ក់អាំពី ព័តមានរបស់និសិេតមានក់។
-
001
Tiger
Beer
$15.00
1000
រឺជា
Entity
ខ្ែលបញ្ជ ា ក់អាំពីព័ត៌មានរបស់ផលិតេួយ។ ១.២ Entity set: រឺជាសាំែតាំនន Entities ខ្ែលមានគ្បមេទ (Type) និងលកាែោះ(Properties) ែូចនន។ ឧទហរែ៍: Entity Set ខ្ែលបញ្ជ ា ក់អាំពីព័ត៌មានរបស់និសិេតជាមគ្ចើនែូចខាងមគ្កាេ:
Entity
01
Chan Davy Female
10/ Feb/ 1984
Phnom Penh
02
Keo Dara
Male
12/ Jan/ 1983
Kandal
03
Khim Tola
Male
16/ Jun/ 1984
Phnom Penh
. . Entity Set (Students) Prepared by MEY BUNNY
Page 8
How to write Database
Teacher Hout Chanthou
១.៣ Strong Entity Set រឺជា Entity Set ខ្ែលេិនោរស័យមៅនឹង Entity េួយមផេងមទៀតមឡើយ។ Strong Entity set គ្តូវានតាងមដ្ឋយចតតមកាែខ្កងេួយ។ Strong Entity Set ១.៤ Weak Entity Set រឺជា
Entity
Set
ទាំងឡាយណាខ្ែលោរស័យមៅនឹង
Entity
Set
េួយឬមគ្ចើនមផេងមទៀត។ Weak Entity Set គ្តូវានតាងមដ្ឋយចតតមកាែខ្កងឌតប។ Weak Entity Set ឧទហរែ៍:
ពីមគ្
ព័ ត៌មានពិនតរបស់ ទ និសិេតរឺជា
Weak
ោះវាោរស័យមៅនឹង ព័ ត៌មានរបស់និសិេត និ ងព័ ត៌មានរបស់េតមវ ិជាា។
Entity
Set
Scores Student 1 Student 1 Student 1 Student 1 Student 1 .
Subject 1 Subject 2 Subject 3 Subject 4 Subject 5 . .
70 90 100 80 90
. Students Student 1 Student 2 Student 3 Student 4 Student 5 . .
Chan Sina Keo Dary Hout Tola Chhun Thida Long Dara
Male Female Male Female Male
Subjects Subject 1 Subject 2 Subject 3 Subject 4 Subject 5 . .
C++ MIC DBS DAS DAC
២. Attributes: ២.១ និយេន័យ Attributes រឺជាម្ែោះរបស់ជួរឈរខ្ែលបញ្ជ ា ក់ពីលកាែ: (Property) មោយ Entity Set េួយ។ មៅកនតង Entity Set េួយខ្តងខ្តមាន Attributes េួយ ឬមគ្ចើន។ មៅកនតងការអនតវត្នន Prepared by MEY BUNNY
Page 9
How to write Database DBMS
មនោះ
Attribute
Teacher Hout Chanthou គ្តូវានមរមៅថា
Field
។
ជាទូមៅានតាង
Attribute
មដ្ឋយខ្មេកាងបិទ ោងពងគ្កមពើ។ ឧទហរែ៍: Student (StuID, Name, Gender, Birth Date, Address, Phone) រឺជា Entity Set េួយខ្ែលមាន Attributes ចាំនួន៦ ែូចជា: -
StuID បញ្ជ ា ក់លកាែ: ជាមលមមរៀងរបស់ Student
-
Name បញ្ជ ា ក់លកាែ:ជាម្ែោះរបស់ Student
-
Gender បញ្ជ ា ក់លកាែ:ជាមេទរបស់ Student
-
Birth Date បញ្ជ ា ក់លកាែ:ជានថៃ ខ្ម ឆ្នាំកាំមនើតរបស់ Student
-
Address បញ្ជ ា ក់លកាែ:ជាោស័យដ្ឋានរបស់ Student
-
Phone បញ្ជ ា ក់លកាែ: ជាមលមទូរស័ពទរបស់ Student Gander
Birth Date
Name
Address Phone
StuID Student Entity Set ២.២ ខ្ែនតាំនលរបស់ Attribute: រឺជាខ្ែនកាំ ែត់ Attributes នីេួយៗ។
ឬខ្ែនតាំ នលសាំោប់ កាំែត់ តាំនលទាំងឡាយខ្ែលគ្តូវផទតកមៅកនតង
ឧទហរែ៏: -
StuID មានខ្ែនជាចាំនួនរត់ វ ិជាមានែូ ចជា {1, 2, 3, 4, ….}
-
Name មានខ្ែនតាំនលជាតាំមរៀបននតួអកេរ (string) ែូចជា {Chan Dara, Keo Mary,….}
-
Gender មានតាំនលជាតួអកេរ ែូចជា {F, M}
-
Birth Date មានតាំនលជាកាលបរ ិមចេត ែូចជា {1/ Jan/ 1983, 15/ May/ 1984,...}
២.៣ Simple Attribute: រឺជា Attribute េួយខ្ែលេិនោចផ្ល្ច់មចញជា Sub-Attribute មផេងមទៀតមឡើយ។ ឧទហរែ៏: StuID, Gender, Salary, Phone រឺជា Simple Attribute។ ចាំខ្នកឯ: Prepared by MEY BUNNY
Page 10
How to write Database
Teacher Hout Chanthou
- Name េិនខ្េនជា Simple Attribute មទមគ្ Attribute
ោះវាោចផ្ល្ច់មចញជា Sub-
ចាំនួនពីររឺ First Name និង Last Name។
- Birth Date េិនខ្េនជា Simple Attribute មទ មគ្
ោះវាោចផ្ល្ច់មចញជា Sub-
Attribute ចាំនួនបីរឺ Day, Month, and Year។ - Address េិនខ្េនជា Simple Attribute មទ មគ្
ោះវាោចផ្ល្ច់មចញ Sub-
Attribute ជាមគ្ចើនែូចជា: House No, Street, District, City,…….។ ២.៤ Composite Attributes: រឺជា Attributes េួយខ្ែលោចផ្ល្ច់ជា Sub-Attributeជាមគ្ចើនមទៀត។ ឧទហរែ៍: StuID, Gender, Salary, Phone េិនខ្េនជា Composite Attribute មគ្
ោះវាេិនោចផ្ល្ច់មចញជា Sub-Attribute មផេងមទៀតមឡើយ។ ចាំខ្ែកឯ: - Name រឺជា Composite Attribute មគ្
ោះវាោចផ្ល្ច់មចញជា Sub-Attribute
ចាំនូនពីររឺ First Name and Last Name។ - Birth Date រឺជា Composite Attribute មគ្
ោះវាោចផ្ល្ច់មចញជា Sub-Attribute
ជាបីរឺ Day, Month and Year ។ - Address រឺជា Composite Attribute មគ្
ោះវាោចផ្ល្ច់មចញជា Sub-Attribute
ជាមគ្ចើនែូចជា: House No, Street, Commune, District, City,…។ ២.៥ Single-valued Attribute: រឺជា Attribute េួយខ្ែលមានតាំនលខ្តេួយរត់សាំោប់ Entity េួ យ។ ឧទហរែ៍: មៅកនតង Entity set ម្ែោះ Customer ខាងមគ្កាេ: CusID
Cus Name
Gender
Address
Phone
001
Chan Dara
M
Phnom Penh
011 888 343
002
Chim Mary
F
Kompong
012 844 323
Cham
016 382 335
មយើងសមងកតម មគ្
ើញថា CusID, CusName, Gender សតទធខ្តជា Single-valued Attribute
ោះវាជាតាំនលខ្តេួយ។ ចាំខ្ែកឯ Address and Phone េិនខ្េនជា Single-valued
Attribute មឡើយ មគ្
ោះវាមានតាំនលេួយ ឬមគ្ចើនសាំោប់ Entity េួយ។
២.៦ Multi-valued Attribute: រឺជា Attribute េួយខ្ែលមានតាំនលជាមគ្ចើនសាំោប់ Entity េួយ ។ Prepared by MEY BUNNY
Page 11
How to write Database
Teacher Hout Chanthou
ឧទហរែ៍: តាេរយ: Entity Set ម្ែោះ Customer ខាងមលើសមងកតម Address ពីមគ្
និង
Phone
រឺជា
Multi
valued
ើញថា
Attributes
ោះវាមានតាំនលជាមគ្ចើនសាំោប់ Entity េួយ ។ មរតាំនង Multi valued Attributes
មដ្ឋយខ្មេមកាងបិទជិតោងពងគ្កមពើ។
Address
Phone
២.៧ Derived Attribute : រឺជាAttribute
េួយ
ខ្ែលមកើតមទបើងពីកមនាេរូបេន្រវាង
Attribute
េួយឬមគ្ចើនមផេងមទៀត។ ជាទូ មៅនមៅកនតង
មទបើយមគ្
Entity
Set
េួយ
មរេិនសូវមគ្បើ
Derive
Attribute
ោះតាំនលរបស់
វាមកើតមទបើងពីការរែនរវាតាំនលរបស់ ខ្ែលជាមហតត
Attribute
េួយឬមគ្ចើនមផេងមទៀត
បណា ្ លមោយមានភាពមលើសទិន័នយ(Data
Redundancy)
មកើតមទបើង ។ +ឧទហរែ៍ : -
Age រឺជា Derived Attribute មគ្
ោះវាមកើតមទបើងមដ្ឋយកមនាេរូបេន្រវាង
Current Date ែកនឹង Birth Date។ មគ្
Amount
រឺជា
Derived
Attribute
ោះវាមកើតមទបើងមដ្ឋយកមនាេរូបេន្រវាង SaleQty*UnitPrice*(1-Discount/100) ។ ចាំណាាំ: មរតាំណាង Derived Attribute មដ្ឋយខ្មេមកាងបិតដ្ឋច់ៗោងពងគ្កមពើ
។
Age
Amount
៣. Keys : គ្រប់ Entity Set ទាំងអស់ខ្តងខ្តមានAttribute ខ្ែលមានតាំនលឯកតា្សាំោប់តាងមោយ Entity
េួយមតសពី
Entity
ខ្ែលមានតាំ នលសទួនសាំោប់ មធវើ
Prepared by MEY BUNNY
េួយ
មផេងមទៀតឬ
មាន
Attribute Page 12
How to write Database ទាំនក់ទាំនង
Teacher Hout Chanthou
រវាង
Entity
Set
ទាំងមនោះគ្តូវានមរមៅ Key
េួយមៅ
Entity
Set
េួយមទៀត
។
Attribute
ខ្ែលជាទូមៅវាគ្តូវានខ្ចកមចញជា៣ រឺ Candidate
Key, Primary Key and Foreign Key ។ ៣.១ Candidate Key: រឺជា
Attribute េួ យឬបងាាំតរវាងAttribute ចប់ពីពីរមទបើងមៅខ្ែលមានតាំនលឯកតា្
សាំោប់តាង មោយ Entity េួយឬ ឈតតេួយ (Tuple) មតសពី Entity ឬឈតត (Tuple) េួយមផេងមទៀត។ ឧទហរែ៍: Student (Student ID, Name , Phone
Gender , BirthDate
, Address
,
) 01
Chan Dara
M
16/1/84
#120Eo
02
Chan Mary
F
12/5/85
#120Eo
03
Chan Dara
M
10/6/82
#135E1
តាេរយ: Entity Set (ឬ Entity Type )ម្ែោះ Student ខាងមលើមយើងាន: -
Student ID រឺជា Candidate Key មគ្
ោះវាមានែាំនលឯកតា្
-
Name ផាាំតជាេួយ Address រឺជា Candidate Key មគ្ របស់វាេិន សទួន ។
ោះមពលវាផាាំតរច ួ មធវើមោយតាំនល
៣.២ Primary Key :
រឺជា Candidate Key េួយ។មៅ
េួយខ្ែលគ្តូវានមគ្ជើសមរ ើសមធវើជាតាំនងសាំោប់ Entity Set
កនតងឆ្នាំ១៩៩២មលាក
Bruce
ានកាំែត់លកាែែូចខាងមគ្កាេមែើេបីមគ្ជើសមរ ើសCandidate
Key
េួយមធវើជា
Primary
Key: -
Candidate
Key
:
ណាេួយខ្ែលេិនខ្គ្បគ្បួលតាំនលរបស់វា
ពីមគ្
ោះ
Entity
និេួយៗខ្ែល សាិតមៅកនតង Entity Set េួយ ។ Candidate Key :
ណាេួយខ្ែលចាំម
ោះ Entity នីេួយៗរឺគ្តូវានធានថាវាមាន
តាំនលគ្តឹេ គ្តូវមហើយមានតាំនលេិនទមទ(No Null) ។ -
Candidate Key : ណាេួយខ្ែលតាំនលរបស់វាមានគ្បខ្វងេិនសូវខ្វងមពក ។
Prepared by MEY BUNNY
Page 13
How to write Database ឧទហរែ៍:
Teacher Hout Chanthou តាេរយ:
Entity
Set
(ឬ
Entity
Type
ខាងមលើមយើងោចកាំែត់ Student ID ជា Primary Key មគ្ មដ្ឋយតាំនល របស់វាេិនមានការខ្គ្បគ្បួល សាំោប់
)ម្ែោះ
Student
ោះវាជា Candidate Key
Entity នីេួយៗមហើយេិនទមទ និង
េិនខ្វងមពក ។ ៣.៣ Foreign Key : រឺជា
Attribute
ទាំងទាយ
េួយសាំោប់មធើទ វ ាំនក់ទាំនងជាេួយ
ខ្ែលមានតាំនលសទួនសាិតមៅកនតង Primary
Key
Entity
របស់
Set
Entity
Set
ខ្ែលវាមធវើទាំនក់ទនងជាេួ យផទតយតាំនលេួយចាំនួ នរបស់Primary Key ោចនែនមៅកនតង Foreign Key ខ្ែលវាមធវើទាំនក់ទាំនងជាេួយ ។
ឧទហរែ៍: មរមាន Entity Set ែូចខាងមគ្កាេ: primanry key Product (PID, PName
, StockQty, ) និង SaleDetail (SaleID , PID , SaleQty ,
UnitPrice) 01
A
100
0001
01
50
$5.00
02
B
200
0001
02
30
$8.00
03
C
250
0002
01
20
$5.00
04
D
180
0002
03
50
$5.00
05
E
300
0002
04
70
$10.00
06
F
350
0003
02
50
$7.50
0003
03
20
$4.50
តាេរយ: Entity Set
ទាំងពី រខាងមលើសមងកតម
ើញថា PID
ខ្ែលមានមៅកនតង
SaleDeTail រឺជា Foreign key សាំោប់មធវើទាំនក់ទាំនង(Relationship ) ជាេួយនិងPID ខ្ែលជា Primary Key សាិតមៅកនតង Product ។
៤. គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័យ ន ៤.១ គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័យ ន តាេខ្បបខ្េកធាង: Prepared by MEY BUNNY
Page 14
How to write Database
Teacher Hout Chanthou
៤.១.១ រចនសេព័នជា ធ េូយដ្ឋាន(Basic Structure ) : គ្ទង់ គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេខ្បបខ្េកធាង រឺជាការគ្បេូលផ្ាំតទាំនក់ទាំនងរបស់ (Tree) ពីមលើចតោះមគ្កាេ
Records
។
(Hierarchical Database Model) ខ្ែលគ្តូវានមរៀចាំតាេខ្បបខ្េកធាង
កយ
Parent
និង
child
គ្តូវានមគ្បើមែើេបីពែ៍នអាំពីគ្ទង់គ្ទយរាំរនូ នេូល ដ្ឋានទិន័នយតាេខ្បបខ្េកធាង ។ ឧទហែ៍: DEPARTMENT
PROJECT
EMPLOYEE
SKILL
EQUIPMENT
DEPENDENT
រូបទី២.១. គ្ទង់ទយរាំរនូ នេូលដ្ឋានទិន័យ ន តាេខ្បបខ្េកធាង
តាេរយ: រូបទី ២.១ ខាងមលើមយើងសមងាតម
ើងថា
DEPARTMENT រឺជា Parent
របស់ EMPLOYEE និង Project ។ ចាំខ្នកឯ EMPLOYEE រឺជា Parents
របស់ skill
និងDEPENDENT ។ រ ីឯ Project រឺជា Parent របស់ EQUIPMENT ។ ចាំនតចសាំខាន់របស់គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិនន ន ័យតាេខ្បបខ្េកធាងរឺថា
Child
េួយោច មានទាំនក់ទាំនងជាេួយនឹង Parents ានខ្តេួយរត់ែូចជា EQUIPMENT រឺជា Child របស់ PROJECT ខ្តមានក់រត់ខ្ែលេិនខ្េន Child របស់ EMPLOYEE មឡើយ។ ៤.១.២: រតែសេបត្ិ (Adventage) គ្ទង់គ្ទយននេូលដ្ឋានទិននន័យតាេខ្បបខ្េកធាងរឺថា មានរតែសេបត្ិេួយចាំនួនែូច ខាងមគ្កាេ - Conceptual simplicity:មានន័យថារចនខ្េកធាង (Tree) របស់វាកនតងទាំនក់ទាំនងពី
Parents មៅ Child រឺមានសភាពសាេញខ្ែលមធវើមោយមានសភាពង្ហយរសួលកនតងការ បង្ហាញ។
Prepared by MEY BUNNY
Page 15
How to write Database
Teacher Hout Chanthou
- Database Security: មានន័យថាDBMS ខ្ែលានមគ្បើគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិននន័យ តាេខ្បបខ្េកធាងមនោះ រឺគ្តូវានផ្ល់និងមធវើមោយការគ្បតិបត្ិការមានសតវតាិភាពមៅមលើ េូលដ្ឋានទិននន័យ។ - Database មគ្
Integrity:
មានន័យថាវាមធវើមោយមានសតគ្កឹតភាពមលើេូលដ្ឋានទិននន័យ
ោះទាំនក់ទាំនងរវាង parents ជាេួយនឹង Child ខ្តងខ្តមានការភាាប់ (Link) រវាង
Parent Record ជាេួយនឹង Child Record ជានិចច។ ៤.១.៣ រតែវ ិបត្ (Disadvantage) មទោះបីវាមានរតែសេបត្ិយ៉ាងណាក៏មដ្ឋយ ក៏វាមានរតែសេបត្ិេួយចាំនួនែូចខាងមគ្កាេ - Complex
Implementation:
មានន័យថា
DBMS
ខ្ែលានមគ្បើគ្ាស់លកាែ:គ្ទងគ្ទយរាំរូ ននេូលដ្ឋានទិននន័យតាេខ្បបខ្េកធាងរឺ មានភាពសែតរសាែញទក់ ទងមៅនឹងអងាចងចាំ ជានិរន្ន៏ (Secondary Storage)។ - Difficult
to
Manage:
ទក់ទងមៅនឹងការផ្លលស់បូ្
មានន័យថាវាមានការពិាកកនតងការគ្រប់ គ្រង
ទី តាាំងរបស់
មនោះវាតាំរវួ មោយមធវើការផ្លលស់បូរគ្រប់ ្
Record
Application
Types
Program
ទាំង
អស់ខ្ែលែាំមនើរការមលើេួលដ្ឋានទិននន័យ។
៤.២ គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិនន ន ័យតាេខ្បបបណា ្ ញ ៤.២.១ រចនសេព័នជា ធ េូលដ្ឋាន (Basic Structure) គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានតាេខ្បបបណា ្ ញ មានលកាែ:មតស
(Network
Database
Model)
ននពីគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិនន ន ័យតាេខ្បបខ្េកធាងគ្តង់ថា
េួយោចមាន
Parent
កនតងការមគ្បើបមចចកមទសននគ្ទង់ គ្ទយរាំរនូ នេូលដ្ឋានតាេខ្បបខ្េកធាង
Child
េួយឬមគ្ចើន។ មនោះមាន
មានទាំនក់ទាំនងគ្តូវានមរមៅថាសាំែតាំ (Set)។ សាំែតាំនីេួយៗគ្តូវានផេាំមឡើងយ៉ា ងមោច ណាស់ Record Types ចាំនួន ២ រឺ Owner Record ខ្ែលសេេូលមៅនឹង Parent មហើយនឹង Member Record ខ្ែលសេេូលមៅនឹង Child កនតង Hierarchical Database Model ។ Prepared by MEY BUNNY
Page 16
How to write Database
Teacher Hout Chanthou
ឧទហរែ៏: SALEREP
COSTOMER
1
1 M
PRODUCT
M
M
INVOICE
1
PAYMANT
1 M
M
INVOIVEDETAIL
រូបទី២.២ គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិនន ន ័យតាេខ្បបបណា ្ ញ តាេរយ:រូបខាងមលើមយើងសមងកតម
ើញថា SALEREP, COSTOMER, PRODUCT,
INVOICE, PAYMENT and INVOICEDETAIL តាំណាងមោយ Record Type ។ INVOICE រឺជាកេែសិទធរបស់ COSTOMER និង SALEREP រឺជាកេែសិទិធ PRODUCT និង INVIONCE ។ ប៉ាតខ្ន្រួមោយកត់សាំន ល់ថាមៅកនតងគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិ ន័យ ន តាេខ្បបបណា ្ ញក៏ មាន ONE OWNER RELATIONSHIP
ខ្ែរ ែូចជា PAYMENT
រឺជាកេែសិទិធខ្តេួយរត់របស់ customer ។
៤.២.២ រតែសេបត្ិ(Advantage): គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតតាេខ្បបបណា ្ ញមានរតែសេបត្ិេួយចាំនួនែូចខា ងមគ្កាេាៈ -
Conceptual
Simplicity:
វាមានលកាែាៈ
ែូចមៅនិងរតែសេបត្ិរបស់គ្ទង់គ្ទយរាំរនូ នេូ លដ្ឋានទិន័នយតាេខ្បបខ្េកធាងខ្ែរ ។ -
Handles
more
Relationship
Type:
មានន័យថាមៅគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិ ន័នយតាេ ខ្បបបណា ្ ញមានទាំនក់ទាំនង(Relationship)
គ្បមេទ
Many
to
Many
ខ្ែលមានភាពង្ហយរសួលគ្បតិបត្ិជាងគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេខ្បបខ្េ កធាង។ Many To Many Prepared by MEY BUNNY
M
M
Page 17
How to write Database
Teacher Hout Chanthou PRODUCT
INVIOCE
1 One to Many -
1 One to Many
M M INVIOCEDETAIL
Data
Access
Flexbility
:
មានន័យថាគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេខ្បបបណា ្ ញ ែាំមែើការគ្បត្ិបត្ិទិន័នយោចបត់ខ្បនានមៅគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋា នទិន័នយតាេ ខ្បបខ្េកធាង
មគ្
ោះ Application Program
េួយោចែាំមនើោចែាំមែើរការមលើ
Owner Recort និង គ្រប់ Member Record ទាំអស់ខ្ែលសាិតមៅកនតងទាំ នក់ ទាំនង(Relationship) េួយ ។ -
Promotes
Database
Integrity
:មានន័យថាមៅកនតងគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិ ន័តា ន េខ្បបបណា ្ ញគ្តូវានកាំ នត់នូ វសតគ្កឹ តផភាពននេូលដ្ឋានទិ ន័ យ ន គ្តង់ថាអនកមគ្បើ គ្ាស់គ្តូវបញ្ូច លនូ វ Record ជាេតនមទើបោចកាំែត់ Member -
Data
Owner
Record ជាមគ្កាយ ។
Independent
មានន័យថាទិន័នយមានលកាែាៈឯោជមគ្
:
ោះគ្បសិនមបើមយើងផ្លលស់បូរ្
លកាែាៈេួយចាំនួនរបស់ទិន័យ ន មយើងពតាំ ចាំាច់ មធើ វការផ្លលស់បូរទាំ ្ នក់ទាំនងកនូងែាំ មនើ រ ការគ្បតិបត្ិរបស់ Application Program មទបើយ ។
៤.២.៣រតែវ ិបត្ិ(Disadvantage )
មទោះបី វាមានរត ែសេបត្ិយ៉ាងណាក៏ មដ្ឋយក៏ វាមានរត ែវ ិបត្ិេួយចាំ នួនែូ ចខាងមគ្កា
េខ្ែរាៈ -
System
Complexity
:
មានន័យថាគ្បព័ នធគ្រប់ គ្រងទិ ន័យ ន ទាំេូលមានលកាែាៈសែតកសាែញ ខ្ែលតាំ រវូ មោយ Database
Administrator,Programers
និង
End
User
គ្តូវខ្តយល់មោយានចាស់នូវរចនសេព័នខា ធ ងកនតងរបស់វាតាេលាំដ្ឋប់ មែើ េបីង្ហយ រសួល ែាំមនើរការេូលដ្ឋានទិន័នយ ។ -
Lack of Structural Indepentdence : មានន័យថាវានែនរចនសេព័នឯ ធ ោជយមទបើយ មគ្
ោះ
Prepared by MEY BUNNY
Page 18
How to write Database
Teacher Hout Chanthou
គ្បសិនមបើ មានការផ្លលស់បូរនូ ្ វរចនសេព័នធធរបស់េូលដ្ឋានទិ ន័យ ន មនោះមយើងក៏ គ្តូវផ្លល ស់់បូរនូ ្ វរចនសេព័នរធ បស់េូលដ្ឋានទិន័ យ ន មនោះមយើងគ្តូវផ្លលស់បូរនូ ្ វរចនសេព័នធរប ស់ Application program ទាំអស់ខ្ែលមែើរមនើរការមលើេូលដ្ឋានទិន័យ ន មនោះខ្ែរ ។ ៤.៣.គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័យ ន តាេខ្បបសាំនតាំទាំនក់ទាំនងាៈ វាគ្តូវានបមងកើតមទបើងមលើកទី េួយកនតងឆ្នាំ១៩៧០
មដ្ឋយ
E.F
មហើយគ្តូវានវ ិវត្ិ បន្មៅមទៀតមដ្ឋយ Codd និងអនករសាវគ្ជាវមផេងមទៀត ។
.Codd
៤.៣.១.រចនសេព័នជា ធ េូលដ្ឋាន(Basic Structure ) : គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេខ្បបសាំនតាំទាំនក់ទាំនងរឺជាគ្ទងគ្ទយរាំរេ ត ូលដ្ឋានទិ នន័យ
ខ្ែលតាងមោយទិន័យ ន (DATA)
កនតងទាំ រង់ជាតាោង(Table)
ឬសាំនតាំទាំនក់ទាំនង(Relation)ខ្ែល គ្តូវានមរៀបចាំតាេជួរឈរមៅថា
Field
និង
ជួរមែកមៅថាRecord ឬ Relation ឬក៏ Tuple ឧទហរែ៍ែូចខាងមគ្កាេាៈ Student ID
Name
Gender
Birth of Date
Address
Phone
001
Chan Dara
M
14/Jan/83
#130Eo
(012) 832-338
002
Keo Maly
F
18/Feb/84
#120E3
003
Long
M
20/Jun/82
#125E2
(016) 893-328
....
.....
.....
.......
Veasna ...
....
រូបទី ២.៣ គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័យ ន តាេខ្បបសាំនតាំទាំនក់ទាំងន ៤.៣.២ រតែសេបត្ិ (Advantage) គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេខ្បបសាំនតាំទាំនក់ទាំនងមានរតែសេបត្ិេួយចាំនួនែូ ចខា ងមគ្កាេាៈ Structural
Independence
មានន័យថាវាមានរចនសេព័នធឯោជយមគ្ ងមធើ វការផ្លលស់បូររចនសេព ្ ័ នធរបស់
ោះគ្បសិនមបើមយើ Relational
មនោះវាេិនជោះឥទធិពលែល់ ែាំមនើរការទិន័យ ន របស់ Improved
:
Conceptual
Database DBMS មទបើយ។ Simplicity
:
មានន័យថាគ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេ ខ្បបសាំនតាំទាំនក់ទាំនងមានភាពសាមាញ្ា កតងការបង្ហ ន ា ញជាងគ្ទគ្ទយរាំ រនូ នេូល Prepared by MEY BUNNY
Page 19
How to write Database
Teacher Hout Chanthou
ដ្ឋានទិន័យយតាេខ្បបខ្េកធាងនិង គ្ទង់គ្ទយរាំរនូ នេូលដ្ឋានទិន័នយតាេខ្បបបណា ្ ញមៅមទៀត។ Easier Database Design, Implementation, Management and use : មានន័យថាវាមាន
ភាពង្ហយរសួលកនតងការបមងកើត
គ្រប់គ្រងនិងមគ្បើគ្ាស់ទិន័នយ មគ្
Database
គ្បត្ិបត្ិ
ោះវាមានសេិទធផលនន Data Independent
and Structural Independence ។ Ad hoc Query Capability : មានន័យថាវាមានសេតាភាពមពស់កតងការត ន ករកនិ ង ទញយកទិន័យ ន មៅតាេតាំ រវូ ការពី មគ្
ោះមៅកនតង Relation Database Software
ាន មគ្បើ SQL (Structure Query language )។SQL រឺជា 4GL(FourthGeneration
language)ខ្ែលអនតញ្ជាតមោយមយើងបមងកើតDatabase
បមងកើតរចនសេព័នទិន័នយ
និងង្ហយ
រសួលរតករក
បខ្នាេ
លតប
មហើយនិងខ្កខ្គ្បទិន័យ ន ានយ៉ា ងង្ហយរសួល។
៤.៣.៣រតែវ ីបត្ិ(Disadvantage)
មទោះបី វាមានរត ែសេបត្ិយ៉ាងណាក៏ មដ្ឋយក៏ វាមានរត ែវ ិបត្ិេួយចាំ នួនែូ ចខាងមគ្កា
េខ្ែរាៈ
Substantial Hardware and System Software overheads:មានន័យថា RDBMS
(Relational
database
System)ខ្ែលមគ្បើគ្ាស់លកាែាៈនន
Relational
Management Modell
មនោះរឺគ្តូវការចាំនយថវ ិការួ រសេខ្ែរមៅមលើ Hardware and System Software
មគ្
ោះវាគ្តូវការ
Hardwre
ទាំ មនើបខ្ែលមានសេតាភាពមពស់កតងការ ន ការែាំមែើរការ ។
Poor Design and Implementation is made easy: មានន័យថាកនតង Relational Software
សាំោប់
Personal
Computer
សពវនថៃរឺមានភាពសាមាញមពកខ្ែលមធើវមោ យអនកេិនោចសិកាចាស់លាស់ ក៏ចង់បមងកើត Queries and Report មដ្ឋយនែនការរិតរូរ។
មេមរៀនទី ៣: ភាសាមរៀបចាំទិនន ន ័យសាំោប់ Relational Database (Data Manipulation Language for Relational Database) Prepared by MEY BUNNY
Page 20
How to write Database
Teacher Hout Chanthou
មៅកនតងមេមរៀនមនោះ
មយើងនឹងសិកាអាំពីភាសាមរៀបចាំទិនន ន ័យ
ខ្ែលគ្តូវានមរមៅេយ៉ា ងមទៀតថា ភាសារតករកទិននន័យ (Query Language) មដ្ឋយមគ្បើភាសា ២ សាំខាន់រឺ Relational Algebra និង SQL (Structure Query Language) ។ ១. ទាំនក់ទាំនងពិជរែិត (Relational Algebra): មៅកនតង Relational
Algebraមនោះគ្បមាែវ ិធីននការរតករកទិននន័យគ្តូវពឹ ងខ្ផែកមៅមលើគ្បមាែវ ិធី ពិជរែិ តែូចខាងមគ្កាេាៈ
១.១ គ្បមាែវ ិធី គ្បជតាំ (Union): មរមាន R និង S រឺជាសាំែតាំទាំនក់ទាំនងខ្ែលមាន Attributes ែូចនន S កាំែត់សរមសរ R U S = {t / t
S
(t
t
មនោះមរាន R គ្បជតាំ
S)} ខ្ែល t រឺជាឈតត
(Tuple) តាងមោយេួយជួរមែក។ ឧទហរែ៍ាៈមរមាន R= { A,
B,
C }
S={ A,
B,
C }
a1
b1 c1
a1
b2
c1
a1
b2 c1
a1
b2
c2
a2
b2 c2
a2
b1
c2
a3
b1
ប្រជុំ សុំណុំដែលែូចគ្នាយកដែមួយែង
c2
ែូចមនោះមរានាៈ R U S= { A,
B,
C }
a1
b1
c1
a1
b2
c1
a2
b2
c2
a1
b2
c2
a2
b1
c2
a3
b1
c2
១.២ គ្បមាែវ ិធី គ្បសពវ (Intersection): មរមាន R និង S រឺជាសាំែតាំទាំនក់ទាំនង ខ្ែលមាន Attributes ែូចនន មនោះមរាន R គ្បសពវ S កាំែត់សរមសរ R
S= {t / t
S } ខ្ែល t រឺជាឈតត (Tuple)
តាំណាងមោយេួយជួរមែក។ ឧទហរែ៍ាៈ មរមាន Prepared by MEY BUNNY
Page 21
How to write Database
Teacher Hout Chanthou
R= { A,
B,
a1
C }
S={ A,
b1 c1
B, a1
C } b2
c1
a1
b2 c1
a1
b2
c2
a2
b2 c2
a2
b1
c2
a3
b1
c1
a2
ែូចមនោះឋមរានាៈ R
b2
c2
ប្រសព្វ យកដែលដែលែូចគ្នា
S={ A,
B,
a1
C }
b2 c1 a2
b2
c2
១.៣ គ្បមាែវ ិធីែក (Subtraction): មរមាន R និង S រឺជាសាំែតាំទាំនក់ទាំនងខ្ែលមាន Attributes ែូចននមនោះមរានផលែករវាងសាំែតាំទាំង ពីរែូចខាងមគ្កាេាៈ R–S={t/t
R
R
S–R={t/t
S
t
S}
យកសុំណុំទុំងព្ីែកគ្នា
R}
ឧទហរែ៍ាៈ មរមាន R={ A,
B,
C }
S={ A,
B,
C }
a1
b1 c1
a1
b2
c1
a1
b2 c1
a1
b2
c2
a2
b2 c2
a2
b1
c2
a3
b1
c1
a2
b2
c2
S – R = { A,
B,
ែូចមនោះមរានាៈ R – S = { A, a1 a3
B,
C }
b1 c1 b1 c1
a1 a2
b2 b1
C } c2 c2
១.៤ គ្បមាែវ ិធី ផលរតែមែកាត (Cartesian Product): មរមាន R = { A1, A2, A3, …, An } រឺជាសាំែតាំទាំនក់ទាំនងខ្ែលមាន n Attributes និង K1 Tuples មហើយ S = { B1, B2, B3, …, Bm } រឺជាសាំែតាំទាំនក់ទាំនងខ្ែលមាន m Attributes និង
K1
Tuples។
Prepared by MEY BUNNY
ផលរតែមែកាតរវាងសាំែតាំទាំងពីរតាងមដ្ឋយ
R
x
S
Page 22
How to write Database
Teacher Hout Chanthou
រឺជាសាំែតាំទាំនក់ទាំនង ខ្ែលមាន ( n + m ) Attributes កនតងទាំ រង់ R x S = { A1, A2, …, An, B1, B2, …, Bm } មហើយមាន ( K1*K2 ) Tuples។ ឧទហរែ៍ាៈ មរមាន R= { A,
B,
a1
C }
S={ D,
E}
d1
e1
b1 c1
a1
b2 c1
a2
b2 c2
d2
e1
ែូចមនោះមរានាៈ R x S = { A,
B,
C,
D,
E }
a1 b1 c1
d1
e1
a1 b1 c1
d2
e1
a1 b2 c1
d1
e1
a1 b2 c1
d2
e1
a2 b2 c2
d1
e1
a2 b2 c2
d2
e1
១.៥ គ្បមាែវ ិធី ចាំមនល ( Projection ):
រឺជាគ្បមាែវ ិធី សាំោប់ កាំែត់ យក Attributes េួយចាំនួនខ្ែលមយើងគ្តូវការ។ មរមាន
R
រឺជាសាំែតាំទាំនក់ទាំនងេួយ
មហើយ
X
រឺជាសាំែតាំរងនន
R
មនោះមរានគ្បមាែវ ិធីចាំមណាលមលើ X នន R មានទាំរង់ែូចខាងមគ្កាេាៈ IIx(R)= {t [X] / t ខ្ែល 1
I, j
R, ti [X]
(
X
R
)
tj [X] }
m ( m រឺជាចាំនួន Tuple ទាំងអស់របស់ R )
ឧទហរែ៍ាៈ មរមាន R ={ A,
B,
C,
D,
E }
a1 b1 c1
d1
e1
a1 b1 c1
d2
e1
a1 b2 c1
d1
e1
a1 b2 c1
d2
e1
a2 b2 c2
d1
e1
ចូរកាំែត់ IIA, B, E (R), IIB, D (R) ែូចមនោះមយើងានាៈ Prepared by MEY BUNNY
Page 23
How to write Database
Teacher Hout Chanthou
IIA, B, E (R) = { A,
B,
E
}
IIB, D (R) = {
B,
D }
a1 b1 e1
b1 d1
a1 b2 e1
b1 d2
a2 b2 e1
b2 d1 b2 d2
១.៦ គ្បមាែវ ិធី មគ្ជើសមរ ើស (Selection):
រឺជាគ្បមាែវ ីធី សាំោប់ មគ្ជើ សមរ ើសយកឈតត
មចញពីសាំែតាំទាំនក់ទាំនង R ចាំម
(Tuples)
ទាំងឡាយ
ោះឈតតណាខ្ែលមផទៀងផ្លទត់មៅនិងកមនាេលកាមែឌ F ។
មៅកនតងកមនាេលកាមែឌ F មានគ្បមាែវ ិធីមគ្បៀបមធៀបេួយចាំ នួនែូ ចជា =, ,
។ មហតតមនោះមយើងានរូបេន្ទូមៅននគ្បមាែវ ិធី មគ្ជើ សមរ ើសមានទាំ រង់ ែូចខាងមគ្កាេាៈ F (R)
={t
,
, ,
R / F(t) = True }
ឧទហរែ៍ាៈមរមាន R ={ A,
ចូរកាំែត់
B,
D,
E }
a1 b1 c1
d1
e1
a1 b1 c1
d2
e1
a1 b2 c1
d1
e1
a1 b2 c1
d2
e1
a2 b2 c2
d1
e1
a2 b2 c2
d2
e1
B=b1) (R),
(A=A1
C,
IIA, B, E (
(C=c2 v D=d1) (R))
ែូចមនោះមយើងានាៈ (A=A1
+IIA, B, E ( P=
B=b1)(R)={
A,
B,
C,
D,
E }
a1 b1 c1
d1
e1
a1 b1 c1
d2
e1
(C=c2 v D=d1) (R))
(C=c2 v D=d1)
Prepared by MEY BUNNY
(R) = { A,
B,
C,
D,
E }
a1 b1 c1
d1
e1
a1 b2 c1
d1
e1
a2 b2 c2
d1
e1 Page 24
How to write Database
Teacher Hout Chanthou a2 b2 c2
d2
e1
ែូចមនោះមយើងានាៈ IIA, B, E (p) = { A,
B,
C }
a1
b1
c1
a1
b2
c1
១.៧ គ្បមាែវ ិធីភាាប់ (Join):
a2
b2
c1
-Join (Theta-Join) រវាងពីរសាំែតាំទាំនក់ទាំនង R និង S គ្តង់ Ai
R និង Bj
S
គ្តូវានកាំែត់សរមសរែូចខាងមគ្កាេាៈ R
S = {t u / t
Ai
Bj
ខ្ែល
R, u
S, t [Ai]
u [Bj] }
រឺជាសញ្ជាមគ្បៀបមធៀបែូចជា =,
,
,
,
t រឺជាឈតត (Tuple) របស់ R មហើយ u រឺជាឈតត (Tuple) របស់ S t u មានន័យថា t តាំមរៀបតននជាេួយនឹង u ។ ឧទហរែ៍ មបើ t = { a1, a2, a3 } និង u = { b1, b2 } មនោះមយើងាន t u = { a1, a2, a3, b1, b2 } ។
រឺជាសញ្ជាមសែើ (=) មនោះគ្បមាែវ ិធី -join កាលយមៅជា Equi-join
ចាំណាាំាៈ មបើ ។ ឧទហរែ៍ាៈ មរមាន R = { A,
B,
c}
S = { D,
a1 10
c1
d1
2
a2
1
c2
d2
7
a3
4
c1
d3 12
a4
7
c2
ចូរកាំែត់ R B
S,
A, D(
(C=c1
E
E
7)(
R
B
E}
S)) E
ែូចមនោះមហើយានាៈ R
S = { A,
Prepared by MEY BUNNY
B,
C,
D,
E}
a1 10 c1
d1
2
a1 10 c1
d2
7 Page 25
How to write Database
Teacher Hout Chanthou a3
4
c1
d1
2
a4 17 c2
d1
2
a4 +
A, D(
(C=c1
E
7 7)(
c2
R
d2
7
C,
D,
S))
B E P=R
S = { A,
B
Q=
E
(C=c1
B,
E}
a1 10 c1
d3
12
a2
1
c2
d1
2
a2
1
c2
d2
7
a2
1
c2
d3
12
a3
4
c1
d2
7
a3
4
c1
d3
12
a4
7
c2
d3
12
E
7)(P)
ែូចមនោះមយើងានាៈ
={ A,
B,
C,
D,
E}
a1 10
c1
d3 12
a3
4
c1
d2
7
a3
4
c1
d3
12
A, D(Q)
= { A, a1
d3
a3
d2
a3
d3
D}
១.៨ គ្បមាែវ ិធី តភាាប់ធេែជាតិ (Natural Join): រឺជា Equi-Join រវាងពីរសាំែតាំទាំនក់ទាំនង R និង S កនតងមែាៈខ្ែលសាំែតាំទាំងពី រមាន
Attribute យ៉ា ងតិចេួយែូចនន ។ វាមានទាំរង់ែូចខាងមគ្កាេាៈ R
S = {t u / t
R, u
S, t [R.Ai] = u [S.Ai] }
ខ្ែល Ai រឺជា Attribute ែូចននរវាងសាំែតាំទាំងពីរ ឧទហរែ៍ទី១ៈាៈមរមាន R = { A,
B,
c}
S = { C,
a1 10
c1
c1
Prepared by MEY BUNNY
D} 2 Page 26
How to write Database
Teacher Hout Chanthou
a2
1
c2
c2
a3
4
c1
c3 12
ចូរកាំែត់ IIA, D (
((R.C=c1 v D
P=R
Q=
((R.C=c1
4)(P))
D
c4
3
B
4
3)
S = { A,
= { A,
7
B,
(R
S))
R.C,
D}
a1 10
c1
c1
2
a2
1
c2
c2
7
a3
4
c1
c1
2
S.C,
D}
B,
R.C,
a1 10
c1
c1
2
a3
c1
c1
2
4
S.C,
ែូចមនោះមយើងានាៈ IIA, D (Q) = { A,
D}
a1
2
a3
2
២.SQL ( Structured Query Language ) SQL រឺជាភាសាពិមសសេួយ ខ្ែលានមកើតមឡើងពីការអេិវឌឍន៍នន Relational Modell មហើយគ្តូវានកាលយមៅជាភាសាសាំោប់ Relational Database ។ កនតងឆ្នាំ ១៩៨៦ ខានតរាំរស ូ ាំោប់
SQL គ្តូវានកាំែត់មដ្ឋយវ ិទយសាានថានក់ជាតិរបស់សហរែាោមេរ ិច (American National Standard Institute=ANSI) មហើយគ្តូវានអនតេ័តមោយកាលយមៅជាខានតអន្រជាតិ មដ្ឋយ ISO (International Standard Organization) កនតងឆ្នាំ ១៩៨៧ ។
SQL គ្តូវានមរមគ្បើយ៉ាងទូលាំទូលាយ មធវើជា Query Language របស់ DBMS
កនតងមនលបាំែងេួយចាំនួនែូចខាងមគ្កាេាៈ -
បមងកើតនូវកិចចការគ្រប់គ្រងទិននន័យែូចជាការបខ្នាេ
ការខ្កខ្គ្ប
និងការលតបទិននន័យជាមែើេ ។ -
បមងកើតនូវការរតករកទិននន័យកនតងទាំ រង់ ធេែតា
ឬសែតរសាែញ
មែើមេបើបាំខ្លងទិននន័យមែើេមោយកាលយមៅជា ពត៌មានខ្ែលមរចង់ាន ។ មៅកនតងខ្ផនកមនោះ
មយើងនឹ ងសិកា
SQL
Statement
េួយចាំនួន
មែើមេបើមរៀបចាំចត់ខ្ចងទិននន័យ មានែូចជាាៈ Prepared by MEY BUNNY
Page 27
How to write Database -
Teacher Hout Chanthou
Select
Statement:
មាននទីសាំោប់រក ត រកទីននន័យ
និងទញយកទិននន័យេកបង្ហាញមចញពី Database េួយតាេតាំរវូ ការរបស់មយើង ។ - Insert Statement: មាននទីសាំោប់បខ្នាេ Record ថែីចូលមៅកនតងTable េួយ ។ -
Update
Statement:
មាននទីសាំោប់ខ្កតាំនលរបស់
Field
េួយ
ឬមគ្ចើន
ខ្ែលសាិតមៅកនតង Table េួយ ។
- Delete Statement: មាននទិសាំោប់លតប Record េួយ ឬមគ្ចើនមចញពី Table េួយ ។ ២.១ Select Statement: រឺជា Statement ខ្ែលមាននទីសាំោប់រក ត រក និងទញយកទិននន័យមចញពី Table េួយ ឬមគ្ចើន ខ្ែលសាិតកនតង Database េួយេកបង្ហាញតាេតាំរវូ ការរបស់មយើង ។ Select Statement មានគ្ទង់គ្ទយែូចខាងមគ្កាេាៈ
(សាំោប់បង្ហាញគ្រប់ Fields ទាំងអស់) TableName.*(សាំោប់បង្ហាញគ្រប់ Fields ទាំងអស់របស់ Table េួយ) SELECT Predicate
Fieldname1,Fieldname2,….,FieldnameN TablName.FieldName(ចាំម
ោះ Field ខ្ែលមានម្ែោះែូចនន)
FieldExpression AS NewFieldname Tablename/Queryname FROM JoinTableExpression WHERE GeneralCodition GROUP BY Fieldname1,…,FieldnameN HAVING GroupCindition ASC ORDER BY Fieldname DESC
-
SELECT: រឺជា Keyword ខ្ែលមានលកាែាៈែូចមៅនិងគ្បមាែវ ិធី ចាំមណាល សាំោប់កាំែត់យកម្ែោះរបស់ Fields ទាំងឡាយខ្ែលមយើងចង់បង្ហាញ ។
-
FROM: រឺជា Keyword ខ្ែលមាននទីសាំោប់កាំែត់ម្ែោះរបស់ Table/Query េួយ
ឬក៏កមនាេននការភាាប់រវាង
ខ្ែលបញ្ជ ា ក់អាំពីគ្បេពរបស់
Tables
Fields
ចប់ពី
២
មឡើងមៅ
ទាំងឡាយខ្ែលមយើងចង់បង្ហាញ
ឬមគ្បើ គ្ាស់មៅកនតងកមនាេលកាមែឌ ។ Prepared by MEY BUNNY
Page 28
How to write Database -
Teacher Hout Chanthou
WHERE:
រឺជា
Keyword
(General
ខ្ែលមាននទីសាំោប់កាំែត់លកាមែឌទូមៅ
Condition)
មែើមេបើរេ ត រកទីនន ន ័យ
មៅតាេលកាមែឌខ្ែលមយើងានកាំែត់ ។ -
GROUP BY: រឺជា Keyword ខ្ែលមាននទីសាំោប់គ្បេូ លផ្ាំតជាគ្កុេនូវតាំ នល ឬ Record
ែូចននរបស់
Field
ខ្ែលមយើងានកាំែត់
មែើមេបើោប់ចាំនួនសរតប
រែនផលបូកសរតប រកេធយេភារ រកតាំនលតូចបាំផតត ឬធាំបាំផតតនន
Field
មផេងមទៀត មៅតាេគ្កុេននតាំនល ឬ Record ែូចននទាំងមនោះ ។ -
HAVING:
រឺជា
Keyword
ខ្ែលមាននទីសាំោប់កាំែត់លកាមែឌ
មែើមេបើរក ត រកទីននន័យមៅតាេគ្កុេននតាំនល ឬ Record ែូចនន របស់ Field -
ខ្ែលមយើងានកាំែត់ មៅកនតង GROUP BY។ ODER
BY:
រឺជា
Keyword
ខ្ែលមាននទីសាំោប់តាំមរៀប
Record
មៅតាេតាំនលរបស់ Field ខ្ែលមយើងានកាំែត់តាេលាំដ្ឋប់មកើន (Ascending) គ្បសិនមបើមយើងេិនដ្ឋក់ េយ៉ា ងវ ិញមទៀត
ឬដ្ឋក់
មែើ មេបើតាំមរៀប
មៅតាេតាំនលរបស់
Field
ASC
មៅពីមគ្កាយម្ែោះរបស់
Record
តាេលាំដ្ឋប់ចតោះ
ខ្ែលមយើងានកាំែត់
Field
។
(Descending)
គ្បសិនមបើមយើងានដ្ឋក់
DESC មៅពីមគ្កាយម្ែោះរបស់ Field មនោះ ។ ជាទូមៅ Select Statement មាន ១២ ទាំរង់ែូចខាងមគ្កាេាៈ I.
Select ......From........;
II.
Select ......From........Where........;
III.
Select ......From........Where........Group By.........;
IV.
Select ......From........Where........Group By.........Having........;
V.
Select ......From........Where........Group By.........Having........Oder By.......;
VI.
Select ......From........Where........Group By.........Oder By.......;
VII.
Select ......From........Where........Oder By.......;
VIII.
Select ......From........Group By.......;
IX.
Select ......From........Group By.........Having.......;
X.
Select ......From........Group By.........Having........Oder By.......;
XI.
Select ......From........Group By.........Oder By.......;
XII.
Select ......From........Oder By.......;
Prepared by MEY BUNNY
Page 29
How to write Database
Teacher Hout Chanthou ចាំណាាំាៈ
គ្រប់ទាំរង់ទាំងអស់របស់
Select
គ្តូវានែាំមែើរការចប់ពីFROM
Statement មៅខ្ផនកខាងសា្ាំ
រហូតទល់ខ្តអស់ មទើបែាំមែើរការ SELECT ជាចតងមគ្កាយ ។ ២.១.១ Predicate: រឺជាអាំនោះអាំនងេួយចាំនួនខ្ែលមយើងានមគ្បើមែើមេបើកាំែត់យក
Record
មៅតាេ
Predicate នីេួយៗ ែូចខាងមគ្កាេាៈ -
ALL: មាននទីសាំោប់បង្ហាញគ្រប់ Record
ទាំងអស់ ។ Predicate មនោះ
មយើងពតាំចាំាច់ដ្ឋក់វាក៏ាន ។ -
Distinct:
មាននទីសាំោប់បង្ហាញខ្តេ្ងរត់ចាំម
ោះតាំនល
ឬ
Record
ណាខ្ែលែូចនន ។ -
Top n: មាននទីសាំោប់បង្ហាញពីមលើចតោះមគ្កាេចាំនួន n Record ។
-
Top n percent: មាននទីសាំោប់បង្ហាញ Record ពីមលើចតោះមគ្កាេចាំនួន n% នន Records ទាំងអស់ ។
ឧទហរែ៍ាៈ មរមាន Table ែូចខាងមគ្កាេាៈ Customer( CusID, CusName, Gender, Address,
Phone
)
001
Chan Dara
M
#120EO
(012) 893-332
002
Keo Maly
F
#15E1
(012) 832-319
003
Khim Thida
F
#128E2
(011) 882-343
004
Long Darith
M
#190EO
(016) 983-321
005
Yun Sopha
F
#230E1
(012) 102-202
គ្បសិនមបើមយើងសរមសរ
SQL
Statement
ែូចខាងមគ្កាេ
មនោះវានឹងបង្ហាញលទធផលមៅតាេ Statement នីេួយៗ: -
Select All Gender From Customer; ឬក៏ Select Gender From Customer; វានឹងបង្ហាញលទធផលាៈ (Gender) M F F M
Prepared by MEY BUNNY
Page 30
How to write Database
Teacher Hout Chanthou
F -
Select Distinct Gender From Customer; វានឹងបង្ហាញលទធផលាៈ (Gender) F M
-
Select Top 2 * From Customer; វានឹងបង្ហាញលទធផលាៈ ( CusID, CusName, Gender, Address,
-
Phone
)
001
Chan Dara
M
#120EO
(012) 893-332
002
Keo Maly
F
#15E1
(012) 832-319
Select Top 20 percent * From Customer; ( CusID, CusName, Gender, Address, 001
Chan Dara
M
Phone
#120EO
)
(012) 893-332
២.១.២ កមនាេននការភាាប់រវាង Tables (Join Table Expression): កមនាេននការភាាប់រវាងTable មានែូចខាងមគ្កាេាៈ ក- ការភាាប់រវាង២ Tables: A Table1 T1
Table2 T2
+ តាេរមបៀបទី១: From Table1 T1 Inner Join Table2 T2 On T1.A=T2.A + តាេរមបៀបទី ២:
From Table1 T1, Table2 T2 Where T1.A=T2.A And General Condition គ្បសិនមបើមាន Prepared by MEY BUNNY
Page 31
How to write Database
Teacher Hout Chanthou
ម- ការភាាប់រវាង៣ Tables: A
B
Table1 T1
(Table2 2
T2
Table3) 1
T3
+ តាេរមបៀបទី១: From Table1 T1 Inner Join (Table2 T2 Inner Join Table3 T3 On T2.B=T3.B) On T1.A=T2.A + តាេរមបៀបទី ២:
From Table1 T1, Table2 T2, Table3 T3 Where T1.A=T2.A And T2.B=T3.B And General Condition គ្បសិនមបើមាន រី- ការភាាប់រវាង៤ Tables: A
C
Table1 T1
(Table2 3
T2
Table4) 1
T4
B 2 (Table3 T3 + តាេរមបៀបទី១: From Table1 T1 Inner Join (Table3 T3 Inner Join (Table2 T2 Inner Join Table4 T4 On T2.C=T4.C) On T2.A=T2.B=T3.B) On T1.A=T2.A + តាេរមបៀបទី២: From Table1 T1, Table2 T2, Table3 T3, Table4 T4 Where T1.A=T2.A And T2.B=T3.B And T2.C=T4.C And General Condition គ្បសិនមបើមាន Prepared by MEY BUNNY
Page 32
How to write Database
Teacher Hout Chanthou
២.១.៣ កមនាេលកាមែឌទូមៅ (General Condition): =,
មៅកនតងកមនាេលកាមែឌ មយើងោចមគ្បើ គ្បមាែវ ិធី េួយចាំ នួនែូ ចជាាៈ
,
=,
,
=,
, Between…And…., Like, In, Not In, Is Null និង Is Not Null ជាមែើេ ។ គ្បសិនមបើ Field មានគ្បមេទទីននន័យជា Text មនោះមយើងគ្តូវដ្ឋក់ Single Quote (‘)
មៅសងខាងតាំនលរបស់វា
មហើយមបើ
Field
មានគ្បមេទទិនន ន ័យជា
Date/Time
មនោះមយើងគ្តូវដ្ឋក់ Address Sign (#) មៅសងខាងតាំនលរបស់វា ។ ឧទហរែ៍ាៈ មរមាន Tables េួយចាំនួនែូចខាងមគ្កាេាៈ TbStudent (StuID, Name, Gender, BirthDate, Address, Phone, ClassID) Number Text Text
Date/Time
Text
Text
Number
TbClass (ClassID, ClassName, Year, Department) Number
Text
Number
Text
TbSubject (SubjectID, SubjectName) Number
Text
TbScore (StuID, SubjectID, Semester, Score) Number Number តាេរយាៈ
Tables
Number Number
ទាំងអស់ខាងមលើ
ចូរសរមសរ
SQL
(Select
Statement)
តាេមនលបាំែងែូចខាងមគ្កាេាៈ ក.
បង្ហាញ
StuID,
Name,
Gender
នននិសិេតទាំងឡាយខ្ែលមានម្ែោះមផ្ើេមដ្ឋយអកេរ C ។ Select StuID, Name, Gender From TbStudent Where Name Like ‘C*’; ម.
បង្ហាញ
StuID,
Name,
Gender,
BirthDate
នននិសិេតទាំងឡាយ
ខ្ែលមាននថៃខ្មឆ្នាំកាំមែើតមៅចមនលោះនថៃទី 5/Jan/1985 ែល់ 10/Feb/1987 ។ Select StuID, Name, Gender, BirthDate From TbStudent Where BirthDate Between #5/Jan/1985# And #10/Feb/1987#; រ. បង្ហាញពត៌មានរបស់និសិេតទាំងឡាយខ្ែលនែនមលមទូរស័ពទ។ Select * From TbStudent Where Phone Is Null; . បង្ហាញពត៌មានរបស់និសិេតទាំងឡាយខ្ែលមកើតកនតងឆ្នាំ 1985 ឬកនតងឆ្នាំ 1987 ។
Select * From TbStudent Where Year (BirthDate) In(1985, 1987); ង.បង្ហាញ
StuID,
Name,
ClassName,
នននិសិេតទាំងឡាយខ្ែលមរៀនមៅកនតងថានក់ M1 ននឆ្នាំទី២។
Prepared by MEY BUNNY
Year Page 33
How to write Database TbStudent
Teacher Hout Chanthou ClassID
TbClass
S
C
រមបៀបទី១: Select * From TbStudent S Inner Join TbClass C On S.ClassID=C.ClassID Where ClassName=’M1’ And Year=2; រមបៀបទី២: Select * From TbStudent S, TbClass C Where S.ClassID = C.ClassID And ClassName = ‘M1’And Yaer=2; ច. បង្ហាញ StuID, Name, ClassName, Year , Semester, Subject, Score
នននិសិេតទាំងឡាយខ្ែលមរៀនមៅកនតងឆ្នាំទី ២ ធាលក់ េតមវ ិជាាDBS ឬ MIC កនតងឆមាសទី ១ ។ ClassID
TbClass
ClassID
(TbStudent
C
(TBScore
S
SubjectID
TbSubject))
R
B
រមបៀបទី១: Select S.StuID, Name, ClassName, Year, Semester, Subject, Score From TbClass C Inner Join (TbStudent S Inner Join (TbScore R Inner Join TbSubject B On R.SubjectID=B.SubjectID) On S.StuID=R.StuID) On S.ClassID =C.ClassID Where Year = 2 And Subject In ( ‘DBS’, ‘MIC’ ) And Score =80 Order by Sum(Score) DESC; ២.១.៥ Sub-query: រឺជា Select Statement ខ្ែលគ្តូវានមគ្បើកតង ន Select Statement េួយមផេងមទៀត
ឬក៏កតង ន
Insert,
Update
និង
មៅមពលខ្ែលមរចង់មធវើសកេែភាពកនតង
Delete Table
Statement
។
មរមគ្បើ
Sub-query
េួយខ្ែលលកាមែឌរបស់វាទក់ទងមៅនឹង
Field នន Table េួយ ឬមគ្ចើនមផេងមទៀត ។ ចាំណាាំាៈ
មៅមពលខ្ែលមយើងមគ្បើ
Sub-query
មនោះមយើងគ្តូវចប់មផ្ើេមចញពី
Table
ណាខ្ែលមយើងចង់មធវើសកេែភាព ។ ឧទហរែ៍ទី១: មរមានតាោងែូចខាងមគ្កាេាៈ Product ( PID Prepared by MEY BUNNY
PName, StockQty ) Page 37
How to write Database
Teacher Hout Chanthou
01
A
200
02
B
100
03
C
100
04
D
150
05
E
200
06
F
100
07
G
200
SaleDetail (
SaleID, PID, SaleQty,
UnitPrice, Discount )
001
01
20
$5.00
0.00%
001
02
10
$10.00
0.00%
002
01
10
$5.00
0.00%
002
02
10
$10.00
0.00%
002
04
20
$5.00
0.00%
003
01
10
$5.00
0.00%
003
02
10
$10.00
0.00%
ចូរសរមសរ
SQL
Statement
មដ្ឋយមគ្បើ
Sub-query
មែើមេបើបង្ហាញនូវផលិតផលទាំងឡាយខ្ែលមរពតាំ ានលក់េ្ងទល់ខ្តមសាោះ ។ Select * From Product Where PID Not In (Select PID From Sale); Sub-query មនោះលទធផលនឹងបង្ហាញែូចខាងមគ្កាេាៈ ( PID,
PName,
StockQty )
03
C
100
05
E
200
06
F
100
07
G
200
ឧទហរែ៍ទី២: មរមានតាោងែូចខាងមគ្កាេាៈ TbStudent ( StuID, Prepared by MEY BUNNY
Name, Gender, BirthDate, Address, Phone,
ClassID) Page 38
How to write Database
Teacher Hout Chanthou
Number
Text
Text
Date/Time
Text
Text
Number
TbClass ( ClassID, ClassName, Year, Department ) Number
Text
TbSubject ( SubjectD,
Number តាេរយាៈ
Text SubjectID,
Number
Tables
Text
SubjectName)
Number TbScore ( StuID,
Number
Smester, Score) Number Number
ទាំងអស់ខាងមលើ
ចូរសរមសរ
SQL
(Select
Statement)
តាេមនលបាំែងែូចខាងមគ្កាេាៈ ក. បង្ហាញពត៌មានរបស់និសិេតទាំងឡាយ ខ្ែលមរៀនមៅឆ្នាំទី២ ។ TbStudent
ClassID
TbClass
Select * From TbStudent Where ClassID In (Select ClassID From TbClass Where Year = 2); ម.
បង្ហាញពត៌មានរបស់និសិេតទាំងឡាយ
ខ្ែលគ្បលងធាលក់េតមវ ិជាា Linux ClassID
(TbClass)
TbStudent StuID
ខ្ែលមរៀនមៅឆ្នាំទី៤
(TbScore
SubjectID
(TbSubject))
Select * From TbStudent Where ClassID In (Select ClassID From TbClass Where Year = 4) And StuID In (Select Distinct StuID From TbScore Where Score