Aljabar Relational
Bagian dari ilmu komputer, cabang dari logika predikat tingkat pertama
dan aljabar himpunan, yang menangani suatu set relasi hingga yang
memiliki sifat ketertutupan dengan operator-operator tertentu. Operator
ini bertindak dengan satu atau lebih relasi untuk menghasilkan suatu
relasi (gabungan). Aljabar relasional mulai mendapat perhatian dengan
diterbitkannya model relasional data oleh Edgar F. Codd pada tahun 1970
yang mengusulkan untuk menggunakan aljabar ini sebagai dasar dari bahasa
kueri basis data. Terdapat Enam operasi dasar dalam aljabar relasional, yaitu:
- Selection ( σ )
- Projection ( π )
- Cartesian – product ( X, juga disebut sebagai cross product )
- Union (∪)
- Set – difference ( – )
- Rename ( ρ )
- Set intersection ( ∩ )
- Theta join ( θ )
- Outer-join
- Division ( ÷ )
Berikut Penjelasan dari beberapa operasi diatas :
1.Operasi 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 (∨).2. Operasi 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 :
3. Operasi Cartesian-product ( X )π colum1,…,column ( tabel)
Cartesian-product ( X ), adalah operasi untuk menghasilkan tabel 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.4. Operasi Union (∪)
Union (∪), adalah operasi untuk menghasilkan gabungan tabel degan syarat kedua tabel memiliki atribut yang sama, yaitu domain atribut ke-i masing – masing tabel 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.5. Set-difference ( – )
Set-difference ( – ), adalah operasi untuk mendapatkan tabel 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.6. Rename ( ρ )
Rename ( ρ ), adalah operasi untuk menyalin tabel lama kedalam tabel yang baru. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut :7. Set-intersection ( ∩ )
ρ [nama_tabel] (tabel_lama).
Set-intersection / Intersection ( ∩ ) termasuk kedalam operator tambahan, Karena operator ini dapat diderivikasi dari operator dasar seperti berikut:
A ∩ B = A – ( A – B ), atau A ∩ B = B – ( B – A )
Operasi ini merupakan operasi binary, yang digunakan untuk membentuk sebuah relasi baru dengan tuple yang berasal dari kedua relasi yang dihubungkan.8. Theta-join ( θ ) / Equi-join
Theta-join ( ) dan equi-join adalah operasi untuk menggabungkan operasi selection dan cartesian-product dengan suatu kriteria.9. Outer-join
Outer-join adalah operasi untuk menggabungkan operasi selection dan cartesian- product dengan suatu kriteria pada kolom yang sama.10. Devision ( ÷)
Devision ( ÷ ) adalah operasi yang banyak digunakan dalam query yang mencakup frase “setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tuple – tuple dari dua relasi.
Latihan Aljabar Relational
1. UNION
a). Tampilkan NIM, berapa kali nilai yang muncul dan total nilai per mahasiswa. NIM yang ditampilkan adalah ‘201381001’
b). Tampilkan NIM, berapa kali nilai yang muncul dan total nilai per mahasiswa. NIM yang ditampilkan adalah ‘201381005’
c). Dengan UNION Tampilkan NIM, berapa kali nilai yang muncul dan total nilai per mahasiswa. NIM yang ditampilkan adalah ‘201381002’ dan ‘201381005’
2.
DISTINCT
Tampilkan nilai berdasarkan kode mata kuliah, dengan menghilangkan data yang bernilai ganda
3. JOINT
a). Dengan menggunakan sintax joint tampilkan nama matakuliah, SKS, dan nilai
b). Tampilkan nama mahasiswa, kota dan nilai
c). Tampilkan nama mata kuliah, nama mahasiswa,dan nilai
Query Sub & View
Query Sub
Sub
query adalah query di dalam query, artinya seleksi data berdasarkan dari
hasil seleksi data yang telah ada.
Ada pun kegunaan sub query dalam memanipulasi data adalah sebagai berikut :
Ada pun kegunaan sub query dalam memanipulasi data adalah sebagai berikut :
- Meng-copy data dari satu tabel ke tabel lain
- Menerima data dari inline view
- Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
- Menghapus baris dari satu tabel berdasarkan baris dari tabel lain
1.Membuat Tabel barang
2.Membuat Tabel Pelanggan
3.Membuat Tabel Pembelian
VIEW
SQL View merupakan tabel semu, artinya secara fisik data tidak tersimpan dalam
basis data, tetapi secara lojik dapat berfungsi seolah-olah sebagai tabel. SQL
View tidak memiliki data sendiri, tetapi data-datanya berasal dari tabel-tabel
atau view lain. SQL View dibuat atau dibangun dengan SELECT statement. Di
dalam query SELECT tersebut kita bias menambahkan ORDER BY statement untuk
mengurutkan data atau tidak sama sekali. SQL View dapat digunakan untuk
memudahkan atau menyederhanakan data yang ditampilkan, mencegah
menampilkan data yang penting dengan menyembunyikan nama kolomnya.
Fungsi dari view sendiri
itu adalah :
- Menyembunyikan Kolom atau Baris
- Menampilkan hasil dari penghitungan
- Menyembunyikan Sintak SQL yang rumit
- Fungsi Built-in Layer
- Menyediakan level isolasi antara data tabel dan View data pengguna
- Memberikan proses permission yang berbeda untuk view yang berbeda dari tabel yang sama
- Memberikan trigger berbeda pada view yang berbeda dari tabel yang sama
Latihan Query Sub & View
2. Tampilkan pelanggan yang paling besar pembeliannya
3. Buatlah view dengan nama V_PELANGGAN (suplier) yang menampilkan nama pelanggan,alamat dan telepon. Pelanggan yang ditampilkan adalah yang berasal dari kota Jakarta.
4. Buatlah view V_PLGN_BELI (pasok) yang menampilkan jumlah pembelian per pelanggan untuk tanggal tertentu. Field yang ditampilkan adalah nama pelanggan jumlah pembelian, tanggal pembelian. Tampilkan semua data yang ada pada view V_PLGN_BELI
5. Buatlah view V_JUM_BELI yang menampilkan jumlah beli per barang per pelanggan per tanggal tertentu. Field yang ditampilkan adalah nama barang, nama pelanggan, tanggal pembelian,dan jumlah
pembelian.Tampilkan semua data yang ada pada view V_JUM_BELI
1.Tampilkan nama barang yang mempunyai stok kurang dari rata-rata.
2. Tampilkan pelanggan yang paling besar pembeliannya
3. Buatlah view dengan nama V_PELANGGAN (suplier) yang menampilkan nama pelanggan,alamat dan telepon. Pelanggan yang ditampilkan adalah yang berasal dari kota Jakarta.
4. Buatlah view V_PLGN_BELI (pasok) yang menampilkan jumlah pembelian per pelanggan untuk tanggal tertentu. Field yang ditampilkan adalah nama pelanggan jumlah pembelian, tanggal pembelian. Tampilkan semua data yang ada pada view V_PLGN_BELI
5. Buatlah view V_JUM_BELI yang menampilkan jumlah beli per barang per pelanggan per tanggal tertentu. Field yang ditampilkan adalah nama barang, nama pelanggan, tanggal pembelian,dan jumlah
pembelian.Tampilkan semua data yang ada pada view V_JUM_BELI