Database – 2 – Keys


Database වල විවිධ keys භාවිතා වෙනවා කියලා දැනටමත් දන්නවා ඇති මම හිතන විදියට.මේ පොස්ට් එකේදී විස්තර කරන්නේ Primary Key, Foreign Key, composte key කියන දේවල් ගැන.එහෙනම් බලමු මේ යතුරු මොනවද කියලා.

Primary Key

කලින් පොස්ට් එකේදී  කිව්වා වගේ වෙනම නමකින් තිබුනට primary key කියන්නෙත් column එකක්ම තමයි.primary key එක unique වෙන්න ඕන වගේම null වෙන්න බැහැ.මේක තමයි table එකේ ප්‍රධානම දේ වෙන්නේ.database එකේ table එකක row එකක් අදුරගන්න තමයි Primary Key එක භාවිතා වෙන්නේ.මේ නිසා එක primary key එකකට තියෙන value එක තව එකකට තියෙන්න බැහැ.එහෙම තිබුනොත් row එක අදුරගන්න බැරි වෙන නිසා.ඒ වගේම primary key එකක් නැති rows තියෙන්න විදියකුත් නැහැ.මොකද එහෙම row එකකුත් හදුනා ගන්න බැරි වෙන නිසා.මිට අමතරව primary key එකට තියන value එක repeat වෙන්න බැහැ.මේක ගැන පහලදී විස්තර කරන්නම්.මේ විදියට ගත්තාම primary key එකක තියෙන්න ඕන ලක්ෂණ සාරාංශ කරන්න පුළුවන්.

1)  Unique වීම

2)  not null වීම

3)  repeat නොවීම

Untitled Diagram (3)

උදාහරණයක් විදියට ගත්තොත්, කලින් පොස්ට් එකේදී කිව්ව විදියට මේ table එකෙන් නිරුපණය වෙන්නේ student object එක.තනි student කෙනෙක් ගැන තියෙන්නේ row එකක.මේ row එක, එහෙම නැත්තන් studentව අදුරගන්න තමයි student_ID කියන attribute එක පාවිච්චි කරන්නේ.එක student කෙනෙක්ට තියෙන ID එක තව කෙනෙක්ට තියෙන්නේ බැහැ.ඒ කියන්නේ අර කලින් කිව්ව unique කියන කතාව.ඒ වගේම repeat වෙන්න බැහැ කියන්නේ ඒ table එකේ එම ID එක තියෙන්න පුළුවන් එක පාරයි කියන එක.එහෙම නැති උනොත් එකම ID එක කිහිප තැනක තිබුනම database එක හරියට වැඩ කරන්නේ නැති වෙනවා.ඒ වගේම මෙතැනදී මම primary key එක bold කරේ අදුරගන්න පහසු වෙන්න.design කරනකොට primary key එක යටින් ඉරක් අදිනවා (underline).ඒ විදියට තමයි primary key එක නිරුපණය කරන්නේ.

Foreign Key

එක table එකක primary key එක වෙනත් table එකකදී භාවිතා වෙනකොට ඒ key එක හදුන්වන්නේ foreign key කියලා.මේ key එකෙන් table දෙක අතර සම්බන්ධතාවයක් (reference) ඇතිවෙනවා.ඒ වගේම Foreign key එක අයිති table එකේ තියන primary key value හැම එකටම foreign key එක එකතු වෙන table එකේ value තියෙන්නම ඕන නැහැ.ඒ කියන්නේ foreign key එක null වෙන්න පුළුවන්.

Untitled Diagram (7)

faculty_ID කියන එක foreign key එකක් විදියට student table එකේ නිරුපණය වෙනවා.

primary key එක වගේම foreign key එක නිරුපණය කරන්නේ foreign key එක යටින් කඩ ඉරක් ඇදීමෙන්.

 

Composite Key

