aljabar relasional
TRANSCRIPT
ALJABAR RELASIONAL
Disusun untuk Memenuhi Tugas Basis Data Terdistribusi
Yang dibina oleh Bu Triyanna W.,S.T., M.T.
Oleh:
Endra Kuswara
107533407696
Off A
Universitas Negeri Malang
Fakultas Teknik
Jurusan Teknik Elektro
Prodi S1 Pendidikan Teknik Informatika
ALJABAR RELASIONAL
Aljabar relasional merupakan kumpulan operasi terhadap relasi, dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru.
Operasi-operasi pada aljabar relasional:
kelompok_filmjenis harga_sewaAction 2000horor 2500drama 3000
filmkode_film jenis judul jml_keping jml_film
A01 action Kungfu panda 2 3A02 action spiderman 2 5D01 drama Endles love 2 3H01 horor Suster keramas 2 2
1. SelectionOperasi yang digunakan untuk memilih subset dari tuple-tuple pada suatu relasi.Notasi : σp(r), p disebut selection predicate (yang menentukan pemilihan).Contoh: Dilakukan operasi σjenis=”drama”(film) pada relasi tabel film di atas.Perintah SQL: SELECT * from film WHERE jenis=”drama”Hasilnya: suatu relasi dengan tuple-tuple yang memiliki jenis sama dengan drama.
kode_film jenis judul jml_keping jml_filmD01 drama Endles love 2 3
2. ProjectionOperasi yang digunakan untuk memilih subset dari kolom-kolom pada suatu tabel.Notasi : πA1,A2,…,Ak(r), dimana A1, A2, …, Ak adalah daftar nama atribut dan r adalah nama suatu relasi.Contoh:Dilakukan operasi πkode_film, jenis, judul(film) pada relasi tabel film di atas.Perintah SQL: SELECT kode_film, film, judul from film .Hasilnya:
kode_film jenis judul
A01 action Kungfu pandaA02 action spidermanD01 drama Endles loveH01 horor Suster keramas
3. UnionAdalah operasi yang digunakan untuk menggabungkan hasil dari beberapa query.Notasi : r È s, menghasilkan suatu relasi baru yang elemen barisnya merupakan elemen dari r dan s, tidak ada duplikasi data. Untuk r È s harus valid : r, s harus memiliki jumlah atribut yang sama.Contoh:
S1
sid sname rating age22 Dustin 7 4531 Lubber 8 5558 rusty 10 35
S2
sid sname rating age28 yuppy 9 3531 lubber 8 5544 guppy 5 3558 rusty 10 35
Dilakukan operasi S 1∪ S2. Perintah SQL: SELECT* FROM S1 UNION SELECT* FROM S2Hasilnya:
sid sname rating age22 dustin 7 4531 lubber 8 5558 rusty 10 3544 guppy 5 3528 yuppy 9 35
4. IntersectionNotasi : r Ç s, menghasilkan suatu relasi baru dengan elemen barisnya merupakan elemen yang terdapat pada relasi r dan elemen tersebut juga terdapat pada relasi s, tidak ada duplikasi data. r dan s harus memiliki jumlah atribut yang sama.Contoh:Dilakukan operasi S 1∩ S2.Perintah SQL: SELECT* FROM S1 INTERSECT SELECT* FROM S2Hasilnya:
sid sname rating age31 lubber 8 5558 rusty 10 35
5. Set differenceNotasi r – s, hasilnya relasi yang elemen barisnya terdapat pada r tetapi tidak terdapat di s. r dan s harus memiliki jumlah atribut yang sama.Contoh:Dilakukan perintah S1 – S2.Perintah SQL: SELECT* FROM S1 MINUS SELECT* FROM S2Hasilnya:
sid sname rating age22 Dustin 7 45
6. Cross/cartesian productCross Product atau Cross Join atau Cartesian Product digunakan untuk mengkombinasikan record dari dua tabel. Cross join pada hakekatnya merupakan inner join di mana kondisi join selalu dievaluasi true. Secara matematis, jika A dan B merupakan dua himpunan, maka cross join-nya = A X B.
Contoh:Dilakukan perintah S1 X R1.Perintah SQL: SELECT* FROM S1, S2.
S1
sid sname rating age22 Dustin 7 4531 Lubber 8 5558 rusty 10 35
R1
sid bid day22 101 10/10/9958 103 11/12/96
Hasilnya:S1 X R1
sid sname rating age sid bid day22 Dustin 7 45 22 101 10/10/9922 Dustin 7 45 58 103 11/12/9631 Lubber 8 55 22 101 10/10/9931 Lubber 8 55 58 103 11/12/9658 rusty 10 35 22 101 10/10/9958 rusty 10 35 58 103 11/12/96
7. Join
Merupakan operasi yang digunakan untuk menggunakan informasi dari dua atau
lebih relasi ( ). Join dapat didefinisikan sebagai kombinasi record dari dua atau lebih
tabel di dalam basis data relasional dan menghasilkan sebuah tabel (temporary) baru—yang
disebut sebagai joined table.
Condition Join
Condition Join identik dengan Selection Condition. Bentuk operasinya yakni :
R c S = s c (R ´ S)
Dalam kasus ini kondisi yang biasanya terjadi ditentukan dengan tanda >, <, ≤, ≥, <>
Jadi, Condition Join ditentukan untuk menjadi sebuah Cross – Product yang diikuti
dengan satu selection.
Equijoin
Notasi Aljabar Relasional: R S
Satu kasus khusus yang biasa terjadi pada operasi join R S dengan terdiri dari
persamaan dari bentuk R.name1 = S.name1
Equijoin dapat diklasifikasikan ke dalam dua jenis: inner dan outer.
a. Inner Join (Intersection)
Inner join pada dasarnya adalah menemukan persimpangan (intersection) antara dua buah
tabel.
Gambar 1. Inner Join
Sintaks SQL Inner Join atau Intersection adalah sebagai berikut:
SELECT x1, x2, ..., xnFROM AINNER JOIN BON A.join_key = B.join_key
atau
SELECT x1, x2, ..., xnFROM A, B
WHERE A.key = B.key
Contoh:
b. Outter Join
Outer join dibagi ke dalam tiga jenis: Left , Right, dan Full outer join (Union).
- Left Outer Join
Left outer join (atau left join) mengembalikan semua nilai dari tabel kiri ditambah
dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada nilai yang sesuai).
Gambar 2. Left Outer Join
Sintaks SQL Left Outer Join adalah sebagai berikut:
SELECT x1, x2, ..., xnFROM ALEFT OUTER JOIN BON A.join_key = B.join_key
Contoh:
- Right Outter Join
Right outer join (atau right join) mengembalikan semua nilai dari tabel kanan
ditambah dengan nilai dari tabel kiri yang sesuai (atau NULL jika tidak ada nilai yang sesuai).
Gambar 3. Right Outer Join
Sintaks SQL Right Outer Join adalah sebagai berikut:
SELECT x1, x2, ..., xnFROM ARIGHT OUTER JOIN BON A.join_key = B.join_key
Contoh:
- Full outer join (Union).
Full outer join (atau full join) pada hakekatnya merupakan kombinasi dari left dan
right join.
Gambar 4. Full Outer Join (Union)
Sintaks SQL Full Outer Join adalah sebagai berikut:
SELECT x1, x2, ..., xnFROM AFULL OUTER JOIN BON A.join_key = B.join_key
Untuk beberapa DBMS yang tidak mendukung sintaks SQL Full Outer Join, dapat pula
memanfaatkan UNION seperti pada sintaks SQL berikut ini:
SELECT x1, x2, ..., xnFROM ALEFT OUTER JOIN BON A.join_key = B.join_keyUNIONSELECT x1, x2, ..., xnFROM ARIGHT OUTER JOIN BON A.join_key = B.join_key
Natural Join
Natural join adalah satu equijoin dimana persamaan ditentukan pada semua field yang
mempunyai nama sama dalam R dan S. Dalam kasus ini, kita dapat mengabaikan
condition join, defaultnya adalah condition join yang merupakan kumpulan equality pada
semua field biasa. Kasus seperti ini disebut Natural Join, dan properti bagusnya adalah
hasilnya dijamin tidak memiliki 2 field dengan nama sama.
Contoh:SELECT C.*, P.PRODUCTID, P.PRODUCTNAME FROM CATEGORIES C
INNER JOIN PRODUCTS P
ON P.CATEGORYID = C.CATEGORYID