System

Introduction to Database Management System

အားလုံးပဲ မဂၤလာပါ ခင္ဗ်။
ကြၽန္ေတာ္ကေတာ့ Spiceworks Myanmar မွာ Junior Backend Developer အျဖစ္ဝင္ေရာက္လုပ္ကိုင္ေနတဲ့ ေမာင္ေဝလ်ံျပည့္ ျဖစ္ပါတယ္ခင္ဗ်။ ကြၽန္ေတာ္အခု မွ်ေဝေပးသြားမယ့္ အေၾကာင္းအရာေလးကေတာ့ MySQL နဲ႔ SQL အေၾကာင္း ျဖစ္ပါတယ္။

ပထမဦးဆုံးအေနနဲ႔ Structured Query Language (SQL) အေၾကာင္းကို မေျပာခင္မွာ  Data နဲ႔ Database ဆိုတာ ဘာလဲဆိုတာကို ရွင္းျပေပးသြားမွာပါ။ Data ဆိုတာကေတာ့ ႐ိုး႐ိုးရွင္းရွင္းေျပာရမယ္ဆိုရင္  ကြၽန္ေတာ္တို႔ရဲ႕ နာမည္၊ အသက္၊ အရပ္၊ ကိုယ္အေလးခ်ိန္ေတြကို အခ်က္အလက္ (Data) လို႔ ေျပာတာျဖစ္ပါတယ္။  အဲ့လို Data ေတြကို စနစ္တက်နဲ႔ သူ႔ေနရာနဲ႔သူ သိမ္းထားတာကိုေတာ့ Database လို႔ေခၚတာ ျဖစ္ပါတယ္။ Database ေတြ ေပၚေပါက္လာတာေၾကာင့္ Data ေတြကို စီမံခန႔္ခြဲရတာ လြယ္ကူေစတာ ျဖစ္ပါတယ္။ အဲ့လို Database ေတြကို ထိန္းခ်ဳပ္ဖို႔အတြက္ Database Management System ဆိုၿပီး ရွိပါတယ္။

Database Management System ဆိုတာကေတာ့ Database ထဲက Data ေတြကို အလြယ္တကူ ျပဳျပင္ထုတ္ယူအသုံးျပဳႏိုင္ေအာင္ ေရးဆြဲထားတဲ့ software package တစ္ခုျဖစ္ပါတယ္။ အဲ့ဒီမွာ အဓိကအေနနဲ႔ Database Management System (၄) မ်ိဳးရွိပါတယ္။ အဲ့တာေတြကေတာ့ Hierarchical DBMS, Network DBMS, Relational DBMS, Object-Oriented DBMS တို႔ျဖစ္ပါတယ္။ Hierarchical DBMS ဆိုတာကေတာ့ သူ႔ရဲ႕နာမည္အတိုင္းပဲ Data ေတြကို သစ္ပင္ပုံစံလိုမ်ိဳး သိမ္းဆည္းထားတာျဖစ္ၿပီး parent-child relationship အေနနဲ႔ေဖာ္ျပပါတယ္။ Network DBMS ဆိုတာကေတာ့ many-to-many relationship ကို သုံးၿပီးေတာ့ သူ႔ရဲ႕ Data ေတြကို တစ္ခုနဲ႔တစ္ခု အမ်ားႀကီးဆက္သြယ္ႏိုင္တာ ျဖစ္ပါတယ္။
Relational DBMS ဆိုတာကေတာ့ Database ထဲမွာရွိတဲ့ အခ်က္အလက္ေတြကို စနစ္တက်တည္ေဆာက္ထားတဲ့ပုံစံကို အသုံးျပဳၿပီး ခ်ိတ္ဆက္အသုံးျပဳႏိုင္တာ ျဖစ္ပါတယ္။ Object-Oriented DBMS ဆိုတာကေတာ့ သူ႔ကို object ေလးေတြအျဖစ္နဲ႔ တည္ေဆာက္ၿပီး အဲ့ဒီထဲမွာ အခ်က္အလက္ေလးေတြပါဝင္ၿပီး အဲ့အခ်က္အလက္ေတြကို ဘာလုပ္ရမယ္ဆိုတာက အစ ပါဝင္ၿပီးသားျဖစ္တာကို ဆိုလိုပါတယ္။ အဲ့တာေတြထဲမွာမွ ကြၽန္ေတာ္ေျပာျပခ်င္တာကေတာ့ Relational DBMS ျဖစ္ၿပီး သူ႔ကိုသုံးဖို႔ Structured Query Language(SQL) လို႔ေခၚတဲ့ Data ေတြကို ျပဳျပင္ေျပာင္းလဲရာမွာသုံးတဲ့ Language ကိုသိထားရပါတယ္။ ဘာလို႔လဲဆိုေတာ့ သူက Relational Database ေတြရဲ႕Data ေတြကို အသုံးျပဳဖို႔ အဓိကက်တဲ့အရာ ျဖစ္ေနလို႔ပါ။

