Thuta Learning
How Databases Work
BasicData & Databasesbeginner

Database vs Backend vs API

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

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

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

ဒီစကားလုံးသုံးလုံးက အမြဲမှောက်တတ်ကြပေမယ့် အဓိပ္ပာယ်ကတော့ တကယ် ကွဲပြားပါတယ်။ Database က data ကို storage လုပ်တယ် — ဒါ့ထက်ပိုမလုပ်ပါ။ Backend မှာ server-side application logic (validation, calculation, business decision) တွေ ပါဝင်ပါတယ်။ API ကတော့ system တွေ စကားပြောနိုင်ဖို့ interface/contract တစ်ခုပါ။

ပုံမှန် flow: Frontend -> API -> Backend -> Database။ User က frontend မှာ ခလုတ်နှိပ်တယ်၊ API ကနေ request ပို့တယ်၊ backend code က ဆုံးဖြတ်တယ်၊ ပြီးမှ database ထဲက data ကို ဖတ်/ရေးတယ်။

Layerလုပ်ငန်း
Databasedata ကို storage/organize လုပ်တယ်၊ request တစ်ခု ဘာလုပ်ခွင့်ရှိလဲ ဆုံးဖြတ်ခြင်းမပါ
Backendserver-side logic run တယ်: input validate, business rule apply, ဘာ read/write လုပ်မလဲ ဆုံးဖြတ်တယ်
APIbackend ကို တစ်ခုခု လုပ်ဖို့ system တခြားတွေ တောင်းဆိုနိုင်တဲ့ interface/contract ကို သတ်မှတ်ပေးတယ်

Beginner Mistake

'backend' ဆိုပြီး database ကို ဆိုလိုတာ (သို့) API ဟာ database တစ်ခုလိုပဲ ထင်တာက များပြားတဲ့ အမှားပါ။ API က almost data storage မလုပ်ပါ — ဒါက တံခါးတစ်ခုသာပါ။

Layer သုံးခုစလုံးက သီးခြားစီ ပြောင်းလဲနိုင်ပါတယ် — database product ပြောင်းလို့ရသလို backend အတူတူအပေါ် API ကွဲကွဲထုတ်လို့ရပါတယ်။ Team တစ်ခုမှာ engineer အသီးသီးက layer တစ်ခုစီကို တာဝန်ယူနိုင်တာက ဒီအတွက်ပါပဲ။

text
REQUEST FLOW: FRONTEND TO DATABASE
----------------------------------
REQUEST FLOW: FRONTEND TO DATABASE
------------------------------------
[ Frontend ] -- request --> [ API ]
                                |
                                v
                          [ Backend ]
                    (validation, business logic)
                                |
                                v
                         [ Database ]
                       (stores the data)

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

real bug ကို debug လုပ်တဲ့အခါ ဒီခွဲခြားမှုက ဘယ်ကနေ စရှာရမလဲ ပြောပြပါတယ်။ 'data isn't saving' က database/backend write logic ကို ညွှန်းတတ်ပြီး, '404/500 error' က API layer/backend route handling ကို ညွှန်းတတ်ပါတယ်။

'request success ဖြစ်ပေမယ့် number တွေမှား' ဆိုတာက database နဲ့ ဘာမှမပတ်သက်ဘဲ backend calculation logic ကို ညွှန်းလေ့ရှိပါတယ်။ symptom က layer ဘယ်ခုနဲ့ ပတ်သက်လဲ ခေါ်တတ်ဖို့က debugging skill တစ်ခုပါ။

လူတစ်ယောက်တည်းလည်း Role သုံးခု ဆောင်ရွက်နိုင်

project သေးသေးတစ်ခုမှာ database, backend, API သုံးခုလုံးကို လူတစ်ယောက်တည်းက design/ရေး/define လုပ်နိုင်ပေမယ့် role သုံးခုက concept အနေနဲ့ ကွဲပြားနေဆဲပါ။

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

javascript
function classifyResponsibility(description) {
  const text = description.toLowerCase();
  const apiHints = ["endpoint", "other apps", "expose", "http request", "public interface"];
  const databaseHints = ["store", "persist", "save", "table", "row", "record", "durable"];
  const backendHints = ["validate", "calculate", "business rule", "process", "authoriz", "authenticat"];

  const matchesAny = (hints) => hints.some((hint) => text.includes(hint));

  if (matchesAny(apiHints)) return "API";
  if (matchesAny(databaseHints)) return "Database";
  if (matchesAny(backendHints)) return "Backend";
  return "Unclear";
}

const tasks = [
  "store user records permanently",
  "validate a password before login",
  "expose an endpoint other apps can call",
  "calculate shipping cost based on cart items",
  "save a new order permanently",
];

for (const task of tasks) {
  console.log(`"${task}" -> ${classifyResponsibility(task)}`);
}
You should see
"store user records permanently" -> Database
"validate a password before login" -> Backend
"expose an endpoint other apps can call" -> API
"calculate shipping cost based on cart items" -> Backend
"save a new order permanently" -> Database

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

classifyResponsibility function ကို သင့် project ကရော responsibility ၃ ခုနဲ့ စမ်းသပ်ပြီး Database/Backend/API classification မှန်မမှန် စစ်ဆေးပါ။

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

'backend' ဆိုတဲ့ စကားလုံးကို 'database' အစား သုံးခြင်း — layer နှစ်ခုက တကယ်ကွဲပြားပါတယ်

API ဟာ database တစ်ခုလိုပဲ data ကို storage လုပ်တယ်လို့ ထင်ခြင်း

Quiz: ဘယ် Layer လဲ

Mobile app တစ်ခုက user ရဲ့ display name ပြောင်းဖို့ request ပို့ပါတယ်။ Request က /api/users/42 ဆိုတဲ့ URL ကို ဦးစွာရောက်ပြီး၊ name အလွတ်မဟုတ်ဘူးလို့ စစ်ဆေးတဲ့ server code က handle လုပ်ကာ record ကို update လုပ်ပါတယ်။ ဒီထဲမှာ API ဟာ ဘယ်အပိုင်းလဲ?

Wikipedia: APIHow Databases Work

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

  • 'backend' ဆိုတဲ့ စကားလုံးကို 'database' အစား သုံးခြင်း — layer နှစ်ခုက တကယ်ကွဲပြားပါတယ်
  • API ဟာ database တစ်ခုလိုပဲ data ကို storage လုပ်တယ်လို့ ထင်ခြင်း
  • ဒီ course က database concept/landscape ကို framework-neutral level မှာသာ သင်ပေးပါတယ် — SQL syntax, PostgreSQL, MongoDB, Redis ကို နက်နက်ရှိုင်းရှိုင်း လေ့လာချင်ရင် SQL, PostgreSQL, MongoDB, Redis tutorial တွေဆီ ဆက်သွားပါ။

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

classifyResponsibility function ကို သင့် project ကရော responsibility ၃ ခုနဲ့ စမ်းသပ်ပြီး Database/Backend/API classification မှန်မမှန် စစ်ဆေးပါ။

You'll know it worked when: "store user records permanently" -> Database "validate a password before login" -> Backend "expose an endpoint other apps can call" -> API "calculate shipping cost based on cart items" -> Backend "save a new order permanently" -> Database

Database vs Backend vs API | Thuta Learning