What is Database Normalization?

San TiSan Ti
2 min read

What is Normalization?

Normalization ဆိုတာ Database design technique တစ်ခုဖြစ်ပါတယ်။သူက data တွေသိမ်းဆည်းမဲ့ tables တွေကိုစနစ်တကျစုစည်းထားပီးdata redundancy (data တွေထပ်နေမှုမှဖယ်ရှားခြင်း) data dependency(data များတစ်ခုနဲ့ တစ်ခုမှီခိုမှုနည်းစေခြင်း)စတဲ့ ရည်ရွယ်ချက်တွေအတွက်ပြုလုပ်ရခြင်းဖြစ်ပါတယ်။

အဓိက ကတော့ဗျာ အရမ်းများပြားပီးရှုပ်ထွေးနေတဲ့ tables များကို small tables များအဖြစ်ခွဲခြားခြင်း(divide)ပြုလုပ်ပီ: Tables များအကြား ဆက်သွယ်ချိတ်ဆက်ခြင်း(Relationships)များပြု လုပ်စေခြင်းကို Normalization လို့ခေါ်ပါတယ်။

Normalization က အရေးကြီးပါတယ်။ ဘာလို့လဲဆိုတော့သက်ဆိုင်ရာ DBMS တွေထဲက data တွေ apps/software/systems များကနေရယူသောအခါ high-performance တွေဖြစ်စေရန်နဲ့ disk storage လို့ခေါ်တဲ့ space location နည်းစေအောင် စီမံရခြင်းspeed, accuracy, and efficiency စတဲ့ အချက်တွေကြောင့်ပါ။

Normalization ကို Data Normalization လို့သော်လည်း Database Normalization လို့သော်လည်းကောင်း ခေါ်ဆိုလေ့ရှိကြပါတယ်။

Database တွေကို Normalization ပြုလုပ်ခြင်းအားဖြင့် tables and columns များကို အစီအစဉ်တကျဖြစ်စေပါတယ်။

သေချာစေတာတစ်ခုကတော့ data တွေကတစ်ခုနဲ့ တစ်ခု ဆက်သွယ်ချိတ်ဆက်(relationships)နေပီး မလိုလားအပ်တဲ့ data များ ထပ်နေခြင်း(data redundancy)လျော့ချပီ: data integrity and data consistency (data များကို တိကျသေချာ မှုများ) စတဲ့ အချတ်တွေကို ရရှိမှာဖြစ်ပါတယ်။

Types of Normalization

Normalization လုပ်တာက တကယ်တော့ (၆)ဆင့် အထိရှိပါတယ်။

ဒါပေမဲ့ software / systems တွေရေးသားရာမှာနဲ့ လက်တွေ့မှာတော့Third normal form (၃)အဆင့်အထိသာ အများဆုံးသုံးကြပါတယ်။ မလိုလားအပ်တာကတစ်ကြောင်း Normalization များများလုပ်လေလေ၊Database ရဲ့ performance ကျလေလေ ဖြစ်တာကတစ်ဖုံ မို့လို့ ဖြစ်ပါတယ်။

အသုံးများတဲ့ (၃) အဆင့်ကတော့

1)First Normal Form (သိမ်းဆည်းမဲ့ tables တွေရဲ့ Column အသီးသီးက Unique(atomic)Values များသာ သိမ်းဆည်းရပါမယ်။

ဆိုလိုချင်တာက ထပ်ကာထပ်ကာပါ၀င်နေသော(Repeating groups of columns)များဖယ်ရှားခြင်းကို 1NF မှာပြုလုပ် တယ်လို့ ခေါ်ပါတယ်။

တစ်နည်းအားဖြင့် 1NF rules တွေကတော့ tables တွေမှာ တိကျတဲ့ data value များသာပါရပါမယ်။singled Value attribute(unique) သာပါရပါမယ် ၊any composite or multi-valued attribute များကိုရှောင်ရှားရပါမယ်။ထပ်တလဲလဲ ပါ၀င်နေတဲ့ attributes များကို ဖယ်ရှားရပါမယ်။

2)Second Normal Form (tables တွေက 1NF ဖြစ်နေပီးလို့ Tables ထဲမှာပါတဲ့ သက်ဆိုင်ရာ Columns များကို Primary key များသတ်မှတ်ခြင်းကို တော့ 2NF ပြုလုပ်ခြင်းလို့ခေါ်ပါတယ်။)

