Tuesday, 20 December 2016

MySQL Sinhala Lesson Series - දත්ත සමුදාය හඳුනාගනිමු. | LESSON 01




චරිත් කියන්නෙ යාළුවො හුඟක් ඉන්න විනෝදයෙන් ඉන්න කැමති කෙනෙක්. ස්කෝලෙ යන කාළෙ ඉඳලා චරිත්ට යාළුවො සෑහෙන පිරිසක් ඉඳලා තියෙනවා. හැබැයි දැන් චරිත් තවදුරටත් ස්කෝලෙ යන්නෙ නම් නැහැ. එයා දැන් පෞද්ගලික ආයතනයක රැකියාවක් කරනවා. හැබැයි එයා විනෝදයට ආසා කෙනෙක් කිව්වට අවුරුදු ගාණකින් එයාගෙ පරණ යාළුවන්ව චරිත්ට හම්බවෙලා නැහැ. ඉතින් ඒකාකාරී ජීවිතේට පොඩි වෙනසකටත් එක්ක එයා යාළුවන්ට පොඩි පාටි එකක් දෙන්න හිතාගෙනයි ඉන්නෙ.

චරිත්ට ස්කෝලෙ යන කාලේ ඉඳන් යාළුවො සෑහෙන්න හිටියා. පාටි එකට යාළුවන්ට ආරාධනා කරන්න නම් චරිත්ට ඒ ඒ යාළුවන්ගෙ විස්තර හැම එකක්ම වගේ ඕනා වෙනවා. ඒ කාළෙදි චරිත් මෙහෙම වැඩක් කරලා තියෙනවා. ඒ, ස්කෝලෙන් ඉවත් වෙන්න ඉස්සරලා චරිත් එයාගෙ යාළුවෝ කිහිපදෙනෙකුගෙම නම්, ගම්, මොනවද එයාලා කරන්නෙ යන ආදී විස්තර කොළ කිහිපයක ලියාගෙන තියාගත්තු එක. හරියටම කිව්වොත් එක එක යාළුවාට එක එක කොළය ගාණේ. දැනට චරිත්ට ළඟින්ම ඉන්න යාළුවන්ගෙ විස්තර මොනවාහරි වෙනස් වුණොත් චරිත් ඒක ඒ ඒ කොළ වල වෙනස් කරන්නත් අමතක කළේ නැහැ. චරිත්ගෙ යාළුවෙක් වුණු සමීරගෙ විස්තර තියෙන කොළයක් තමයි පහළින් තියෙන්නේ;



පොඩි දෙයක් කියන්න ඕනා. චරිත් ඒ කාළෙදි ගොඩක් දෙනෙකුගේ විස්තර ලියලා තියා ගත්තත් දැන් ඉතිරි වෙලා තියෙන්නේ යාළුවො 128 දෙනෙක්ගෙ විස්තර විතරයි. ඉතින් ඒ 128න් යාළුවො කිහිපදෙනෙකුට තමයි චරිත් ආරාධනා කරන්නයි හිතාගෙන ඉන්නෙ. ඉතින් ඉඩ තියෙන පිළිවෙලට කියලා හිතාගෙන චරිත් මුලින්ම ආරාධනා කරන්න හිතාගෙන ඉන්නෙ එයාගෙ වයසෙ උන්නු යාළුවො ටිකට. එයා 1996 දි ඉපදුන කෙනෙක්. ඒ කියන්නෙ අපි කොළ 128කින් 1996 ඉපදුනු යාළුවන්ව තෝරා ගන්න ඕනා. චරිත් මේ විදිහට කොළ ටික තෝරගෙන යද්දි චරිත් දකිනවා සමහර කොළ වල උපන්දිනය තියෙන කොටස බොඳවෙලා ගිහිල්ලා තියෙන විදිහ. සමහරක් කොළ වල ඒ කොටස ඉරිලම ගිහිල්ලා.  ටිකක් වෙලාවක් යනකොට චරිත්ට වැඩේ එපාවේගෙන යනවා. ඒත් කොහොම හරි යාළුවො ටික හොයාගන්නත් ඕනා. උපන්දිනේ විතරක් තියෙන කට්ටිය නෙවෙයි. පස්සෙදි චරිත්ට යාළුවන්ගෙ තවත් විස්තර හොයාගන්න ඕනා වෙනවා. එතකොට චරිත්ට මේ වැඩේ ලේසි කරගන්න විසඳුමක් තියෙයිද?

