Skip to content
GitHub

Normalization: First Normal Form

1NF (First Normal Form) ဆိုတာက Database Normalization လုပ်ငန်းစဉ်ရဲ့ ပထမဆုံးနှင့် အခြေခံအကျဆုံး စည်းမျဉ်းဖြစ်ပါတယ်။ 1NF ရဲ့ အဓိက စည်းမျဉ်းကတော့ ရှင်းရှင်းလေးပါ။

Relation Schema(R) (သို့မဟုတ် Table) ရဲ့ အကွက် (cell) တစ်ကွက်မှာ တန်ဖိုးတစ်ခုတည်းပဲ ရှိရပါမယ်။

တန်ဖိုးအများကြီးကို ကော်မာ (,) ခံပြီး ထည့်တာမျိုး လုံးဝလုပ်လို့မရပါဘူး။
ဒီလို တန်ဖိုးတစ်ခုတည်းကို Atomic Value လို့ခေါ်ပါတယ်။ Atomic value ဆိုတာ အဓိပ္ပာယ်ရှိတဲ့ အစိတ်အပိုင်းတွေအဖြစ် ထပ်ပြီးခွဲခြမ်းလို့မရတဲ့ တန်ဖိုးတစ်ခုတည်းကို ဆိုလိုတာပါ။

ဥပမာ – “0912345678, 0998765432” ဆိုတဲ့ phone number တန်ဖိုးက ၂ ခုဖြစ်လို့ non-atomic (1NF ကို ချိုးဖောက်ခြင်း) ဖြစ်ပါတယ်။

ကျွန်တော်တို့ရဲ့ Fig. 3.1 ဥပမာမှာ Orders Table ကို ကြည့်လိုက်ရင် OrderID 1 အတွက် BookID, BookTitle, Price နှင့် Quantity Columns တွေဟာ ဒီစည်းမျဉ်းကို ချိုးဖောက်နေပါတယ်။ ဒီ Table ကို 1NF အဖြစ် ပြောင်းလဲဖို့အတွက် column(field) တိုင်းရဲ့ record တိုင်းမှာ တန်ဖိုးတစ်ခုတည်းသာ ရှိစေဖို့ လိုအပ်ပါတယ်။

1NF Orders Table:

1NF Orders Table

Fig. 3.2: 1NF Orders Table

အခုဆိုရင် record တစ်ခုချင်းစီရဲ့ အကွက်တိုင်းမှာ တန်ဖိုးတစ်ခုတည်းသာ ရှိနေတဲ့အတွက် ဒီ Table ဟာ 1NF စည်းမျဉ်းနှင့် ကိုက်ညီသွားပါပြီ။ ဒါပေမဲ့ ကျွန်တော်တို့မှာ redundancy (ထပ်နေတဲ့ data တွေ) အများကြီး ရှိနေပါသေးတယ်။ customer ရဲ့ နာမည်နှင့် လိပ်စာတွေက ထပ်ခါတလဲလဲ ဖြစ်နေပါသေးတယ်။ ဒါဆိုရင်တော့ second normal form ကိုဆက်သွားကြပါမယ်။