Rumah >pangkalan data >tutorial mysql >Normalisasi Pangkalan Data
Penormalan pangkalan data menyusun data dengan cara yang berstruktur dan konsisten, menghapuskan lebihan dan memastikan integriti data dalam pangkalan data hubungan. Ia menjadikan pangkalan data lebih mudah untuk mengurus, bertanya dan menyelenggara, mengurangkan ralat.
Dengan mengikuti peraturan normalisasi, anda boleh mereka bentuk pangkalan data yang lebih mudah diselenggara dan kurang terdedah kepada ralat.
Sebelum menyelami normalisasi, kami ingin mengetahui asas pangkalan data hubungan.
Kunci Utama - Pengecam unik untuk setiap baris dalam jadual. Memastikan setiap rekod boleh dikenal pasti secara unik.
Kunci Asing - Medan dalam satu jadual yang memaut ke kunci utama jadual lain, mewujudkan hubungan antara dua jadual
Kami telah menyebut bahawa normalisasi adalah untuk menghapuskan lebihan dan pergantungan yang tidak konsisten. Apa itu?
Data berlebihan bermaksud menyimpan data yang sama di berbilang tempat, yang membazirkan ruang cakera dan menimbulkan masalah penyelenggaraan. Jika sebarang perubahan berlaku dalam data, kami perlu mengemas kininya di semua tempat.
Pergantungan tidak konsisten berlaku apabila data dalam pangkalan data bergantung pada data lain dengan cara yang tidak dapat diramalkan atau tidak betul. Ini boleh menyebabkan ralat dan menjadikan pangkalan data tidak boleh dipercayai.
Fikirkan bentuk biasa sebagai pusat pemeriksaan/peraturan dalam proses, sama seperti cara ujian memandu mempunyai peringkat seperti pelajar, tempat letak kereta dan ujian jalan raya.
Untuk menormalkan data ini, kami membuat jadual berasingan untuk pelajar dan kursus mereka:
1NF hanya menghapuskan kumpulan berulang, bukan redundansi. Itulah sebabnya terdapat 2NF.
Sesuatu jadual dikatakan berada dalam 2NF jika ia memenuhi kriteria berikut:
ia sudah berada dalam 1NF
Tiada pergantungan separa. Iaitu, semua atribut bukan kunci bergantung sepenuhnya pada kunci utama.
Mengalih keluar kebergantungan transitif dengan memastikan atribut bukan kunci hanya bergantung pada kunci utama.
Kini kita perlu memahami kebergantungan transitif, yang merupakan kunci untuk memahami 3NF.
Kebergantungan transitif berlaku apabila atribut(lajur) bergantung pada atribut bukan kunci lain dan bukannya bergantung secara langsung pada kunci primer.
3NF memerlukan
Ini ialah struktur akhir dalam 3NF:
Tiada pergantungan separa (kerana semua atribut bergantung sepenuhnya pada keseluruhan kunci utama dalam jadual masing-masing).
Tiada pergantungan transitif (kerana tiada atribut bukan kunci bergantung pada atribut bukan kunci lain).
3NF: Memastikan tiada kebergantungan transitif.
EKNF: Memperhalusi lebih lanjut 3NF dengan memastikan semua kebergantungan berfungsi adalah asas, menangani kebergantungan yang lebih kompleks yang mungkin tidak dikendalikan oleh 3NF.
Sesuatu jadual berada dalam BCNF jika:
Superkey: Satu set satu atau lebih lajur yang boleh mengenal pasti baris secara unik dalam jadual.
Kebergantungan Fungsian: Perhubungan di mana satu atribut secara unik menentukan atribut lain.
Tahap bentuk normal seterusnya selepas BCNF.
Bentuk Normal lain berkenaan dengan kebergantungan fungsi, 4NF berkenaan dengan jenis kebergantungan yang lebih umum dikenali sebagai kebergantungan berbilang nilai.
Kebergantungan berbilang nilai - Berlaku apabila satu atribut menentukan berbilang nilai atribut lain secara bebas daripada atribut lain.
Ia juga dikenali sebagai Project-Join Normal Form (PJNF), ialah tahap normalisasi tertinggi. Jadual berada dalam 5NF jika ia sudah berada dalam 4NF dan tidak boleh diuraikan menjadi jadual yang lebih kecil tanpa kehilangan integriti data. Ini bermakna bahawa setiap kebergantungan gabungan bukan remeh dalam jadual adalah tersirat oleh kunci calon.
Jika kita menguraikan jadual ini kepada jadual yang lebih kecil untuk menghapuskan lebihan, kita mesti memastikan bahawa kita masih boleh membina semula jadual asal tanpa kehilangan sebarang maklumat. Dalam 5NF, penguraian ini dilakukan sedemikian rupa sehingga tiada maklumat yang hilang dan semua kebergantungan gabungan dipelihara. terangkan contoh yang bijak
Jadual mungkin dinyahnormalkan untuk meningkatkan prestasi.
Penormalan meningkatkan bilangan jadual & perhubungan.
Mengakses berbilang jadual merentas perhubungan memerlukan lebih banyak pemprosesan daripada mengakses satu jadual.
Atas ialah kandungan terperinci Normalisasi Pangkalan Data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!