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.
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.
- 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).
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.
Borang Biasa Pertama (1NF)
- Hapuskan kumpulan berulang dalam jadual individu.
- Buat jadual berasingan untuk setiap set data berkaitan.
Untuk menormalkan data ini, kami membuat jadual berasingan untuk pelajar dan kursus mereka:
- Kenal pasti setiap set data berkaitan dengan kunci utama.
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.
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.
3NF memerlukan
- Jadual sudah ialah 2 NF
- Tiada kebergantungan transitif. Ini bermakna bahawa bukan kunci atribut tidak boleh bergantung pada atribut bukan kunci yang lain.
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.
Boyce–Codd Normal Form(BCNF)
-
Sesuatu jadual berada dalam BCNF jika:
- Ia dalam 3NF.
- 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.
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
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!

Artikel ini meneroka mengoptimumkan penggunaan memori MySQL di Docker. Ia membincangkan teknik pemantauan (statistik Docker, skema prestasi, alat luaran) dan strategi konfigurasi. Ini termasuk had memori docker, swapping, dan cgroups, bersama -sama

Artikel ini menangani ralat "tidak dapat membuka perpustakaan kongsi" MySQL. Isu ini berpunca daripada ketidakupayaan MySQL untuk mencari perpustakaan bersama yang diperlukan (.so/.dll fail). Penyelesaian melibatkan mengesahkan pemasangan perpustakaan melalui pakej sistem m

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel ini membandingkan memasang MySQL pada Linux secara langsung berbanding menggunakan bekas podman, dengan/tanpa phpmyadmin. Ia memperincikan langkah pemasangan untuk setiap kaedah, menekankan kelebihan Podman secara berasingan, mudah alih, dan kebolehulangan, tetapi juga

Artikel ini memberikan gambaran menyeluruh tentang SQLite, pangkalan data relasi tanpa server tanpa mandiri. Ia memperincikan kelebihan SQLITE (kesederhanaan, mudah alih, kemudahan penggunaan) dan kekurangan (batasan konkurensi, cabaran skalabiliti). C

Panduan ini menunjukkan pemasangan dan menguruskan pelbagai versi MySQL pada macOS menggunakan homebrew. Ia menekankan menggunakan homebrew untuk mengasingkan pemasangan, mencegah konflik. Pemasangan Butiran Artikel, Permulaan/Perhentian Perkhidmatan, dan PRA Terbaik

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Dreamweaver Mac版
Alat pembangunan web visual

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.
