Thuta Learning
How Databases Work
BasicData & Databasesbeginner

ဒေတာဘေ့စ်များ လုပ်ဆောင်ပုံ: ရုပ်ပုံကြီး

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • ဒေတာဘေ့စ်များ လုပ်ဆောင်ပုံ: ရုပ်ပုံကြီး concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram/table ကို ဖတ်ပြီး data model/schema/architecture ဘယ်လို ပုံသဏ္ဌာန်ရှိသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် project အတွက် database concept/system ကို ဘယ်လို အသုံးချသင့်သလဲ ရှင်းပြနိုင်ရန်

နားလည်ထားရမယ့် အချက်

ဒီ platform မှာ database တစ်ခုနဲ့ တကယ်အလုပ်လုပ်ဖို့ သင်ပေးတဲ့ course တွေ ရှိပြီးသားဖြစ်ပါတယ်: SQL syntax အတွက် SQL course, production-grade relational system အပြည့်အစုံအတွက် PostgreSQL course၊ ထိပ်တန်း document database တစ်ခုအတွက် MongoDB course၊ ပြီးတော့ in-memory data store အတွက် Redis course တို့ဖြစ်ပါတယ်။ အဲဒီ course တွေက real system တစ်ခုအပေါ် real command တွေကို ရိုက်ထည့်ဖို့ သင်ပေးပါတယ်။

How Databases Work က အဲဒီ course လေးခုလုံးရဲ့ အပေါ်ကနေ ရပ်နေတာပါ။ SELECT statement တစ်ကြောင်းမှ မရေးမီ၊ insert command တစ်ခုမှ မလုပ်မီ framework-neutral mental model တစ်ခု လိုအပ်ပါတယ်: database ဆိုတာ တကယ်ဘာလဲ၊ table၊ key၊ relationship၊ transaction ဆိုတဲ့ concept တွေက ဘာကို ဆိုလိုတာလဲ၊ ဘယ် product ကို နောက်ဆုံးရွေးရွေး အစိတ်အပိုင်းတွေက ဘယ်လို ချိတ်ဆက်ကြသလဲ ဆိုတာတွေပါ။

ဒီ course ရဲ့ နောက်ပိုင်းမှာ SQL versus NoSQL landscape ရဲ့ ရိုးသားတဲ့ နှိုင်းယှဉ်မှုတစ်ခုလည်း ရနိုင်ပါလိမ့်မယ် — တစ်ခုက 'ပိုကောင်းတယ်' ဆိုတဲ့ ဆုံးဖြတ်ချက်မဟုတ်ဘဲ၊ family တစ်ခုစီရဲ့ tradeoff တွေကို ရှင်းရှင်းလင်းလင်း တွေ့မြင်စေပါလိမ့်မယ်။

Master Mental Model

User -> Frontend -> Backend/API -> Database -> Data. User က frontend မှာ လုပ်ဆောင်ချက်တစ်ခု လုပ်တယ်၊ frontend က backend/API ကို တောင်းဆိုတယ်၊ backend က database နဲ့ စကားပြောတယ်၊ database က data ကို ပြန်ပေးတယ် (သို့) သိမ်းဆည်းတယ်။

Frontend ကို database credentials မပေးပါနှင့်

Frontend ဟာ privileged database credentials တွေကို တိုက်ရိုက် ကိုင်တွယ်သင့်ခြင်း မရှိပါဘူး — browser (သို့) mobile app ထဲကို ပို့လိုက်တဲ့ ဘာမဆို ထုတ်ယူနိုင်လို့ပါ။ ပိုလုံခြုံတဲ့ alternative က Frontend -> Secure Data Access Layer/BaaS -> Database ဖြစ်ပြီး authorization policies တွေကို အတည်ပြုပေးပါတယ်။

Database
Data ကို reliable စွာ storage, organize, retrieve, update လုပ်ပေးနိုင်တဲ့ system တစ်ခု၊ ပုံမှန်အားဖြင့် application တစ်ခုရဲ့ အစိတ်အပိုင်းများစွာက တစ်ပြိုင်နက် share လုပ်ကြပါတယ်။
DBMS
Database Management System — PostgreSQL, MongoDB, Redis လိုမျိုး database engine တစ်ခုကို storage, querying, concurrency, reliability guarantee တွေနဲ့ တကယ် implement လုပ်ထားတဲ့ software ဖြစ်ပါတယ်။
text
THE MASTER MENTAL MODEL
-----------------------
THE MASTER MENTAL MODEL
------------------------
  User
   |
   v
Frontend   (web app / mobile app)
   |
   v
Backend/API   (server logic + interface)
   |
   v
Database   (stores + organizes data)
   |
   v
  Data

SAFER ALTERNATIVE (no DB credentials in the frontend)
---------------------------------------------------------
  User -> Frontend -> Secure Data Access Layer/BaaS -> DB
                       (enforces authorization policies)

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

ဒီ course ကို ဖတ်နေတုန်း concept တစ်ခုစီကို သင်ထိတွေ့ဖူးတဲ့ တကယ့်အရာတစ်ခုနဲ့ ပြန်ချိတ်ဆက်ပါ — user profile တစ်ခု၊ shopping cart တစ်ခု၊ chat message တစ်ခုနဲ့ တွေးကြည့်နိုင်ပါတယ်။ ရည်ရွယ်ချက်က SQL, PostgreSQL, MongoDB, Redis ဘယ်ဟာကိုမှ ပြန်မသင်ဘဲ ယူသွားနိုင်တဲ့ common vocabulary တစ်ခု ရဖို့ပါ။

