Thursday, September 26, 2019

Entity Relationship Diagrams(ERD) - Part 2


කලින්  ලිපියෙදි මම කතා කලේ  ER Diagram එකක් කියන්නේ මොකද්ද?  සහ ER Diagram එකක  තියන main components තුනෙන්  Entities ගැන.  අද කතා කරන්න යන්නේ Attributes & Relationship කියන ඉතිරි components 2ක ගැන.


2. Attribute
  • Entity එකකට අයිති දේවල්  විස්තර කරන්නේ Attributes වලින්. 

  • ඒ කියන්නේ Entity එකට අදාළව  database එකට දාන්න ඕන properties. example එකක් විදිහට Campus එකේ Student කෙනෙක් ගත්තොත් එයාට Register no, Name, DOB, Age, Address, Telephone Number වගේ දේවල් අයිති වෙනවා. මේවට  Attributes කියනවා. 

  • Attribute එකක් නිරූපණය  කරන්නේ ඉලිප්ස(oval) හැඩයෙන්.



Attributes වර්ග 4ක් තියනවා.

a)  Key Attribute
b)  Multivalued Attribute
c)  Derived Attribute
d)  Composite Attribute

a)  Key Attribute
  • හිතන්න campus එකේ ඉන්න Studentලා අතරින් සමාන name තියන,  එකම දවසේ ඉපදුන, සමාන Ages වල ඉන්න ළමයි කිහිපදෙනෙක් ඉන්න පුළුවන්නේද? ඒත් එකම Register no එක තියන  Studentලා ගොඩක් නෑ.එක Register no එක්ක යටතේ Register වෙලා ඉන්නේ එක Student කෙනයි. 

  • Entity එකක්  uniquely විදිහට  අඳුර ගන්න පුළුවන් attribute එකට Key attribute එකක් කියලා කියනවා. 

  • Key attribute  එකක් underline කරලා තමයි  ER diagram එකක පෙන්වන්නේ.

b)  Multivalued Attribute
  • එක Student කෙනෙක්ට Phone numbers කිහිපයක් තියෙන්න පුළුවන් . අන්න ඒ වගේ එක attribute එක්කට values කිහිපයක් තියනව නම් Multivalued attribute කියලා හඳුන්වනවා.

  • double oval ඇතුලේ තමයි මේවා පෙන්වන්නේ.

c)  Derived Attribute

  • Campus එකේ ඉන්න Student කෙනෙක්ගේ Age එක එයාගේ උපන්  දිනයෙන්  calculate  කරලා ගන්න පුළුවන් නේද ? අන්න ඒ වගේ තවත් entity එකකින්  calculate  කරලා ගන්නේ  Derived attribute.

  • මේවා  dashed oval තුල නිරූ පණය කරන්නේ.

d)  Composite Attribute

  • සාමාන්යයෙන් කෙනෙක්ගේ Name එකේ කොටස් කිහිපයක් තියනවා.Name එකක් First Name, Middle Name, Last Name කියලා තව attributes වලට බෙදන්න පුළුවන්.

  • Address එකක් No, Street, City, District කියලා parts වලට කඩනවා. attribute එකක් තව අනු කොටස්වලට බෙදන්න පුළුවන් නම් ඒවට Composite attribute කියනවා.

  • අපි කලින් කතා කරපු කිසිම බෙදීමකට අයිති නැති date of birth වගේ attributes වලට"Simple Attribute " කියනවා.






3. Relationship  


  • Entities අතර සම්බන්ධතවය පෙන්වන්නේ Relationship මඟින්. ER diagram එකක relationship එකක් diamond shape එකෙන් නිරූ පණය කරන්නේ.Diamond shape එක තුළ relationship එකට අදාළ verb එක ලියනවා 


 Relationships වර්ග 3ක් තියනවා.

  • One to One  (1:1) 
  • One to Many  (1:M)
  • Many to Many (M : N)

One to One (1:1)



  • මේ example එකෙන් විස්තර වෙන්නේ එක person කෙනෙක්ට තියෙන්නේ එක passport එකයි , ඒ  passport එකක්  අයිති එක person කෙනෙක්ට විතරයි.

  • Entity එකක එක් අවස්ථාවක් වෙනත් entity එකක එක් අවස්ථාවක් සමඟ සම්බන්ධ වුණාම ඒක One to One relationship එකක් .


One to Many(1:M)



  • මෙතනදි එක Customer කෙනෙක්ට Orders කිහිපයක් order කරන්න පුළුවන් . නමුත් එක order එකකට ඉන්නේ එක අයිතිකාරයි.



  • entity එකක අවස්ථා එකකට වැඩි ගණනක් වෙනත් entity එකක අවස්ථා එකකට වඩා සම්බන්ධ වුණොත් One to Many relationship එකක්.