ඔව්. මොකද නැත්තෙ. අපි දැන් පරිගණකගත දත්ත සමුදාය ගැන ඉගෙන ගන්නෙ ඒ වැඩේටනේ. එහෙනම් ඉතිං අපි චරිත්ට ඒ වැඩේ කරන්න උදව් කරමු නේද?

මොකද්ද මේ දත්ත සමුදායක් (database) කියන්නේ?

දත්ත සමුදායක් කියන්නේ එකකට එකක් සම්බන්ධ වුණු, දත්ත වලින් පිරුණු වගු සහ ඒවාට අදාළව ගොඩනැඟෙන SQL භාෂාවේ උපදෙස් සමූහයකටයි.

අපි අන්තර්ජාලයේ කරන හැම වැඩකටම මෙයා උදව් වෙනවා. ගූගල් සර්ච් කරද්දි, අන්තර්ජාලයේ ඇනවුමක් කරද්දි, ටිකට් එකක් වෙන් කරද්දි, අන්තර්ජාලයෙන් බඩු ගනිද්දි වගේ හැම වැඩක්ම කරගන්නෙ දත්ත සමුදායේ ආධාරයෙන්. මේ හැම එකකටම අදාල කරන දත්ත, දත්ත සමුදාය තුළ අඩංගු වෙලා තියෙනවා. අපි ගූගල් සර්ච් වලින් යම් දෙයක් හොයද්දි, ඒකට අදාළ කරන විස්තරය දත්ත සමුදායෙන් විමසුම් කිරීමක් (querying) කරලා තමයි අපිට ඒකට අදාළ කරන විස්තරය ගූගල් එක හොයලා දෙන්නේ.

දත්ත සමුදාය හැම තැනකම තියෙනවා



එතකොට අපි කතා කළා දත්ත සමුදායක් ඇතුලේ එකිනෙකට සම්බන්ධ වුණු දත්ත ඇතුලත් වගු තියෙනවා කියලා. එක දත්ත සමුදායක් ඇතුලේ තියෙන එක වගුවක් අරගත්තම මේ වගුව විශේෂ ලක්ෂණ දෙකකින් සමන්විත වෙන විදිහට තමයි වගුව නිර්මාණය වෙන්නේ. ඒ තීරු(column) සහ පේළි(rows) වෙන විදිහට. ඒ විදිහට කොටස් දෙකකින් වගුව නිර්මාණය වෙන්නෙ අපි ඇතුලත් කරන දත්ත වල වර්ගීකරණයන් නිවැරදි ආකාරයෙන් ඇතුලත් කරන්න පුළුවන් වෙන විදිහටයි. උදාහරණයක් විදිහට අපි චරිත්ගෙ යාළුවන්ගෙ කොළ ටික බලමු. ඒකෙ සමීර ගැන විස්තර තියෙනවා. සමීරගෙ උපන්දිනය අපිට තොරතුරක් විදිහට ඒ කොළෙන් ගලවලා ගන්න පුළුවන්. ඉතින් අපි සමීරගෙ දත්ත, වගුවකට ඇතුලත් කරනවා නම්, එයාගෙ උපන්දිනය උපන්දිනයට වෙන් වෙලා තියෙන තීරුවක් තුළ පේළියක් විදිහට අපිට ඇතුලත් කරන්න පුළුවන් වෙනවා. හරිම සරලයි. ඔන්න ඕකයි දත්ත සමුදායක වගුවක් තීරුවකින් හා පේළියකින් සමන්විත වීමේ වාසිය.



හරි. එහෙනම් අපි දැනගත්තා දත්ත සමුදායක් කියන්නෙ මොකක්ද, ඒක ඇතුලේ තියෙන්නෙ මොනාද කියන දේවල්. එහෙනම් අපි චරිත්ට දත්ත සමුදායක් හදලා, ඒ දත්ත සමුදාය ඇතුලේ එයාගේ යාළුවන්ගෙ විස්තර ඇතුලත් කරන්න පුළුවන් වෙන වගුවක් නිර්මාණය කර ගනිමු.

වගුවක් නිර්මාණය කරන්නෙ කොහොම ද?

