Community project by students of the Faculty of Information Technology, University of Moratuwa, Sri Lanka.

9.10.2 දත්තපාදකයක දත්ත නිර්මාණය කිරීම සහ කලමනාකරණය සදහා ව්‍යුහගත විමසුම් භාෂාව යොදාගැනීම (Using Structured Query Language – SQL to create and manage data in a database)

දත්ත පාලන  භාෂාව (Data Control Language – DCL)

 

දත්ත පාදකක් (Database) තුල ගබඩා කරන ලද දත්ත, සියළුම පරිශීලකයන්ට සමාන වරප්‍රසාද සහිතව භාවිතා කිරීමට ඉඩ ලබා දීම එතරම් නුවණැති ක්‍රියාවක්‌ නොවෙයි.දත්ත පාලන භාෂාවේ විධාන (DCL commands) දත්ත පරිශීලනයට සීමා පැනවීමට යොදාගනි. මෙය දත්ත පාදකක් (Database) තුල ඇති දත්ත වලට ආරක්ෂව සැළසීමේ එක් ක්‍රියා මාර්ගයකි. මෙසේ අවසර ලබාදීමටත් අවලංගු කිරීමටත් හැකියාව ඇත්තේ දත්ත පාදක පරිපාලක (database administrator) හෝ දත්ත පාදක අයිතිකරුට (database owner) පමණයි. පහත දැක්වෙන විධාන දෙක ප්‍රධාන වශයෙන් යොදා ගනී. 

 

  •  GRANT – දත්ත පාදක වස්තු (database objects ) පරිශීලනයට වරප්‍රසාද ලබාදීම. 
  •  REVOKE – ලබාදුන් වරපසාද නැවත අවලංගු කිරීම. 

 

මෙම විධාන දෙක භාවිතා කරන ආකාරය පහත දැක්වේ.
  • privilege_name – පරිශීලකයන්ට ලබාදෙන වරප්‍රසාද වර්ගය (privilege type) උදාහරණ: SELECT, INSERT, DELETE
  • object_name – වරප්‍රසාද (privilege) වලංගු වන දත්ත පාදක වස්තුව (database objects) උදාහරණ: වගු (table), ක්‍රියා පටිපාටි (procedure)
  • user_name – වරප්‍රසාද ලබන්නාගේ නම
  • role_name – වරප්‍රසාද කිහිපයක එකතුවක් එකවර පරිශීලකයකුට ලබාදීමට භාවිතා කරයි.
උදාහරණ මගින් මෙය වඩාත් පැහැදිලි කර ගනිමු.උදාහරණය සදහා භාවිත කර තිබෙන්නේ Oracle දත්ත පාදකය වේ.දත්ත ආරක්ෂාව අතින් ඉතා ඉහල දත්ත පාදකයක් වන Oracle අධ්‍යන හා පර්යේෂණ කටයුතු සදහා Express Edition කිසිදු ගෙවීමකින් තොරව භාවිත කල හැකිය.

බාගත කිරීම : http://www.oracle.com/technetwork/products/express-edition/downloads/index.html

Oracle Express Edition ස්ථාපනය පිළිබද ලිපියක් නුදුරු අනාගතයේදී පළවනු ඇත.

පළමුව දත්ත පාදක පරිපාලක ගිණුම (“SYS”) භාවිතයෙන් තවත් පරිශීලකයෙක් (user) නිර්මණය කරගනිමු. ඒ සදහා CREATE USER විධානය යොදා ගනී. ඔහු user_1 ලෙස හදුන්වමු. user_1 හට දත්ත පාදකය පරිශීලනයට මුරපදයක් (password) ලබාදිය යුතුයි. මුරපදය test ලෙස සලකමු.

 

දැන් user_1 මගින් දත්ත පාදකය පරිශීලනයට (access) උත්සහ කරමු. එවිට, user_1 හට ඒ සදහා ප්‍රමාණවත් වරප්‍රසාද නොමැති බව දත්ත පාදකය අපට දැනුම් දේ.

 

user_1 හට දත්ත පාදකය පරිශීලනයට ලබාදිය යුතු වරප්‍රසාදය CREATE SESSION නම් වේ.CREATE SESSION වරප්‍රසාදය user_1 වෙත ලබාදීම , නැවතත් දත්ත පාදක පරිපාලක ගිණුම (“SYS”) සිදුකල යුතුයි. GRANT විධානය භාවිතයෙන් එය user_1 වෙත පවරනු ලැබේ.

 

දැන් user_1 හට දත්ත පාදකයට ඇතුළු වීමට (login) පුළුවන්. user_1 හට “student” නමින් table එකක් නිර්මණය කිරීමට අවශ්‍යයයි උපකල්පනය කරන්න. නමුත් user_1 හට “student” table එක නිර්මණය කිරීමට තවමත් හැකියවක් නැත . ඒ සදහා තවත් වරප්‍රසාද කිහිපයක් ඔහුට අවශ්‍යයි.

 

