Basis data dipahami oleh
pengguna sebagai kumpulan tabel-tabel yang saling ber relasi, konsep untuk
akses pada basis data model relasi dapat diterapkan berdasarkan matematika
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
Operasi-operasi dasar dalam aljabar relasional
•
Selection (g = sigma)
adalah memilih tupel (baris) dalam relasi yang memenuhi predikat
yang diberikan. σbranch-name = “Perrydge”(loan)
adalah memilih tupel (baris) dalam relasi yang memenuhi predikat
yang diberikan. σbranch-name = “Perrydge”(loan)
Contoh :
Contoh-contoh
query lain dengan operasi select adalah : σamount>1200(loan),
untuk
menemukan tuple dengan nilai amount lebih dari 1200, σbranch-name =
“Perryridge” and amount >1200 (loan), untuk menemukan tuple dengan
branch-name = “Perryridge” dimana nilai amountnya lebih dari 1200.
•
Projection (p = phi)
adalah operasi semacam selection tetapi mengambil atau memilih beberapa atribut (kolom) dalam relasi.
adalah operasi semacam selection tetapi mengambil atau memilih beberapa atribut (kolom) dalam relasi.
Contoh
: πloan-number,amount(loan), adalah operasi untuk menampilkan seluruh loan-number
& amount tanpa branch-name
Hasil
operasi tersebut adalah
Komposisi Operasi-operasi
relasional
Berikut
contoh query yang lebih kompleks : “ Temukan customer-customer yang
tinggal di Horison “. Maka query-nya ditulis :
πcustomer-name(σcustomer
city=”Horison”(customer))
perhatikan
bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk suatu
relasi.
•
Union (U = gabungan)
adalah menghasilkan semua tupel yang berada di kedua relasi.
adalah menghasilkan semua tupel yang berada di kedua relasi.
Contoh :
πcustomer-name(borrower)
U πcustomer-name(depositor)
Hasil query yang union di damping adalah :
Operasi union r U s bernilai benar jika kedua relasi memenuhi dua kondisi berikut :
1.
Relasi r & s harus mempunyai jumlah atribut yang sama
2. Domain dari atribut ke-I di relasi r dan
domain dari atribut ke-I dari s harus sama untuk semua i.
•
Set different (- = minus)
adalah menghasilkan relasi dengan tupel-tupel yang berada pada relasi kesatu, tetapi tidak ada pada relasi yang kedua.
adalah menghasilkan relasi dengan tupel-tupel yang berada pada relasi kesatu, tetapi tidak ada pada relasi yang kedua.
Contoh untuk menemukan semua nasabah bank yang
mempunyai account tetapi tidak mempunyai loan, ditulis : πcustomer-name(depositor) - πcustomer-name(borrower)
•
Joint (X = cross)
adalah tupel t adalah hasil operasi joint antara r dan s jika t memenuhi beberapa tupel di r
dalam skema r dan beberapa tupel dalam skema s.
adalah tupel t adalah hasil operasi joint antara r dan s jika t memenuhi beberapa tupel di r
dalam skema r dan beberapa tupel dalam skema s.
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].
Contoh : Jika diinginkan nama-nama dari semua
nasabah yang mempunyai pinjaman (loan)
di bank cabang Perryridge.
di bank cabang Perryridge.
Maka
query-nya ditulis : σbranch-name=”Perryridge”(borrower x loan)
·
Operasi
Rename
Dilambangkan dengan symbol rho (ρ). Sintaks penulisan rename : ρx(E).
Operasi
rename mengeluarkan hasil ekspresi E dengan nama x.
Contoh
: πaccount.balance(σaccount.balance<d.balance (account x ρd(account)))
Jika E1 & E2 adalah ekspresi
aljabar-relasional, maka berikut ini adlah semua
ekspresi aljabar-relasional :
•
- E1 U E2
•
- E1 – E2
•
- E1 x E2
•
- σp(E1),
dimana p adalah sebuah predikat untuk atribut-atribut dalam E1
•
- πs(E1),
dimana s adalah daftar yang terdiri dari bebrapa atribut dalam E1
•
- ρx(E1), dimana x adalah nama
baru untuk hasil E1
· Operasi Tambahan Aljabar Relasional
Tujuan :
Penyederhanaan penulisan query dalam Aljabar Relasional
> Operasi Set-Intersection : Digunakan untuk menyatakan / mendapatkan irisan ( kesamaan anggota ) dari dua buah kelompok data dari suatu tabel.
Rumus :
E1 ∩ E2
Tampilkan nama, jalan dan kota yang ditempati mahasiswa dan dosen.
Penyelesaian :
>> Set-Difference
∏ jalan, kota (mahasiswa) – (∏ jalan, kota (mahasiswa) - ∏ jalan, kota (dosen) )
>> Set-Intersection
∏ jalan, kota (mahasiswa) ∩ ∏ jalan, kota (dosen)
> Operasi Natural Join
Rumus :
E1 |X| E2
Tampilkan nama, kode_matkul nilai
E1 = Mahasiswa
E2 = Nilai
>> Cartesian Product :
∏ nama, kode_matkul, nilai (δ mahasiswa.nim=nilai.nim (mahasiswa X nilai) )
>> Natural Join :
∏ nama, kode_matkul, nilai ( mahasiswa |X| nilai )
> Operasi Divisi,Simbol : ÷
Tampilkan nama barang dan sub total penjualan pada tanggal =‘2011-11-11’
E1 = penjualan
E2 = detail_penjualan
E3 = barang
E1 = ∏ kode_jual(δtgl_jual=‘2011-11-11’(penjualan) )
E2 = ∏ nama_barang, (jumlah * total) subtotal (barang |X| detail_jual )
Maka :
E1 ÷ E2
> Operasi Assigment , simbol <- : Digunakan untuk menuliskan ekspresi aljabar dalam sebuah variabel relasi temporer
Menampilkan indeks_nilai tertinggi yang diperoleh mahasiswa.
∏nilai.indeks_nilai(nilai) - ∏.nilai.indeks_nilai(δ nilai.indeks_nilai < n.indeks_nilai (nilai X ρn (nilai) ) )
Dengan Operasi Assignment :
temp1 <- ∏nilai.indeks_nilai(nilai)
temp2 <- ∏.nilai.indeks_nilai(δ nilai.indeks_nilai < n.indeks_nilai (nilai X ρn (nilai) ) )
hasil <- temp1 – temp2
· Operasi Tambahan Aljabar Relasional
Tujuan :
Penyederhanaan penulisan query dalam Aljabar Relasional
> Operasi Set-Intersection : Digunakan untuk menyatakan / mendapatkan irisan ( kesamaan anggota ) dari dua buah kelompok data dari suatu tabel.
Rumus :
E1 ∩ E2
Tampilkan nama, jalan dan kota yang ditempati mahasiswa dan dosen.
Penyelesaian :
>> Set-Difference
∏ jalan, kota (mahasiswa) – (∏ jalan, kota (mahasiswa) - ∏ jalan, kota (dosen) )
>> Set-Intersection
∏ jalan, kota (mahasiswa) ∩ ∏ jalan, kota (dosen)
> Operasi Natural Join
Rumus :
E1 |X| E2
Tampilkan nama, kode_matkul nilai
E1 = Mahasiswa
E2 = Nilai
>> Cartesian Product :
∏ nama, kode_matkul, nilai (δ mahasiswa.nim=nilai.nim (mahasiswa X nilai) )
>> Natural Join :
∏ nama, kode_matkul, nilai ( mahasiswa |X| nilai )
> Operasi Divisi,Simbol : ÷
Tampilkan nama barang dan sub total penjualan pada tanggal =‘2011-11-11’
E1 = penjualan
E2 = detail_penjualan
E3 = barang
E1 = ∏ kode_jual(δtgl_jual=‘2011-11-11’(penjualan) )
E2 = ∏ nama_barang, (jumlah * total) subtotal (barang |X| detail_jual )
Maka :
E1 ÷ E2
> Operasi Assigment , simbol <- : Digunakan untuk menuliskan ekspresi aljabar dalam sebuah variabel relasi temporer
Menampilkan indeks_nilai tertinggi yang diperoleh mahasiswa.
∏nilai.indeks_nilai(nilai) - ∏.nilai.indeks_nilai(δ nilai.indeks_nilai < n.indeks_nilai (nilai X ρn (nilai) ) )
Dengan Operasi Assignment :
temp1 <- ∏nilai.indeks_nilai(nilai)
temp2 <- ∏.nilai.indeks_nilai(δ nilai.indeks_nilai < n.indeks_nilai (nilai X ρn (nilai) ) )
hasil <- temp1 – temp2
yenikustiyahningsih.files &sumber lain