වගුවක් මුලින්ම නිර්මාණය කරන්න ඉස්සරවෙලා අපි හඳුනගෙන ඉන්න ඕන අපි ඇතුලත් කරන දත්ත වල වර්ගීකරණය මොනවගේ ද කියලා. ඒවා තීරණය වෙන්නෙ අපි ළඟ තියෙන දත්ත අනුවයි. චරිත්ගෙ යාළුවො ටිකදෙනා ගත්තොත් එයාලට සමාන වෙන ගොඩක් දේවල් තියෙනවා. ඒ පිළිවෙලට තමයි චරිත් එයාගෙ කොළ වලට යාළුවන්ගෙ විස්තර ඇතුලත් කරලා තියෙන්නේ.  ඒ හින්දා අපිට දත්ත සමුදායට වගුව නිර්මාණය කරන්න හරිම ලේසියි.

අපි මුලින්ම සමීරගෙ විස්තර තියෙන කොළේ බලමු. මේකෙ තියෙන විස්තර අනුව අපිට දත්ත වල ස්වභාවයන් මෙන්න මේ විදිහට වර්ගීකරණය කරන්න පුළුවන්;

මුල් නම
අවසාන නම
උපන් දිනය
වැඩකරන ස්ථානය
ඉන්න තැන
විවාහක/අවිවාහක බව
ආසා කරන දේවල්
එයා හොයන්නෙ මොනවද?
ජංගම දුරකථන අංකය
ඊ-මේල් ලිපිනය

හොඳයි. මේ වර්ගීකරණයන්ට අදාල වෙන හැම යාළුවෙකුගේම දත්ත චරිත් ළඟ තියෙනවා. වගුව නිර්මාණය කරද්දි මේ වර්ගීකරණයන් අපි ඉස්සරලා කතා කරපු වගුවේ තීරු වලට දාන්න පුළුවන්. ඉතින් ඒ වර්ගීකරණයන්ට අයත් වෙන දත්තයන් අපිට දාන්න පුළුවන් වගුවේ පේළි වලට.
වගුව නිර්මාණය කරන්න කලින් පොඩි දෙයක් කියන්න තියෙනවා. එතකොට අපි වගුවේ තීරු වලට මොන වගේ නම් පාවිච්චි කරන එකද හොඳ? ඔව්. අපි හදන්න යන්නෙ පරිගණකගත දත්ත සමුදායක්. ඉතින් ඒ හින්දා අපි වගුවේ තීරු වලට පාවිච්චි කරන නම් පිළිබඳව හොඳ සැලකිල්ලක් දක්වන්න ඕනා. මෙන්න මේ තීරු වලට නම් යොදාගනිද්දි යම් යම් රීතීන් කිහිපයක් අනුගමනය කරනවා;

නමක් යෝජනා කරද්දි අදාළ වර්ගීකරණයට ගැලපෙනම නමක් වෙන්න ඕනා.
නම පුළුවන් තරම් කෙටි කරන්න බලන්න.
වචන දෙකක් අතර පරතරයක් ගනිද්දි space තියන්න එපා. ඒ වෙනුවට underscore එකක් පාවිච්චි කරන්න. එහෙම පාවිච්චි කරන්නෙ නැත්තම්, මුල් වචනේ මුල් අකුර සිම්පල් අකුරෙන් ලියලා, දෙවෙනි වචනෙ මුල් අකුර කැපිටල් අකුරකින් පටන්ගන්න‍.
උදා -: first_name /  firstName

හරි ඔන්න අපි එහෙනම් චරිත්ගේ යාළුවන්ගෙ විස්තර ටික පරිගණකගත දත්ත සමුදායකට ඇතුලත් කරන්න ඉස්සරලා වගුවේ ආකෘතිය නිර්මාණය කරගනිමු. එහෙම නිර්මාණය කරගත්ත වගුවක් තමයි පහතින් තියෙන්නේ.



මේ විදිහට නිර්මාණය කරගත්තු වගුව අපි දත්ත සමුදායකට ඇතුලත් කරන්න ඕනා. ඒ ඔක්කොටම කලින් දත්ත සමුදායක් නිර්මාණය කරලා ඉන්න ඕනා. ඊටත් කලින් SQL භාෂාව ගැන දැනගෙන ඉන්න ඕනා. මොකද දත්ත සමුදාය හැසිරීම 100%ක්ම සිදු කරන්නේ මෙන්න මේ SQL භාෂාවෙන් වෙන හින්දා. මේ සියල්ලක්ම අපි ඉදිරි ලිපි පෙළ ඔස්සේ කතාබහ කරනවා. ඉතින් ඒ වෙනකල් අපිත් එක්ක දිගටම රැඳිලා ඉන්න කියලා මතක් කරනවා. හැමෝටම ජය හා සතුට!