මේක විශේෂ වර්ගයේ primary key එකක්.මේක නිර්මාණය වෙන විධි කීපයක් තියනවා.

  • primary key එකක් සමග foreign key එකක් හෝ කීපයක් එකතු වීමෙන්.
  • foreign key දෙකක් හෝ වැඩි ගණනක් එකට එකතු වීමෙන්.
  • foreign key එකක් සමග වෙනත් column එකක් හෝ කීපයක් එකතු වීමෙන්.
  • primary key එකක් සමග වෙනත් column එකක් හෝ කීපයක් එකතු වීමෙන්.

primary key එකක අවශ්‍යතාවය වෙන්නේ data repeat වීම වැලැක්වීම නිසා තමයි මේ වගේ concept එකක් ඇති වෙලා තියෙන්නේ.මේකෙදි එකතු කරන keys එහෙමත් නැත්නම් columns සේරම තනි column එකක් විදියට තමයි වැඩ කරන්නේ.ඒ වගේම සාමාන්‍ය primary key එකක් විදියටම වැඩ කරනවා.මේ වගේ key එකක් හදාගන්නේ අපේ අවශ්‍යතාවය මත අපේ විසදුමට ගැලපෙන්න.

පුස්තකාලයක පොත් නිකුත් කිරීමට අදාළව table එකක් නිර්මාණය කිරීම මගින් මේ key එක ගැන පැහැදිලි කරගන්න පුළුවන්.

Untitled Diagram (8)

 

මේ table එකේ තියන foreign key නිල් පාටින් දක්වලා තියනවා.අනිත් columns කළු පාටින් දක්වලා තියනවා.අපිට මේ table එකට composite key එකක් දාගන්න නම් ඒ හදන key එක නිසා data repeat වෙන එක නවත්වන්න පුළුවන්.

අපි බලමු කොහොමද මේ key එක හදාගන්නේ කියලා.එක පොතක් member(user) කෙනෙක් ගන්න ක්‍රියාව නිරුපණය කරන එක තමයි ගැටලුව වෙන්නේ.මුලින්ම book_ID, user_ID කියන column දෙක එකතු කරලා බලමු.

එක user කෙනෙක් පොතක් ගන්න එක database එකේ save කරාම column දෙකේම තියන value අවස්ථා දෙකේදී වෙනස්.එම userම ඒක බාරදීලා වෙනත් පොතක් ගන්නවා.user _id එක සමාන උනත් book_id වෙනස් වෙනවා.එතකොට data repeat වෙලා නැහැ.ඒ වගේම වෙනස් userලා දෙන්නෙක් එකම පොත ගත්තාමත් data repeat වෙන්නේ නැහැ.නමුත් user කෙනෙක් පොතක් අරගෙන, ඒක බාරදීලා ආයෙත් දවසක් ඒ පොතම ගත්තොත් primary key එක විදියට ගත්ත value දෙකම ආයෙත් වෙනත් row එකක තියනවා.ඒ කියන්නේ data repeat වෙලා.මෙහෙම වෙන්න හේතුව පොත ගත්ත දිනය ගැන සැලකුවේ නැති එක නිසා සාමාන්‍ය column එකක් වෙන date එකත් primary key එක විදියට එකතු කරනවා.එතකොට එකම user එකම පොත දවස් දෙකකදී හෝ වැඩි ගණනකදී ගත්තාම user_ID,book_IDසමාන උනත් date එක සමාන නැති නිසා data repeat වෙන්නේ නැහැ.

 

මේ keys වලින් කරන්නේ කලින් කිව්වා වගේ tables අතර සම්බන්ධතා නිරුපණය කිරීම.ඒ සම්බන්ධතා වලට අනුව tables වල columns වල හැසිරීම ගැන තමයි මේ පොස්ට් එකේදී කතා කරේ.one-to-one, one-to-many, many-to-many කියන්නේ tables අතර තියන සම්බන්ධතා.මොනවද මේ සම්බන්ධතා(relationships) කියන දේ මීලග පොස්ටුවෙන් විස්තර කරන්නම්.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s