Many to Many (M:N)

  • මේ ER Diagram එකේ අදහස වෙන්නේ, එක Student කෙනෙක් Subject කිහිපයක් ඉගෙන ගන්නවා. ඒ වගේම එක Subject එකක් ඉගෙන ගන්න Students ලා කිහිපදෙනෙක් ඉන්නවා.

  • Entity එකක අවස්ථා එකකට වඩා වැඩි ගණනක්, වෙනත් Entity එකක අවස්ථා එකකට වඩා වැඩි ගණනක් සමඟ සම්බන්ධ වුණොත් Many to Many relationship එකක්.

අද මම ඔයාලට  ER Diagrams වලට අදාළ Attributes  සහ  Relationship  ගැන  තොරතුරු අරන් ආවේ. 

මේ වගේ වැදගත් වෙන තවත්  තොරතුරු  අරන් එන්න බලාපොරොත්තු වෙන්නවා. දිගටම Blog එකත් එක්ක ඉන්න කියලා ආරාධනා කරනවා. හැමෝටම  සුභ දවසක්.
Entity Relationship Diagrams (ERD) - Part 1

  • අද අපි කතා කරන්න යන්නේ ER Diagrams ගැන.

  • ER කියන කෙටි නමින් කියවෙන්නේ Entity Relationship කියන එක.ඒ නමින් පොඩි idea එක්ක එනවා නේද system එකක entities අතර relationship එක පෙන්වන සටහනක් කියලා. 

  • හිතන්න මොකක් හරි system එකකට database එක්ක හදන්න ඕන වෙලා තියනවා.අන්න ඒ වගේ වෙලාවක database එක හදන්න කලින් සකස් කර ගන්න plan එකට අපි කියන්නේ ER diagram එකක් කියලා.

  • ඒ වගේම  ER Diagram එකකින් අපි හදන database එක ගැන සම්පූර්ණ තාර්කික විව්හයක් පෙන්වනවා.


ඊළඟට අපි දැන ගන්න ඕන ER diagram එකක තියන components මොනවද කියලා.






  • ER diagram එකක main components 3ක් තියනවා


                           1. Entity
                           2. Attribute
                           3. Relationship

1. Entity



  • හිතන්නකො අපි  campus එකට database එකක් හදනවා කියලා. මොනවද campus එකට අදාළව system  එකට enter කරන්න ඕන දේවල්. ඒ කිව්වේ  campus ඉන්න කට්ටිය,තියන දේවල් .

  •  Students, Lectures, Subjects, Lecture halls, Faculties, Departments වගේ දේවල් අපිට අඳුර ගන්න පුළුවන්.

  • Entity එකක් තෝර ගනිද්දි  attribute එකකට වඩා තියනවද කියලා බලන්න ඕන. 

  • අපි campus එකට database එක හදන නිසා  campus කියන එක Entity එක්ක විදිහට ගන්නේ නෑ.ඒකට හේතුව එක data එක්ක විතරක් දාලා table එකක් හදන එක තේරුමක් නැති නිසා.


  • ER diagram එකක් තුළ entity එක්ක නිරූපණය කරන්නේ ඍජුකෝණාස්‍රයකින්.ඒක  ඇතුලේ entity name එක ලියන්නේ. 

  • හැම වෙලාවෙම  entity එකක් නම් කරන්නේ  singular noun එකක් විදිහට.





Weak Entity :


  • කිසියම් entity එකක attributes uniquely විදිහට අඳුර ගන්න බැරි නම් ඒවට weak entities  කියනවා.ඒ කියන්නේ තවත් entity එකක් මත  week entity එකක් රඳා පවතිනවා.

  • හිතන්න campus  එකේ ඉන්න Studentලගෙ  parents තොරතුරු database එකේ store කරන්න ඕන කියලා. parents කෙනෙක්ගේ තොරතුරු තියෙන්න නම් අනිවාර්‍යයෙන් Student කෙනෙක් ඉන්න ඕන නේද ? parent කියන entity එක Student entity එක මත රැඳිලා තියනවා . ඒ නිසයි Parent ,  weak entity එකක් වෙන්නේ

  • weak entity එකක් නිරූපණය  කරන්නේ ඍජුකෝණාස්‍ර  දෙකක් ඇතුලේ.



අද මම ඔයාලට තොරතුරු අරන් ආවේ ER Diagram එකක් කියන්නේ මොකද්ද? ER Diagram එකක තියන entities ගැන. 


Entity Relationship  Diagrams(ERD) Part 2 ලිපියෙන් ER Diagram එකක තියන attributes මොනවද?  Entities අතර තියන relationships ගැන විස්තර කතා කරන්න මම බලාපොරොත්තු වෙනවා. දිගටම blog එකත් එක්ක ඉන්න. හැමෝටම  සුභ දවසක්.

Sunday, September 22, 2019

What is inheritance ?

අපි අද කතා කරන්න යන්නේ OOP වල ප්‍රධාන concept එකක් වෙන inheritance කියන්නේ මොකද්ද කියලා ?

