Ada 2 jenis Query Languages, yaitu :
- Procedural : user menginstruksikan ke sistem agar membentuk serangkaian operasi ke dalam basis data untuk mengeluarkan hasil yang diinginkan. Contoh : Aljabar Relational yang terdiri dari operasi dasar dan operasi tambahan.
- Non-Prosedural : hanya menampilkan informasi. Contoh : Kalkulus Relational.
Adalah kumpulan operasi terhadap relasi, dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru.
Jenis Operasi dalam Aljabar Relational :
- Operasi Unary
Operasi-operasi select, project dan rename disebut operasi unary, karena operasi-operasi tersebut hanya memerlukan satu relasi. - Operasi Binary
Operasi-operasi union, set difference dan cartesian product memerlukan sepasang relasi, disebut operasi binary.
- Selection ( σ )
Selection / Select (σ ), adalah operasi untuk menyeleksi tupel – tupel yang memenuhi suatu predikat, kita dapat menggunakan operator perbandingan (<,>,>=,<=,=,#) pada predikat. Beberapa predikat dapat dikombinasikan menjadi predikat manjemuk menggunakan penghubung AND ( ∧ ) dan OR ( ∨ ).
Sintaks : σnamafield=’kondisi penentu’ (nama relasi)
Jika untuk menyeleksi tuple-tuple dari relasi Hutang dimana nama cabangnya adalah “Jakarta”,
ditulis : σ nama-cabang = “Jakarta” (Hutang)
- Projection ( π )
Projection / Project ( π ), adalah operasi untuk memperoleh kolom – kolom tertentu. Operasi project adalah operasi unary yang mengirim relasi argumen dengan kolom – kolom tertentu. Karena relasi adalah himpunan, maka baris – baris duplikasi dihilangkan.
Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut :
π colum1,…,column ( tabel)
Contoh : untuk menampilkan seluruh Cabang dan jumlah tanpa Nomor Pinjaman, maka dapat dituliskan :
π nama-cabang, jumlah (hutang) - Cartesian – product ( X, juga disebut sebagai cross product )
Cartesian-product ( X ), adalah operasi untuk menghasilkan table hasil perkalian kartesian.
Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut :
R X S = {(x,y) | x∈R dan y∈S}
Operasi cartesian-product memungkinkan kita mengkombinasikan informasi beberapa relasi, operasi ini adalah operasi biner. Sebagaimana telah dinyatakan bahwa relasi adalah subset hasil cartesian-product dan himpunan domain relasi – relasi tersebut. Kita harus memilih atribut – atribut untuk relasi yang dihasilkan dari cartesian-product.
Operasi Cartesian-product akan dihasilkan informasi yang merupakan kombinasi dari dua relasi.
Jika kita memiliki 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 relasi r2).
Contoh : Jika diinginkan nama-nama dari semua nasabah yang mempunyai pinjaman (loan) di bank cabang Bogor, maka query-nya ditulis :
σnama-cabang = “Bogor” (borrower x loan) - Union ( ∪ )
Union ( ∪ ), adalah operasi untuk menghasilkan gabungan table degan syarat kedua table memiliki atribut yangsama, yaitu domain atribut ke-i masing – masing table harus sama. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut :
R ∪ S = {x | x∈R atau X ∈S}
Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang sama sehingga jumlah komponennya sama.
Operasi union dalam aljabar relasional sama halnya dengan operasi union pada aritmatika. Misal user menginginkan nama-nama semua nasabah bank yang memiliki sebuah account atau sebuah loan atau keduanya. Perhatikan bahwa relasi customer tidak mengandung informasi tersebut
Untuk menjawab query ini diperlukan informasi dari relasi Depositor dan relasi Borrower. Dengan operasi union informasi yang diinginkan dapat diperoleh dengan menulis query sebagai berikut :
πnama-nasabah(borrower) U πnama-nasabah(depositor) - Set – difference ( - )
Set-difference ( - ), adalah operasi untuk mendapatkan table pada suatu relasi, tapi tidak ada pada relasi yang lainnya. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut :
R – S = { x | x∈R dan X ∉ S}
Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan, sedangkan atribut yang sama tidak ditampilkan.
Operasi ini akan menemukan tuple-tuple yang berada pada satu relasi tetapi tidak berada pada relasi yang lainnya.
Contoh, untuk menemukan semua nasabah bank yang mempunyai account tetapi tidak mempunyai loan, ditulis:
πnama-nasabah(depositor) - πnama-nasabah(borrower) - Rename ( ρ )
Rename ( ρ ), adalah operasi untuk menyalin table lama kedalam table yang baru. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut :
ρ [nama_table] (table_lama)
Dilambangkan dengan simbol rho (ρ).
Sintaks penulisan rename : ρx(E)
Operasi rename mengeluarkan hasil ekspresi E dengan nama x.
Contoh :
πaccount.balance(σaccount.balance
1. Operator Himpunan
- Union atau gabungan (disimbolkan dengan “u”)
Union dari relasi A dan B dinyatakan sebagai A u B
- Intersection atau Irisan (disimbolka dengan “n”)
Misalkan intersection dari relasi A dan B dinyatakan sebagai A n B
- Difference (disimbolkan dengan “-”)
Misalkan difference dari relasi A dan B dinyatakan dengan A – B
- Cartesian Product
Produk cartesian dari relasi A dan B dinyatakan dengan A X B
- Restrict yaitu pemilihan tupel atau record
- Project berfungsi dalam pemilihan attribute atau field
- Divide berfungsi untuk membagi
- Join berfungsi untuk menggabungkan
- Operator dasar untuk fundamental operational
– Unary operators: Selection, projection, rename.
– Binary operators (union compatibilty): union, set difference, Cartesian product - Operator tambahan untuk additional operasional
– rename, intersection, join, quotient (division)
- Set Intersection (n) yaitu operasi yang berfungsi untuk menghasilkan irisan dua tabel dengan domain atribut ke-i kedua tabel tersebut sama.
- Theta Join yaitu operasi yang menggabungkan operasi cartesian product dengan operasi selection dengan suatu kriteria yang diinginkan.
- Natural Join yaitu perasi yang digunakan untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.
- Division yaitu operasi untuk pembagian atas baris-baris dari 2 relasi.
KALKULUS RELASIONAL
- Merupakan alternatif untuk aljabar relasional.
- Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.
- Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL.
- Varian kalkulus yang disajikan secara detil disebut Tuple Relational Calculus (TRC) dimana pada TRC mengambil instan (tuple) sebagai nilainya.
- Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.
- Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL.
- Varian kalkulus yang disajikan secara detil disebut Tuple Relational Calculus (TRC) dimana pada TRC mengambil instan (tuple) sebagai nilainya.
- Tupel KalkulusRelational
Variabel Tuple merupakan variabel yang nilainya diambil dari tuple skema relasi tertentu, sehingga nilai yang ditentukan untuk satu variabel tuple tertentu, punya jumlah dan tipe field yang samaEkspresi : {t |P(t) } → t : tupelP : predikat terhadapt
Bentuk-bentuk dari predikat :1. S ε R → S : variabel,R : Relasi
2. S[x] θ U [y] → S & U : variabel tupel
θ : operator aritmatik <, =, >, ≥, ≤, ≠
x : atribut padaS
y : atribut padaU
3. S[x] θ C → C : konstantaθ : operatorpenghubung∧(and), ∨(or)
Contoh:Skema relasiDOSEN (nip,nama,alamat,kota,jkel)Dicari nama dosenyangberada di kota‘Bogor’{t |t ∈DOSEN ∧t [kota]= “Bogor”} - Domain Kalkulus RelationalEkspresi {
|P } xi : variabeldomain
P : predikat terhadapx
Bentuk-bentuk dari predikat:1.∈R → R : relasi x : variabeldomain
2. x θ y → x & y : variabeldomainθ : operatoraritmatik
3. x θ C→ C : konstantaContoh:Skema relasiDOSEN (nip,nama,alamat,kota,jkel)Dicaridata-datamengenai dosenyangmempunyainip ‘87000650’{| ∈DOSEN ∧n = ‘87000650’}
0 komentar:
Posting Komentar