Skip to content

Latest commit

 

History

History
190 lines (128 loc) · 22 KB

File metadata and controls

190 lines (128 loc) · 22 KB

ការធ្វើការ​ជាមួយ​ទិន្នន័យ៖ មូលដ្ឋាន​ទិន្នន័យ​ទំនាក់ទំនង

 Sketchnote by (@sketchthedocs)
ការធ្វើការ​ជាមួយ​ទិន្នន័យ៖ មូលដ្ឋាន​ទិន្នន័យ​ទំនាក់ទំនង - Sketchnote by @nitya

ការសម្រួលភាព អ្នកប្រហែលជាបានប្រើប្រាស់សន្លឹកគណនា (spreadsheet) នៅអតីតកាលដើម្បីផ្ទុកព័ត៌មាន។ អ្នកមានជួរនិងកូឡាំ, ដែលជួរនោះមានព័ត៌មាន (ឬទិន្នន័យ), ហើយកូឡាំពិពណ៌នាព័ត៌មាន (ដែលម្តងម្កាលហៅថាmetadata)។ មូលដ្ឋានទិន្នន័យទំនាក់ទំនងត្រូវបានបង្កើតឡើងលើគ្រឹះស្នូលនេះនៃកូឡាំនិងជួរនៅក្នុងតារាង, អនុញ្ញាតឱ្យអ្នកមានព័ត៌មានចែកចាយក្នុងតារាងច្រើន។ នេះអនុញ្ញាតឱ្យអ្នកធ្វើការជាមួយទិន្នន័យផ្ទាល់ខ្លួនស្មុគស្មាញជាងនេះ, ជៀសវាងការបញ្ចេញចម្លង, ហើយមានភាពអាចបត់បែនក្នុងវិធីដែលអ្នកស្វែងរកទិន្នន័យ។ យើងមកស្វែងយល់ពីគំនិតនៃមូលដ្ឋានទិន្នន័យទំនាក់ទំនង។

វិធីគិតគ្រប់គ្រងចាប់ផ្តើមពីតារាង

មូលដ្ឋានទិន្នន័យទំនាក់ទំនងមាននៅចម្បងតារាង។ ដូចជា spreadsheet, តារាងគឺជាការប្រមូលផ្តុំកូឡាំនិងជួរ។ ជួរមានទិន្នន័យឬព័ត៌មានដែលយើងចង់ធ្វើការ ជាឧទាហរណ៍ឈ្មោះទីក្រុងឬបរិមាណភ្លៀងធ្លាក់។ កូឡាំពិពណ៌នាទិន្នន័យដែលពួកគេផ្ទុក។

យើងចាប់ផ្តើមស្វែងយល់ដោយបង្កើតតារាងដើម្បីផ្ទុកព័ត៌មានអំពីទីក្រុង។ យើងអាចចាប់ផ្តើមជាមួយឈ្មោះនិងប្រទេសរបស់ពួកវា។ អ្នកអាចផ្ទុកវានៅក្នុងតារាងដូចខាងក្រោម៖

ទីក្រុង ប្រទេស
តូគ្យូ ជប៉ុន
អាតឡានតា សហរដ្ឋអាមេរិក
អូខ្លិន នូវហ្សេឡង់

សម្គាល់ថា ឈ្មោះកូឡាំ ទីក្រុង, ប្រទេស និង ប្រជាជន ពិពណ៌នាទិន្នន័យដែលបានផ្ទុក ហើយជួរមួយៗមានព័ត៌មានអំពីទីក្រុងមួយ។

មិនគ្រប់គ្រាន់នៃវិធីសាស្រ្តតារាងតែមួយ

ប្រហែលជាតារាងខាងលើមើលទៅស្គាល់ស្រដៀងគ្នា ។ យើងចាប់ផ្តើមបន្ថែមទិន្នន័យបន្ថែមទៅទៅមូលដ្ឋានទិន្នន័យកំពុង៖ ភ្លៀងប្រចាំឆ្នាំ (ជា មីល្លីម៉ែត្រ)។ យើងនឹងផ្តោតទៅលើឆ្នាំ 2018, 2019 និង 2020។ ប្រសិនបើយើងបន្ថែមវាសម្រាប់តូគ្យូ វាអាចរួមទាំងដូចខាងក្រោម៖

ទីក្រុង ប្រទេស ឆ្នាំ បរិមាណ
តូគ្យូ ជប៉ុន 2020 1690
តូគ្យូ ជប៉ុន 2019 1874
តូគ្យូ ជប៉ុន 2018 1445

