Normalisasi vs Denormalisasi
Database relasional terdiri dari relasi (tabel terkait). Tabel terdiri dari kolom. Jika tabelnya dua besar (mis. Terlalu banyak kolom dalam satu tabel), maka anomali basis data dapat terjadi. Jika tabel dua kecil (mis. Basis data terdiri dari banyak tabel kecil), itu akan tidak efisien untuk kueri. Normalisasi dan Denormalisasi adalah dua proses yang digunakan untuk mengoptimalkan kinerja database. Normalisasi meminimalkan redudansi yang ada dalam tabel data. Denormalisasi (kebalikan dari normalisasi) menambahkan data yang berlebihan atau data kelompok.
Apa itu Normalisasi??
Normalisasi adalah proses yang dilakukan untuk meminimalkan redudansi 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 saling terkait satu sama lain melalui hubungan yang didefinisikan dengan baik. Dalam database yang dinormalisasi dengan baik, setiap perubahan atau modifikasi dalam data akan membutuhkan hanya memodifikasi satu tabel. Bentuk Normal Pertama (1NF), Bentuk Normal Kedua (2NF), dan Bentuk Normal Ketiga (3NF) diperkenalkan oleh Edgar F. Codd. Boyce-Codd Normal Form (BCNF) diperkenalkan pada tahun 1974 oleh Codd dan Raymond F. Boyce. Bentuk Normal Lebih Tinggi (4NF, 5NF dan 6NF) telah didefinisikan, tetapi mereka jarang digunakan.
Tabel yang sesuai dengan 1NF memastikan bahwa itu benar-benar mewakili suatu relasi (mis. Itu tidak mengandung catatan yang berulang), dan tidak mengandung atribut apa pun yang bernilai relasional (mis. Semua atribut harus memiliki nilai atom). Agar sebuah tabel mematuhi 2NF, tabel tersebut harus dipenuhi dengan 1NF dan atribut apa pun yang bukan merupakan bagian dari kunci kandidat (mis. 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 itu berada dalam bentuk normal kedua (2NF) dan setiap atribut dalam tabel yang bukan milik 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 kontraproduktif, kadang-kadang denasionalisasi adalah proses yang sangat penting untuk mengatasi beberapa kekurangan dalam perangkat lunak basis data relasional yang dapat menimbulkan hukuman kinerja berat dengan database yang dinormalisasi (bahkan disesuaikan untuk kinerja yang lebih tinggi). Ini karena bergabung dengan beberapa relasi (yang merupakan hasil normalisasi) untuk menghasilkan suatu hasil ke kueri kadang-kadang bisa lambat tergantung pada implementasi fisik aktual dari sistem database.
Apa perbedaan antara Normalisasi dan Denormalisasi? - Normalisasi dan denormalisasi adalah dua proses yang sepenuhnya berlawanan. - Normalisasi adalah proses membagi tabel yang lebih besar menjadi yang lebih kecil mengurangi data yang berlebihan, sedangkan denormalisasi adalah proses menambahkan data yang berlebihan untuk mengoptimalkan kinerja. - Normalisasi dilakukan untuk mencegah anomali basis data. - Denormalisasi biasanya dilakukan untuk meningkatkan kinerja membaca dari basis data, tetapi karena kendala tambahan yang digunakan untuk denormalisasi, penulisan (mis. Menyisipkan, memperbarui, dan menghapus operasi) dapat menjadi lebih lambat. Oleh karena itu, database denormalized dapat menawarkan kinerja penulisan yang lebih buruk daripada database yang dinormalisasi. - Sering direkomendasikan bahwa Anda harus “menormalkan sampai sakit, denormalkan sampai berfungsi”.
|