SQL - (7) Relationships හඳුනාගනිමු.

Relationships හඳුනාගනිමු.

මෙම ලිපියේ දී ඔබට,
  • relationship වල ඇති optionality පිළිබඳවත්,
  • relationship වල ඇති cardinality පිළිබඳත්,
  • Entities වලට relationship ලබා දීමේදී භාවිතා කරන cardinality සහ
    optionality නීති රීති පිළිබඳවත් අවබෝධයක් ලබා ගැනීමට පුළුවන්.
දත්ත අතර පවත්නා සුවිහේෂි සම්බන්ධතාවයන් හඳුනාගැනීම සඳහා entities අතර relationships ඇති කරනු ලබනවා. නිදසුනක් මගින් පෙන්නා දුන්නොත් STUDENT කියන entity එකයි COURSE කියන entity එකයි අතර සම්බන්ධතාවයක් පවතී. මෙන්න මේ තත්ත්වය relationships ලෙස හඳුන්වා දෙනවා.

ව්‍යාපාරයක් model කිරීමේ දී entities වගේම, එම entity අතර පවත්නා සම්බන්ධතාවයන් ද (relationships ) ද අතිශයින් වැදගත් වෙනවා.

Relationships මඟින්,
  • ව්‍යාපාරයක ඇති වැදගත් අත්‍යාවශ්‍ය අංගයන් නිරූපනය කරයි.
  • Entities අතර සම්බන්දතාවයන් පෙන්නුම් කරයි.
  • සෑම විටම entities දෙකක් අතර හෝ entity එකක් දෙවරක් යොදා ගනිමින් සම්බන්ධතාවයන් ඇති කර ගනී.
  • හැම විටම දෙපැත්තක් නියෝජනය කරයි.
  • එම දෙපැත්තම නම් කර ගත යුතුයි.
  • optionality භාවයක් ඇත.
  • Cardinality භාවයක් ඇත.

Optionality සම්බන්ධතාවයක් (Relationship) එකක් යනු කුමක්ද?

සෑම සම්බන්ධතාවයක් ඒක්කෝ අත්‍යාවශ්‍ය ( mandatory) නැතිනම් අත්‍යාවශ්‍ය නොවන (optional) එකක් වශයෙන් පෙන්නා දීමට පුළුවන්. මෙය තීරණය වන්නේ අප යොදා ගන්නා entity එකේ පවත්නා instances මතිනි.

පහත නිදර්ශන දෙස අවධානය යොමු කරමු,
  • employee නැමති entity එකක නියෝජනය කරන සෑම අයෙකුටම job එකක් තිබීම අවශ්‍යමයි. ඒ නිසා employee කියන entity එකෙහි mandatory නැතිනම් optional සම්බන්ධතාවයක් (relationship) එකක් ලෙස අය පෙන්නා දීමට පුළුවන්.
  • ඒසේම සෑම job එකක්ම කරනු ලබන්නේ employee කෙනෙකු විසිනි. ඒ නිසා මේක job කියන entity එකෙහි mandatory නැතිනම් optional සම්බන්ධතාවයක් (relationship) එකක් ලෙස පෙන්නා දීමට පුළුවන්.
නිදර්ශන :- mandatory
Each PRODUCT must be classified by one and only one PRODUCT TYPE

නිදර්ශන :- optional
Each PRODUCT TYPE may classify one or more PRODUCTs

Cardinality සම්බන්ධතාවයක් (Relationship) එකක් යනු කුමක්ද?

මෙම සම්බන්ධතාවය මගින් සම්බන්ධතාවන්ගේ කිසියම් ප්‍රමාණයක් නිරූපණය කරයි. මෙමගින් කොපමණ ප්‍රමාණයක් ද යන පැනයට පිළිතුරු සපයයි.

නිදර්ශන කීපයක් සලකා බලමු.
  • Employee කොපමණ jobs ප්‍රමාණයක් සපයයිද ?
  • job එකක් employees ලා කී දෙනෙක් මගින් නිම කරනවාද? ආදිය මීට නිදර්ශන ලෙස පෙන්නා දීමට පුළුවන්.
නිදර්ශන :- Cardinality
Each EMPLOYEE must hold one and only one JOB
Each JOB may be held by one or more EMPLOYEEs
මීළගට අපි SEAT සහ PASSENGER කියන entity දෙක අතර පවත්නා සම්බන්දතාවයන් (Relationships ) කවරාකාර විය හැකිද යන්න විමසා බලමු.
  • Each SEAT may be sold to one or more PASSENGERs
  • Each PASSENGER may purchase one SEAT 
  • SEAT is sold to a PASSENGER (දෙදෙනෙකුට ලබා දිය නොහැක) 
  • PASSENGER purchases or books a SEAT

No comments: