Normalization(ප්රමතකරණය)
මේ ලිපියෙන් කතා කරන්නේ Database Normalization Concept එකට අදාළ First Normal Form , Second Normal Form and Third Normal Form ගැන.
Database එකක් modify කරද්දී errors ඇති වෙන්න පුළුවන්. ඒවට Anomalies කියනවා. මේ වගේ errors Normalization නොකරපු tablesවල දකින්න පුළුවන්.
Data Anomalies(දත්ත අනුක්රමිකතා) වර්ග 3යි.
1. Insertion Anomaly
2. Deletion Anomaly
3. Update Anomaly
1. Insertion
Anomaly
- වගුවකට දත්ත ඇතුලත් කිරීමේදී
වෙනත් දත්ත නිසා අපිට අවශ්ය දත්ත ඇතුලත් කිරීමට නොහැකි වීම.
2. Update Anomaly
- දත්ත වගු යාවත්කාලින(update)
කිරීමේදි ඇතිවන ගැටලු.
3. Deletion Anomaly
- දත්ත වගුවකින්
දත්ත ඉවත් කිරීමට නොහැකිවීම.
Normalization(ප්රමතකරණය)
දත්ත සමුදායක දත්ත පිළිවෙලකට අනුව සැකසීම ප්රමතකරණයයි.
Why Normalization?
- වගුවක දත්ත නැවත නැවත යෙදීම වැලකේ.(Data Redundancy)
- Data හැසිරවීම(manipulate)
පහසු වීම.
- දත්ත අනුක්රමිකතාවන්(Data Anomalies) අවම වේ.
- Disk Space අඩු කර ගත හැකි වීම.
Normalization Process
1. Table with repeating
groups
2. First Normal
Form(1NF)
3. Second Normal Form(2NF)
4. Third Normal Form(3NF)
5. Boyce Codd Normal Form(BCNF)
First Normal Form(1NF)
First Normal Form එකේ තියන table එකක ලක්ෂණ:
- හැම column එකකටම අනන්ය නමක් (unique name) තිබිය යුතුයි.
- එක column එකක එකම type එකේ data තිබිය යුතුයි.
- Table එකේ හැම cell එකකම තියෙන්න පුළුවන් තනි value එකක්(Atomic
value)
- එක හා සමාන උපලැකි(fields) නැවත නැවත නොයෙදිය යුතුයි.
Functional
Dependency
Table එකක key attribute එක මත අනෙක් attributes සියල්ලම රඳා පවතිනව නම් Functional Dependency කියනවා.
Examples :
Student(Register No,Name,Address,DOB,Age)
- Register No මත අනෙක් attributes සියල්ලම රඳා පවතිනවා.
Book(ISBN,Title,Publisher)
- First Normal Form එකේදි කරන්නේ primary key එක මත depend වෙන්නේ නැති attributes(Partial dependencies) වෙනම table එකකට ගන්නවා.
- ඒ වගේම repeating groups attributes සහ multi valued attributes වෙනම table එකකට ගන්නවා.
Example :
Normalize නොකරන ලද Table එක
Student Table:
Normalize නොකරන ලද Table එක
Student Table:
Second Normal Form(2NF)
Relationship එකක් 2NF එකට convert කරන්න කලින් අපි බලන්න ඕනේ ඒ relationship එක 1NF එකේද තියෙන්නේ කියලා.
- ප්රථම ප්රමතකරණයෙහි පවතින වගුවක උපලක්ෂණ සියල්ලම ප්රාථමික යතුර හා පූර්ණ පරායත්තතාවයේ පවතී නම් එය දෙවන ප්රමතකරණයෙහි පවතී.
Example :
Suppler_Part(SupplerNo, PartNo, SupplerName, SupplyAddress, PartPrice, Quantity)
{SupplerNo, PartNo} - SupplerName - Partial Dependency
{SupplerNo, PartNo} - PartPrice - Full Dependency
{SupplerNo, PartNo} - SupplyAddress - Partial Dependency
{SupplerNo, PartNo} - Quantity - Full Dependency
මෙහි පවතින Full Dependencies and Partial Dependencies වෙනම Table දෙකකට ගන්නවා.
Third Normal Form(3NF)
Transitive dependency
Relation එකක තියන key එකක් නොවන attribute එක්ක(non key attribute) ඒ relation එකේම තියන තවත් key එකක් නොවන attribute එක්ක මත functionally depend වෙනවා නම් Transitive dependency එකක් කියනවා.
3NF වලදී relation එකේ Transitive dependencies තියනව නම් ඒවා වෙනම Table එකකට ද ඉතිරි attributes වෙනම Table එකකට දානවා.
Example :
Employee(ENo, EName, BSalary, Allowance)
{ENo} - Name
{ENo} - BSalary
{ENo} - Allowance
{BSalary} - Allowance
මේ ලිපියෙන් කතා කළේ Database Normalization Concept එකට අදාළ First Normal Form , Second Normal Form and Third Normal Form ගැන.
මේ වගේ වැදගත් වෙන තවත් තොරතුරු අරන් එන්න බලාපොරොත්තු වෙන්නවා. දිගටම Blog එකත් එක්ක ඉන්න කියලා ආරාධනා කරනවා. හැමෝටම සුභ දවසක්.