ඒ සදහා නැවතත් දත්ත පාදක පරිපාලක ගිණුමෙන් (“SYS”) දත්ත පාදකයට ඇතුළු වීය යුතුයි. පහත පරිදි table නිර්මණය කිරීමට වරප්‍රසාදය දෙකක් user_1 ට අවශ්‍ය වේ. Table එකක් නිර්මණය කිරීමට “CREATE TABLE” වරප්‍රසාදය සහ ඒ සදහා දත්ත පාදකය තුල අවශ්‍යය මතකය (memory) ලබාදිය යුතුයි.දත්ත පාදක කළමනාකරණ පද්ධතිය(DBMS) ක්‍රියාත්මක වන විට එහි දත්ත පාදක පරිගණකයේ මතකය (memory) තුල වෙනස්කම් (උදාහරණ : CREATE,INSERT,UPDATE,DELETE ) සිදුකරන අතර නැවත දෘඪ තැටි (Hard Disk) වල ගබඩා කරයි. මෙහිදී “UNLIMITED TABLESPACE” මගින් user_1 ට සීමා රහිත මතකය ලබාදී තිබේ.

 

දැන් user_1 හට id, name සහ address යන columns (තීරු) සහිත student table එක බාධාවක් නොමැතිව නිර්මණය කර හැක. 

 

මෙම table එක user_1 හට අයත් නිසා SELECT, INSERT වැනි commands දත්ත පාදක පරිපාලක ගිණුමේ (“SYS”) මැදිහත්වීමකින් තොරව භාවිත කිරීමට පුළුවන. තවදුරත් වරප්‍රසාදය ලබාදීමට අවශ්‍යතාවක් නොමැත. 

 

තවදුරටත් ගැඹුරින් අධ්‍යනය සදහා පහත උදාහරණය සලකා බලමු. ඒ සදහා දත්ත පාදක පරිපාලක ගිණුමේ (“SYS”) යටතේ “university” සහ “lecturer” ලෙස තවත් table දෙකක් නිර්මණය කර ගනිමු.

 

user_1 ලෙස දත්ත පාදකයට ඇතුළු වී (login) මෙම table දෙක පරිශීලනය කිරීමට උත්සහ ගතහොත්, එවැනි නම් සහිත table නොපවතින බව දත්ත පාදකය අපට දැනුම් දේ.මෙලෙස දත්ත පාදකය වැලක්වීමට හේතුව, user_1, හට අයත් නොවන දත්ත පාදක පරිපාලක ගිණුමේ (“SYS”) සතු කාලපයේ tables දැකීමයි.

 

 

user_1 හට මෙම දත්ත පාදක පරිශීලනය කිරීමට දත්ත පාදක පරිපාලක ගිණුමේන් (“SYS”) ඒ සදහා වරප්‍රසාද ලබාදිය යුතුයි. නමුත් SELECT, INSERT වැනි මෙභෙයුම් වරප්‍රසාද එකින් එක user ට ලබාදීම අකාර්යක්ෂමයි. වරප්‍රසාද කිහිපයක එකතුවක් එකවර පරිශීලකයකුට ලබාදීමට “role” භාවිතා කරයි.
පහත රුපයේ “CREATE ROLE” විධානය මගින් “user_role_1” සහ “user_role_2” නමැති role දෙකක් නිර්මණය කර තියෙනවා. GRANT විධානය මගින් SELECT සහ INSERT මෙභෙයුම් වරප්‍රසාද එම user_role වලට ලබාදේ.
මෙහිදී lecturer සහ university යන වගු (tables ) “SYS” user ට අයත් බව පෙන්විමට ඒවා “SYS.lecturer” සහ “SYS.university” ලෙස විශේෂයෙන් හදුන්වනු ලබනවා.
තවද lecturer නමැති table එකට SELECT සහ INSERT යන වරප්‍රසාද දෙකම ලබාදී ඇති නමුත් university table එකට ලබාදී ඇත්තේ SELECT වරප්‍රසාදය පමණයි.

 

පහත පරිදි නිර්මණය කරගත් roles දෙක user_1 හට ලබාදීමෙන් ඒවා තුල ඇති එක් එක් වරප්‍රසාද එකවර user_1 හට හිමිවේ.

 

උදාහරණය වඩාත් පැහැදිලි විමට මෙම tables දෙකට ආදර්ශ දත්ත කිහිපයක් ඇතුලත් කරමු.

 

ලෙස දත්ත පාදකයට ඇතුළු වී (login) ,පහත විධාන වල ප්‍රතිපල නිරීක්ෂණය කරමු.

 

table දෙකෙන්ම දත්තඋකහා (SELECT) ගැනීමට user_1 ට වරප්‍රසාද ඇත.

 

නමුත් user_1 හට දත්ත ඇතුලත් (INSERT)කල හැක්කේ SYS.lecturer table එකට පමණි.

ලබාදුන් වරප්‍රසාද අහෝසි කිරීමට REVOKE විධානය එක පහත පරිදි භාවිතා කිරීමට පලුවන. REVOKE මගින් වරප්‍රසාද එකින් එක අහෝසි කිරීමටත්, role එකක් අහෝසි කිරීම මගින් එකවර වරප්‍රසාද කිහිපයක් එකවර අහෝසි කිරීමට පුළුවන.

 

දෘෂ්‍ය අර්ථ  භාෂාව (Visual Definition Language – VDL) 

මෙමගින් user views සහ සංකල්පිත පරිපාටි “conceptual schema” අතරැති සම්බන්දතාව විස්තර කෙරෙනවා.

The following two tabs change content below.

Himani Jayawardane

Latest posts by Himani Jayawardane (see all)

Comments
  1. sandya Fernando

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.