Normalisasi Database Anda: Transisi ke Formulir Normal Kedua (2NF)

Menempatkan Database dalam Bentuk Normal Kedua

Selama sebulan terakhir, kami telah melihat beberapa aspek normalisasi tabel database. Pertama, kami membahas prinsip-prinsip dasar normalisasi database. Terakhir kali, kami menjelajahi persyaratan dasar yang ditetapkan oleh bentuk normal pertama (1NF). Sekarang, mari kita lanjutkan perjalanan kita dan mencakup prinsip-prinsip bentuk normal kedua (2NF).

Ingat kembali persyaratan umum 2NF:

Aturan-aturan ini dapat diringkas dalam sebuah pernyataan sederhana: 2NF mencoba untuk mengurangi jumlah data yang berlebihan dalam sebuah tabel dengan mengekstraknya, menempatkannya dalam tabel baru dan membuat hubungan antara tabel-tabel tersebut.

Mari kita lihat contohnya. Bayangkan sebuah toko online yang menyimpan informasi pelanggan dalam database. Mereka mungkin memiliki satu tabel yang disebut Pelanggan dengan unsur-unsur berikut:

Pandangan sekilas pada tabel ini menunjukkan sejumlah kecil data yang berlebihan. Kami menyimpan entri "Sea Cliff, NY 11579" dan "Miami, FL 33157" dua kali masing-masing. Sekarang, itu mungkin tidak tampak seperti penyimpanan yang terlalu banyak ditambahkan dalam contoh sederhana kami, tetapi bayangkan ruang yang terbuang jika kami memiliki ribuan baris di meja kami. Selain itu, jika kode ZIP untuk Sea Cliff berubah, kami perlu melakukan perubahan di banyak tempat di seluruh basis data.

Dalam struktur database 2NF-compliant, informasi redundan ini diekstraksi dan disimpan dalam tabel terpisah. Tabel baru kami (sebut saja ZIP) mungkin memiliki bidang-bidang berikut:

Jika kita ingin menjadi super-efisien, kita bahkan dapat mengisi tabel ini sebelumnya - kantor pos menyediakan direktori semua kode pos yang valid dan hubungan kota / negara mereka. Tentunya, Anda telah mengalami situasi di mana jenis database ini digunakan. Seseorang yang mengambil pesanan mungkin telah meminta Anda untuk kode pos Anda terlebih dahulu dan kemudian mengetahui kota dan negara tempat Anda melakukan panggilan. Jenis pengaturan ini mengurangi kesalahan operator dan meningkatkan efisiensi.

Sekarang setelah kami menghapus data duplikatif dari tabel Pelanggan, kami telah memenuhi aturan pertama dari bentuk normal kedua. Kami masih perlu menggunakan kunci asing untuk mengikat dua tabel bersama. Kami akan menggunakan kode ZIP (kunci utama dari tabel ZIP) untuk membuat hubungan itu. Inilah tabel Pelanggan baru kami:

Kami sekarang telah meminimalkan jumlah informasi yang berlebihan disimpan dalam database dan struktur kami dalam bentuk normal kedua!

Jika Anda ingin memastikan database Anda dinormalisasi, jelajahi artikel kami yang lain dalam seri ini: