BASI S DATA
PRE TEST
• Sebutkan macam-macam operasi JOIN. Jelaskan
perbedaan masing-masing!
• Apakah yang disebut dengan fungsi agregasi? Jelaskan!
• Jelaskan yang dimaksud dengan istilah GROUP BY?
• Apakah perbedaan antara klausa WHERE dan
HAVING?
TUJUAN PERKULIAHAN
• Mahasiswa dapat memahami bagaimana pengolahan
basis data menggunakan aljabar relasional.
• Mahasiswa dapat menggunakan notasi-notasi aljabar
relasional guna peningkatan performa untuk pengolahan
basis data.
POKOK BAHASAN
1. Pendahuluan
2. Notasi Aljabar Relasional
– SELECT
– PROJECT
– UNION
– SET DIFFERENCE
– SET INTERSECTION
– CARTESIAN PRODUCT
– JOIN
3. Studi Kasus
PENDAHULUAN
• Bahasa query merupakan bahasa tingkat tinggi yang
digunakan dalam pengolahan basis data.
• Terdapat dua buah bahasa query yang digunakan
sebagai bahasa pengolahan basis data.
– Bahasa Non Prosedural
– Bahasa Prosedural
BAHASA NON PROSEDURAL
• Dalam bahasa query non prosedural, pengguna
menunjukkan informasi yang ingin didapatkan, tanpa
menunjukkan cara atau prosedur tertentu untuk
memperoleh informasi tersebut.
• Contoh: SQL.
BAHASA PROSEDURAL
• Dalam bahasa query prosedural, pengguna harus
menunjukkan bagaimana cara atau prosedur tertentu
untuk memperoleh informasi yang diinginkan.
• Contoh:
– Aljabar relasional
– Kalkulus relasional
ALJABAR RELASIONAL
• Aljabar relasional adalah bahasa query prosedural
yang terdiri dari sekumpulan operasi dimana
parameternya adalah satu atau dua relasi (tabel) dan
keluarannya adalah sebuah relasi baru sebagai hasil
dari operasi tersebut.
• Prinsip kerja: operasi pada setiap relasi (tabel) selalu
menghasilkan relasi juga.
NOTASI ALJABAR RELASIONAL
• SELECT
• PROJECT
• UNION
• SET DIFFERENCE
• SET INTERSECTION
• CARTESIAN PRODUCT
• JOIN
SELECT
• Operasi pengambilan baris-baris yang memenuhi
kriteria tertentu.
• Dituliskan melalui notasi σ
• Contoh : tampilkan semua data pada R.
SELECT
A B C D A B C D
α β 1 7 α β 1 7
α β 5 7 α β 5 7
β β 12 3 β β 12 3
β β 23 10 β β 23 10
A B C D
α β 1 7
A B C D
α β 5 7
β β 23 10
β β 12 3
β β 23 10
Tabel : σ A=B ^ D>5 ( R )
Tabel : relasi R
LATIHAN
+-----------+----------------------+------+------------+----------------+------------+-------------+
| kd_barang | nama_barang | stok | harga_jual | tgl_kadaluarsa | kd_pemasok | kd_kategori |
+-----------+----------------------+------+------------+----------------+------------+-------------+
| B001 | Kacang Garuda 250 mg | 75 | 18000 | 2017-11-22 | P22 | K04 |
| B002 | Aqua 1500 ml | 50 | 5000 | 2017-09-14 | P33 | K03 |
| B003 | Sari Roti Coklat | 14 | 12500 | 2017-04-05 | P11 | K01 |
| B004 | Biskuat 100 mg | 32 | 2000 | 2018-01-23 | P33 | K02 |
| B005 | Fanta 600 ml | 27 | 6000 | 2017-08-28 | P44 | K03 |
| B006 | Mizone 600 ml | 16 | 6500 | 2017-08-12 | P33 | K03 |
| B007 | Tao Kae Noi | 5 | 15000 | 2018-02-02 | P11 | K04 |
+-----------+----------------------+------+------------+----------------+------------+-------------+
A B C D A C
α β 1 7 α 1
α β 5 7 α 5
β β 12 3 β 12
β β 23 10 β 23
A B C D
?
α β 1 7
α β 5 7
β β 12 3
β β 23 10
Tabel : relasi R
LATIHAN
+-----------+----------------------+------+------------+----------------+------------+-------------+
| kd_barang | nama_barang | stok | harga_jual | tgl_kadaluarsa | kd_pemasok | kd_kategori |
+-----------+----------------------+------+------------+----------------+------------+-------------+
| B001 | Kacang Garuda 250 mg | 75 | 18000 | 2017-11-22 | P22 | K04 |
| B002 | Aqua 1500 ml | 50 | 5000 | 2017-09-14 | P33 | K03 |
| B003 | Sari Roti Coklat | 14 | 12500 | 2017-04-05 | P11 | K01 |
| B004 | Biskuat 100 mg | 32 | 2000 | 2018-01-23 | P33 | K02 |
| B005 | Fanta 600 ml | 27 | 6000 | 2017-08-28 | P44 | K03 |
| B006 | Mizone 600 ml | 16 | 6500 | 2017-08-12 | P33 | K03 |
| B007 | Tao Kae Noi | 5 | 15000 | 2018-02-02 | P11 | K04 |
+-----------+----------------------+------+------------+----------------+------------+-------------+
α 1 A B
α 2 α 2
β 1 β 3
α 1
α 2
A B
β 1
α 1 A B
β 3
β 1 α 2
R∪S R–S R∩S
CARTESIAN PRODUCT
• Operasi yang menggabungkan data dari dua buah
tabel atau hasil relasi.
• Notasi diwakili oleh simbol R x S
• Dimana, R x S = {pq | p ∈ R atau q ∈ S}, hasilnya yaitu
berupa tabel yang diperoleh dengan memasangkan
setiap baris pada tabel R dengan semua baris pada
tabel S.
CARTESIAN PRODUCT
• Banyaknya baris yang dihasilkan dari operasi ini
sejumlah perkalian baris antara R dan S.
• Pada SQL di implementasikan dengan CROSS JOIN.
CARTESIAN PRODUCT
A B C D E
α 1 α 10 a
C D E α 1 β 10 a
A B α 1 β 20 b
α 10 a
α 1 β 10 a α 1 ? 10 b
β 2 β 20 b β 2 α 10 a
Tabel : relasi R ? 10 b β 2 β 10 a
Tabel : relasi S β
β 2 20 b
β 2 ? 10 b
Tabel : R x S
CARTESIAN PRODUCT
• Tuliskan hasil dari operasi sebagai berikut:
– σ A=C ( R x S )
– σ A=C ^ D>10 ( R x S )
JOIN
• JOIN adalah operasi gabungan antara CARTESIAN PRODUCT
dengan SELECT berdasar kriteria tertentu.
• Contoh-contoh operasi komposit cartesian product sebelumnya
adalah contoh operasi JOIN.
– CONDITIONAL JOIN adalah join yang berdasar pada kriteria tertentu yang bukan
operasi persamaan nilai atribut
– INNER JOIN adalah join yang berdasar pada kriteria tertentu berupa persamaan nilai
atribut
– NATURAL JOIN adalah operasi inner join yang dilakukan pada semua atribut yang
sama dari kedua relasi (nama dan domainnya). Pada tabel/relasi hasil, kolom-kolom
yang sama hanya muncul sekali
CONDITIONAL JOIN
A B
α 1 A B
R.A R.B S.A S.B
α 2 α 2 α
α 1 2
β 1 β 3 β 1 β 3
Tabel : relasi S Tabel : σ R.A=S.A ( R x S )
Tabel : relasi R
NATURAL JOIN
• NATURAL JOIN adalah operasi inner join yang dilakukan
pada semua atribut yang sama dari kedua tabel (nama
dan domainnya). Pada tabel hasil, kolom-kolom yang
sama hanya muncul sekali
A B
A B
α 1 A B
α 2
α 2 α 2
β 3
β 1 Tabel : Hasil operasi R ⋈ S = π R.A,R.B (σ R.A=S.A^R.B=S.B ( R x S ))
Tabel : relasi S
Tabel : relasi R
NATURAL JOIN
A B C D B D E
α 1 α a 1 a α
β 2 ? a 3 a β
? 4 β b 1 a ?
2 b ? A B C D E
α 1 ? a
3 b ϵ α 1 α a α
? 2 β b
Tabel : relasi R Tabel : relasi S α 1 α a ?
α 1 ? a α
α 1 ? a ?
? 2 β b ?
Barang
Memiliki Menyediakan
Kategori Pemasok