Jika Anda sudah lama bekerja dengan database, kemungkinan besar Anda pernah mendengar istilah normalisasi. Mungkin seseorang bertanya kepada Anda, “Apakah database itu dinormalisasi?” atau “Apakah itu di BCNF?” Normalisasi sering dianggap sebagai kemewahan yang hanya dimiliki oleh akademisi. Namun, mengetahui prinsip normalisasi dan menerapkannya pada tugas desain database harian Anda tidak terlalu rumit, dan ini dapat meningkatkan kinerja DBMS Anda secara drastis.
Pada artikel ini, kami akan memperkenalkan konsep normalisasi dan melihat secara singkat bentuk normal yang paling umum.
Apa itu Normalisasi?
Normalisasi adalah proses pengorganisasian data secara efisien dalam database. Ada dua tujuan dari proses normalisasi: menghilangkan data yang berlebihan (misalnya, menyimpan data yang sama di lebih dari satu tabel) dan memastikan ketergantungan data masuk akal (hanya menyimpan data terkait dalam tabel). Keduanya adalah tujuan yang layak, karena mengurangi jumlah ruang yang digunakan database dan memastikan bahwa data disimpan secara logis.
Bentuk Normal
Komunitas basis data telah mengembangkan serangkaian pedoman untuk memastikan bahwa basis data dinormalisasi. Ini disebut sebagai bentuk normal dan diberi nomor dari satu (bentuk normalisasi terendah, disebut sebagai bentuk normal pertama atau 1NF) hingga lima (bentuk normal kelima atau 5NF). Dalam aplikasi praktis, Anda akan sering melihat 1NF, 2NF, dan 3NF, bersama dengan 4NF sesekali. Bentuk normal kelima sangat jarang terlihat dan tidak akan dibahas dalam artikel ini.
Sebelum kita memulai diskusi kita tentang bentuk normal, penting untuk menunjukkan bahwa itu hanya pedoman dan pedoman. Kadang-kadang, perlu menyimpang dari mereka untuk memenuhi persyaratan bisnis praktis. Namun, ketika variasi terjadi, sangat penting untuk mengevaluasi setiap konsekuensi yang mungkin terjadi pada sistem Anda dan mempertimbangkan potensi ketidakkonsistenan. Yang mengatakan, mari kita jelajahi bentuk normal.
Bentuk Normal Pertama (1NF)
Bentuk normal pertama (1NF) menetapkan aturan dasar untuk database terorganisir:
- Hilangkan kolom duplikat dari tabel yang sama.
- Buat tabel terpisah untuk setiap grup data terkait dan identifikasi setiap baris dengan kolom atau kumpulan kolom unik (kunci utama).
Bentuk Normal Kedua (2NF)
Bentuk normal kedua (2NF) selanjutnya membahas konsep menghapus data duplikatif:
- Memenuhi semua persyaratan bentuk normal pertama.
- Hapus subkumpulan data yang berlaku untuk beberapa baris tabel dan tempatkan dalam tabel terpisah.
- Buat hubungan antara tabel baru ini dan pendahulunya melalui penggunaan kunci asing.
Bentuk Normal Ketiga (3NF)
Bentuk normal ketiga (3NF) melangkah lebih jauh secara signifikan:
- Memenuhi semua persyaratan bentuk normal kedua.
- Hapus kolom yang tidak bergantung pada kunci utama.
Bentuk Normal Boyce-Codd (BCNF atau 3.5NF)
Bentuk Normal Boyce-Codd, juga disebut sebagai “bentuk normal ketiga setengah (3,5)”, menambahkan satu persyaratan lagi:
- Memenuhi semua persyaratan bentuk normal ketiga.
- Setiap determinan harus menjadi kunci kandidat.
Bentuk Normal Keempat (4NF)
Akhirnya, bentuk normal keempat (4NF) memiliki satu persyaratan tambahan:
- Memenuhi semua persyaratan bentuk normal ketiga.
- Suatu relasi berada dalam 4NF jika tidak memiliki dependensi multi-nilai.
Ingat, panduan normalisasi ini bersifat kumulatif. Agar database berada di 2NF, pertama-tama harus memenuhi semua kriteria database 1NF.
Haruskah saya Menormalkan?
Meskipun normalisasi basis data seringkali merupakan ide yang bagus, itu bukan persyaratan mutlak. Ada beberapa kasus di mana sengaja melanggar aturan normalisasi merupakan praktik yang baik.
Jika Anda ingin memastikan database Anda dinormalisasi, mulailah dengan mempelajari cara memasukkan database Anda ke dalam Bentuk Normal Pertama.