Menormalkan Pangkalan Data Anda: Peralihan kepada Borang Biasa Kedua (2NF)

Meletakkan Pangkalan Data dalam Borang Biasa Kedua

Sepanjang bulan yang lalu, kami telah melihat beberapa aspek untuk menormalkan jadual pangkalan data. Pertama, kita membincangkan prinsip-prinsip asas pengaturcaraan pangkalan data. Kali terakhir, kami meneroka keperluan asas yang ditetapkan oleh bentuk biasa pertama (1NF). Kini, mari meneruskan perjalanan kami dan merangkumi prinsip-prinsip bentuk normal kedua (2NF).

Ingatlah keperluan umum 2NF:

Peraturan ini boleh diringkaskan dalam pernyataan mudah: Usaha 2NF untuk mengurangkan jumlah data yang berlebihan dalam jadual dengan mengekstraknya, meletakkannya di dalam jadual baru dan membuat hubungan di antara jadual tersebut.

Mari lihat contoh. Bayangkan kedai dalam talian yang mengekalkan maklumat pelanggan dalam pangkalan data. Mereka mungkin mempunyai satu jadual yang dipanggil Pelanggan dengan elemen berikut:

Melihat ringkas pada jadual ini mendedahkan sejumlah kecil data berlebihan. Kami menyimpan "Sea Cliff, NY 11579" dan "Miami, FL 33157" menyerahkan dua kali setiap satu. Sekarang, itu mungkin tidak kelihatan seperti penyimpanan terlalu banyak dalam contoh mudah kita, tetapi bayangkan ruang yang sia-sia jika kita mempunyai beribu-ribu baris dalam jadual kami. Di samping itu, jika kod ZIP untuk Sea Cliff akan berubah, kita perlu membuat perubahan itu di banyak tempat di seluruh pangkalan data.

Dalam struktur pangkalan data yang bersesuaian dengan 2NF, maklumat berlebihan ini diekstrak dan disimpan dalam jadual berasingan. Jadual baru kami (mari kita panggil ZIP) mungkin mempunyai medan berikut:

Sekiranya kita mahu menjadi lebih cekap, kita dapat mengisi jadual ini terlebih dahulu - pejabat pos menyediakan direktori semua kod ZIP yang sah dan hubungan bandar / negara mereka. Sudah tentu, anda menghadapi situasi di mana pangkalan data jenis ini digunakan. Seseorang yang mengambil pesanan mungkin telah meminta kod ZIP anda dahulu dan kemudian mengetahui bandar dan negeri yang anda panggil. Susunan jenis ini mengurangkan kesilapan pengendali dan meningkatkan kecekapan.

Sekarang bahawa kami telah mengalih keluar data pendua daripada jadual Pelanggan, kami telah memenuhi peraturan pertama bentuk normal kedua. Kami masih perlu menggunakan kunci asing untuk mengikat dua jadual bersama. Kami akan menggunakan kod ZIP (kunci primer dari jadual ZIP) untuk mewujudkan hubungan itu. Berikut adalah jadual Pelanggan kami yang baru:

Kami telah meminimumkan jumlah maklumat berlebihan yang disimpan dalam pangkalan data dan struktur kami berada dalam bentuk kedua yang kedua!

Jika anda ingin memastikan pangkalan data anda dinormalisasi, jelajahi artikel kami yang lain dalam siri ini: