ERD dengan Denormalisasi
Denormalisasi adalah kebalikan dari normalisasi, di mana data yang seharusnya dipisahkan ke dalam beberapa tabel akan digabungkan dalam satu tabel untuk mengurangi jumlah join yang diperlukan dalam query, dan meningkatkan kinerja baca (read) pada database. Walaupun denormalisasi meningkatkan performa query, ini juga mengarah pada redundansi data yang lebih tinggi dan lebih sulit dalam pemeliharaan data.
Contoh Kasus:
Misalkan kita memiliki sistem perpustakaan di mana kita ingin melakukan query untuk melihat daftar peminjaman buku oleh pelanggan, termasuk informasi detail tentang pelanggan dan buku yang dipinjam. Dalam sistem normalisasi, kita akan membutuhkan beberapa join antara tabel Pelanggan, Buku, dan Peminjaman. Namun, dengan denormalisasi, kita bisa menggabungkan data ini dalam satu tabel untuk mempercepat eksekusi query yang sering melibatkan peminjaman buku oleh pelanggan.
ERD Denormalisasi untuk Perpustakaan:
Tabel Denormalisasi Peminjaman_Buku_Pelanggan
alisasi:
- ID_Peminjaman: Merupakan primary key yang mengidentifikasi transaksi peminjaman.
- Nama_Pelanggan: Data pelanggan yang dipinjamkan buku.
- Alamat_Pelanggan: Alamat dari pelanggan yang meminjam buku.
- Tanggal_Lahir: Tanggal lahir pelanggan.
- ID_Buku: ID dari buku yang dipinjam.
- Judul_Buku, Pengarang_Buku, Penerbit_Buku: Informasi detail tentang buku yang dipinjam.
- Tanggal_Peminjaman: Tanggal peminjaman buku.
- Tanggal_Kembali: Tanggal pengembalian buku yang dipinjam.
Proses Denormalisasi:
-
Gabungkan Data: Alih-alih memiliki tabel terpisah untuk Pelanggan, Buku, dan Peminjaman, kita gabungkan data pelanggan dan buku dalam satu tabel Peminjaman_Buku_Pelanggan.
-
Redundansi Data: Dalam hal ini, kita akan memiliki informasi yang berulang, seperti nama dan alamat pelanggan yang mungkin muncul berkali-kali jika pelanggan meminjam banyak buku. Begitu juga dengan informasi buku (judul, pengarang, penerbit), yang akan muncul berkali-kali untuk setiap peminjaman buku oleh pelanggan yang sama.
-
Keuntungan Denormalisasi:
- Performa baca yang lebih cepat: Query yang sering digunakan untuk melihat peminjaman buku beserta detail pelanggan dan bukunya akan lebih cepat karena tidak perlu melakukan join antar tabel.
- Query lebih sederhana: Tanpa perlu join, query akan menjadi lebih sederhana dan lebih cepat, terutama jika hanya membutuhkan laporan peminjaman buku.
-
Kerugian Denormalisasi:
- Redundansi data: Data yang berulang akan menghabiskan lebih banyak ruang penyimpanan dan meningkatkan potensi ketidakkonsistenan data (misalnya, jika alamat pelanggan berubah, maka perlu diperbarui di semua baris yang memuat data pelanggan tersebut).
- Kesulitan pemeliharaan: Pembaruan data seperti mengubah informasi pelanggan atau buku menjadi lebih sulit karena harus dilakukan di banyak tempat.
Contoh Kasus Denormalisasi:
Misalnya, sebuah perpustakaan ingin menampilkan laporan peminjaman buku yang memuat detail tentang buku yang dipinjam, nama pelanggan, alamat, dan tanggal peminjaman. Dalam sistem yang terdenormalisasi, query ini dapat langsung dijalankan di tabel Peminjaman_Buku_Pelanggan tanpa perlu melakukan join, sehingga menghemat waktu pemrosesan.
SELECT Nama_Pelanggan, Alamat_Pelanggan, Judul_Buku, Pengarang_Buku, Tanggal_PeminjamanFROM Peminjaman_Buku_PelangganWHERE Tanggal_Peminjaman BETWEEN '2024-01-01' AND '2024-12-31';
Kesimpulan:
Denormalisasi diterapkan untuk meningkatkan performa baca (read) dengan mengurangi jumlah join yang diperlukan, namun ini datang dengan biaya redundansi data yang lebih tinggi dan kesulitan dalam pemeliharaan. Biasanya, denormalisasi digunakan pada sistem yang sering melakukan operasi baca cepat, seperti laporan atau analisis data, sementara untuk operasi yang sering melakukan perubahan atau update data, normalisasi lebih dianjurkan.


Komentar
Posting Komentar