ALJABAR RELASIONAL Mata Kuliah : Database 1 Dosen : Tessy Badriyah
ALJABAR RELASIONAL Definisi : Sekumpulan operasi yang digunakan untuk memanipulasi relasi-relasi Dapat dibagi dalam 2 kelompok : Operasi yang melibatkan teori set, yaitu UNION, INTERSECTION, DIFFERENCE, CARTESIAN PRODUCT Operasi khusus untuk basis data relasional, misal : SELECT, PROJECT dan JOIN.
Daftar Tabel (Relasi) Yang Dipakai
OPERASI SELECT Digunakan untuk memilih satu sub-set record dalam suatu relasi yang memenuhi kondisi pemilihan Bentuk umum : <kondisi pemilihan> (<nama relasi>) Dimana = select operator <kondisi pemilihan> = operasi boolean
CONTOH OPERASI SELECT Dapatkan subset dari pegawai yang bekerja pada Departemen 4 dan mempunyai gaji lebih besar daripada 50000 : (DNO=4) and (SALARY > 50000) (EMPLOYEE)
OPERASI PROJECT Dengan memandang relasi sebagai tabel, maka operasi ini digunakan untuk memilih sejumlah kolom tertentu dari tabel. Bentuk umum : <daftar atribut > (<nama tabel>)
CONTOH OPERASI PROJECT Dapatkan atribut LNAME (nama belakang) dan SALARY (gaji) dari tabel EMPLOYEE LNAME, SALARY (EMPLOYEE)
SELECT dan PROJECT Dapatkan list dari nama (LNAME) dan SALARY dari semua pegawai yang bekerja pada departemen 5 : RESULT <= LNAME,SALARY ( DNO=5 (EMPLOYEE) ) Atau DEP5_EMP <= DNO=5 (EMPLOYEE) RESULT <= LNAME,SALARY (DEP5_EMP)
OPERASI-OPERASI TEORI SET Operasi-operasi teori set, yaitu : union ( ), intersection ( ), difference (-).
Contoh Operasi Teori Set Dapatkan nomer induk pegawai (SSN) dari semua pegawai yang bekerja pada departemen 5 atau yang secara langsung menjadi supervisor dari pegawai yang bekerja pada departemen 5 DEP5_EMPS <= DNO=5 (EMPLOYEE) RESULT1 <= SSN (DEP5_EMPS) RESULT2(SSN) <= SUPERSSN (DEP5_EMPS) RESULT <= RESULT1 RESULT2
CARTESIAN PRODUCT NOTASI : X Disebut juga CROSS PRODUCT atau CROSS JOIN dan digunakan untuk mengkombinasikan record dari dua tabel.
Contoh Operasi Cartesian Product Dapatkan untuk setiap pegawai perempuan , satu list nama dari dependent (anggota keluarga) pegawai tersebut. FEMALE_EMPS <= SEX=‘F’ (EMPLOYEE) EMPNAMES <= LNAME,SSN (FEMALE_EMPS) EMP_DEP <= EMPNAMES X DEPENDENT ACTUAL_DEP <= SSN=ESSN (EMP_DEP) RESULT <= LNAME,DEPENDENT_NAME (ACTUAL_DEP)
OPERASI JOIN Notasi : Operasi ini sangat penting karena memungkinkan untuk melakukan proses relationship dari sejumlah tabel.
Contoh Operasi Division Dapatkan nama-nama pegawai yang bekerja pada semua project dimana ‘Smith’ juga bekerja di dalamnya. SMITH <= LNAME=‘Smith’ (EMPLOYEE) SMITH_PNOS <= PNO (WORKS_ON ESSN=SSN SMITH) SSN_PNOS <= PNO,ESSN (WORKS_ON) TEMP_RES <= SSN_PNOS SMITH_PNOS RESULT <= LNAME (TEMP_RES X EMPLOYEE)
Fungsi Aggregate ( ) SUM : menjumlah nilai dari suatu atribut AVERAGE : mencari rata-rata nilai dari suatu atribut MAXIMUM : mencari nilai paling besar dari suatu atrbiut MINIMUM : mencari nilai paling besar dari suatu atribut COUNT : menghitung jumlah record
Penggunaan Fungsi Aggregate Dapatkan setiap nomer department, jumlah pegawai dalam department dan gaji rata-rata mereka. R(DNO,jumlah_peg, gaji_rata2) <= DNO, COUNT SSN, AVERAGE SALARY (EMPLOYEE)
Kerjakan, kemudian kumpulan setelah liburan panjang Latihan Soal Kerjakan, kemudian kumpulan setelah liburan panjang
Relational Schema Relational schemas for five relations in a movie database are depicted below. movie(movieName, whenMade) star(starName, age) studio(studioName, where) produces(studioName, movieName) starsIn(starName, movieName)
Exercise When was the movie Titanic made? Who stars in Titanic? Which stars that are over 40 appear in Titanic? Which stars do not appear in Titanic? Which studio produces Titanic? What are the names of stars who star in movies produced by studios located in Townsville? Which movies star Kate Winslet? Which Titanic stars are under 20? Give me the stars and the studios they work for who starred in Titanic