සරලව කිව්වොත් inheritance කියලා කියන්නේ එක class එකක තියන දේවල් ටිකක් තවත්  class එකකට ගන්න ක්‍රියාවලිය. අපි මේ කතාව example එකකින් බලමු.
Image result for nokia old  phone images(png)Image result for smart nokia   phone images
මුල්ම image එකේ තියෙන්නේ පරණ Nokia  phone එකක්. අන්න  ඒ phone  එකේ තියන  features අරගෙන තවදුටරත් වැඩි දියුණු කරලා Nokia Smart phone එකක් හදනවා.ඒ කියන්නෙ හරියට එක පරම්පරාවක තියන දෙයක් තවත් පරම්පරවකට දෙනවා. ඒ වගේ දෙයක් තමා inheritance වලදි වෙන්නේ.


මෙතනදි Smart phone එක  තමා, පරණ Nokia  phone එකෙන් inherit වෙන්නේ.Smart phone හැදිලා තියෙන්නේ  පරණ Nokia  phone එකේ features එකතු වෙලා.


ඊළඟට අපි බලමු  inheritance වල තියන super class & sub class කියන්නේ මොනවද  කියලා?

අපි ගත්ත phone example එකට අනුව පරණ Nokia  phone එක තමා super class එක, Smart phone එක  තමා sub class එක.
Image result for nokia old  phone images(png)Image result for smart nokia   phone imagesSuper class                        Subclass



  • ඊළඟට අපි බලමු මේ phones දෙකේ තියෙන ගතිලක්ෂණ ,කාර්යයන් මොනවද කියලා?


Super class(Old Nokia phone)
name
price                                                
call( )
SMS( )


  • Sub class  එක හදද්දි  අලුත් features වගේම super class එකේ තිබුණ ගති ලක්ෂණ ,කාර්යයන් එකතු වෙනවා. 

Sub class(Smart Nokia phone)
name
price                                                

call( )
SMS( )
camera( )
Email( )
Bluetooth ( )

දැන්  පොඩි  idea එකක් ආවා නේද?  inheritance කියන එක ඕන  වුණේ කලින් හදපු දෙයක් පාවිචි කරලා,ඒක වැඩි දියුණු කරලා තවත් අලුත් දෙයක් හදන්න කියලා.

දැන් අපි බලමු coding එක්ක කොහොමද inheritance ක්‍රියාවලිය වෙන්නේ කියලා ?
  1. // code for OldPhone - (Super class)
  2. class OldPhone{
  3. String name;
  4. int price;
  5. void call( )
  6. {
  7. }
  8. void sms( )
  9. {
  10. }
  11.  }
  12.  
  13.  
  14.  //code for SmartPhone - (Sub class)
  15.  class SmartPhone extends OldPhone{
  16.  
  17. void camera( )
  18. {
  19. }
  20. void Email( )
  21. {
  22. }
  23. void Bluetooth ( )
  24. {
  25. }
  26.  }

මේකේ  code line no :2 - 14 වන තෙක්  තියෙන්නේ  Old phone(Super class) එකට අදාළ coding part එක.


ඊළඟට code line no :18 - 33 දක්වා  තියෙන්නේ Smart phone(sub class) එකට අදාළ coding part එක. ඒකේ " class SmartPhone extends OldPhone " (code line no 18) කියලා තියන code එකෙන් කියවෙන්නේ  Old phone එකේ තිබුණ දේවල්  Smart phone එකට inherit කරන්න කියලා. එතකොට වෙන්නේ Old phone එකේ තිබ්බ හැම feature එකක්ම Smart phone එකට add වෙනවා. ඊට අමතරව  camera,Email, Bluetooth වගේ අලුත් facilities එකතු කරනවා.මේ ක්‍රියාවලිය තමයි inheritance කියලා කියන්නේ.

class SmartPhone extends OldPhone " . මෙතන "extends" කියන්නේ  keyword එකක්. 

පොඩ්ඩක් Supper class එකේ  code එක බලන්න.Super class එකේ තියෙන්නේ common data. Sub class එකේ  specific data තියනවා.

මේ කිව්ව දේවල් එක්ක inheritance කියන්නේ මොකද්ද කියලා කියන්න පුළුවන්ද? inheritance කියන්නේ එක class එකක තියන පොදු දේවල් ටිකක් තව class එකකට අරගෙන ඒ  class එකට විශේෂ වුණ දේවල් ටික දාලා පහසුකම් වැඩි අලුත් class එක්ක හදන  ක්‍රියාවලිය.

එසේ  නම් OOP වල ප්‍රධාන concept එකක් වෙන inheritance ගැන තමා මම අද ඔයාලට තොරතුරු අරන් අවේ. මම ලඟදීම මේ වගේ වැදගත් වෙන තොරතුරු ටිකක් අරන් එන්න බලාපොරොත්තු වෙනවා.දිගටම Blog එකත් එක්ක ඉන්න කියලා ආරාධනා කරනවා.