Rumah >pangkalan data >tutorial mysql >Normalisasi Pangkalan Data

Normalisasi Pangkalan Data

Linda Hamilton
Linda Hamiltonasal
2024-11-25 00:34:11663semak imbas
  • 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.

  • pangkalan data perhubungan ialah sejenis pangkalan data yang menyimpan data dalam jadual, yang distrukturkan ke dalam baris dan lajur. Jadual - Koleksi entri data berkaitan Baris - Rekod, setiap baris mewakili satu data Lajur - Medan, setiap lajur mewakili atribut khusus data.

Database Normalization

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
Database Normalization

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.

  • Borang biasa - Setiap peraturan dalam penormalan pangkalan data. Jika pangkalan data mengikut peraturan penormalan pertama, ia berada dalam "Borang Biasa Pertama" (1NF). Jika ia mengikut tiga peraturan pertama, ia adalah dalam "Bentuk Normal Ketiga" (3NF).

Database Normalization

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.

Database Normalization

Borang Biasa Pertama (1NF)

  • Hapuskan kumpulan berulang dalam jadual individu.

Database Normalization

  • Buat jadual berasingan untuk setiap set data berkaitan.

Untuk menormalkan data ini, kami membuat jadual berasingan untuk pelajar dan kursus mereka:

Database Normalization

  • Kenal pasti setiap set data berkaitan dengan kunci utama.

Database Normalization

Borang Biasa Kedua (2NF)

  • Alih keluar pergantungan separa — Setiap lajur bukan kunci mesti bergantung pada keseluruhan kunci utama, bukan hanya sebahagian daripadanya.

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.

Database Normalization

Bentuk Normal Ketiga (3NF)

  • 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.

Database Normalization

3NF memerlukan

  1. Jadual sudah ialah 2 NF
  2. Tiada kebergantungan transitif. Ini bermakna bahawa bukan kunci atribut tidak boleh bergantung pada atribut bukan kunci yang lain.

Database Normalization

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).

Borang Biasa Kunci asas (EKNF)

  • EKNF ialah bentuk 3NF yang lebih ketat yang memastikan semua kebergantungan berfungsi adalah asas, bermakna ia adalah mudah dan jelas, tanpa sebarang kebergantungan yang kompleks.

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.

Database Normalization

Boyce–Codd Normal Form(BCNF)

  • Sesuatu jadual berada dalam BCNF jika:

    1. Ia dalam 3NF.
    2. Untuk setiap kebergantungan berfungsi ( A —> B ), A mestilah kunci calon (superkey).
  • 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.

Borang Biasa Keempat (4NF)

  • 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.

Database Normalization

Borang Biasa Kelima (5NF)

  • 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

Database Normalization

Nyahnormalisasi

  • 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn