Data Loading...

Database Management System I Flipbook PDF

DBMS


139 Views
115 Downloads
FLIP PDF 733.24KB

DOWNLOAD FLIP

REPORT DMCA

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