3.2 Model Relasional AljabarRelasional BagII

37
Model Relasional dan Aljabar Relasional Bagian II Basis Data

description

Slide Presentasi Model Relasional Aljabar Relasional dalam basis data

Transcript of 3.2 Model Relasional AljabarRelasional BagII

Page 1: 3.2 Model Relasional AljabarRelasional BagII

Model Relasional dan Aljabar Relasional

Bagian II

Basis Data

Page 2: 3.2 Model Relasional AljabarRelasional BagII

Outline

• Definisi Formal• Additional Operations• Aljabar Relasional Extended• Fungsi dan Operasi Agregasi• Modifikasi Basis Data• View

Page 3: 3.2 Model Relasional AljabarRelasional BagII

Definisi Formal• Ekspresi dasar dalam aljabar relasional terdiri atas salah satu dari hal

berikut :– Sebuah relasi dalam basis data– Sebuah relasi konstan

• Misal E1 dan E2 adalah ekspresi aljabar relasional; berikut merupakan semua kemungkinan ekspresi aljabar relasional :– E1 U E2

– E1 - E2

– E1 x E2

– σp (E1), P adalah predikat pada atribut dalam E1

– Πs(E1), S merupakan daftar beberapa atribut dalam E1

– ρ x (E1), x adalah nama baru untuk hasil operasi dari E1

Page 4: 3.2 Model Relasional AljabarRelasional BagII

Additional Operations

Terdapat beberapa additional operation (operasi tambahan) untuk membuat beberapa query menjadi lebih sederhana– Set intersection– Natural join– Division– Assignment

Page 5: 3.2 Model Relasional AljabarRelasional BagII

Contoh Operasi Set-Intersection

Page 6: 3.2 Model Relasional AljabarRelasional BagII

DefinisiOperasi Set-Intersection

• Notasi : r ∩ s• Definisi formal :

r ∩ s ={ t | t ε r and t ε s }• Asumsi :

– r, s mempunyai arity yang sama– Atribut r dan s kompatibel

• Catatan : r ∩ s = r - (r - s)

Page 7: 3.2 Model Relasional AljabarRelasional BagII

Contoh Operasi Natural Join

Page 8: 3.2 Model Relasional AljabarRelasional BagII

DefinisiOperasi Natural Join

• Notasi : • Misal terdapat relasi r dan s pada skema R dan S. Maka, merupakan

sebuah relasi pada skema R U S yang diperoleh dengan cara berikut :– Perhatikan setiap pasangan tuple tr dari relasi r dan ts dari relasi s.– Jika tr dan ts mempunyai nilai yang sama untuk setiap atribut pada R ∩ S, tambahkan

sebuah tuple t ke relasi hasil, di mana• t mempunyai nilai yang sama dengan tr pada r• t mempunyai nilai yang sama dengan ts pada s

• Contoh :– R = (A, B, C, D)– S = (E, B, D)– Skema relasi hasil = (A, B, C, D, E)– didefinisikan sebagai :

Πr.A, r.B, r.C, r.D, s.E (σr.B = s.B ^ r.D = s.D (r x s))

Page 9: 3.2 Model Relasional AljabarRelasional BagII

Contoh Operasi Division

Page 10: 3.2 Model Relasional AljabarRelasional BagII

Definisi Operasi Division

• Notasi : • Berlaku untuk query yang mengandung frase “for all”.• Misal terdapat relasi r dan s pada skema R dan S di mana

– R = (A1, …, Am, B1, …, Bn)– S = (B1, …, Bn)

Hasil dari adalah relasi pada skemaR – S = (A1, …, Am)

= { t | t ε Π R-S(r) Λ u ε s ( tu ε r ) }

Page 11: 3.2 Model Relasional AljabarRelasional BagII

Operasi Assignment• Operasi assignment berguna untuk mengekspresikan query

kompleks.– Menulis query sebagai sebuah program sekuensial yang terdiri atas :

• # beberapa assigment• # diikuti oleh sebuah ekspresi yang nilainya ditampilkan sebagai hasil dari query

tersebut.– Assignment harus selalu dilakukan pada variabel relasi temporary