Product တစ်ခုကို ကောင်းကောင်းသိပြီးသားဆိုရင်တောင် ဒီ course ကို မကျော်သင့်ပါဘူး — relational table နဲ့ MongoDB document က idea တူပေမယ့် ဘာကြောင့် ကွဲပြားစွာ ကိုယ်စားပြုကြသလဲ ဆိုတာမျိုးကို ဒီမှာသာ သင်ရပါလိမ့်မယ်။

Self-check code

အောက်က code ကို run ကြည့်ပြီး hands-on course ဘယ်ဟာတွေ ပြီးပြီးသားလဲ ကြည့်ပြီး ဒီ course ရဲ့ chapter ဘယ်ဟာတွေက new material ဖြစ်နေသေးလဲ စစ်ကြည့်ပါ။

အတူတူ စမ်းရေးကြည့်မယ်

javascript
function recommendNewChapters(priorCourses = {}) {
  const {
    completedSQL = false,
    completedPostgreSQL = false,
    completedMongoDB = false,
    completedRedis = false,
  } = priorCourses;

  const knowsRelational = completedSQL || completedPostgreSQL;
  const knowsNonRelational = completedMongoDB || completedRedis;
  const knowsAnyProduct = knowsRelational || knowsNonRelational;

  const chapters = [
    { name: "Basic", isNew: () => true },
    { name: "SQL vs NoSQL Landscape", isNew: () => !(knowsRelational && knowsNonRelational) },
    { name: "Transactions & Concurrency Concepts", isNew: () => !(completedPostgreSQL && completedRedis) },
    { name: "Scaling & Performance Concepts", isNew: () => !knowsAnyProduct || !(knowsRelational && knowsNonRelational) },
  ];

  return chapters.filter((chapter) => chapter.isNew()).map((chapter) => chapter.name);
}

console.log("Brand-new learner:", recommendNewChapters({}));
console.log("Finished SQL only:", recommendNewChapters({ completedSQL: true }));
console.log(
  "Finished all four:",
  recommendNewChapters({
    completedSQL: true,
    completedPostgreSQL: true,
    completedMongoDB: true,
    completedRedis: true,
  })
);
You should see
Brand-new learner: [ 'Basic', 'SQL vs NoSQL Landscape', 'Transactions & Concurrency Concepts', 'Scaling & Performance Concepts' ]
Finished SQL only: [ 'Basic', 'SQL vs NoSQL Landscape', 'Transactions & Concurrency Concepts', 'Scaling & Performance Concepts' ]
Finished all four: [ 'Basic' ]

၅ မိနစ် စမ်းကြည့်

recommendNewChapters function ရဲ့ logic ကို ပုံစံအနေနဲ့ ယူပြီး၊ SQL နဲ့ MongoDB course ကို ပြီးပြီးသား ဒါပေမယ့် PostgreSQL နဲ့ Redis ကို မပြီးသေးဘူးဆိုရင် ဘယ် chapter တွေကို တကယ် ဆက်လေ့လာသင့်သေးလဲ စဉ်းစားရေးချပါ။

သတိလေးတစ်ချက်

ဒီ course ကို SQL/PostgreSQL/MongoDB/Redis ကို ကျော်တဲ့ shortcut အနေနဲ့ ထင်ခြင်း — ဒါက production မှာ run လို့ရတဲ့ syntax မဟုတ်ဘဲ concept ကိုသာ သင်ပါတယ်

NoSQL vs SQL ကို 'အနိုင်ရသူ' ရှိတဲ့ debate တစ်ခုအနေနဲ့ ထင်ခြင်း၊ ပြဿနာအမျိုးမျိုးအတွက် guarantee မတူညီတဲ့ tradeoff တစ်ခုအစား

Wikipedia: DatabaseHow Databases Work

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • ဒီ course ကို SQL/PostgreSQL/MongoDB/Redis ကို ကျော်တဲ့ shortcut အနေနဲ့ ထင်ခြင်း — ဒါက production မှာ run လို့ရတဲ့ syntax မဟုတ်ဘဲ concept ကိုသာ သင်ပါတယ်
  • NoSQL vs SQL ကို 'အနိုင်ရသူ' ရှိတဲ့ debate တစ်ခုအနေနဲ့ ထင်ခြင်း၊ ပြဿနာအမျိုးမျိုးအတွက် guarantee မတူညီတဲ့ tradeoff တစ်ခုအစား
  • ဒီ course က database concept/landscape ကို framework-neutral level မှာသာ သင်ပေးပါတယ် — SQL syntax, PostgreSQL, MongoDB, Redis ကို နက်နက်ရှိုင်းရှိုင်း လေ့လာချင်ရင် SQL, PostgreSQL, MongoDB, Redis tutorial တွေဆီ ဆက်သွားပါ။

လေ့ကျင့်ခန်း

recommendNewChapters function ရဲ့ logic ကို ပုံစံအနေနဲ့ ယူပြီး၊ SQL နဲ့ MongoDB course ကို ပြီးပြီးသား ဒါပေမယ့် PostgreSQL နဲ့ Redis ကို မပြီးသေးဘူးဆိုရင် ဘယ် chapter တွေကို တကယ် ဆက်လေ့လာသင့်သေးလဲ စဉ်းစားရေးချပါ။

You'll know it worked when: Brand-new learner: [ 'Basic', 'SQL vs NoSQL Landscape', 'Transactions & Concurrency Concepts', 'Scaling & Performance Concepts' ] Finished SQL only: [ 'Basic', 'SQL vs NoSQL Landscape', 'Transactions & Concurrency Concepts', 'Scaling & Performance Concepts' ] Finished all four: [ 'Basic' ]

ဒေတာဘေ့စ်များ လုပ်ဆောင်ပုံ: ရုပ်ပုံကြီး | Thuta Learning