![]() |
|---|
| ការដំណើរការជាមួយទិន្នន័យ NoSQL - Sketchnote ដោយ @nitya |
ទិន្នន័យមិនទាន់មានដែនកំណត់នៅក្នុងមូលដ្ឋានទិន្នន័យទាក់ទងគ្នា។មេរៀននេះផ្ដោតលើទិន្នន័យមិនទាក់ទងគ្នា និងនឹងគ្របដណ្ដប់គោលការណ៍មូលដ្ឋាននៃសៀវភៅបណ្ណាល័យ និង NoSQL។
សៀវភៅបណ្ណាល័យគឺជាវិធីដែលពេញនិយមសម្រាប់រក្សាទុកនិងស្វែងយល់ទិន្នន័យ ពីព្រោះវាត្រូវការការងារតិចក្នុងការតាំងពិចារណា និងចាប់ផ្តើម។ នៅក្នុងមេរៀននេះអ្នកនឹងរៀនពីធាតុមូលដ្ឋាននៃសៀវភៅបណ្ណាល័យ បន្ថែមបែបបទនិងមុខងារ។ ឧទាហរណ៍នឹងត្រូវបង្ហាញជាមួយ Microsoft Excel ប៉ុន្តែក្នុងបរិបទភាគ១ភាគច្រើននៃផ្នែក និងប្រធានបទនឹងមានឈ្មោះនិងដំណើរការដូចគ្នាទៅនឹងកម្មវិធីសៀវភៅបណ្ណាល័យផ្សេងទៀត។
សៀវភៅបណ្ណាល័យគឺជាឯកសារ ហើយនឹងអាចចូលដំណើរការបាននៅក្នុងប្រព័ន្ធឯកសាររបស់កុំព្យូទ័រ ឧបករណ៍ ឬប្រព័ន្ធឯកសារលើពពក។ កម្មវិធីខ្លួនវាអាចជាកម្មវិធីផ្ទាល់លើកម្មវិប័ន្ធ Browser ឬកម្មវិធីដែលត្រូវតែដំឡើងនៅលើកុំព្យូទ័រ ឬទាញយកជាកម្មវិធី។ ក្នុង Excel ឯកសារទាំងនេះត្រូវបានកំណត់ជាថ្មីថា workbooks ហើយពាក្យបញ្ញត្តិនេះនឹងត្រូវប្រើនៅក្នុងមេរៀននេះទៅមុខ។
កម្មវិធី一本រួមបញ្ចូលមានមួយ ឬច្រើន worksheets, ដែលក្នុងនោះ worksheet ទាំងអស់ត្រូវបានសម្គាល់ដោយផ្ទាំងស្លាបព្រិល។ ក្រៅពីនេះក្នុង worksheet មានរាងការេហៅថា cells ដែលផ្ទុកទិន្នន័យពិតប្រាកដ។ មួយ cell គឺជាចំណុចប្រទាក់រវាងជួរ និងជួរឈរ ដែលជួរឈរត្រូវបានសម្គាល់ដោយតួអក្សរអក្សរ និងជួរត្រូវបានសម្គាល់ដោយលេខ។ សៀវភៅបណ្ណាល័យខ្លះនឹងមានក្បាលនៅជួរដំបូងប៉ុន្មានជួរដើម្បីពិពណ៌នាទិន្នន័យនៅក្នុង cell។
ដោយឧទាហរណ៍ Excel workbook នេះ យើងនឹងប្រើឧទាហរណ៍មួយផ្តោតលើ Microsoft Templates សម្រាប់គ្រប់គ្រងសារពើភ័ណ្ឌ ដើម្បីដើរតួបន្ថែមផ្នែកផ្សេងទៀតនៃសៀវភៅបណ្ណាល័យ។
ឯកសារសៀវភៅបណ្ណាល័យដែលមានឈ្មោះ "InventoryExample" គឺជាសៀវភៅបណ្ណាល័យបានបំលែងរួចពីទ្រព្យសម្បត្តិនៅក្នុងសារពើភ័ណ្ឌ ដែលមាន worksheets បីឈ្មោះ "Inventory List", "Inventory Pick List" និង "Bin Lookup"។ ជួរទី 4 នៃ worksheet Inventory List គឺជាក្បាល ដែលពិពណ៌នាថាតម្លៃនៃមួយមួយក្នុងជួរក្បាល។
មានករណីដែលមួយ cell គួរត្រូវអាស្រ័យលើតម្លៃនៃក្រុម cell ផ្សេងទៀតដើម្បីបង្កើតតម្លៃរបស់វា។ សៀវភៅបញ្ជីសារពើភ័ណ្ឌកំពុងតាមដានតម្លៃកម្រៃរបស់មួយមុខទំនិញក្នុងសារពើភ័ណ្ឌ ប៉ុន្តែបើយើងត្រូវការដឹងតម្លៃទាំងអស់ក្នុងសារពើភ័ណ្ឌ? Formulas ធ្វើសកម្មភាពលើទិន្នន័យក្នុង cells ហើយប្រើសម្រាប់គណនាទៅលើតម្លៃសារពើភ័ណ្ឌក្នុងឧទាហរណ៍នេះ។ សៀវភៅបណ្ណាល័យនេះប្រើសមាសធាតុ នៅក្នុងជួរឈរ Inventory Value ដើម្បីគណនាតម្លៃមុខទំនិញក្នុងតម្លៃ ដែលគុណតម្លៃបរិមាណនៅក្រោមក្បាល QTY និងតម្លៃនៅក្រោមក្បាល COST។ ហោះរើស cell ឬចុចពីរដងលើ cell នឹងបង្ហាញសមាសធាតុនេះ។ អ្នកនឹងទទួលបានសមាសធាតុចាប់ផ្តើមជាមួយសញ្ញាស្មើ (=) បន្ទាប់ពីនេះជាការគណនាឬប្រតិបត្តិការ។
យើងអាចប្រើសមាសធាតុមួយទៀតដើម្បីបូកតម្លៃទាំងឡាយនៅក្នុងជួរឈរ Inventory Value រួមគ្នា ដើម្បីទទួលតម្លៃសរុប។ វាអាចគណនាបានដោយបូកមួយ cell មួយតែម្តង ប៉ុន្តែនោះអាចជាការងារលំបាក។ Excel មាន functions ឬ formula ដែលបានកំណត់ជាមុនសម្រាប់បំពេញការគណនាលើតម្លៃ cell។ មុខងារផ្ទុះតម្រូវអាគុយម៉ង មួយនេះគឺជាតម្លៃដែលត្រូវប្រើនៅក្នុងការគណនា។ នៅពេលដែលមុខងារត្រូវការអាគុយម៉ង់ច្រើន ការតំរូវអាគុយម៉ង់ទាំងនេះត្រូវតែចុះបញ្ជីក្នុងលំដាប់ជាក់លាក់ មិនដូច្នេះមុខងារអាចគ្មានការគណនាតម្លៃបានត្រឹមត្រូវ។ ឧទាហរណ៍នេះប្រើមុខងារ SUM ហើយប្រើតម្លៃក្នុងជួរឈរ Inventory Value ជាអាគុយម៉ង់ដើម្បីបូកចេញតម្លៃសរុបដែលបង្ហាញនៅក្រោមជួរ 3 ជួរឈរ B (ដែលហៅថា B3)។
NoSQL គឺជាពាក្យទូទៅសម្រាប់វិធីសាស្រ្តផ្សេងៗក្នុងការរក្សាទុកទិន្នន័យមិនទាក់ទងគ្នា និងអាចបកប្រែថា "មិនមែន SQL", "មិនទាក់ទង", ឬ "មិនត្រឹមតែ SQL"។ ប្រភេទម៉ាស៊ីនទិន្នន័យនេះអាចចាត់ថ្នាក់ជាបួនប្រភេទ។
ប្រភពពី Michał Białecki Blog
មូលដ្ឋានទិន្នន័យ Key-value មានគូរមូលដ្ឋានទិន្នន័យជាមួយកូនសោតែមួយ ដែលជាផ្ទៃសម្គាល់តែមួយភ្ជាប់ជាមួយតម្លៃមួយ។ ចំណុចទាំងនេះត្រូវបានរក្សាទុកដោយប្រើ hash table ដែលមានមុខងារបញ្ចូល hashing។
ប្រភពពី Microsoft
មូលដ្ឋានទិន្នន័យ Graph ពិពណ៌នាឱ្យដឹងពីទំនាក់ទំនងក្នុងទិន្នន័យ និងតំណាងជាការប្រម្ទេសនៃក្បាល (nodes) និងបន្ទាត់ភ្ជាប់ (edges)។ ក្បាលជាតំណាងអង្គភាព មួយវត្ថុដែលមាននៅក្នុងពិភពពិតដូចជា និស្សិត ឬប្រតិបត្តិការ ធនាគារ។ បន្ទាត់ភ្ជាប់បង្ហាញពីទំនាក់ទំនងរវាងអង្គភាពពីរនេះ។ ក្បាលនិងបន្ទាត់ភ្ជាប់នីមួយៗមានលក្ខណៈដែលផ្តល់ព័ត៌មានបន្ថែមអំពីពួកវា។
មូលដ្ឋានទិន្នន័យ Columnar រៀបចំទិន្នន័យជាជួរឈរ និងជួរដូចជារចនាសម្ព័ន្ធទិន្នន័យទាក់ទងគ្នា ប៉ុន្តែលើក្រុមជួរឈរត្រូវបានចែកចេញជា "column family" ដែលទិន្នន័យទាំងមូលនៅក្រោមជួរឈរមួយទាក់ទងគ្នា ហើយអាចទាញយក និងផ្លាស់ប្តូរបានជារួមមួយត្រៀម។
មូលដ្ឋានទិន្នន័យ Document អនុវត្តលើគំនិតនៃ key-value data store ហើយមានបណ្តុំវាល និងវត្ថុ។ ផ្នែកនេះនឹងស្វែងយល់អំពីមូលដ្ឋានទិន្នន័យឯកសារជាមួយ Cosmos DB emulator។
មូលដ្ឋានទិន្នន័យ Cosmos DB សម្របសម្រួលកម្មវិធី "Not Only SQL" (មិនមែនត្រឹមតែនៅ SQL) ដែល database ឯកសាររបស់ Cosmos DB អាស្រ័យលើ SQL ដើម្បីស្វែងរកទិន្នន័យ។ មេរៀនមុន អំពី SQL គ្របដណ្ដប់គោលការណ៍មូលដ្ឋាន នឹងអាចអនុវត្តន៍សំណួរដូចគ្នាមួយចំនួនទៅមូលដ្ឋានទិន្នន័យឯកសារនៅទីនេះ។ យើងនឹងប្រើ Cosmos DB Emulator ដែលអនុញ្ញាតឱ្យចាប់ផ្តើម និងស្វែងយល់មូលដ្ឋានទិន្នន័យឯកសារបានក្នុងកុំព្យូទ័រផ្ទាល់ខ្លួន។ អានបន្ថែមអំពី Emulator នៅទីនេះ។
ឯកសារជាបណ្ណាល័យមួយនៃវាល និងតម្លៃវត្ថុ ដែលវាលនីមួយៗពិពណ៌នាថាតម្លៃវត្ថុបង្ហាញអ្វី។ ខាងក្រោមគឺជាឧទាហរណ៍ឯកសារ។
{
"firstname": "Eva",
"age": 44,
"id": "8c74a315-aebf-4a16-bb38-2430a9896ce5",
"_rid": "bHwDAPQz8s0BAAAAAAAAAA==",
"_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"",
"_attachments": "attachments/",
"_ts": 1630544034
}វាលដែលមានភាពចាប់អារម្មណ៍នៅក្នុងឯកសារនេះគឺ៖ firstname, id, និង age។ វាលផ្សេងទៀតដែលមានអន្ទាក់ ត្រូវបានបង្កើតឡើងដោយ Cosmos DB។
អ្នកអាចទាញយក និងដំឡើង emulator សម្រាប់ Windows នៅទីនេះ។ សូមយោងទៅឯកសារនេះ documentation សម្រាប់ជម្រើសរបៀបដំណើរការ Emulator សម្រាប់ macOS និង Linux។
Emulator បើកផ្ទាំងកម្មវិធី Browser ដែលចុះបញ្ជី Explorer អនុញ្ញាតឱ្យអ្នកស្វែងយល់ឯកសារ។
ប្រសិនបើលោកអ្នកតាមដាន សូមចុច "Start with Sample" ដើម្បីបង្កើតមូលដ្ឋានទិន្នន័យគំរូដែលមានឈ្មោះ SampleDB។ ប្រសិនបើលាយ Sample DB ដោយចុចលើឥដ្ឋភ្នែក អ្នកនឹងឃើញcontainer ឈ្មោះ Persons, ធុង (container) មានអង្គភាពនៃធាតុ ដែលជាឯកសារក្នុងcontainer នោះ។ អ្នកអាចស្វែងយល់ឯកសារផ្ទាល់ខ្លួនបួនក្នុង Items។
យើងក៏អាចសួរទិន្នន័យគំរូដោយចុចប៊ូតុង SQL Query ថ្មី (ប៊ូតុងទីពីរពីខាងឆ្វេង)។
SELECT * FROM c ត្រឡប់មកឯកសារទាំងអស់នៅក្នុងcontainer។ នាំឱ្យបន្ថែមរូបភាព where និងស្វែងរកមនុស្សជាតំលៃអាយុតិចជាង 40 ។
SELECT * FROM c where c.age < 40
សំណួរត្រឡប់ឡើងឯកសារពីរមុខ ហើយបញ្ជាក់ថាតម្លៃអាយុសម្រាប់ឯកសារនីមួយៗតិចជាង 40។
ប្រសិនបើលោកអ្នកស្គាល់ JavaScript Object Notation (JSON) អ្នកនឹងសង្កេតឃើញឯកសារទាំងនេះមានរូបរាងដូច JSON។ មានឯកសារ PersonsData.json នៅក្នុងថតនេះ ដែលមានទិន្នន័យបន្ថែមដែលអ្នកអាចបញ្ចូលទៅ container Persons ក្នុង Emulator តាមរយៈប៊ូតុង Upload Item។
នៅក្នុងករណីភាគច្រើន API ដែលត្រឡប់ JSON អាចផ្ទេរដោយផ្ទាល់ ហើយរក្សាទុកនៅក្នុងមូលដ្ឋានទិន្នន័យឯកសារ។ ខាងក្រោមជាឯកសារមួយផ្សេងទៀត ដែលតំណាងឱ្យ tweet ពីគណនី Twitter របស់ Microsoft ដែលបានទាញយកតាមរយៈ Twitter API រួចបញ្ចូលទៅ Cosmos DB។
{
"created_at": "2021-08-31T19:03:01.000Z",
"id": "1432780985872142341",
"text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK",
"_rid": "dhAmAIUsA4oHAAAAAAAAAA==",
"_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"",
"_attachments": "attachments/",
"_ts": 1630537000វាលដែលមានភាពចាប់អារម្មណ៍នៅក្នុងឯកសារនេះគឺ៖ created_at, id, និង text។
មានឯកសារ TwitterData.json ដែលអ្នកអាចបញ្ចូលទៅក្នុងមូលដ្ឋានទិន្នន័យ SampleDB។ ភាពឈរបានណែនាំឱ្យអ្នកបញ្ចូលវាទៅក្នុង container ផ្សេងឯណាមួយ។ អ្នកអាចធ្វើបានដោយ៖
- ចុចប៊ូតុង container ថ្មី នៅខាងលើស្ដាំ
- ជ្រើសរើសមូលដ្ឋានទិន្នន័យស្ថិតមានរួច (SampleDB) និងបង្កើត container id សម្រាប់container
- កំណត់ partition key ទៅ
/id - ចុច OK (អ្នកអាចមិនចាំបាច់ជួសជុលព័ត៌មាននៅក្នុងទិដ្ឋភាពនេះ ពីព្រោះវាជាដាតាស៊ែតតូចដែលដំណើរការលើម៉ាស៊ីនរបស់អ្នក)
- បើកcontainer ថ្មីរបស់អ្នក និងបញ្ចូលឯកសារ Twitter Data ជាមួយប៊ូតុង
Upload Item
ព្យាយាមបញ្ចូលសំណួរ few select ដើម្បីស្វែងរកឯកសារដែលមានពាក្យMicrosoft នៅក្នុងវាលអត្ថបទ។ សោចំណេះដឹង៖ សាកល្បងប្រើ LIKE keyword
-
មានការតុបតែងបន្ថែម និងមុខងារបន្ថែមក្នុងសៀវភៅបណ្ណាល័យនេះ ដែលមេរៀននេះមិនគ្របដណ្ដប់។ Microsoft មាន បណ្ណាល័យឯកសារធំ និងវីដេអូ អំពី Excel សម្រាប់អ្នកចូលចិត្តរៀនបន្ថែម។
-
ឯកសាររៀបចំនេះពិពណ៌នាលក្ខណៈនៃប្រភេទទិន្នន័យមិនទាក់ទងគ្នាប្រភេទផ្សេងៗ៖ ទិន្នន័យមិនទាក់ទង និង NoSQL
-
Cosmos DB គឺជាមូលដ្ឋានទិន្នន័យមិនទាក់ទងគ្នា ដែលដំណើរការលើពពក។ វាក៏អាចរក្សាទុកប្រភេទ NoSQL ផ្សេងៗដែលបានលើកឡើងនៅក្នុងមេរៀននេះ។ សូមរៀនបន្ថែមអំពីប្រភេទទាំងនេះនៅក្នុង មូឌុល Microsoft Learn Cosmos DB
ការបដិសេធ៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិនោះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសារបស់ខ្លួនគួរត្រូវបានពិចារណាថាជាដេតាបេនសម្រាប់ប្រភពដ៏មានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកវិជ្ជាជីវៈជាមនុស្សត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ព្រមខុស ឬការបកប្រែខុសផ្សេងៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។