• Contoh : Operasi diterjemahkan menjadi :temp1←ΠR-S (r)temp2 ←ΠR-S ((temp1 x s) – ΠR-S,S (r))result = temp1 – temp2

– Hasil dari operasi yang dilakukan di ruas kanan di-assign ke variabel relasi di ruas kiri

– Variabel dapat digunakan dalam subsekuens operasi

Page 12: 3.2 Model Relasional AljabarRelasional BagII

Contoh Query

• Cari semua customer yang mempunyai account minimal di branch “Downtown” dan “Uptown”.

Page 13: 3.2 Model Relasional AljabarRelasional BagII

Contoh Query

• Cari semua customer yang mempunyai account di semua cabang yang berlokasi di kota Brooklyn.

Page 14: 3.2 Model Relasional AljabarRelasional BagII

Aljabar Relasional Extended

• Generalized Projection• Outer Join• Aggregate Functions

Page 15: 3.2 Model Relasional AljabarRelasional BagII

Generalized Projection

• Pengembangan operasi projection dengan memungkinkan fungsi aritmetik dimasukkan dalam projection list.

Π F1, F2, …, Fn(E)• E adalah sembarang ekspresi aljabar relasional• Setiap F1, F2, …, Fn adalah ekspresi aritmatik yang

melibatkan konstanta dan atribut pada skema E.• Contoh : terdapat relasi credit-info(customer-name, limit,

credit-balance),Cari informasi berapa lagi yang dapat dibelanjakan oleh tiap orang :Πcustomer-name, limit – credit-balance (credit-info)

Page 16: 3.2 Model Relasional AljabarRelasional BagII

Contoh Operasi Agregasi

Page 17: 3.2 Model Relasional AljabarRelasional BagII

Contoh Operasi Agregasi

Page 18: 3.2 Model Relasional AljabarRelasional BagII

Definisi Fungsi dan Operasi Agregasi• Fungsi agregasi menggunakan beberapa nilai sebagai input dan kemudian mengembalikan

hasil berupa nilai tunggal.– avg: nilai rata-rata– min: nilai minimum– max: nilai maximum– sum: jumlah total nilai– count: jumlah tuple

• Operasi Aggregasi dalam aljabar relasional

– E adalah ekspresi aljabar relasional– G1, G2 …, Gn adalah atribut untuk grouping– Fi adalah fungsi agregasi– Ai adalah nama atribut

• Hasil dari operasi agregasi tidak mempunyai nama, sehingga dapat dilakukan rename untuk memberi nama.

Page 19: 3.2 Model Relasional AljabarRelasional BagII

Contoh Outer Join

Page 20: 3.2 Model Relasional AljabarRelasional BagII

Contoh Outer Join (lanj.)

Page 21: 3.2 Model Relasional AljabarRelasional BagII

Contoh Outer Join (lanj.)

Page 22: 3.2 Model Relasional AljabarRelasional BagII

Definisi Outer Join

• Pengembangan dari operasi join, untuk menghindari hilangnya informasi.

• Operasi join dilakukan dan kemudian ditambahkan tuple dari satu relasi yang tidak match dengan relasi lainnya ke relasi hasil.

• Penggunaan nilai null :– null menyatakan bahwa nilai tersebut tidak dikenal (unknown)

atau tidak ada (not exist)– Semua perbandingan yang melibatkan nilai null dianggap salah

(false by definition).

Page 23: 3.2 Model Relasional AljabarRelasional BagII

Nilai Null

• Tuple dimungkinkan mengandung nilai null pada beberapa atributnya.

• null menyatakan sebuah nilai unknown atau nilai tersebut tidak ada (does not exist).

• Hasil dari operasi aritmatika yang melibatkan null adalah null.

• Fungsi agregasi akan mengabaikan nilai null • Untuk penghilangan duplikasi (duplicate elimination) dan

grouping, null diperlakukan sama seperti nilai lainnya, dan dua null dianggap sebagai nilai yang sama

Page 24: 3.2 Model Relasional AljabarRelasional BagII

Nilai Null (lanj.)• Perbandingan dengan nilai null akan mengembalikan nilai benar spesial : unknown

– Jika unknown tidak digunakan, tetapi menggunakan false, maka not (A < 5) tidak akan equivalen dengan A >= 5