តើអ្នកចាប់អារម្មណ៍អ្វីខ្លះពីតារាងរបស់យើង? អ្នកប្រហែលជាមើលឃើញថាយើងកំពុងចម្លងឈ្មោះនិងប្រទេសរបស់ទីក្រុងម្ដងម្កាល។ ថ្លៃឈ្នួលផ្ទុកអាចបង្កេីតការចំណាយខ្លាំង ហើយវាមិនចាំបាច់ត្រូវមានចម្លងមួយចំនួនទេ។ ជាពិសេស តូគ្យូមានឈ្មោះតែម្ដងដែលយើងចាប់អារម្មណ៍។

ល្អហើយ ក្រោយមកយើងសាកល្បងរឿងផ្សេងទៀត។ យើងបន្ថែមកូឡាំថ្មីសម្រាប់គ្រប់ឆ្នាំៗ៖

ទីក្រុង ប្រទេស 2018 2019 2020
តូគ្យូ ជប៉ុន 1445 1874 1690
អាតឡានតា សហរដ្ឋអាមេរិក 1779 1111 1683
អូខ្លិន នូវហ្សេឡង់ 1386 942 1176

បើទោះបីជាវាមិនបានចម្លងជួរផ្ទាល់, វាក៏បញ្ចូលបញ្ហាផ្សេងទៀតផងដែរ។ យើងត្រូវតែផ្លាស់ប្តូររចនាសម្ព័ន្ធតារាងរបស់យើងគ្រប់ពេលវេលាមានឆ្នាំថ្មីមួយ។ ហើយនៅពេលទិន្នន័យរីកចម្រើន ការមានឆ្នាំជាកូឡាំនឹងធ្វើឱ្យការទាញយកនិងគណនាតម្លៃកាន់តែពិបាក។

នេះហើយជាទីតាំងដែលយើងត្រូវតារាងច្រើននិងទំនាក់ទំនងរវាងពួកវា។ ដោយបំបែកទិន្នន័យយើងអាចជៀសវាងការបញ្ចេញចម្លង ហើយមានភាពបត់បែនក្នុងរបៀបធ្វើការជាមួយទិន្នន័យរបស់យើង។

គំនិតនៃទំនាក់ទំនង

មកវិញទៅទិន្នន័យរបស់យើង ហើយសម្រេចចិត្តថាអ្នកចង់បំបែកវាយ៉ាងដូចម្តេច។ យើងដឹងថាយើងចង់ផ្ទុកឈ្មោះនិងប្រទេសសម្រាប់ទីក្រុងរបស់យើង, ដូច្នេះវានឹងដំណើរការល្អនៅក្នុងតារាងមួយ។

ទីក្រុង ប្រទេស
តូគ្យូ ជប៉ុន
អាតឡានតា សហរដ្ឋអាមេរិក
អូខ្លិន នូវហ្សេឡង់

មុននឹងបង្កើតតារាងបន្ទាប់, យើងត្រូវសម្រេចយ៉ាងដូចម្តេចក្នុងការរកឃើញទំនាក់ទំនងជាមួយពួកវា។ យើងត្រូវការសម្ភារណាមួយហៅថា អត្តសញ្ញាណ, ID ឬ (ក្នុងពាក្យបច្ចេកទេសរបស់មូលដ្ឋានទិន្នន័យ) គន្លឹះដើម(primary key)។ គន្លឹះដើមគឺតម្លៃមួយដែលប្រើសម្រាប់កំណត់ជួរតែមួយពិសេសក្នុងតារាងមួយ។ ខណៈដែលវាអាចផ្អែកលើតម្លៃក្នុងខ្លួនវា (យើងអាចប្រើឈ្មោះទីក្រុងបានឧទាហរណ៍), វាគួរតែជាលេខឬក៏សម្គាល់ផ្សេងទៀតជាច្រើនតែម្ដង។ យើងមិនចង់ឲ្យ id ផ្លាស់ប្តូរអ្វីៗទៀតព្រោះវានឹងបំបែកទំនាក់ទំនង។ អ្នកនឹងងាយស្រួលឃើញក្នុងករណីភាគច្រើនគន្លឹះដើមឬid ទៀងទាត់ជាលេខបង្កើតដោយស្វ័យប្រវត្តិ។

✅ គន្លឹះដើម តែងតែត្រូវបានចាត់ទុកថា ជា PK

ទីក្រុង

city_id ទីក្រុង ប្រទេស
1 តូគ្យូ ជប៉ុន
2 អាតឡានតា សហរដ្ឋអាមេរិក
3 អូខ្លិន នូវហ្សេឡង់

