380 likes | 774 Views
Aljabar Relasional. Materi pertemuan. Bahasa Query. Bahasa yang digunakan user untuk melakukan request informasi dari basis data Kategori Bahasa : Prosedural Non-prosedural Bahasa “Murni” (“Pure” languages ) : Aljabar Relasional Tuple Relational Calculus Domain Relational Calculus
E N D
AljabarRelasional Materipertemuan
Bahasa Query • Bahasa yang digunakan user untuk melakukan request informasi dari basis data • Kategori Bahasa : • Prosedural • Non-prosedural • Bahasa “Murni” (“Pure” languages) : • Aljabar Relasional • Tuple Relational Calculus • Domain Relational Calculus • Pure languages membentuk dasar bahasa query yang digunakan user.
Bahasa query memungkinkan manipulasi dan pemanggilan data dari suatu basisdata. • Terdapat 2 macam bentuk bahasa query” • Aljabar Relasional • Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut • Lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan • Kalkulus Relasional • Memungkinkan user menggambarkan apa yang mereka inginkan, tidak pada pada bagaimana cara melakukan komputasi terhadap apa yang mereka inginkan tersebut. (tidak bersifat operasional, tapi bersifat deklaratif). • Memahami aljabar dan kalkulus relasional adalah kunci memahami SQL.
Aljabar Relasional • Merupakan bahasa prosedural • Operator dasar : • select • project • union • set difference • Cartesian product • rename • Operator yang melibatkan dua atau lebih relasi sebagai input akan menghasilkan satu relasi baru sebagai output.
Operasi Dalam Aljabar Relasional • Operasi-operasi dasar dalam aljabar relasional adalah : • Select : memilih sub himpunan baros dari suatu relasi • Project : Menghapus kolom yang tidak dikehendaki dari relasi • Union : Mendapatkan tupel yang terdapat dalam relasi satu dan relasi dua. • set difference : mendapatkan tupel yang terdapat dalam relasi satu tapi tidak terdapat dalam relasi dua. • Operasi tambahan : • Intersection • Join • Division • renaming
Operasi-operasi select, project dan rename disebut operasi unary, karena operasi-operasi tersebut hanya memerlukan satu relasi. • Tiga operasi lainnya memerlukan sepasang relasi, disebut operasi binary.
Definisi Operasi Select • Notasi : σp(r) • p disebut sebgai predikat selection • Definisi selection : σp(r) = {t | t εr and p(t)} Di mana p adalah sebuah formula dalam kalkulus proposisi yang terdiri atas term yang dihubungkan dengan Setiap term adalah satu dari : <attribute> op <attribute> or <constant> di mana op adalah salah satu dari: =, ≠, >, ≥. <. ≤ • Contoh selection: σ branch-name=“Perryridge”(account)
Operasi SELECT • Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. • Digunakan symbol sigma (σ) untuk menunjukkan operasi select. • Predikat muncul sebagai subcript dari σ. Argumen relasi diberikan dalam kurung yang mengikuti σ. • Jadi untuk menyeleksi tuple-tuple dari relasi S2dimana rating-nya lebih besar dari 8, ditulis : • σ rating>8 (S2) • Maka tabel yang dihasilkan:
Jika relasi S2 adalah : • Contoh-contoh query lain dengan operasi select adalah : σage = “35.0”(S2) • Yang artinya : menyeleksi tuple-tuple dari relasi S2 dimana age-nya adalah “35.0”
Definisi Operasi Project • Notasi : ΠA1, A2, …, Ak(r) di mana A1, A2adalah nama atribut, danradalah nama relasi. • Hasil operasi project didefinisikan sebagai relasi dengan kolom sebanyak k yang diperoleh dengan menghapus kolom yang tidak termasuk dalam kriteria. • Duplicate rows dihilangkan dari relasi hasil, karena relasi adalah sebuah himpunan. • Contoh : apabila kita ingin memperoleh informasi dari relasi account, tetapi tanpa atribut branch-name : Πaccount-number, balance(account)
Operasi Project • Seandainya diinginkan semua daftar snamedan rating, dengan rating >8. • Dengan operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan dengan symbol phi (π). • Nama-nama atribut yang diinginkan tampil ditulis sebagai subcript π • Contoh : πsname,rating(σ rating>8 (S2)), adalah operasi untuk menampilkan seluruh sname & rating dengan rating > 8 • Hasil operasi tersebut adalah :
Union, Intersection, Set-Difference • Semua Operasi ini membutuhkan dua relasi, syarat yang harus di penuhi adalah: • Mempunyai jumlah field yang sama • Field yang berkorespondensi memiliki tipe yang sama. • Untuk dua tabel relasi S1 dan S2 berikut:
Definisi Operasi Union • Notasi: r U s • Definisi operasi union : r U s = {t | t ε r or t ε s} • Kriteria valid r U s: • 1. r, s harus mempunyai arity sama (jumlah atributnya sama) • 2. Domain atribut harus kompatibel (misal : kolom kedua relasi r mempunyai tipe data yang sama dengan kolom kedua relasi s) • Contoh : untuk mencari semua customer yang mempunyai account atau pinjaman : Πcustomer-name(depositor) U Πcustomer-name(borrower)
Definisi Operasi Set Difference • Notasi : r – s • Definisi : r – s = {t | t εr and t ∉ s} • Operasi set difference harus dilakukan pada relasi yang kompatibel : • r dan s harus mempunyai arity sama • Domain atribut r dan s harus kompatibel
Berikut ini adalah contoh dari ketiga operasi diatas: • Union : S1 U S2 • Intersection: S1 n S2 • Set-Difference:
Cross-Product • Cross Product biasa dikenal dengan Operasi Cartesian-product. • Operasi Cartesian-product disimbolkan dengan “x”. • Dengan operasi ini dapat dihasilkan informasi yang merupakan kombinasi dari dua relasi. • Secara garis besar, jika dipunyai relasi r1(R1) dan r2(R2), maka r1 x r2 adalah relasi yang skemanya merupakan gabungan dari R1 ( atribut-atribut relasi r1) dan R2 (atribut-atribut r2). • Relasi R mengandung semua tuple t dimana terdapat sebuah tuple t1 dalam r1 dan t2 dalam r2 sedemikian sehingga t[R1] = t1[R1] dan t[R2]=t2[R2].
Definisi Operasi Cartesian-Product • Notasi : r x s • Definisi : r x s = {t q | t εr and q εs} • Asumsi atribut r(R) dan s(S) disjoint. (Yaitu R ∩ S = ∅). • Jika atribut r(R) dan s(S) tidak disjoint, maka harus dilakukan renaming.
Komposisi Beberapa Operasi • Contoh: σA=C(r x s)
Operasi Rename • Memungkinkan untuk memberi nama dan mengacu hasil dari operasi ekspresi aljabar relasional. • Memungkinkan untuk mengacu sebuah relasi dengan lebih dari satu nama. Contoh : ρ x(E) mengembalikan ekspresi E dengan nama Jika ekspresi aljabar relasional E mempunyai arity n, maka ρx(A1, A2, …, An) (E) mengembalikan hasil ekspresi E dengan nama X, dan atributnya direname menjadi A1, A2, …., An.
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)
Contoh Query • Cari semua loan yang nilainya lebih dari $1200 σamount> 1200 (loan) • Cari nomor loan untuk semua loan yang nilainya lebih dari $1200 Πloan-number(σamount> 1200 (loan))
Contoh Query • Cari nama semua customer yang mempunyai loan, account, atau keduanya. Πcustomer-name(borrower) U Πcustomer-name(depositor) • Cari nama semua customer yang mempunyai loan dan account. Πcustomer-name(borrower) ∩ Πcustomer-name(depositor)
Contoh Query • Cari nama semua customer yang mempunyai loan di branch Perryridge. Πcustomer-name(σbranch-name=“Perryridge” (σborrower.loan-number = loan.loan-number(borrower x loan))) • Cari nama semua customer yang mempunyai loan di branch Perryridge, tetapi tidak mempunyai account di branch manapun. Πcustomer-name(σbranch-name = “Perryridge” (σborrower.loan-number = loan.loan-number(borrower x loan))) – Πcustomer-name(depositor)
Contoh Query • Cari nama semua customer yang mempunyai loan di branch Perryridge. • Query 1 Πcustomer-name(σbranch-name=“Perryridge” ( σborrower.loan-number=loan.loan-number(borrower x loan))) • Query 2 Πcustomer-name(σloan.loan-number=borrower.loan- number((σbranch-name=“Perryridge”(loan)) x borrower))
Contoh Query • Cari nilai balance account yang paling besar • Rename relasi account sebagai d • Query : Πbalance(account) - Πaccount.balance (σaccount.balance< d.balance(account x ρd (account)))
Latihan : • Diketahui skema basis data sbb: employee (person-name, street, city) works (person-name, company-name, salary) company (company-name, city) manages (person-name, manager-name) • Cari nama employee yang bekerja pada First Bank Corporation. • Cari nama dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation. • c. Cari nama, alamat dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation dan berpenghasilan lebih dari $10,000. • d. Cari nama semua employee yang tinggal di kota yang sama dengan perusahaan dimana mereka bekerja. • e. Cari nama semua employee yang tinggal di kota dan jalan yang sama dengan manager mereka. • f. Cari nama semua employee yang tidak bekerja di First Bank Corporation. • g. Cari semua nama employee yang penghasilannya lebih dari employee di Small Bank Corporation. • h. Asumsikan perusahaan berlokasi di beberapa kota. Cari semua perusahaan yang berlokasi di setiap kota dimana Small Bank Corporation berada.