• Tiga nilai lojik yang menggunakan nilai benar unknown:– OR: (unknown or true) = true,

(unknown or false) = unknown(unknown or unknown) = unknown

– AND: (true and unknown) = unknown,(false and unknown) = false,(unknown and unknown) = unknown

– NOT: (not unknown) = unknown– Dalam SQL, “P adalah unknown” dievaluasi sebagai true bila predikat P dievaluasi

sebagai unknown• Hasil dari predikat select diperlakukan sebagai false apabila dievaluasi sebagai

unknown

Page 25: 3.2 Model Relasional AljabarRelasional BagII

Modifikasi Basis Data

• Isi basis data dapat dimodifikasi menggunakan operasi berikut :– Deletion– Insertion– Updating

• Semua operasi tersebut diekspresikan menggunakan operator assignment

Page 26: 3.2 Model Relasional AljabarRelasional BagII

Contoh Deletion• Hapus semua record account yang ada di branch Perryridge.

account ← account – σ branch-name = “Perryridge” (account)

• Hapus semua account di branch yang berlokasi di Needham.

• Hapus semua record loan yang nilainya berada pada range 0 - 50

loan ← loan – σ amount ≥ 0 and amount ≤ 50 (loan)

Page 27: 3.2 Model Relasional AljabarRelasional BagII

Definisi Deletion

• Request delete diekspresikan dengan query, tetapi tidak ada display tuple, karena tuple yang dipilih dihilangkan dari basis data.

• Delete hanya dapat dilakukan untuk semua atribut pada tuple; tidak bisa dilakukan untuk sebagian atribut

• Ekspresi aljabar relasional untuk deletion :r ← r – E

r adalah relasi dan E adalah query aljabar relasional.

Page 28: 3.2 Model Relasional AljabarRelasional BagII

Contoh Insertion• Masukkan informasi bahwa Smith mempunyai uang sejumlah $1200 di account A-

973 pada branch Perryridge.

account ← account U {(“Perryridge”, A-973, 1200)}

depositor ← depositor U {(“Smith”, A-973)}

• Semua customer yang mempunyai loan di branch Perryridge akan diberi hadiah berupa savings account senilai $200. Anggap loan number berfungsi sebagai account number untuk savings account yang baru.

Page 29: 3.2 Model Relasional AljabarRelasional BagII

Contoh Update• Akan dilakukan pembayaran bunga dengan menaikkan

saldo sebanyak 5 persen.account ←ΠAN, BN, BAL * 1.05 (account)

AN, BN dan BAL singkatan dari account-number, branch-name dan balance.

• Untuk semua account dengan balance lebih dari $10,000 diberikan bunga sebanyak 6 persen, sedangkan untuk yang lainnya sebesar 5 persen

account← ΠAN, BN, BAL * 1.06 (σ BAL > 10000 (account)) U ΠAN, BN, BAL * 1.05 (σBAL ≤ 10000 (account))

Page 30: 3.2 Model Relasional AljabarRelasional BagII

Definisi Updating

• Mekanisme untuk mengubah nilai dalam sebuah tuple• Digambarkan menggunakan operator generalized

projection :r←ΠF1, F2, …, Fi, (r)

• Setiap Fi adalah salah satu dari :– Atribut ke - i pada relasi r, jika atribut tersebut tidak di-update,

atau,– Jika atribut tersebut akan di-update, Fi adalah ekspresi yang

melibatkan konstanta dan atribut relasi r, yang kemudian akan memberi nilai baru untuk atribut tersebut

Page 31: 3.2 Model Relasional AljabarRelasional BagII

View• Pada beberapa kasus, mungkin terdapat kondisi di mana tidak

semua user diijinkan untuk dapat melihat logical model (semua relasi yang tersimpan di dalam basis data) secara keseluruhan

• Misal : ada user yang memerlukan informasi tentang loan number customer, tetapi dia tidak mempunyai kepentingan untuk melihat loan amount. Orang yang termasuk ke dalam klasifikasi user tersebut akan melihat sebuah relasi yang dideskripsikan dengan ekspresi aljabar relasional berikut :