✅ អ្នកនឹងសម្គាល់ថាយើងប្រើពាក្យ "id" និង "primary key" ជាប្រភេទប្រេះប្រា ប្រជុំក្នុងមេរៀននេះ។ គំនិតនៅទីនេះយកទៅប្រើបានជាមួយ DataFrames ដែលអ្នកនឹងស្វែងយល់បន្តិចក្រោយ។ DataFrames មិនប្រើពាក្យ "primary key" ផ្ទាល់ទេ ប៉ុន្តែអ្នកនឹងមើលឃើញម៉េចវាប្រព្រឹត្តទៅដូចគ្នា។

ជាមួយតារាងទីក្រុង, យើងចាប់ផ្តើមផ្ទុកភ្លៀង។ បើវាមានការចម្លងព័ត៌មានពេញលេញអំពីទីក្រុង ត្រូវប្រើ id។ យើងត្រូវប្រាកដថាតារាងថ្មីក៏មានកូឡាំ id ផងដែរ ពីព្រោះតារាងទាំងអស់គួរតែមាន id ឬ primary key។

ភ្លៀងធ្លាក់

rainfall_id city_id ឆ្នាំ បរិមាណ
1 1 2018 1445
2 1 2019 1874
3 1 2020 1690
4 2 2018 1779
5 2 2019 1111
6 2 2020 1683
7 3 2018 1386
8 3 2019 942
9 3 2020 1176

សម្គាល់កូឡាំ city_id ក្នុងតារាងថ្មី rainfall។ កូឡាំនេះមានតម្លៃដែលយោងទៅរក ID ក្នុងតារាង cities។ ក្នុងពាក្យបច្ចេកវិទ្យាទិន្នន័យទំនាក់ទំនង វាហៅថា foreign key; វាជាគន្លឹះដើមពីតារាងផ្សេងមួយ។ អ្នកអាចគិតថាវាជាការយោង ឬគោលបំណងមួយ។ city_id 1 យោងទៅ Tokyo។

Note

foreign key តែងតែត្រូវបានចាត់ទុកថា ជា FK

ការទាញយកទិន្នន័យ

ដោយមានទិន្នន័យបំបែកជា ២ តារាង អ្នកអាចចាប់អារម្មណ៍ថានឹងទាញយកវាយ៉ាងដូចម្តេច។ ប្រសិនបើយើងប្រើមូលដ្ឋានទិន្នន័យទំនាក់ទំនងដូចជា MySQL, SQL Server ឬ Oracle, យើងអាចប្រើភាសាមួយហៅថា Structured Query Language ឬ SQL។ SQL (មួយចំនួនហៅថា sequel) គឺជាភាសាមាត្រយោងសម្រាប់ទាញយកនិងកែប្រែទិន្នន័យក្នុងមូលដ្ឋានទិន្នន័យទំនាក់ទំនង។

មកទាញយកទិន្នន័យ អ្នកប្រើការបញ្ជា SELECT។ ដើមគេ, អ្នក ជ្រើសរើស កូឡាំដែលអ្នកចង់មើល ពី តារាងដែលវាផ្ទុកជុំវិញ។ ប្រសិនបើអ្នកចង់បង្ហាញតែឈ្មោះទីក្រុង អ្នកអាចប្រើដូចខាងក្រោម៖

SELECT city
FROM cities;

-- Output:
-- Tokyo
-- Atlanta
-- Auckland

SELECT គឺជាកន្លែងអ្នករាប់បញ្ជីកូឡាំ ហើយ FROM គឺជាកន្លែងបញ្ជីតារាង។

Note

សំណុំបែបបទ SQL មិនប្រកាន់ខណ្ឌពុម្ពអក្សរទេ មានន័យថា select និង SELECT មានន័យដូចគ្នា។ ទោះយ៉ាងណា, ផ្អែកទៅលើប្រភេទមូលដ្ឋានទិន្នន័យ អ្នកប្រហែលជាអាចមានករណីកូឡាំនិងតារាងមានករណីពុម្ពអក្សរកំណត់។ ដូច្នេះ ជាការអនុវត្តល្អបំផុត ក្នុងការគ្រប់អ្នកវាយកូដគួរតែប្រើរបៀបរៀបចំធំលើពាក្យគន្លឹះSQL ។

សំណួរខាងលើនឹងបង្ហាញទីក្រុងទាំងអស់។ ដូច្នេះគិតថា យើងត្រូវបង្ហាញតែទីក្រុងដែលនៅក្នុង New Zealand។ យើងត្រូវការសំរាប់តម្រងមួយ។ ពាក្យ SQL សម្រាប់នេះគឺ WHERE, ឬ "នៅកន្លែងដែលអ្វីមួយពិត។"

SELECT city
FROM cities
WHERE country = 'New Zealand';

-- Output:
-- Auckland

ការរួមបញ្ចូលទិន្នន័យ