SQL ကိုအသုံးျပဳၿပီး ကြၽန္ေတာ္တို႔လိုခ်င္တဲ့ ပုံစံအတိုင္း Database ထဲက Data ေတြကို လိုအပ္သလို ျပဳျပင္ေျပာင္းလဲႏိုင္မွာျဖစ္ပါတယ္။ SQL Commands ေတြကိုလည္း အမ်ိဳးအစားေတြခြဲထားပါေသးတယ္။ အဲ့ဒါေတြကေတာ့ DDL (Data Definition Language), DML (Data Manipulation Language), DCL (Data Control Language), TCL (Transaction Control Language) တို႔ျဖစ္ပါတယ္။ DDL ဆိုတာကေတာ့ Database ထဲမွာ Data ေတြ Object ေတြကို ေဆာက္ခ်င္တာပဲျဖစ္ျဖစ္၊ အသစ္ျပန္ျပင္ခ်င္တာပဲျဖစ္ျဖစ္၊ ဖ်က္ခ်င္တာပဲျဖစ္ျဖစ္ အဲ့လိုအခ်ိန္ေတြမွာသုံးပါတယ္။သူ႔ရဲ႕ commands ေတြကေတာ့ Create, Drop, Alter, Truncate တို႔ျဖစ္ပါတယ္။ DML ဆိုတာကေတာ့ Database Table ထဲက instances ေတြကို အသစ္ထည့္တာေတြ၊ ဖ်က္တာေတြ၊ ေျပာင္းလဲတာေတြ စတာေတြကိုျပဳလုပ္တဲ့အခါမွာ အသုံးျပဳတာျဖစ္ပါတယ္။ သူ႔ရဲ႕ commands ေတြကေတာ့ Insert, Update, Delete တို႔ျဖစ္ပါတယ္။ DCL ဆိုတာကေတာ့ ကိုယ့္ရဲ႕ Database System ကို အျခားသူေတြကို ေပးသုံးခ်င္တဲ့အခါမ်ိဳးမွာ လြယ္ကူလ်င္ျမန္စြာ လုပ္ပိုင္ခြင့္ကိုေပးအပ္ႏိုင္ပါတယ္။ သူ႔ရဲ႕ commands ေတြကေတာ့ Grant ႏွင့္ Revoke တို႔ျဖစ္ပါတယ္။ TCL ဆိုတာကေတာ့ Data ေတြကို Database ထဲမွာ သြင္းၿပီးသြားတဲ့အေျခအေနကို သိမ္းဖို႔အတြက္ Commit ဆိုတဲ့ command ကိုအသုံးျပဳၿပီး ကိုယ္ကတစ္ခုခုမွားသြားလို႔ ၿပီးခဲ့တဲ့အေျခအေနကို ျပန္သြားခ်င္တဲ့အခါ Rollback ဆိုတဲ့ command ကို အသုံးျပဳၿပီး လုပ္ေဆာင္ႏိုင္တာျဖစ္ပါတယ္။

MySQL ဆိုတာကေရာဘာလဲ? သူကေတာ့ open-source relational database management system တစ္ခုျဖစ္ၿပီး platform အစုံနီးပါးမွာ သူ႔ကို အသုံးျပဳႏိုင္ေအာင္ ေရးဆြဲထားတာ ျဖစ္ပါတယ္။ သူ႔ရဲ႕ လူႀကိဳက္မ်ားရတဲ့ အခ်က္ေတြကေတာ့ ထိန္းသိမ္းရတာလြယ္ကူျခင္း၊ ဗားရွင္းအမ်ိဳးမ်ိဳးအတြက္ အေထာက္အပံ့ရရွိျခင္း၊ သူ႔ကို Windows, Mac, Linux စသည့္ OS ေတြမွာလြယ္ကူစြာ အသုံးျပဳႏိုင္ျခင္း၊ သူ႔ကိုအသုံးျပဳၿပီး Project အႀကီးကေနအေသးဆုံးထိ လိုအပ္သလို ျပဳျပင္အသုံးျပဳႏိုင္ျခင္း စတာေတြေၾကာင့္ လူႀကိဳက္မ်ားၿပီး အသုံးျပဳၾကပါတယ္။

ဒီေအာက္ကလင့္ခ္ေတြမွာ သက္ဆိုင္ရာ OS အလိုက္ ရယူအသုံးျပဳႏိုင္ပါတယ္။
MySQL Download Link
MySQL WorkBench Download Link

