Model Relasional Bagian II Aljabar Relasional CS 2343
Model Relasional Bagian II: Aljabar Relasional CS 2343 Perancangan Basis Data Relasional
Outline l Definisi Formal l Additional Operations l Aljabar Relasional Extended
Definisi Formal l Ekspresi dasar dalam aljabar relasional terdiri atas salah satu dari hal berikut : l l l Sebuah relasi dalam basis data Sebuah relasi konstan Misal E 1 dan E 2 adalah ekspresi aljabar relasional; berikut merupakan semua kemungkinan ekspresi aljabar relasional : l l l E 1 U E 2 E 1 - E 2 E 1 x E 2 σp (E 1), P adalah predikat pada atribut dalam E 1 Πs(E 1), S merupakan daftar beberapa atribut dalam E 1 ρ x (E 1), x adalah nama baru untuk hasil operasi dari E 1
Additional Operations Terdapat beberapa additional operation (operasi tambahan) untuk membuat beberapa query menjadi lebih sederhana Set intersection l Natural join l Division l Assignment l
Contoh Operasi Set-Intersection
Definisi Operasi Set-Intersection l Notasi : r∩s l Definisi formal : r ∩ s ={ t | t ε r and t ε s } l Asumsi : r, s mempunyai arity yang sama l Atribut r dan s kompatibel l l Catatan : r ∩ s = r - (r - s)
Contoh Operasi Natural Join
Definisi Operasi Natural Join l l 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 : l l 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 l l l t mempunyai nilai yang sama dengan tr pada r t mempunyai nilai yang sama dengan ts pada s Contoh : l l 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))
Contoh Operasi Division
Definisi Operasi Division Notasi : l Berlaku untuk query yang mengandung frase “for all”. l Misal terdapat relasi r dan s pada skema R dan S di mana l l l R = (A 1, …, Am, B 1, …, Bn) S = (B 1, …, Bn) Hasil dari adalah relasi pada skema R – S = (A 1, …, Am) = { t | t ε Π R-S(r) Λ u ε s ( tu ε r ) }
Operasi Assignment l Operasi assignment berguna untuk mengekspresikan query kompleks. l Menulis query sebagai sebuah program sekuensial yang terdiri atas : l l # 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 : temp 1←ΠR-S (r) temp 2 ←ΠR-S ((temp 1 x s) – ΠR-S, S (r)) result = temp 1 – temp 2 l l Hasil dari operasi yang dilakukan di ruas kanan di-assign ke variabel relasi di ruas kiri Variabel dapat digunakan dalam subsekuens operasi
Contoh Skema Perbankan l branch (branch-name, branch-city, assets) l customer (customer-name, customerstreet, customer-only) l account (account-number, branch-name, balance) l loan (loan-number, branch-name, amount) l depositor (customer-name, accountnumber)
Contoh Query l Cari semua customer yang mempunyai account minimal di branch “Downtown” dan “Uptown”.
Contoh Query l Cari semua customer yang mempunyai account di semua cabang yang berlokasi di kota Brooklyn.
Aljabar Relasional Extended l Generalized l Outer Projection Join l Aggregate Functions
Generalized Projection Pengembangan operasi projection dengan memungkinkan fungsi aritmetik dimasukkan dalam projection list. Π F 1, F 2, …, Fn(E) l E adalah sembarang ekspresi aljabar relasional l Setiap F 1, F 2, …, Fn adalah ekspresi aritmatik yang melibatkan konstanta dan atribut pada skema E. l 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) l
Contoh Operasi Agregasi
Contoh Operasi Agregasi
Definisi Fungsi dan Operasi Agregasi l Fungsi agregasi menggunakan beberapa nilai sebagai input dan kemudian mengembalikan hasil berupa nilai tunggal. l l l Operasi Aggregasi dalam aljabar relasional l l avg: nilai rata-rata min: nilai minimum max: nilai maximum sum: jumlah total nilai count: jumlah tuple E adalah ekspresi aljabar relasional G 1, G 2 …, 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.
Contoh Outer Join
Contoh Outer Join (lanj. )
Contoh Outer Join (lanj. )
Definisi Outer Join Pengembangan dari operasi join, untuk menghindari hilangnya informasi. l Operasi join dilakukan dan kemudian ditambahkan tuple dari satu relasi yang tidak match dengan relasi lainnya ke relasi hasil. l Penggunaan nilai null : l l l null menyatakan bahwa nilai tersebut tidak dikenal (unknown) atau tidak ada (not exist) Semua perbandingan yang melibatkan nilai null dianggap salah (false by definition).
Nilai Null l l 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
Nilai Null (lanj. ) l Perbandingan dengan nilai null akan mengembalikan nilai benar spesial : unknown l l Tiga nilai lojik yang menggunakan nilai benar unknown: l l l Jika unknown tidak digunakan, tetapi menggunakan false, maka not (A < 5) tidak akan equivalen dengan A >= 5 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
- Slides: 25