Skip to content
GitHub

First Normal Form (1NF)

First Normal Form (1NF) ၏ စည်းမျဉ်း ၂ ခု

Section titled “First Normal Form (1NF) ၏ စည်းမျဉ်း ၂ ခု”

Table တစ်ခုသည် First Normal Form (1NF) အဆင့် သတ်မှတ်ချက် ပြည့်မီရန် အောက်ပါ စည်းမျဉ်း ၂ ခုနှင့် ရာနှုန်းပြည့် ကိုက်ညီရပါမည်:

  1. Atomic Values (အကွက်တစ်ခုစီတွင် Single Value သာ ရှိရမည်): Cell တစ်ခုတည်းတွင် Comma (,) ခံ၍ Data များစွာ ရောပြွမ်း သိုလှောင်ထားခြင်း (Multivalued Attributes) လုံးဝ မရှိရပါ။
  2. Primary Key တည်ရှိရမည်: Record တိုင်းကို မထပ်ဘဲ တိကျစွာ ခွဲခြားပေးနိုင်သော Primary Key (သို့မဟုတ် Composite Primary Key) မဖြစ်မနေ ပါရှိရပါမည်။

လက်တွေ့ ဥပမာ - မှာယူမှုစာရင်း (Order List)

Section titled “လက်တွေ့ ဥပမာ - မှာယူမှုစာရင်း (Order List)”

အောက်ပါ ဇယားသည် Normalization လုံးဝ ပြုလုပ်ထားခြင်း မရှိသေးသော Unnormalized Table ဖြစ်ပါတယ်။

Unnormalized Order Table

Fig. 3.1: Unnormalized Orders Table

ပြဿနာကို ရှာဖွေခြင်း

Section titled “ပြဿနာကို ရှာဖွေခြင်း”

ဒီ Table တွင် OrderID 101 ရှိသော Row ကို ကြည့်ပါက BookTitle တွင် “Dune, Foundation” ဟု စာအုပ် ၂ အုပ် နာမည်ကို ရောပြွမ်း သိမ်းဆည်းထားတာ တွေ့ရပါမယ်။ အလားတူ Quantity (2, 1) နှင့် Price (20, 15) များတွင်လည်း Data များ ရှုပ်ထွေး ရောပြွမ်းနေပါတယ်။

ဒါဟာ 1NF ရဲ့ “Cell တစ်ခုစီတွင် Atomic Value သာ ရှိရမည်” ဆိုတဲ့ စည်းမျဉ်းကို ချိုးဖောက်နေခြင်း ဖြစ်ပါတယ်။ ဒီလို ရောသိမ်းထားပါက “Foundation” စာအုပ် ရောင်းအားကို သီးခြား Search/Query ပြုလုပ်ရန် ခက်ခဲသွားပါလိမ့်မယ်။

1NF သို့ ပြောင်းလဲခြင်း

Section titled “1NF သို့ ပြောင်းလဲခြင်း”

ဒီ ပြဿနာကို ဖြေရှင်းရန် Data များကို Cell တစ်ခုစီတွင် Single Value ဖြစ်အောင် Row အသစ်များအဖြစ် ခွဲထုတ်လိုက်ပါမည်။

1NF Order Table

Fig. 3.2: 1NF Orders Table

အခုဆိုရင် Cell တိုင်းတွင် Atomic Value သာ ရှိသွားပါပြီ။ ထို့နောက် ဒုတိယ စည်းမျဉ်းအတိုင်း Primary Key သတ်မှတ်ပေးရပါမယ်။

ဒီ Table တွင် OrderID တစ်ခုတည်းဖြင့် Primary Key ပြုလုပ်၍ မရတော့ပါ (101 သည် Row 2 ခု ဖြစ်နေ၍)။ ထို့ကြောင့် OrderID နှင့် BookID နှစ်ခုကို ပေါင်းစပ်၍ Composite Primary Key အဖြစ် သတ်မှတ်ပေးလိုက်ပါက 1NF အဆင့်သို့ အောင်မြင်စွာ ရောက်ရှိသွားပြီ ဖြစ်ပါတယ်။