Back to IF3140 Sistem Basis Data

| Operasi | Cost | Banyaknya Tuple |
|---|---|---|
| 1001 | 2222 | |
| 5001 | 100 | |
| 45030 | 600 | |
| 849 | 133 | |
| 0 (Pipelined) | 133 | |
| Total | 51881 | 133 (Tuple final) |
Penjelasan:
- Untuk seleksi pelanggan berumur lebih dari atau sama dengan 21, karena pencarian didasarkan pada umur, dapat dianggap pencarian dilakukan dengan metode A1 (Linear Scan)
- Pemindaian dilakukan dengan
- Tuple:
- Total ada 24 - 7 + 1 = 18 variasi umur.
- Kondisi umur >= 21 mencakup umur 21, 22, 23, 24 (4 variasi).
- Karena distribusi seragam, estimasi tuple: tuple.
- Untuk seleksi buku dengan atribut penulis bernilai ‘Andrea Hirata’, tidak ada indeks yang berlaku (karena memang penulis tidak unik). Kembali digunakan metode A1 (Linear Scan)
- Pemindaian dilakukan dengan
- Tuple:
- Total ada 500 variasi penulis
- Hanya akan diambil 1 penulis
- Karena distribusi seragam, estimasi tuple: tuple.
- Untuk join buku dan peminjaman, dapat digunakan Hash Join (data tidak terurut dan banyak, serta equi-joins)
- Cost: Menggunakan formula dasar Hash Join: .
- Blok Hasil #2: blok.
- Cost = blok.
- Banyaknya Tuple:
- Kita mencari berapa kali 100 buku (Hasil #2) dipinjam.
- Rata-rata peminjaman per buku = kali.
- Estimasi tuple = 100 buku * 6 = 600 tuple.
- Cost: Menggunakan formula dasar Hash Join: .
- Join hasil Pelanggan dengan Hasil Join Sebelumnya ((Hasil #1) ⋈ (Hasil #3)) dapat menggunakan Hash Join lagi. Hasil join sebelumnya (Hasil #3) lebih kecil dalam jumlah blok, sehingga akan menjadi build input.
- Cost:
- Blok Hasil #1: blok.
- Blok Hasil #3 (berdasarkan asumsi soal): tuples per block peminjaman = 300.000 / 15.000 = 20. Ukuran tuple hasil join 2x lipat, jadi tuples per block hasil3 = 10. Maka blok
- Cost = blok.
- Banyaknya Tuple:
- Dari 600 peminjaman di Hasil #3, kita ingin tahu berapa yang dilakukan oleh pelanggan berumur >= 21.
- Fraksi pelanggan berumur >= 21 adalah 4/18.
- Estimasi tuple = 600 * (4 / 18) ≈ 133 tuple.
- Cost:
- Proyeksi Nama
- Karena asumsi mekanisme evaluasi adalah pipeline, hasil dari join terakhir (Hasil #4) langsung dialirkan ke operasi proyeksi tanpa disimpan ke disk.
- Cost: 0 (biayanya sudah termasuk dalam operasi join sebelumnya).
- Banyaknya Tuple: Operasi proyeksi tidak mengubah jumlah tuple, hanya kolomnya ⇒ 133 tuple.