資料庫規範化初學者指南

WBOY
發布: 2024-08-31 06:30:36
原創
1146 人瀏覽過

A Beginner

資料庫規範化:是在資料庫中組織資料以減少冗餘並提高資料完整性的過程。以下是關鍵範式的快速概述,並附有範例。

1。第一範式 (1NF)
目標:確保每列包含原子值並且每筆記錄都是唯一的。

範例:

1NF 之前:

Table: StudentCourses
----------------------------
StudentID | Name   | Courses
----------------------------
1         | Alice  | Math, Science

登入後複製

2。第二範式 (2NF)
目標:消除部分依賴;每個非鍵屬性都應該依賴整個主鍵。

範例:

2NF 之前:

Table: StudentCourses
----------------------------
StudentID | Course | Instructor
----------------------------
1         | Math   | Dr. Smith
登入後複製

2NF之後:

Table: StudentCourses
----------------------------
StudentID | Course
----------------------------
1         | Math
登入後複製
Table: CourseInstructors
----------------------------
Course    | Instructor
----------------------------
Math      | Dr. Smith
登入後複製

3。第三範式 (3NF)
目標:消除傳遞依賴;非鍵屬性應該只依賴主鍵。

範例:

3NF 之前:

Table: StudentCourses
-----------------------------------
StudentID | Course | Instructor | Dept
-----------------------------------
1         | Math   | Dr. Smith  | Science

登入後複製

3NF之後:

Table: StudentCourses
----------------------------
StudentID | Course
----------------------------
1         | Math

登入後複製
登入後複製
Table: CourseInstructors
----------------------------
Instructor | Dept
----------------------------
Dr. Smith  | Science

登入後複製

4。博伊斯-科德範式 (BCNF)
目標:處理異常的更嚴格版本的 3NF。

範例:

BCNF 之前:

Table: TeacherCourses
------------------------------
TeacherID | Course    | Dept
------------------------------
1         | Math      | Science

登入後複製

BCNF 之後:

Table: TeacherCourses
----------------------------
TeacherID | Course
----------------------------
1         | Math

登入後複製
Table: CourseDepartments
----------------------------
Course    | Dept
----------------------------
Math      | Science

登入後複製

5。第四範式 (4NF)
目標:消除多值依賴。

範例:

4NF 之前:

Table: StudentHobbies
----------------------------
StudentID | Course | Hobby
----------------------------
1         | Math   | Chess

登入後複製

4NF之後:

Table: StudentCourses
----------------------------
StudentID | Course
----------------------------
1         | Math

登入後複製
登入後複製
Table: StudentHobbies
----------------------------
StudentID | Hobby
----------------------------
1         | Chess

登入後複製

6。第五範式 (5NF)
目標:處理複雜的連結依賴關係;進一步分解表格而不遺失資訊。

範例:

5NF 之前:

Table: ProjectAssignments
---------------------------------
EmployeeID | Project | Role
---------------------------------
1          | A       | Developer

登入後複製

5NF之後:

Table: EmployeeProjects
----------------------------
EmployeeID | Project
----------------------------
1          | A

登入後複製
Table: EmployeeRoles
----------------------------
EmployeeID | Role
----------------------------
1          | Developer

登入後複製
Table: ProjectRoles
----------------------------
Project | Role
----------------------------
A       | Developer

登入後複製

結論
規範化可確保您的資料庫保持高效、一致和可擴展,從而隨著資料的成長簡化管理並增強查詢效能。

以上是資料庫規範化初學者指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板