រហូតមកដល់ពេលនេះយើងបានទាញយកទិន្នន័យ​ពីតារាងតែមួយ។ ឥឡូវនេះយើងចង់ដង្ហើយទិន្នន័យពីទាំងពីរ cities និង rainfall។ វាត្រូវបានអនុវត្តដោយ joining ពួកវារួមគ្នា។ អ្នកមានការបង្កើតចំណុចភ្ជាប់រវាងតារាងពីរនៅកន្លែងណាមួយ ហើយភ្ជាប់តម្លៃពីកូឡាំមួយពីតារាងមួយទៅកូឡាំពីតារាងមួយទៀត។

នៅក្នុងឧទាហរណ៍លំហូរយើងយួរយកកូឡាំ city_id នៅក្នុង rainfall ជាមួយកូឡាំ city_id នៅក្នុង cities។ វានឹងភ្ជាប់តម្លៃភ្លៀងជាមួយទីក្រុងពាក់ព័ន្ធរបស់វា។ ប្រភេទ join ដែលយើងនឹងធ្វើហៅថា inner join, មានន័យថាបើជួរណាមួយមិនប៉ះគ្នានឹងអ្វីមួយពីតារាងផ្សេង វានឹងមិនបង្ហាញឡើងទេ។ ក្នុងរឿងរបស់យើង តើមួយៗទីក្រុងមានភ្លៀងទេ, ដូច្នេះអ្វីៗគ្រប់យ៉ាងនឹងបង្ហាញ។

យើងសង់សំណូមពរទាញយកភ្លៀងរបស់ឆ្នាំ 2019 សម្រាប់ទីក្រុងទាំងអស់។

យើងនឹងធ្វើវាជាជំហានៗ។ ជំហានដំបូងគឺបញ្ចូលទិន្នន័យរួមគ្នា ដោយបង្ហាញកូឡាំសម្រាប់ចំណុចភ្ជាប់ - city_id ដូចដែលបានបង្ហាញខាងលើ។

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id

យើងបានពណ៌បង្ហាញពីកូឡាំទាំងពីរដែលយើងចង់បាន ហើយត្រូវចូលរួមតារាងដោយ city_id។ ឥឡូវនេះអាចបន្ថែមប្រយោគ WHERE ដើម្បីតម្រងអំពីឆ្នាំ 2019 ប៉ុណ្ណោះ។

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id
WHERE rainfall.year = 2019

-- Output

-- city     | amount
-- -------- | ------
-- Tokyo    | 1874
-- Atlanta  | 1111
-- Auckland |  942

សរុបមេរៀន

មូលដ្ឋានទិន្នន័យទំនាក់ទំនងផ្អែកលើការបំបែកព័ត៌មានជាច្រើនតារាងដែលបន្ទាប់មកត្រូវបានយកមកវិញសម្រាប់បង្ហាញនិងវិភាគ។ វាពិចារណាជាកម្រិតខ្ពស់នៃភាពបត់បែនដើម្បីគណនានិងគ្រប់គ្រងទិន្នន័យផ្សេងទៀត។ អ្នកបានឃើញមេរៀនគ្រឹះនៃមូលដ្ឋានទិន្នន័យទំនាក់ទំនង ហើយបានកិច្ចការបញ្ចូលគ្នារវាងតារាងពីរ។

🚀 챌린지

មានមូលដ្ឋានទិន្នន័យទំនាក់ទំនងជាច្រើនដែលមានស្រាប់នៅលើអ៊ីនធឺណិត។ អ្នកអាចស្វែងយល់ទិន្នន័យដោយប្រើជំនាញដែលបានរៀនខាងលើ។

ការត្រួតពិនិត្យបន្ទាប់ពីមេរៀន

ការត្រួតពិនិត្យ និងការសិក្សាឯកឯក

មានធនធានជាច្រើនក្នុង Microsoft Learn សម្រាប់អ្នកដើម្បីបន្តស្វែងយល់អំពី SQL និងគំនិតមូលដ្ឋានទិន្នន័យទំនាក់ទំនង

កិច្ចការ

បង្ហាញទិន្នន័យអាកាសយានដ្ឋាន


ការបដិសេធ៖ ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI Co-op Translator។ ខណៈពេលដែលយើងខំប្រឹងប្រសិទ្ធភាពក្នុងការបន្សល់ភាពត្រឹមត្រូវ សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវមួយចំនួន។ ឯកសារដើមនៅក្នុងភាសាតំណាងរបស់វាគួរត្រូវបានចាត់ទុកជាធនធានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញម្នាក់គឺត្រូវបានណែនាំ។ យើងមិនមានការទទួលខុសត្រូវចំពោះការយល់បញ្ចូលខុស ឬការបកប្រែមិនត្រឹមត្រូវណាមួយដែលបង្កើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។