တစ်နည်းအားဖြင့် 2NF rules တွေကတော့ table က 1NF ဖြစ်နေရပါမယ်။နောက်ပီး တိကျတဲ့Column တစ်ခုကို primary key အဖြစ်သတ်မှတ်ရပါမယ်။အဲ့ primary key က table အသစ်တွေအကြား သို့မဟုတ် table တစ်ခုနဲ့ တစ်ခုအကြား partial dependencies ဖြစ်စေမှာဖြစ်ပါတယ်။

What is a KEY?

Database systems တွေရဲ့ Tables တွေမှာလဲ Keys တွေရှိကြပါတယ်။

ဒီမှာတော့ keyဆိုတာက table တစ်ခုရဲ့ unique identify ဖြစ်တဲ့ columns ကို keys အဖြစ်သတ်မှတ်ကြပါတယ်။ Single column or multiple columns တွေကိုလဲ Keys အနေနဲ့ သတ်မှတ်ကြပါတယ်။

keys မှာမှ primary key နဲ့ foreign key ရယ်လို့ သတ်မှတ်လေ့ရှိကြပါတယ်။

What is a Primary Key?

Primary key ဆိုတာ database ထဲမှာရှိတဲ့ record တွေက unique ဖြစ်ပီး single value columns တွေကို primary key အနေနဲ့သတ်မှတ်လေ့ရှိကြပါတယ်။

1)A primary key cannot be NULL.

2)A primary key value must be unique.

3)The primary key values should rarely be changed.

4)The primary key must be given a value when a new record is inserted.

What is Foreign Key?

Foreign key ဆိုတာကတော့ tables များဆက်သွယ်ကြတဲ့ အခါ အဓိကထားအသုံးပြုကြပါတယ်။

ထို့အတူပါပဲ သက်ဆိုင်ရာ table မှာတော့ primary key ဖြစ်နေပီး တခြား table ကနေ ခေါ်ယူတဲ့ အချိန်မှာတော့ foreign key အနေနဲ့ဖြစ်သွားပါတယ်။

Foreign key က primary key နဲ့ မတူတာကတော့ unique value ဖြစ်စရာမလိုပါဘူး။

It ensures rows in one table have corresponding rows in another.

Foreign keys can be null even though primary keys can’t null value.

3)Third Normal Form (tables တွေက 2NF ဖြစ်နေပီးလို့ tables ရဲ့ columns များက တစ်ခုနဲ့ တစ်ခုချိတ်ဆက်မှုကင်းပီ: mutually independent ဖြစ်နေရပါမယ်။

အကယ်၍တစ်ခုနဲ့တစ်ခုဆက်စပ်မှီခိုခြင်းရှိနေပါက သီးခြား table များအဖြစ် ထပ်မံ ခွဲထုတ်မှုပြုလုပ်ခြင်းကို 3NF ပြုလုပ်ခြင်းလို့ ခေါ်ပါတယ်။

တစ်နည်းအားဖြင့် 3NF rules တွေကတော့ table က 2NF ဖြစ်နေရပါမယ်။နောက်ပီး no transitive functional dependencies(data များတစ်ခုနဲ့ တစ်ခုကြားဆက်နွယ်မှီခိုမှုကင်းနေရပါမယ်)

Thanks you all....

I hope u will get some knowledge...

#Itsec

0
Subscribe to my newsletter

Read articles from San Ti directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

San Ti
San Ti

Knowledgeable Leadership and Cloud Base technical systems professional offers problem-solving skills and best practices expertise. Thorough with assessments, solution development and deployments. Accomplished in partnering cross-functionally to enhance systems for changing demands.