දත්ත සමුදායක තාර්කික පරිපාටික සටහන
නිර්වචනය
දත්ත සමුදාය භෞතිකව නිර්මාණය කිරීමට ප්රථම එහි වගු සටහන් වල ව්ය්රහය නිරූපනය කිරීම
තාර්කික පරිපාටික සටහන වේ.
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..