25
Model Relasional Bagian II: Aljabar Relasional CS2343 Perancangan Basis Data Relasional

Ch03 Model Dan Aljabar Relasional (2)_2

Embed Size (px)

Citation preview

Page 1: Ch03 Model Dan Aljabar Relasional (2)_2

Model Relasional Bagian II: Aljabar Relasional

CS2343 Perancangan Basis Data Relasional

Page 2: Ch03 Model Dan Aljabar Relasional (2)_2

Outline

Definisi FormalAdditional OperationsAljabar Relasional Extended

Page 3: Ch03 Model Dan Aljabar Relasional (2)_2

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: Ch03 Model Dan Aljabar Relasional (2)_2

Additional Operations

Terdapat beberapa additional operation (operasi tambahan) untuk membuat beberapa query menjadi lebih sederhanaSet intersectionNatural joinDivisionAssignment

Page 5: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Operasi Set-Intersection

Page 6: Ch03 Model Dan Aljabar Relasional (2)_2

DefinisiOperasi Set-Intersection

Notasi : r ∩ sDefinisi formal :

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

r, s mempunyai arity yang samaAtribut r dan s kompatibel

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

Page 7: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Operasi Natural Join

Page 8: Ch03 Model Dan Aljabar Relasional (2)_2

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: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Operasi Division

Page 10: Ch03 Model Dan Aljabar Relasional (2)_2

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: Ch03 Model Dan Aljabar Relasional (2)_2

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: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Skema Perbankan

branch (branch-name, branch-city, assets)customer (customer-name, customer-street,

customer-only)account (account-number, branch-name,

balance)loan (loan-number, branch-name, amount)depositor (customer-name, account-number)borrower (customer-name, loan-number)

Page 13: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Query

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

Page 14: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Query

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

Page 15: Ch03 Model Dan Aljabar Relasional (2)_2

Aljabar Relasional Extended

Generalized ProjectionOuter JoinAggregate Functions

Page 16: Ch03 Model Dan Aljabar Relasional (2)_2

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 17: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Operasi Agregasi

Page 18: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Operasi Agregasi

Page 19: Ch03 Model Dan Aljabar Relasional (2)_2

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 20: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Outer Join

Page 21: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Outer Join (lanj.)

Page 22: Ch03 Model Dan Aljabar Relasional (2)_2

Contoh Outer Join (lanj.)

Page 23: Ch03 Model Dan Aljabar Relasional (2)_2

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 24: Ch03 Model Dan Aljabar Relasional (2)_2

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 25: Ch03 Model Dan Aljabar Relasional (2)_2

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