MySQL ကို သြင္းၿပီးသြားတဲ့အခါမွာ သူ႔ကို Terminal မွာ တစ္ခါတည္းေခၚၿပီး သုံးခ်င္ရင္ေတာ့ သူ႔ရဲ႕ location path ကိုသက္ဆိုင္ရာ Terminal Shell Script မွာထည့္ေပးရပါမယ္။ Mac မွာဆိုရင္ေတာ့ သြင္းၿပီးတာနဲ႔ System Preferences ထဲမွာ MySQL ဆိုၿပီးေရာက္လာပါလိမ့္မယ္။ အဲ့မွာ MySQL ကိုႏွိပ္လိုက္ရင္ Instances နဲ႔ Configuration ဆိုၿပီးႏွစ္မ်ိဳးေတြ႕ပါလိမ့္မယ္။ အဲ့မွာ Configuration Tab ကိုႏွိပ္ၿပီး base directory က select ကိုႏွိပ္ၿပီး ဘယ္မွာသြင္းသြားလဲဆိုတာၾကည့္ႏိုင္ပါတယ္။ ေနာက္တစ္နည္းကေတာ့ cd /usr/local လို႔႐ိုက္ၿပီး ကိုယ္သြင္းခဲ့တဲ့နာမည္္ကို ls command သုံးၿပီး နာမည္ကိုရွာၿပီးသြားပါ။ ၿပီးရင္ bin folder အထိ cd command ကိုသုံးၿပီးသြားရင္ pwd ဆိုတဲ့ command ကို႐ိုက္လိုက္ရင္ path လမ္းေၾကာင္းေပၚလာပါလိမ့္မည္။ အဲ့လမ္းေၾကာင္းကို ကူးၿပီး sudo nano ~/.zshrc ဆိုၿပီး
export PATH=”/usr/local/mysql-8.0.27-macos11-arm64/bin:$PATH” ကူးလာတဲ့လမ္းေၾကာင္းကို PATH ထဲထည့္ေပးလိုက္ရင္ရပါၿပီ။
MySQL ကိုစၿပီးသုံးေတာ့မယ္ဆိုရင္ mysql -u root -p ဆိုၿပီး Terminal မွာ႐ိုက္ၿပီး password ေတာင္းရင္ကိုယ္သြင္းတဲ့အခ်ိန္ကေပးခဲ့တဲ့ password ကိုထည့္ေပးလိုက္ရင္ စသုံးလို႔ရပါၿပီ။ အဲ့မွာကိုယ့္စီမွာရွိတဲ့ Databases ေတြကိုၾကည့္ခ်င္တယ္ဆိုရင္ေတာ့ show databases; ဆိုၿပီး႐ိုက္လိုက္ရင္ ကိုယ့္စီမွာအသင့္တည္ေဆာက္ၿပီးသား database ေတြကိုျမင္ရမွာျဖစ္ပါတယ္။ အဲ့ထဲကမွ Database တစ္ခုကို အသုံးျပဳခ်င္တယ္ဆိုရင္ေတာ့ use yourDatabaseName; ဆိုၿပီး႐ိုက္လိုက္ရင္ရၿပီဗ်။ Database ထဲက Table ေတြကိုၾကည့္ခ်င္ရင္ေတာ့ show tables; ဆိုၿပီး႐ိုက္လိုက္ရင္ရွိသမွ် Table ေတြကိုျမင္ရမွာျဖစ္ပါတယ္။ Table ရဲ႕ field formats ေတြကိုၾကည့္ခ်င္တယ္ဆိုရင္ေတာ့ describe yourTableName; လို႔႐ိုက္လိုက္ရင္ျမင္ရမွာျဖစ္ပါတယ္။ Table ထဲက Data ေတြကိုျမင္ခ်င္ရင္ေတာ့ select*from yourTableName; ဆိုၿပီး႐ိုက္လိုက္ရင္ျမင္ရမွာျဖစ္ပါတယ္။ အျခားေသာအသုံးဝင္တဲ့ SQL Commands ေတြကို ေအာက္ကလင့္ခ္မွာ ၾကည့္ရႈေလ့လာႏိုင္ပါတယ္ဗ်။

SQL Commands CheatSheet

အခု ဒီBlog ေလးကို ဖတ္ၿပီး DBMS ရဲ႕ ဆိုလိုရင္းနဲ႔  အသုံးျပဳပုံေတြကို သိရွိၿပီး ဆက္လက္ေလ့လာႏိုင္ဖို႔ အေထာက္အကူျပဳမယ္လို႔ ေမွ်ာ္လင့္ရင္း ႏႈတ္ဆက္လိုက္ပါတယ္ ခင္ဗ်။

Hello

Leave a Reply

Your email address will not be published. Required fields are marked *