Normalisasi vs Denormalisasi
Database relasional terdiri dari relasi (tabel terkait). Tabel terdiri dari kolom. Jika tabel berukuran dua besar (yaitu terlalu banyak kolom dalam satu tabel), maka anomali database dapat terjadi. Jika tabel adalah dua kecil (yaitu database terdiri dari banyak tabel yang lebih kecil), itu akan menjadi tidak efisien untuk query. Normalisasi dan Denormalisasi adalah dua proses yang digunakan untuk mengoptimalkan kinerja database. Normalisasi meminimalkan redundansi yang ada dalam tabel data. Denormalisasi (kebalikan dari normalisasi) menambahkan data yang berlebihan atau data grup.
Apa itu Normalisasi?
Normalization adalah proses yang dilakukan untuk meminimalkan redundansi yang ada dalam data dalam database relasional. Proses ini terutama akan membagi tabel besar menjadi tabel yang lebih kecil dengan redundansi yang lebih sedikit (disebut "Bentuk normal"). Tabel yang lebih kecil ini akan terkait satu sama lain melalui hubungan yang terdefinisi dengan baik. Dalam database yang dinormalisasi dengan baik, setiap perubahan atau modifikasi dalam data akan memerlukan modifikasi hanya satu tabel. Bentuk Normal Pertama (1NF), Bentuk Normal Kedua (2NF), dan Bentuk Normal Ketiga (3NF) diperkenalkan oleh Edgar F. Codd. Bentuk Normal Boyce-Codd (BCNF) diperkenalkan pada tahun 1974 oleh Codd dan Raymond F. Boyce. Bentuk Normal Lebih Tinggi (4NF, 5NF dan 6NF) telah didefinisikan, tetapi jarang digunakan.
Tabel yang sesuai dengan 1NF memastikan bahwa itu benar-benar mewakili suatu relasi (yaitu tidak mengandung catatan yang berulang), dan tidak mengandung atribut apa pun yang bernilai relasional (mis.e. semua atribut harus memiliki nilai atom). Agar tabel mematuhi 2NF, tabel tersebut harus mematuhi 1NF dan atribut apa pun yang bukan merupakan bagian dari kunci kandidat mana pun (yaitu atribut non-prima) harus sepenuhnya bergantung pada salah satu kunci kandidat dalam tabel. Menurut definisi Codd, sebuah tabel dikatakan berada dalam 3NF, jika dan hanya jika, tabel tersebut berada dalam bentuk normal kedua (2NF) dan setiap atribut dalam tabel yang bukan merupakan kunci kandidat harus secara langsung bergantung pada setiap kunci kandidat dari tabel itu. BCNF (juga dikenal sebagai 3.5NF) menangkap beberapa anomali yang tidak ditangani oleh 3NF.
Apa itu Denormalisasi?
Denormalisasi adalah proses kebalikan dari proses normalisasi. Denormalisasi bekerja dengan menambahkan data yang berlebihan atau mengelompokkan data untuk mengoptimalkan kinerja. Meskipun, menambahkan data yang berlebihan terdengar kontra-produktif, terkadang denormalisasi adalah proses yang sangat penting untuk mengatasi beberapa kekurangan dalam perangkat lunak basis data relasional yang mungkin menimbulkan pen alti kinerja berat dengan basis data yang dinormalisasi (bahkan disetel untuk kinerja yang lebih tinggi). Hal ini karena menggabungkan beberapa relasi (yang merupakan hasil dari normalisasi) untuk menghasilkan hasil ke query terkadang bisa lambat tergantung pada implementasi fisik sebenarnya dari sistem database.
Apa perbedaan antara Normalisasi dan Denormalisasi?
– Normalisasi dan denormalisasi adalah dua proses yang sangat berlawanan.
– Normalisasi adalah proses membagi tabel yang lebih besar ke yang lebih kecil untuk mengurangi data yang berlebihan, sedangkan denormalisasi adalah proses menambahkan data yang berlebihan untuk mengoptimalkan kinerja.
– Normalisasi dilakukan untuk mencegah anomali database.
– Denormalisasi biasanya dilakukan untuk meningkatkan kinerja baca database, tetapi karena kendala tambahan yang digunakan untuk denormalisasi, penulisan (yaitu operasi penyisipan, pembaruan, dan penghapusan) dapat menjadi lebih lambat. Oleh karena itu, database yang didenormalisasi dapat menawarkan kinerja penulisan yang lebih buruk daripada database yang dinormalisasi.
– Anda sering disarankan untuk “menormalkan sampai sakit, mendenormalkan sampai berhasil”.