Panduan Pemula untuk Normalisasi Pangkalan Data

WBOY
Lepaskan: 2024-08-31 06:30:36
asal
955 orang telah melayarinya

A Beginner

Penormalan pangkalan data: ialah proses menyusun data dalam pangkalan data untuk mengurangkan lebihan dan meningkatkan integriti data. Berikut ialah ikhtisar ringkas bentuk biasa utama, dengan contoh.

1. Bentuk Biasa Pertama (1NF)
Objektif: Memastikan setiap lajur mengandungi nilai atom dan setiap rekod adalah unik.

Contoh:

Sebelum 1NF:

Table: StudentCourses ---------------------------- StudentID | Name | Courses ---------------------------- 1 | Alice | Math, Science
Salin selepas log masuk

2. Bentuk Biasa Kedua (2NF)
Objektif: Menghapuskan kebergantungan separa; setiap atribut bukan kunci harus bergantung pada keseluruhan kunci utama.

Contoh:

Sebelum 2NF:

Table: StudentCourses ---------------------------- StudentID | Course | Instructor ---------------------------- 1 | Math | Dr. Smith
Salin selepas log masuk

Selepas 2NF:

Table: StudentCourses ---------------------------- StudentID | Course ---------------------------- 1 | Math
Salin selepas log masuk
Table: CourseInstructors ---------------------------- Course | Instructor ---------------------------- Math | Dr. Smith
Salin selepas log masuk

3. Bentuk Biasa Ketiga (3NF)
Objektif: Alih keluar kebergantungan transitif; atribut bukan kunci hendaklah hanya bergantung pada kunci utama.

Contoh:

Sebelum 3NF:

Table: StudentCourses ----------------------------------- StudentID | Course | Instructor | Dept ----------------------------------- 1 | Math | Dr. Smith | Science
Salin selepas log masuk

Selepas 3NF:

Table: StudentCourses ---------------------------- StudentID | Course ---------------------------- 1 | Math
Salin selepas log masuk
Salin selepas log masuk
Table: CourseInstructors ---------------------------- Instructor | Dept ---------------------------- Dr. Smith | Science
Salin selepas log masuk

4. Boyce-Codd Normal Form (BCNF)
Objektif: Versi 3NF yang lebih ketat untuk mengendalikan anomali.

Contoh:

Sebelum BCNF:

Table: TeacherCourses ------------------------------ TeacherID | Course | Dept ------------------------------ 1 | Math | Science
Salin selepas log masuk

Selepas BCNF:

Table: TeacherCourses ---------------------------- TeacherID | Course ---------------------------- 1 | Math
Salin selepas log masuk
Table: CourseDepartments ---------------------------- Course | Dept ---------------------------- Math | Science
Salin selepas log masuk

5. Bentuk Biasa Keempat (4NF)
Objektif: Menghapuskan kebergantungan berbilang nilai.

Contoh:

Sebelum 4NF:

Table: StudentHobbies ---------------------------- StudentID | Course | Hobby ---------------------------- 1 | Math | Chess
Salin selepas log masuk

Selepas 4NF:

Table: StudentCourses ---------------------------- StudentID | Course ---------------------------- 1 | Math
Salin selepas log masuk
Salin selepas log masuk
Table: StudentHobbies ---------------------------- StudentID | Hobby ---------------------------- 1 | Chess
Salin selepas log masuk

6. Bentuk Biasa Kelima (5NF)
Objektif: Mengendalikan kebergantungan gabungan kompleks; menguraikan jadual selanjutnya tanpa kehilangan maklumat.

Contoh:

Sebelum 5NF:

Table: ProjectAssignments --------------------------------- EmployeeID | Project | Role --------------------------------- 1 | A | Developer
Salin selepas log masuk

Selepas 5NF:

Table: EmployeeProjects ---------------------------- EmployeeID | Project ---------------------------- 1 | A
Salin selepas log masuk
Table: EmployeeRoles ---------------------------- EmployeeID | Role ---------------------------- 1 | Developer
Salin selepas log masuk
Table: ProjectRoles ---------------------------- Project | Role ---------------------------- A | Developer
Salin selepas log masuk

Kesimpulan
normalisasi memastikan bahawa pangkalan data anda kekal cekap, konsisten dan berskala, yang memudahkan pengurusan dan meningkatkan prestasi pertanyaan apabila data anda berkembang.

Atas ialah kandungan terperinci Panduan Pemula untuk Normalisasi Pangkalan Data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!