1 P R OGR AM ST UDI ILMU KOMPUTER F MI P A - U niver s it as Sanata Dhar ma S is t em Basis Data T er dis t r ibus i MODU L 8 Semantic D at a Cont r o...
P R OGR AM S T U D I I L MU K OMP U T E R F MI P A - U n iver s it as S an at a D h ar m a S is t em B as is D at a T er dis t r ibu s i MOD U L 8 S em an t ic D at a Con t r ol Dis us un oleh : S r i Har tati Wij ono, S .S i. & A. Rita Widiar ti, S .S i. S ebuah alat yang penting bagi DB MS ter pus at maupun ter dis tr ibus i, adalah kemampuan untuk mendukung kontr ol dar i s emantik data. (S emantik = makna dar i bahas a, j ika S QL maka: makna dar i bahas a S QL). K ontr ol s emantik data, umumnya ter dir i dar i (1) manaj emen view, (2) kontr ol s ecur ity, (3) kontr ol s emantik integr itas . S ecar a infor mal: S is tem har us menj amin bahwa us er yang ber hak (author iz ed) akan melakukan oper as i yang benar (cor r ect) ter hadap databas e, untuk menj aga integr itas databas e. Dalam modul ini, kita akan membahas s olus i t er pu s at bagi kontr ol s emantik data, s er ta adanya beber apa mas alah di dalam lingkungan ter dis tr ibus i s er ta pemecahan mas alah ter s ebut. Dalam modul ini, kita menekankan pembahas an pada dampak dar i manaj emen dir ektor i ter hadap per for mance dar i mekanis me kontr ol s emantik data. 8 .1 .
Man aj em en View
S alah s atu keuntungan dar i model r elas ional adalah: ia member ikan independens i data s epenuhnya s ecar a logikal. S kema ex ter nal akan mengij inkan us er untuk memiliki view ter tentu dar i databas e. Dalam s is tem r elas ional, s ebuah view adalah s ebuah r elas i vir tual. Definis i view: has il (r es ult) dar i s ebuah kuer i ter hadap r elas i- r elas i das ar (atau r elas i r eal). Has il (view) ini tidak dis impan dalam databas e s eper ti r elas i das ar . S ebuah view adalah s ebuah j endela dinamik, dalam ar tian bahwa ia mencer minkan s emua update yang dilakukan ter hadap databas e. Dis amping pemakaiannya di dalam s kema ex ter nal, view j uga ber guna untuk menj amin data- s ecur ity dengan car a yang s eder hana. Dengan memilih s ubs et dar i databas e, view dapat menyembunyikan beber apa data. Jika us er mengaks es databas e melalui view, mer eka tak dapat melihat atau memanipulas i hidden- data; dengan demikian data akan menj adi s ecur e. Per hatikan bahwa, dalam s is tem DB MS ter dis tr ibus i, s ebuah view dapat ditur unkan dar i r elas i- r elas i ter dis tr ibus i. Aks es ke s ebuah view akan memer lukan eks ekus i dar i kuer i ter dis tr ibus i yang ber hubungan dengan definis i view ter s ebut. I s u penting dalam DB MS ter dis tr ibus i adalah untuk membuat mater ialis as i view dengan car a yang efis ien. K ita akan melihat bagaimana kons ep s naps hot akan membantu dalam memecahkan mas alah ini, tapi ter lebih dulu kita akan ber kons entr as i pada DB MS ter pus at.
Dalam konteks ini, s ebuah view adalah s ebuah r elas i yang ditur unkan dar i r elas ir elas i das ar , s ebagai has il dar i s ebuah kuer i r elas ional. View didefinis ikan dengan meng- as os ias ikan nama dar i view dengan quer y r etr ieval (pengambilan data): Contoh 8.1. View dar i s ys t em -an alys t (S YS AN) yang ditur unkan dar i r elas i EMP(ENO, ENAME, T I T LE), dapat didefinis ikan s ebagai ber ikut dalam kuer i S QL: CREATE VIEW
SYSAN(ENO, ENAME)
AS
SELECT
ENO, ENAME
FROM
EMP
WHERE
TITLE = "Syst. Anal." S YS AN
E NO
E N AME
E2
M.S mith
E5
B .Cas ey
E8
J.Jones
Gambar 8.1. Relas i yang ber hubungan dengan View S YS AN.
Dengan adanya view, maka yang akan dis impan adalah definis i view di dalam katalog. Dengan demikian, has il dar i kuer i yang mendefinis ikan view ter s ebut T I DAK akan dipr oduks i. Mes kipun demikian, view S YS AN dapat dimanipulas i s ebagai s ebuah r elas i das ar . Contoh 8.2. K uer i : " Car ilah nama- nama dar i s emua s ys tem- analys t dengan nomor pr oyek mer eka s er ta per tanggungj awabannya." akan melibatkan view S YS AN dan r elas i AS G(ENO, PNO, RES P, DUR). Dapat dinyatakan s ebagai: SELECT
ENAME, PNO, RESP
FROM
SYSAN, ASG
WHERE SYSAN.ENO = ASG.ENO Dengan teknik ini: ¬
var iabel- var iabel diubah untuk dieks ekus i ter hadap r elas i- r elas i das ar ,
¬
dan kualifikas i kuer i digabungkan (AND) dengan kualifikas i view.
Contoh 8.3. K uer i dalam contoh 8.2. dapat dimodifikas i menj adi: SELECT
ENAME, PNO, RESP
FROM
EMP, ASG
WHERE EMP.ENO = ASG.ENO AND
TITLE = "Syst. Anal."
Has il dar i kuer i ini dilukis kan dalam Gambar 8.2. E N AME
P NO
RESP
M.S mith
P1
Analys t
M.S mith
P2
Analys t
B .Cas ey
P3
Manager
J.Jones
P4
Manager
Gambar 8.2. Has il dar i kuer i yang melibatkan View S YS AN
K uer i ter modifikas i pada contoh 8.3. akan dieks pr es ikan ter hadap r elas i- r elas i das ar , s ehingga dapat dipr os es oleh quer y- pr oces s or . Penting untuk memper hatikan, bahwa view- pr oces s ing dapat dilakukan pada s aat compile- time. Mekanis me view dapat j uga dipakai untuk melakukan penghalus an (r efine) ter hadap kontr ol aks es dengan tuj uan untuk mencakup s ubs et dar i obj ect. Untuk menentukan s etiap us er dengan hidden- data ter tentu, maka dipakai keywor d US ER, untuk mengacu identifier dar i us er pada s aat log- on. Contoh 8.4. View ES AME akan membatas i aks es dar i s etiap us er hanya ke data pegawai yang memiliki j abatan (T I T LE) yang s ama. CREATE
VIEW
ESAME
AS
SELECT
*
FROM
EMP E1, EMP E2
WHERE E1.TITLE = E2.TITLE AND
E1.ENO = USER
S ebagai contoh, kuer i ber ikut ini akan dilakukan oleh us er J. Doe: SELECT
*
FROM
ESAME
akan menghas ilkan r elas i dalam Gambar 8.3. Per hatikan bahwa, us er J. Doe j uga muncul dalam has il ter s ebut. Jika us er yang membuat ES AME adalah s eor ang electr ical- engineer , s eper ti dalam contoh ini, maka view akan menyatakan s et dar i s emua electr ical- engineer .
Gambar 8.3. Has il dar i kuer i ter hadap view ES AME
U pdat e m elalu i View
8 .1 .2 .
View dapat didefinis ikan memakai kuer i r elas ional kompleks s embar ang, yang melibatkan: s election, pr oj ection, j oin, aggr egate- function, dan lain- lain. Update melalui view dapat ditangani s ecar a otomatis , hanya j ika update ter hadap view ter s ebut dapat dipindahkan menj adi update ter hadap r elas i das ar s ecar a benar . K ita dapat mengklas ifikas ikan view s ebagai updatable dan not- updatable. S ebuah view adalah updatable, hanya j ika update yang diter apkan ter hadap view dapat dipindahkan menj adi update ter hadap r elas i das ar tanpa ambiguitas . View S YS AN di atas adalah updatable. S ebagai contoh : [ ins er tion dar i s ys tem- analys t bar u < 201, S mith> ] akan dapat dipetakan menj adi [ ins er tion pegawai bar u < 201, S mith, S ys t. Anal.> ] View ber ikut adalah not- updatable: CREATE
VIEW
EG(ENAME, RESP)
AS
SELECT
ENAME, RESP
FROM
EMP, ASG
WHERE EMP.ENO = ASG.ENO S ebagai contoh, oper as i delete dar i tuple < S mith, Analys t> tidak dapat dipindahkan, kar ena akan menimbulkan ambiguitas . Relas i yang ber hubungan dengan view EG: EG E N AME
Deletion ter hadap M. S mith dalam r elas i EMP (atr ibut EMP.ENAME) akan menimbulkan ambuguitas , kar ena ada dua tuple dalam view. Demikian j uga, deletion ter hadap Analys t dalam r elas i AS G (atr ibut AS G.RES P) akan menimbulkan ambiguitas . S is tem yang ada s ekar ang, s angat r es tr iktif dalam mendukung update melalui view. View dapat di- update hanya j ika mer eka ditur unkan dar i s ebuah r elas i tunggal melalui s election atau pr oj ection. S is tem akan menghindar i view yang didefinis ikan oleh j oin, aggr egate- function, dan lainnya. (Catatan: view yang ditur unkan oleh j oin, dapat dis ebut updatable j ika mer eka mencakup key dar i r elas i das ar .) 8 .1 .3 .
View dalam D B MS T er dis t r ibu s i
Definis i view dalam s is tem ter dis tr ibus i s ama dengan definis i view dalam s is tem ter pus at. S ebagai tambahan, view dalam s is tem ter dis tr ibus i dapat ditur unkan dar i r elas i- r elas i ter fr agmentas i yang dis impan pada ber bagai lokas i yang ber beda. K etika s ebuah view didefinis ikan, maka nama dan kuer i r etr ieval akan dis impan di dalam katalog. T er gantung kepada der aj ad otonomi dar i lokas i yang ditawar kan oleh s is tem, maka definis i view dapat dipus atkan dalam s atu lokas i, dir eplikas i s ecar a par s ial, atau s epenuhnya dir eplikas i. Dalam s etiap kas us , infor mas i yang menghubungkan nama dar i view dengan lokas i penyimpan definis inya, har us dir eplikas i. Jika definis i view tidak ada pada lokas i di mana kuer i diawali, maka akan diper lukan r emote- acces s ke lokas i penyimpan definis i view. Pemetaan dar i kuer i yang dieks pr es ikan ter hadap view menj adi kuer i yang dieks pr es ikan ter hadap r elas i das ar , (yang bis a dalam bentuk ter fr agmentas i), akan dapat j uga dilakukan dengan car a yang s ama s eper ti dalam s is tem ter pus at, yaitu melalui modifikas i kuer i. Dengan teknik ini, kualifikas i yang mendefinis ikan view akan ditemukan dalam katalog databas e ter dis tr ibus i, dan kemudian akan digabungkan dengan kuer i, untuk menghas ilkan kuer i ter hadap r elas i das ar . K uer i ini mer upakan kuer i ter dis tr ibus i, yang dapat dipr os es oleh quer y- pr oces s or ter dis tr ibus i S ehingga guer y- pr oces s or akan melakukan pemetaan dar i kuer i ter dis tr ibus i menj adi kuer i ter hadap fr agmen- fr agmen fis ik. Pada kenyataannya, definis i fr agmentas i, s angat mir ip dengan definis i view. S ebagai contoh, view S YS AN (Contoh 8.1.) dapat diimplementas ikan oleh s ebuah fr agmen dalam lokas i ter tentu. Di mana kebanyakan us er mengaks es view S YS AN pada lokas i ter s ebut. View yang ditur unkan dar i r elas i- r elas i ter dis tr ibus i, dapat mengakibatkan biaya tinggi ketika dievaluas i. K ar ena dalam s ebuah or ganis as i ter tentu akan banyak us er yang mengaks es view yang s ama, maka beber apa pr opos al telah dibuat untuk mengoptimis as i penur unan view. S ebuah s olus i alter natif dis us un dalam [Adiba and Linds ay, 1980] untuk menghindar i penur unan view dengan memper tahankan ver s i aktual (s ebenar nya) dar i view, yang dis ebut s n aps h ot .
S ebuah s naps hot menyatakan keadaan (s tate) ter tentu dar i databas e. S naps hot ber s ifat s tatik, ar tinya ia tidak mer efleks ikan update yang dilakukan ter hadap r elas i das ar . S naps hot ber guna ketika us er tidak ter tar ik s ecar a khus us untuk melihat ver s i ter bar u dar i databas e. S naps hot diatur s ebagai r elas i- r elas i tempor er , dalam ar ti bahwa mer eka hanya memiliki metode aks es dengan car a s equential- s canning. Dengan demikian, s ebuah kuer i yang dieks pr es ikan ter hadap s ebuah s naps hot, tidak akan memanfaatkan indeks - indeks yang ter s edia untuk r elas i das ar (s naps hot ditur unkan dar i r elas i das ar ini). Aks es melalui s naps hot nampaknya lebih cocok untuk kuer i - kuer i yang memiliki s eleks i yang bur uk dan akan melakukan s can ter hadap kes elur uhan s naps hot. Dalam hal ini, s ebuah s naps hot akan ber tindak s eper ti s ebuah j awaban ter hadap kuer i yang telah didefinis ikan ter lebih dulu (pr edefined). S naps hot akan per lu dir ekalkulas i s ecar a per iodik. Hal ini dapat dilakukan ketika s is tem s edang idle (ber henti s ementar a). S ebagai tambahan, untuk s naps hot yang ditur unkan dar i s election dan pr oj ection, hanya differ ence yang per lu untuk dir ekalkulas i [B lakeley et al., 1986]. 8 .2 .
D at a-s ecu r it y
Data- s ecur ity mer upakan fungs i penting dar i s is tem bas is data yang melindungi data dar i aks es unauthor iz ed (yang tidak ter - otor is as i). Data- s ecur ity mencakup dua as pek: data- pr otection dan author iz ation- contr ol. Data- pr otection diper lukan untuk mencegah unauthor iz ed- us er mengetahui is i fis ik dar i data. Fungs i ini umumnya dis ediakan oleh s is tem file dalam konteks s is tem oper as i ter pus at maupun ter dis tr ibus i. Pendekatan utama data- pr otection adalah melakukan enkr ips i data. Enkr ips i akan ber guna, baik untuk infor mas i yang dis impan dalam dis k, maupun untuk per tukar an infor mas i lintas j ar ingan. Data ter enkr ips i (encoded, encr ypted) dapat di- dekr ips i (decoded, decr ypted) hanya oleh author iz ed- us er (yang mengetahui kode- nya). Dua s kema utama adalah: ¬
DES (Data Encr yption S tandar d).
¬
Public- key encr yption.
Dalam bab ini, kita akan ber kons entr as i pada as pek kedua dar i data- s ecur ity, yaitu author iz ation- contr ol. Author iz ation- contr ol har us menj amin: hanya author iz ed- us er yang dapat melakukan oper as i yang diij inkan ter hadap bas is data. DB MS , baik ter pus at maupun ter dis tr ibus i, har us mener apkan batas an aks es oleh us er ter hadap databas e. Dalam s is tem file, author iz ation- contr ol dis ediakan oleh s is tem oper as i ter dis tr ibus i s ebagai s er vice dar i s is tem file. Dalam konteks ini, akan dilakukan oleh s ebuah kontr ol ter pus at. K ontr oler pus at akan membuat obj ect, dan us er ter tentu akan diij inkan melakukan oper as i r ead, wr ite, ex ecute ter hadap obj ect ini. Obj ect akan diidentifikas i dengan memakai nama ex ter nal- nya.
Author iz ation- contr ol dalam s is tem databas e ber beda dengan yang di dalam s is tem file, dalam beber apa as pek. Otor is as i har us diper halus , s ehingga us er yang ber beda akan memiliki hak yang ber beda ter hadap obj ect databas e yang s ama. K ebutuhan ini akan ber akibat dalam: ¬
kemampuan menentukan obj ect s ecar a lebih tepat, tidak hanya s ekedar melalui nama.
¬
dapat membedakan kelompok- kelompok us er .
Dalam s is tem ter dis tr ibus i, author iz ation- contr ol. 8 .2 .1 .
penting untuk
melakukan des en t r alis as i
ter hadap
Au t h or iz at ion -con t r ol T er pu s at
T iga aktor utama yang ter libat dalam author iz ation- contr ol: ¬
Us er yang memicu eks ekus i pr ogr am aplikas i.
¬
Oper as i, yang ber ada dalam pr ogr am aplikas i.
¬
Obj ect databas e, yang mer upakan s as ar an oper as i.
Author iz ation- contr ol ber upa: mekanis me checking apakah tr iple (us er , oper as i, obj ect) ter tentu dapat diij inkan untuk ter us . Yaitu, apakah us er boleh mengeks ekus i oper as i ter hadap obj ect. S ebuah otor is as i dapat dipandang s ebagai tiga hal: ¬
Us er .
¬
T ipe oper as i.
¬
Definis i obj ect databas e.
Otor is as i mer upakan pr os es yang menetapkan: apakah us er memiliki hak untuk melakukan tipe oper as i ter tentu ter hadap s ebuah definis i obj ect databas e. Untuk mengontr ol otor is as i, DB MS akan memer lukan data ber upa: us er , obj ect, dan hak (r ight). U s er I dentifikas i us er (or ang atau gr up) umumnya dilakukan oleh s is tem dalam bentuk s epas ang data (us er - name dan pas s wor d). Pas s wor d akan mer upakan authentication bagi us er . K edua data ter s ebut (nama dan pas s wor d) har us ter s edia untuk melakukan log- in ke dalam s is tem. Hal ini akan mencegah or ang yang tidak mengetahui pas s wor d untuk mengaks es s is tem dengan hanya memakai nama us er . Obj ect Obj ect untuk dilindungi mer upakan s ubs et dar i databas e. Dalam s ebuah s is tem file, individu yang dipr oteks i adalah file. S edangkan dalam DB MS individu yang dipr oteks i adalah tipe dar i obj ect (mis alnya: r ecor d, file). Dalam s is tem r elas ional, obj ect dapat didefinis ikan oleh : ¬
T ipe obj ect (view, r elas i, tuple, atr ibut), atau
¬
I s i dar i obj ect, yang didapat memakai s election ter hadap pr edikat ter tentu.
Mekanis me view dar i 8.1. akan mengij inkan pr oteks i obj ect s ecar a s eder hana, yaitu dengan menyembunyikan s ubs et dar i r elas i (atr ibut atau tuple) ter hadap unauthor iz ed- us er . H ak / R igh t S ebuah hak (hak aks es ), menyatakan hubungan antar a us er dengan obj ect untuk s et oper as i ter tentu. Dalam DB MS r elas ional yang memakai S QL, oper as i ini mer upakan high- levels tatement s eper ti S ELECT , I NS ERT , UPDAT E, atau DELET E. Hak aks es akan didefinis ikan (diber ikan atau dibatalkan) memakai s tatement: GRANT ON