පූර්ණ ක්රියාකාරී රඳා පැවැත්මක් යනු ද්විතීය සම්මත ආකෘතිය (2NF) වල සාමාන්යකරණ සම්මතය සමාන වේ. කෙටියෙන් කියතොත්, මෙහි අර්ථය වන්නේ පළමු සාමාන්ය ආකෘතියේ (1NF) අවශ්යතා සපුරා ඇති බවයි, සහ ප්රධාන නොවන ගුණාංග මුලික යතුර මත සම්පූර්ණයෙන්ම ක්රියාකාරී ලෙස රඳා පවතී.
මෙය සංවේදී වීම තරම් සංකීර්ණ නොවේ. මේ ගැන වැඩි විස්තර දැනගන්න.
පළමු සාමාන්ය ආකෘතියේ සාරාංශය
දත්ත ගබඩාව සම්පූර්ණයෙන්ම ක්රියාකාරී ලෙස රඳා පවතිනුයේ පෙර පළමුවන සාමාන්ය ආකෘතිය සමග අනුකූල විය යුතුය.
සෑම දෙයක්ම එක් එක් සලකුණ තනි, පරමාණුක අගයක් තිබිය යුතුය.
නිදසුනක් ලෙස, පහත දැක්වෙන වගුව 1NF සමග අනුකූල නොවේ , ටීනා සේවකයා තනිව ස්ථාන දෙකකට සම්බන්ධ වී ඇති නිසා, ඔවුන් දෙදෙනාම එකම කොටුවක් තුළ:
සේවකයා | ස්ථානය |
---|---|
ජෝන් | ලොස් ඇන්ජලීස් |
ටීනා | ලොස් ඇන්ජලීස්, චිකාගෝ |
මෙම සැලැස්මට අවසර දීමෙන් දත්ත යාවත්කාලීන හෝ ප්රවේශයන් අහිතකර ලෙස බලපෑ හැකිය. 1NF අනුකූලතාව තහවුරු කිරීම සඳහා, වගුව ප්රතිනිර්ණය කරන්න, සියලු ගුණාංග (හෝ තීරු සෛල) එක් අගයක් දරනු ඇත:
සේවකයා | ස්ථානය |
---|---|
ජෝන් | ලොස් ඇන්ජලීස් |
ටීනා | ලොස් ඇන්ජලීස් |
ටීනා | චිකාගෝ |
නමුත් 1NF තවමත් දත්ත සමඟ ගැටලු මඟ හැරීම සඳහා ප්රමාණවත් නොවේ.
2NF සම්පූර්ණයෙන්ම රඳා පවතී
සම්පූර්ණයෙන්ම රඳා පවතින්න, සියලු නොවන අපේක්ෂකයින්ගේ ප්රධාන ගුණාංගයන් ප්රාථමික යතුර මත රඳා පවතී. (උදාහරණ වශයෙන් ප්රාචීරක හෝ විදේශීය යතුරක්) ප්රාථමික හෝ අද්විතීය අක්ෂර ලකුණක් ලෙසින් හඳුනා ගන්න.
දත්ත සමුදා සැලසුම්කරුවන් උපලක්ෂණ අතර මත යැපෙන සම්බන්ධතා විස්තර කිරීමට අංකනය භාවිතා කරයි:
A ගුණනය A අගය අගය තීරණය කරයි නම්, අපි A -> B - මෙය B ලෙස ක්රියාකාරී ලෙස රඳා පවතින බව A විසින් ලියනු ලැබේ. මෙම සම්බන්ධතාවය A මගින් B අගය අගය තීරණය කරයි.
උදාහරණයක් ලෙස, පහත සඳහන් සේවක දෙපාර්තමේන්තු වගුවෙහි, සේවකයින්ID සහ DeptID යන දෙකම අපේක්ෂක යතුරු දෙකම: EmployeeID යනු වගුවේ ප්රාථමික යතුරයි, DeptID යනු විදේශීය යතුරකි.
ඕනෑම වෙනත් ලක්ෂණයක් - මෙම අවස්ථාවේදී, EmployeeName සහ DeptName - එහි වටිනාකම ලබා ගැනීම සඳහා ප්රාථමික යතුර මත රඳා පවතී.
සේවක හැදුනුම්පත | සේවක නාමකරණය | DeptID | DeptName |
---|---|---|---|
Emp1 | ජෝන් | Dept001 | මුදල් |
Emp2 | ටීනා | Dept003 | විකුණුම් |
එම්ප් | කාලෝස් | Dept001 | මුදල් |
මෙම අවස්ථාවෙහිදී වගුව සම්පූර්ණයෙන්ම රඳා නොපවතින බැවින්, සේවක නාමයෙන් ප්රාථමික යතුර EmployeeID මත රඳා පවතී, DeptName වෙනුවට DeptID මත රඳා පවතී. මෙය අර්ධ වශයෙන් යැපෙන්නන් ලෙස හැඳින්වේ.
මෙම වගුව 2NF ට ගැලපෙන පරිදි, දත්තයන් දෙකකට වගු ලෙස වෙන් කර තැබිය යුතුය:
සේවක හැදුනුම්පත | සේවක නාමකරණය | DeptID |
---|---|---|
Emp1 | ජෝන් | Dept001 |
Emp2 | ටීනා | Dept003 |
එම්ප් | කාලෝස් | Dept001 |
සේවක වගුව වෙතින් DeptName ගුණාංගය ඉවත් කර නව වගු සකසන්න:
DeptID | DeptName |
---|---|
Dept001 | මුදල් |
Dept002 | මානව සම්පත් |
Dept003 | විකුණුම් |
දැන් වගු අතර සබඳතා සම්පූර්ණයෙන්ම රඳා පවතී, හෝ 2NF හි.
සම්පූර්ණ රදා පැවැත්ම වැදගත් වන්නේ ඇයි?
දත්තගබඩාවේ ගුණාංග අතර සම්පූර්ණ රදා පැවැත්ම දත්ත අඛණ්ඩතාව සහතික කිරීම සහ දත්ත විෂමතා මඟ හැරීම මගින් උපකාරී වේ.
නිදසුනක් ලෙස, ඉහතින් දැක්වෙන වගුවේ ඇති වගුව සලකා බලන්න. මෙන්න, නැවතත්:
සේවකයා | ස්ථානය |
---|---|
ජෝන් | ලොස් ඇන්ජලීස් |
ටීනා | ලොස් ඇන්ජලීස් |
ටීනා | චිකාගෝ |
ටීනා වාර්තා දෙකක් ඇත. දෙදෙනෙකු සිටින බව නොදැනුවත්වම යාවත්කාලීන කර ඇත්නම්, ප්රතිඵලය අස්ථිර දත්ත වනු ඇත.
නැත්නම්, මෙම වගුවට සේවකයෙක් එක් කිරීමට අවශ්ය නම්, නමුත් අපි තවමත් ස්ථානය නොදන්නේද? පිහිටුම් ප්රත්යාස්ථතාවය NULL අගයන් ලබා නොදේ නම්, නව සේවකයෙකු එක් කිරීමට පවා ඉඩ නොලැබේ.
සාමාන්ය යැපීම සඳහා සම්පූර්ණ ප්රතිරූපයක් වන්නේ සමස්ත රූපය නොවේ. ඔබගේ දත්ත ගබඩාව තුන්වන සාමාන්ය ආකෘතිය (3NF) බවට වග බලා ගන්න.