දත්ත සමුදායේ ඇති එක් සම්බන්ධතාවයක් ඇත . Table A හි ඇති එක් එක් වාර්තාවේ Table B හි බොහෝ සම්බන්ධිත වාර්තා තිබෙන්නට පුළුවන. නමුත් Table B හි එක් එක් වාර්තාවේ Table A හි ඇති එකම අනුරූප සටහනක් තිබිය හැකිය. දත්ත ගබඩාව වඩාත් පොදු සාපේක්ෂ දත්ත සමුදාය නිර්මාණය කර ඇති අතර එය හොඳ නිර්මාණයකි.
උගන්වන ගුරුවරයා හා පාඨමාලා අතර ඇති සම්බන්ධය සලකා බලන්න. ගුරුවරයෙකුට විවිධ පාඨමාලා හැදෑරීමට හැකිය, නමුත් පාඨමාලාවට ගුරුවරයා සමඟ එකම සබඳතාවක් නොතිබෙනු ඇත.
එබැවින්, ගුරුවරුන්ගේ වගුවක එක් එක් වාර්තාව සඳහා පාඨමාලා වගුවෙහි බොහෝ වාර්තා තිබෙන්නට පුළුවන. මෙය එක්-බොහෝ සබඳතා: එක් ගුරුවරයෙකුට විවිධ පාඨමාලා සඳහා.
එක්-බොහෝ සබඳතාවක් පිහිටුවීම වැදගත් වන්නේ ඇයි?
එක-බොහෝ සබඳතාවයක් නියෝජනය කිරීම සඳහා ඔබට අඩුම තරමින් වගු දෙකක් අවශ්යය. ඇයි අපි බලමු.
සමහරවිට අපි උගන්වන ලද නම සහ පාඨමාලා වාර්තා කිරීමට අවශ්ය වූ ගුරුවරු මේසයක් නිර්මාණය කළා විය හැකිය. අපි මෙය සැලසුම් කළ හැකිය:
Teacher_ID | Teacher_Name | පාඨමාලාව |
---|---|---|
Teacher_001 | කාමන් | ජීව විද්යාව |
Teacher_002 | වෙරෝනිකා | ගණිතය |
Teacher_003 | ජෝර්ජ් | ඉංග්රීසි |
කාමන් දෙකකට හෝ ඊට වැඩි පාඨමාලා උගන්වන විට කුමක් කළ යුතුද? මෙම සැලසුම සමඟ අපට විකල්ප දෙකක් තිබේ. අපට මෙය කර්මෙන්ගේ පවතින වාර්තාවට එකතු කළ හැකිය:
Teacher_ID | Teacher _Name | පාඨමාලාව |
---|---|---|
Teacher_001 | කාමන් | ජීව විද්යාව, ගණිතය |
Teacher_002 | වෙරෝනිකා | ගණිතය |
Teacher_003 | ජෝර්ජ් | ඉංග්රීසි |
කෙසේ වෙතත්, ඉහත සඳහන් කළ සැලැස්ම අසම්බන්ධ කළ හැකි අතර පසුව දත්ත ඇතුල් කිරීම, සංස්කරණය කිරීම හෝ මකා දැමීමට උත්සහ කිරීමේ දී ගැටලු ඇතිවිය හැක.
දත්ත සෙවීමට අපහසු වේ. මෙම සැලැස්ම දත්ත සමුදායක් සාමාන්යකරණය කිරීමේ පළමු මූලධර්මය උල්ලංඝනය කරයි, පළමු සාමාන්ය ආකෘතිය (1NF) , එක් එක් වගු සෛල එක් තනි දත්ත එක් දත්තයක් අඩංගු විය යුතුය.
තවත් නිර්මාණ විකල්පයක් වන්නේ කර්මන් සඳහා දෙවන වාර්තාව එකතු කිරීමයි:
Teacher _ID | Teacher _Name | පාඨමාලාව |
---|---|---|
Teacher_001 | කාමන් | ජීව විද්යාව |
Teacher_001 | කාමන් | ගණිතය |
Teacher_002 | වෙරෝනිකා | ගණිතය |
Teacher_003 | ජෝර්ජ් | ඉංග්රීසි |
මෙය 1NF වලට අනුකූලව වුවද එය තවමත් දුර්වල දත්ත සමුදා නිර්මාණයකි. එය අතිරික්තතාවයක් හඳුන්වා දීම සහ අනවශ්ය ලෙස විශාල දත්ත ගබඩාවක් පාගා දැමීම නිසාය. ඊටත් වඩා වැදගත් වන්නේ දත්තයන් අනනුකූල විය හැකිය. උදාහරණයකට කාමන්ගේ නම වෙනස් වුණාද? දත්ත සමඟ වැඩ කරන අයෙකු තම වාර්තාවේ එක් වාර්තාවකට යාවත්කාලීන කර දෙවන වාර්තාවට යාවත්කාලීන කිරීමට අසමත් වේ. මෙම සැලසුම 1NF වලට අනුකූලව දෙවන සාමාන්ය ආකෘතිය (2NF) උල්ලංඝනය කරයි. තවද දත්ත රාශිගත දත්ත සමූහයන් සහ ඒවා අතර සබඳතාවයක් ඇති කිරීම මගින් දත්ත සමූහයන් අනුසාරයෙන් බහු වාර්ථිවල ප්රමාදවීම් මඟහරවා ගත යුතුය.
එක්-බොහෝ සබඳතා ඇති දත්ත සමුදායක් නිර්මාණය කරන්නේ කෙසේද
ගුරුවරුන් හා පාඨමාලා වගුවෙහි එක-බොහෝ සබඳතාවයක් ක්රියාත්මක කිරීම සඳහා, අපි වගු දෙකට බෙදී ඒවා විදේශීය යතුර භාවිතා කරමින් ඒවා සම්බන්ධ කරන්නෙමු.
මෙන්න, අපි ගුරුවරුන්ගේ වගුවෙහි පාඨමාලා තීරුව ඉවත් කර ඇත:
Teacher _ID | Teacher _Name |
---|---|
Teacher_001 | කාමන් |
Teacher_002 | වෙරෝනිකා |
Teacher_003 | ජෝර්ජ් |
මෙන්න පාඨමාලා වගුවයි. ගුරු වගුවෙහි ගුරුවරයෙකුට පාඨමාලාවක් සම්බන්ධ වන එහි විදේශීය යතුර Teacher_ID සම්බන්ධ කරයි:
Course_ID | පාඨමාලා නාමය | Teacher_ID |
---|---|---|
Course_001 | ජීව විද්යාව | Teacher_001 |
Course_002 | ගණිතය | Teacher_001 |
Course_003 | ඉංග්රීසි | Teacher_003 |
විදේශීය යතුරක් භාවිතා කරමින් ගුරුවරුන් හා පාඨමාලා වගුව අතර සම්බන්ධතාවක් අපි වර්ධනය කර තිබෙනවා.
මෙය අපට පවසන්නේ ජීව විද්යාව සහ ගණිතය දෙකම කර්මෙන් විසින් උගන්වනු ලබන බවත්, ඉංග්රීසි උගන්වන්නේ ජෝර්ජ් බවත්ය.
මෙම සැලසුම ඕනෑම හිඟයකින් තොරව මග හැරිය හැකි ආකාරය අපට දැක ගත හැකි අතර, තනි ගුරුවරුන්ට විවිධ පාඨමාලා ඉගැන්වීමට ඉඩ සලසයි, සහ එක-බොහෝ සබඳතාවයන් ක්රියාත්මක කරයි.
දත්ත සමුදායන් එකිනෙකා අතර සම්බන්ධය හා බොහෝ-බොහෝ සබඳතාවයන් ක්රියාත්මක කළ හැකිය.