Denormalisasi adalah teknik optimisasi basis data di mana kita menambahkan data redundan ke satu atau lebih tabel. Ini dapat membantu menghindari penggabungan yang mahal dalam basis data relasional. Perlu dicatat bahwa denormalisasi bukan berarti 'membalikkan normalisasi' atau 'tidak melakukan normalisasi'. Ini adalah teknik optimisasi yang diterapkan setelah normalisasi.
Secara dasarnya, proses mengambil skema yang dinormalisasi dan membuatnya tidak dinormalisasi disebut denormalisasi, dan para perancang menggunakannya untuk menyesuaikan kinerja sistem guna mendukung operasi yang membutuhkan waktu.
Dalam basis data normalisasi tradisional, kita menyimpan data dalam tabel logis terpisah dan berupaya meminimalkan data redundan. Kita mungkin berusaha hanya memiliki satu salinan setiap data di dalam basis data.
Sebagai contoh, dalam basis data yang dinormalisasi, kita mungkin memiliki tabel Courses dan Teachers. Setiap entri di Courses akan menyimpan teacherID untuk sebuah Course tetapi bukan teacherName. Ketika kita perlu mengambil daftar semua Courses dengan nama Guru, kita akan melakukan penggabungan antara kedua tabel ini.
Dalam beberapa hal, ini bagus; jika seorang guru mengubah namanya, kita hanya perlu memperbarui nama tersebut di satu tempat. Kekurangannya adalah bahwa jika tabelnya besar, kita mungkin menghabiskan waktu yang tidak perlu lama untuk melakukan penggabungan tabel. Denormalisasi, kemudian, mencapai kompromi yang berbeda. Dengan denormalisasi, kita memutuskan bahwa kita baik-baik saja dengan beberapa redudansi dan sedikit usaha ekstra untuk memperbarui basis data guna mendapatkan keuntungan efisiensi dari penggabungan yang lebih sedikit.
Mengapa Denormalisasi Digunakan?
- Meningkatkan Kinerja: Dengan mengurangi jumlah penggabungan tabel, waktu yang dibutuhkan untuk menjalankan kueri pada basis data dapat dikurangi secara signifikan. Hal ini menjadi sangat penting dalam situasi di mana kinerja sistem menjadi prioritas utama.
- Sederhana Dalam Operasi: Denormalisasi dapat membuat operasi penambahan, pengubahan, dan penghapusan data (insert, update, delete) lebih sederhana karena data yang diperlukan sudah tersedia dalam satu tempat.
- Mendukung Laporan dan Analisis: Dalam beberapa kasus, denormalisasi dapat memudahkan pembuatan laporan dan analisis data yang kompleks dengan mengurangi kompleksitas kueri.
- Penyimpangan Data: Adanya redudansi data dapat menyebabkan inkonsistensi jika data tidak diperbarui secara konsisten di semua tempat yang relevan. Ini dapat mengakibatkan kesulitan dalam menjaga konsistensi data.
- Peningkatan Penggunaan Ruang Penyimpanan: Karena redudansi data, ruang penyimpanan yang diperlukan untuk basis data dapat meningkat. hal ini perlu dipertimbangkan terutama ketika berurusan dengan basis data besar.
- Kompleks Perawatan: Denormalisasi dapat meningkatkan kommpleksitas perawatan dan pemeliharaan basis data, terutama jika terdapat perubahan struktur data yang sering terjadi.