Normalisasi lwn Denormalisasi
Pangkalan data perhubungan terdiri daripada perhubungan (jadual berkaitan). Jadual terdiri daripada lajur. Jika jadual adalah dua besar (iaitu terlalu banyak lajur dalam satu jadual), maka anomali pangkalan data boleh berlaku. Jika jadual adalah dua kecil (iaitu pangkalan data terdiri daripada banyak jadual yang lebih kecil), ia akan menjadi tidak cekap untuk membuat pertanyaan. Normalisasi dan Denormalisasi adalah dua proses yang digunakan untuk mengoptimumkan prestasi pangkalan data. Normalisasi meminimumkan redundansi yang terdapat dalam jadual data. Nyahnormalisasi (terbalikan daripada normalisasi) menambah data berlebihan atau data kumpulan.
Apakah itu Normalisasi?
Normalization ialah proses yang dijalankan untuk meminimumkan redundansi yang terdapat dalam data dalam pangkalan data hubungan. Proses ini terutamanya akan membahagikan jadual besar kepada jadual yang lebih kecil dengan lebihan kurang (dipanggil "Borang biasa"). Jadual yang lebih kecil ini akan dikaitkan antara satu sama lain melalui perhubungan yang jelas. Dalam pangkalan data yang dinormalisasi dengan baik, sebarang perubahan atau pengubahsuaian dalam data akan memerlukan pengubahsuaian hanya satu jadual. Bentuk Normal Pertama (1NF), Bentuk Normal Kedua (2NF), dan Bentuk Normal Ketiga (3NF) telah diperkenalkan oleh Edgar F. Codd. Boyce-Codd Normal Form (BCNF) telah diperkenalkan pada tahun 1974 oleh Codd dan Raymond F. Boyce. Bentuk Normal Lebih Tinggi (4NF, 5NF dan 6NF) telah ditakrifkan, tetapi ia jarang digunakan.
Jadual yang mematuhi 1NF memastikan bahawa ia sebenarnya mewakili hubungan (iaitu ia tidak mengandungi sebarang rekod yang berulang), dan tidak mengandungi sebarang atribut yang bernilai hubungan (i.e. semua atribut harus mempunyai nilai atom). Untuk jadual untuk mematuhi 2NF, ia harus dipatuhi dengan 1NF dan mana-mana atribut yang bukan sebahagian daripada mana-mana kunci calon (iaitu atribut bukan perdana) harus bergantung sepenuhnya pada mana-mana kunci calon dalam jadual. Menurut definisi Codd, jadual dikatakan dalam 3NF, jika dan hanya jika, jadual itu dalam bentuk normal kedua (2NF) dan setiap atribut dalam jadual yang bukan milik kunci calon harus bergantung secara langsung pada setiap kunci calon meja itu. BCNF (juga dikenali sebagai 3.5NF) menangkap beberapa anomali yang tidak ditangani oleh 3NF.
Apakah itu Denormalisasi?
Denormalisasi ialah proses terbalik proses normalisasi. Penyahnormalan berfungsi dengan menambahkan data berlebihan atau mengumpulkan data untuk mengoptimumkan prestasi. Walaupun, menambah data berlebihan kedengaran tidak produktif, kadangkala penyahnormalan adalah proses yang sangat penting untuk mengatasi beberapa kelemahan dalam perisian pangkalan data hubungan yang mungkin dikenakan pen alti prestasi berat dengan pangkalan data yang dinormalkan (malah ditala untuk prestasi yang lebih tinggi). Ini kerana menyertai beberapa perhubungan (yang merupakan hasil penormalan) untuk menghasilkan keputusan kepada pertanyaan kadangkala boleh menjadi perlahan bergantung pada pelaksanaan fizikal sebenar sistem pangkalan data.
Apakah perbezaan antara Normalisasi dan Denormalisasi?
– Penormalan dan penyahnormalan ialah dua proses yang bertentangan sama sekali.
– Normalisasi ialah proses membahagikan jadual yang lebih besar kepada yang lebih kecil untuk mengurangkan data berlebihan, manakala penyahnormalan ialah proses menambah data berlebihan untuk mengoptimumkan prestasi.
– Normalisasi dijalankan untuk mengelakkan anomali pangkalan data.
– Penyahnormalan biasanya dilakukan untuk meningkatkan prestasi bacaan pangkalan data, tetapi disebabkan kekangan tambahan yang digunakan untuk penyahnormalan, penulisan (iaitu operasi memasukkan, mengemas kini dan memadam) boleh menjadi lebih perlahan. Oleh itu, pangkalan data yang tidak normal boleh menawarkan prestasi penulisan yang lebih teruk daripada pangkalan data yang dinormalkan.
– Selalunya anda disyorkan supaya "menormalkan sehingga sakit, menyahnormalkan sehingga ia berfungsi".