Wednesday, May 6, 2020

8 පාඩම - දත්ත සමුදායක තාර්කික පරිපාටික සටහන සැලසුම් කිරීම

දත්ත සමුදායක තාර්කික පරිපාටික සටහන නිර්වචනය
දත්ත සමුදාය භෞතිකව නිර්මාණය කිරීමට ප්‍රථම  එහි වගු සටහන් වල ව්‍ය්‍රහය නිරූපනය කිරීම තාර්කික පරිපාටික සටහන වේ.
 
EMPLOYEE(emp_id,name,department)
EMPLOYEE
emp_id
name
department



යතුරු(Key)
වගුවක ඇති දත්තයක් අනෙක් ඒවායෙන් වෙන් කර හදුනා ගැනීම සදහා යොදා ගන්නා සුචිකය මේ නමින් හැදින්වේ මෙවැනි සුචිකයන් කිහිපයක් පවතී.
ප්‍රාථමික යතුර(primary key)
නිරූප්‍ය යතුර(candidate key)
විකල්ප යතුරු(alternate key)
ඒකා බද්ධ යතුර(composite key)
ආගන්තුක යතුර(foreign key)
නිරූප්‍ය යතුර(Candidate Key)
Candidate key එකක් කියන්නෙ, table එකක record එකක් වෙන්කර හඳුනගන්න පුළුවන් attribute එකක් හෝ කිහිපයක්. Table එකක candidate keys එකකට වඩා තියෙන්න පුළුවන්. Candidate key එකක, එකිනෙකට වෙනස් values තියෙන්න ඕන වගේම, null values තියෙන්නේ බැහැ. Table එකක තියන candidate keys සියල්ල අතරින් අපි වඩාත් සුදුසු attribute එක primary key එක විදියට තෝරාගන්නවා.
උදාහරණය: ඉහත උදාහරණයේ, Student_id සහ NIC කියන attributes දෙකම අපිට candidate keys විදියට හඳුනගන්න පුළුවන්.


 
ප්‍රාතමික යතුර(Primary Key)
Primary key එකක් කියන්නෙ, table එකක tuple එකක් වෙන් කර හදුනාගන්න පුළුවන් attribute එකකට. ඒ වගේම තමයි, database එකක tables අතර සම්බන්දයක් (relation) ගොඩනගන්න අපි මේ primary key එක පාවිච්චි කරනවා. සමහර අවස්ථා වලදී, මේ primary key එක attributes කිහිපයකින් සමන්විත වෙන්න පුළුවන්. ඒ වගේ primary key එකකට අපි කියන්නෙ සංයුක්ත ප්‍රාථමික මූලයක් (composite primary key) කියලා. Primary key එකක් තෝරාගන්න කලින් පහත කරුණු වලට අවදානය යොමු කරන්න.
  • Primary key එකක අගයන් (values) එකිනෙකට වෙනස් විය යුතුයි. (unique)
  • Primary key එකක අභිශුන්‍ය අගයන් (null values) නොතිබිය යුතුයි.
උදාහරණය: ඉහත සඳහන් කළ student table එකේ, Student_id කියන attribute එක, table එකේ තියන records වෙන්කර හඳුනගන්න අපිට පාවිච්චි කරන්න පුළුවන්. ඒ නිසා, Student_id එක, primary key එක විදියට නම් කරන්න සුදුසු attribute එකක්. නමුත්, Student_name කියන attribute එක primary key එකට සුදුසු නැහැ. ඒකට හේතුව තමයි, එකම නම කිහිප සැරයක් තියෙන්න පුළුවන් නිසා, records වෙන්කර හඳුනගන්න බැහැ.



ඒකාබද්ධ යතුර(Composite Key)
දත්තයක් නිශ්චිතලම හදුනා ගැනීම සදහා  කිහිපයක් භාවිතා කිරීමට සිදු විට එම ක්ෂේත්‍ර සියල මේ නමින් හැදින්වේ.

  

විකල්ප මූලය (Alternate Key)