Πcustomer-name, loan-number (borrower loan)• Relasi yang tidak terdapat pada model konseptual tetapi bisa diakses

(visible) oleh user sebagai “virtual relation” disebut sebagai view

Page 32: 3.2 Model Relasional AljabarRelasional BagII

Definisi View• Sebuah view didefinisikan menggunakan statemen create view yang

memiliki format penulisan :create view v as <query expression>

di mana <query expression> merupakan ekspresi aljabar relasional. Nama view direpresentasikan dengan v.

• Sekali view didefinisikan, nama view bisa digunakan untuk mengacu ke “virtual relation” yang di-generate.

• Berdasarkan ekspresi query untuk membentuk view, definisi view tidak sama seperti membentuk sebuah relasi baruYang terjadi adalah definisi view akan menyebabkan ekspresi tersebut disimpan dan kemudian akan diterjemahkan menjadi query

Page 33: 3.2 Model Relasional AljabarRelasional BagII

Contoh View• Misal ada sebuah view (bernama all-customer) yang terdiri atas

semua branch dan customer yang terdaftar di branch tersebut.

• Kita dapat mencari semua customer yang ada di branch Perryridge dengan menuliskan query berikut :

Page 34: 3.2 Model Relasional AljabarRelasional BagII

Update Melalui View• Modifikasi basis data yang diekspresikan sebagai view harus

ditranslasikan menjadi modifikasi pada relasi sebenarnya yang ada di basis data.

• Misal ada orang yang perlu melihat semua data loan yang ada di relasi loan kecuali untuk atribut amount. View yang diberikan kepada orang tersebut, branchloan, didefinisikan sebagai :

create view branch-loan asΠbranch-name, loan-number (loan)

• Karena nama view boleh muncul di manapun nama relasi tersebut diijinkan untuk diketahui, orang tersebut dapat menulis :

branch-loan ← branch-loan U {(“Perryridge”, L-37)}

Page 35: 3.2 Model Relasional AljabarRelasional BagII

Update Melalui View (lanj.)• Operasi insertion tersebut harus durepresentasikan dengan insertion pada relasi

aslinya, yaitu loan.• Operasi insertion pada relasi loan memerlukan nilai untuk atribut amount. Insertion

dapat diproses dengan :– Insertion ditolak dan user mendapat error message.– Tuple (“L-37”, “Perryridge”, null) di-insert ke relasi loan

• Beberapa update melalui view tidak memungkinakn untuk ditransalasikan ke operasi update pada relasi asli di basis data

– Contoh : create view v as σbranch-name = “Perryridge” (account))– v ← v U (L-99, Downtown, 23)

• Beberapa jenis update lainnya tidak dapat ditransalasikan menjadi unique ekspresi aljabar relasional. Contoh :

– all-customer ← all-customer U {(“Perryridge”, “John”)}– Harus dilakukan pemilihan memakai relasi loan atau account, dan harus membuat

loan/account number yang baru

Page 36: 3.2 Model Relasional AljabarRelasional BagII

View yang Didefinisikan Menggunakan View Lain

• Sebuah view dapat digunakan pada ekspresi untuk mendefinisikan view lainnya

• Sebuah relasi view v1 dikatakan tergantung langsung (depend directly) pada relasi view v2 jika v2 digunakan pada ekspresi untuk mendefinisikan v1

• Sebuah relasi view v1 dikatakan bergantung pada (depend on) relasi view v2 jika v1 bergantung langsung pada v2 atau jika terdapat dependency path dari v1 ke v2

• Sebuah relasi view v dikatakan rekursif bila bergantung pada dirinya sendiri.

Page 37: 3.2 Model Relasional AljabarRelasional BagII

View Expansion

• Salah satu cara untuk mendefinisikan semantik sebuah view adalah dengan cara mengacu pada definisi view lain.

• Misal : view v1 didefinisikan dengan sebuah ekspresi ,e1, yang mungkin di dalam e1 tersebut juga mengandung penggunaan relasi view.

• Algoritma view expansion dari sebuah ekspresi :repeat

Find any view relation vi in e1Replace the view relation vi by the expression defining vi

until no more view relations are present in e1• Asalkan definisi view tidak rekursif, loop tersebut akan berakhir