Aljabar Relasional Materi pertemuan
Bahasa Query Bahasa yang digunakan user untuk melakukan request informasi dari basis data Kategori Bahasa : Prosedural Non-prosedural
Bahasa Query 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 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 : mengambil sejumlah baris data berdasarkan kondisi yang diinginkan. Project : Menghapus kolom yang tidak dikehendaki dari relasi Union : Mendapatkan record yang terdapat dalam dua tabel dengan kolom yang sejenis. set difference : mendapatkan record / field yang terdapat dalam sebuah tabel, tetapi tidak terdapat dalam tabel lain. Cartesian/Cross Product : menggabungkan data dari dua buah tabel atau hasil query.
Definisi Operasi Select Notasi : σp(r) p disebut sebgai predikat selection Di mana p adalah sebuah formula dalam kalkulus proposisi yang terdiri atas kondisi yang dihubungkan dengan : dan juga dihubungkan dengan operator: =, ≠, >, ≥. <. ≤
Operasi Select (Contoh)
Contoh Operasi SELECT Jika ada sebuah tabel bernama S2, sbb : Jadi untuk menyeleksi tuple-tuple dari relasi S2 dimana rating-nya lebih besar dari 8, ditulis : σ rating>8 (S2) Maka tabel yang dihasilkan:
Contoh-contoh query lain dengan operasi select adalah : σage = “35 Contoh-contoh query lain dengan operasi select adalah : σage = “35.0”(S2) Yang artinya : menyeleksi record-record dari relasi S2 dimana age-nya adalah “35.0” Maka Tabel Hasil Querynya adalah?
Operasi-operasi select, project dan rename disebut operasi unary, karena operasi-operasi tersebut hanya memerlukan satu tabel. Tiga operasi lainnya memerlukan sepasang relasi, disebut operasi binary.
Definisi Operasi Project Notasi : ΠA1, A2, …, Ak (r) di mana A1, A2 adalah nama atribut, dan r adalah nama tabel. Hasil operasi project didefinisikan sebagai relasi dengan kolom sebanyak k yang diperoleh dengan menghapus kolom yang tidak termasuk dalam kriteria.
Contoh Ilustrasi Operasi Projection
Contoh Operasi Project Seandainya diinginkan semua daftar sname dan 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 :
Definisi Operasi Union Notasi: r U s Kriteria valid r U s : 1. r, s harus mempunyai jumlah atribut sama 2. Domain atribut harus kompatibel (misal : kolom kedua relasi r mempunyai tipe data yang sama dengan kolom kedua relasi s)
Contoh Ilustrasi Operasi Union
Definisi Operasi Set Difference Notasi : r – s Operasi set difference harus dilakukan pada relasi yang kompatibel : Domain atribut r dan s harus kompatibel
Contoh Ilustrasi Operasi Set Difference
Cartesian / 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 tabel. Secara garis besar, jika dipunyai relasi r1(R1) dan r2(R2), maka r1 x r2 adalah tabel yang skemanya merupakan gabungan dari R1 ( atribut-atribut relasi r1) dan R2 (atribut-atribut r2).
Contoh Ilustrasi Operasi Cartesian-Product
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. Misalkan untuk dua tabel relasi S1 dan S2 berikut:
Berikut ini adalah contoh dari ketiga operasi diatas: Union : S1 U S2 Intersection: S1 n S2 Set-Difference:
Contoh : S1 x R1
Contoh Komposisi Beberapa Operasi Contoh: σA=C(r x s)
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))
Tugas: 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) Buatlah query SQL dan Aljabar relasional dari perintah-perintah berikut: Tampilkan semua nama dan kota employee Tampilkan nama dan kota tempat tinggal semua employee Tampilkan nama semua employee dengan pasangan manager mereka. Tampilkan semua nama employee yang bekerja pada company First Bank Corporation. Tampilkan nama dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation. c. Tampilkan nama, alamat dan kota tempat tinggal semua employee yang bekerja di First Bank Corporation dan berpenghasilan lebih dari $10,000. d. Tampilkan nama semua employee yang tinggal di kota yang sama dengan perusahaan dimana mereka bekerja. e. Tampilkan nama semua employee yang tidak bekerja di First Bank Corporation.