Candidate keys අතරින් primary key එකක් තෝරගත්තට පස්සේ, ඉතිරිවෙන හැම candidate key එකක්ම alternate key එකක් විදියට හඳුන්වන්න පුළුවන්. Alternate key එකක attribute එකකටත් record එකක් වෙනකර හඳුනගන්න පුළුවන් හැකියාව තියනවා.
උදාහරණය: ඉහත උදාහරණයේ, Student_id එක අපි primary key එක විදියට තෝරගත්තට පස්සේ, NIC කියන candidate key එක alternate key එකක් වෙනවා.

 


ආගන්තුක යතුර(Foreign Key)
Foreign key එකක් කියන්නෙ, වෙනත් table එකක, primary key එකකට සමුද්දේශ (reference) කරන, යම්කිසි table එකක තියන attribute එකක් (හෝ කිහිපයක්). වෙනත් විදියකට කිව්වොත්, foreign key එකක් පාවිච්චි කරන්නෙ, database එකක tables 2ක් සම්බන්ද කරන්න. ඒ වගේම තමයි, foreign key එකක් දත්ත වල සමුද්දේශක පුර්ණත්වය (referential integrity) පෙන්වන්නත් පාවිච්චි කරනවා. (මේ ගැන වැඩි තොරතුරු අපි මේ පාඩම්මාලාවෙම පසු කොටසෙ සාකච්චා කරනවා)
උදාහරණය: ඉහත උදාහරණයේ Faculty_id කියන attribute එක, Student table එකේ foreign key එක විදියට හැසිරෙනවා. ඒ වගේම, Faculty_id එක පාවිච්චි කරලා Students සහ එයාලට අදාල Faculty එක අපිට සම්බන්ද කරන්න පුළුවන්. Faculty_id කියන්නෙ, Student table එක reference කරන Faculty table එකේ primary key එක.
 
වසම(Domain)

Domain එකක් කියන්නෙ, යම්කිසි attribute එකකට අපිට පාවිච්චි කරන්න පුළුවන් values වලට. මේ හැම value එකක්ම, එකම data type එකකට අදාලයි.
උදාහරණ: ධන නිඛිල සමුහයක්, a සිට z දක්වා ඉංග්‍රීසි අක්ෂර
මේ domain constraint එකෙන් කියවෙන්නෙ, relational database එකක තියන හැම attribute එකක්ම නම් කරන්න ඕන, යම්කිසි domain එකකට/පරාසයකට (range) යටත්ව කියලා. අපි domain එකක් attribute එකක් සඳහා තීරණය කරද්දී, සැබෑ ලෝකේ සංසිද්දියක් හැමවිටම අදාල කරගන්න ඕන.
උදාහරණ:
  • Age කියන attribute එකක අගයක් කිසිම වෙලාවක 0ට වඩා අඩු වෙන්න බැහැ. ඒ වගේම තමයි, වයස පුර්ණ සංඛ්‍යාවක් වෙන්නත් ඕන. ඒ නිසා, age කියන attribute එකේ domain එක වෙන්නෙ ධන පුර්ණ සංඛ්‍යා කුලකය.
  • දුරකථන අංකයක් හැමවිටම ඉලක්කම් 10කින් සම්විතයි. ඒ වගේම, 0-9ත් අතර ඉලක්කම් වලින් ලියවිය යුතුයි.ඒ නිසා, දුරකථන අංකයක domain එක වෙන්නෙ, 0-9ත් අතර ඉලක්කම් 10 සංඛ්‍යා කුලකය.
  • ඉහත වගුව 1’ හි, Student_id කියන attribute එකේ අගයන් ඉලක්කම් 3කින් ලියවිලා තියනවා. ඒ නිසා, ඇතුලත් කරන හැම Student_id එකක්ම ඉලක්කම් 3කින් ලියවෙන්න ඕන. (මේ දේ තීරණය වෙන්නෙ අපි සලකන සැබෑ ලෝකේ සිද්දියත් සමඟ. උදාහරණයක් විදියට, වෙනත් පාසලක Student_id එකක් ඉලක්කම් 6කින් ලියැවෙන්න පුළුවන්. ඒ වගේ අවස්ථාවක Student_id එක ඉලක්කම් 6කින් අපි ලියන්න ඕන.)
 
 

No comments:

Post a Comment

Thank You..