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!

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang sesuai untuk penyimpanan data, pengurusan, pertanyaan dan keselamatan. 1. Ia menyokong pelbagai sistem operasi dan digunakan secara meluas dalam aplikasi web dan bidang lain. 2. Melalui seni bina pelanggan-pelayan dan enjin penyimpanan yang berbeza, MySQL memproses data dengan cekap. 3. Penggunaan asas termasuk membuat pangkalan data dan jadual, memasukkan, menanyakan dan mengemas kini data. 4. Penggunaan lanjutan melibatkan pertanyaan kompleks dan prosedur yang disimpan. 5. Kesilapan umum boleh disahpepijat melalui pernyataan yang dijelaskan. 6. Pengoptimuman Prestasi termasuk penggunaan indeks rasional dan pernyataan pertanyaan yang dioptimumkan.

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Mekanisme kunci InnoDB termasuk kunci bersama, kunci eksklusif, kunci niat, kunci rekod, kunci jurang dan kunci utama seterusnya. 1. Kunci dikongsi membolehkan urus niaga membaca data tanpa menghalang urus niaga lain dari membaca. 2. Kunci eksklusif menghalang urus niaga lain daripada membaca dan mengubah suai data. 3. Niat Kunci mengoptimumkan kecekapan kunci. 4. Rekod Rekod Kunci Kunci Rekod. 5. Gap Lock Locks Index Rakaman Gap. 6. Kunci kunci seterusnya adalah gabungan kunci rekod dan kunci jurang untuk memastikan konsistensi data.

Sebab -sebab utama prestasi pertanyaan MySQL yang lemah termasuk tidak menggunakan indeks, pemilihan pelan pelaksanaan yang salah oleh pengoptimasi pertanyaan, reka bentuk jadual yang tidak munasabah, jumlah data yang berlebihan dan persaingan kunci. 1. Tiada indeks menyebabkan pertanyaan perlahan, dan menambah indeks dapat meningkatkan prestasi dengan ketara. 2. Gunakan perintah Jelaskan untuk menganalisis pelan pertanyaan dan cari ralat pengoptimuman. 3. Membina semula struktur meja dan mengoptimumkan keadaan gabungan dapat meningkatkan masalah reka bentuk jadual. 4. Apabila jumlah data adalah besar, pembahagian dan strategi bahagian meja diterima pakai. 5. Dalam persekitaran konkurensi yang tinggi, mengoptimumkan urus niaga dan strategi mengunci dapat mengurangkan persaingan kunci.

Dalam pengoptimuman pangkalan data, strategi pengindeksan hendaklah dipilih mengikut keperluan pertanyaan: 1. Apabila pertanyaan melibatkan pelbagai lajur dan urutan syarat ditetapkan, gunakan indeks komposit; 2. Apabila pertanyaan melibatkan pelbagai lajur tetapi urutan syarat tidak ditetapkan, gunakan pelbagai indeks lajur tunggal. Indeks komposit sesuai untuk mengoptimumkan pertanyaan berbilang lajur, manakala indeks lajur tunggal sesuai untuk pertanyaan tunggal lajur.

Untuk mengoptimumkan pertanyaan perlahan MySQL, SlowQuerylog dan Performance_Schema perlu digunakan: 1. Dayakan SlowQueryLog dan tetapkan ambang untuk merakam pertanyaan perlahan; 2. Gunakan Performance_Schema untuk menganalisis butiran pelaksanaan pertanyaan, cari kesesakan prestasi dan mengoptimumkan.

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.


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

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

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

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod