Chuẩn Hóa Là Gì ? 1Nf, 2Nf, 3Nf & Bcnf Với Các Ví Dụ Chuẩn Hóa Dữ Liệu

Bài dịch được thực hiện bởi Hoàng Văn Cường, lập trình viên Spring Boot làm việc tại Cungdaythang.com từ tháng 5/2020. Bài viết được dịch từ www.guru99.com/database-normalization.html

Bình thường hóa là gì?

Chuẩn hóa là một kỹ thuật thiết kế cơ sở dữ liệu giúp giảm dư thừa dữ liệu và loại bỏ các tính năng không mong muốn như các điểm bất thường khi chèn, cập nhật và xóa. Các quy tắc chuẩn hóa chia các bảng lớn thành các bảng nhỏ hơn và kết nối chúng bằng các mối quan hệ. Mục đích của việc chuẩn hóa trong SQL là để loại bỏ dữ liệu dư thừa (lặp lại) và đảm bảo rằng dữ liệu được lưu trữ một cách hợp lý.

Đang xem: Chuẩn hóa là gì

Người phát minh ra mô hình quan hệ – Edgar Codd đã trình bày lý thuyết chuẩn hóa dữ liệu với sự ra đời của Dạng chuẩn hóa đầu tiên (tạm dịch sẽ là dạng chuẩn hóa đầu tiên) và ông tiếp tục mở rộng lý thuyết với Dạng chuẩn hóa thứ hai và thứ ba. Sau đó, ông cùng với Raymond F. Boyce phát triển học thuyết về Dạng bình thường Boyce-Codd (tên gọi là BCNF).

Danh sách các hình thức bình thường:

1NF (Dạng thường thứ nhất)2NF (Dạng thường thứ hai)3NF (Dạng thường thứ ba)BCNF (Dạng thường thường Boyce-Codd)4NF (Dạng thường thứ tư)5NF (Dạng thường thứ năm)6NF (Dạng thường thứ sáu)

Học thuyết Chuẩn hóa dữ liệu (sau đây gọi là Chuẩn hóa dữ liệu) trong máy chủ SQL vẫn đang được phát triển. Ví dụ, vẫn có những cuộc thảo luận ngay trong 6thNormal Form. Tuy nhiên, trong hầu hết các ứng dụng thực tế, chuẩn hóa là tối ưu ở Dạng chuẩn thứ 3. Sự phát triển của học thuyết chuẩn hóa SQL được minh họa dưới đây:

Cơ sở dữ liệu Biểu mẫu thông thường

Ví dụ chuẩn hóa dữ liệu

Các ví dụ sẽ minh họa cho việc chuẩn hóa dữ liệu. Giả sử thư viện video chứa cơ sở dữ liệu về phim đã được thuê. Trong trường hợp không chuẩn hóa, tất cả thông tin được lưu trữ trong một bảng duy nhất bên dưới. Hãy tìm hiểu về chuẩn hóa với bảng này:

*

Bảng 1

Bạn có thể xem cột Phim thuê có nhiều giá trị. Chúng tôi sẽ chuẩn hóa thành Biểu mẫu bình thường đầu tiên:

Bình thường hóa cấp 1: Dạng bình thường đầu tiên

Mỗi ô của bảng chỉ nên có 1 giá trị. Mỗi bản ghi phải là duy nhất

Xem thêm bài viết hay:  Opera Browser Là Gì - 5 Trình Duyệt Web Phổ Biến Nhất

Kết quả bảng trên sau khi làm theo 1NF:

*

Bảng 1: In Mẫu 1NF

Trước khi chúng tôi tiếp tục, hãy hiểu một vài điều:

Khóa (Chìa khóa) là gì

Khóa là một giá trị thường được sử dụng để xác định duy nhất một bản ghi trong bảng. Khóa có thể là một cột hoặc kết hợp nhiều cột.

Chú ý: Các cột trong bảng không được sử dụng để xác định duy nhất một bản ghi được gọi là các cột không khóa.

Khóa chính là gì – Primary Key

*

Giá trị chính là một cột giá trị thường được sử dụng để xác định duy nhất các bản ghi dữ liệu

Nó có các thuộc tính sau:

Khóa chính không thể là NULL, Giá trị khóa chính phải là duy nhất, Giá trị khóa chính hiếm khi thay đổi, Khóa chính phải được gán một giá trị mỗi khi thêm bản ghi.

Khóa tổng hợp là gì – Khóa tổng hợp

Khóa tổng hợp là khóa chính được kết hợp bởi nhiều cột có thể xác định duy nhất một bản ghi. Trong dữ liệu ví dụ, chúng tôi có 2 người có cùng tên Robert Phil nhưng sống ở 2 địa điểm. chỉ khác nhau.

*

Vì vậy, chúng tôi sẽ yêu cầu tên đầy đủ và địa chỉ để có thể xác định duy nhất bản ghi đó.

Bây giờ chúng ta sẽ thử 2NF:

Dạng bình thường thứ hai (Dạng bình thường thứ hai)

Quy tắc 1: Thực hiện theo quy tắc 1NF Đầu tiên Quy tắc 2: Khóa chính là một cột đơn.

Rõ ràng là chúng ta không thể làm gì hơn để đơn giản hóa dữ liệu theo 2NF trừ khi chúng ta chia bảng ở trên.

Xem thêm: Histogram Là Gì, Ý Nghĩa Và Cách Vẽ Histogram

*

Bảng 1

*

ban 2

Chúng tôi chia bảng kết quả của 1NF thành 2 bảng: bảng 1 chứa thông tin thành viên; Bảng 2 chứa thông tin về phim đã thuê.

Chúng tôi thêm một cột Membership_id là khóa chính cho bảng 1. Các bản ghi sẽ là duy nhất khi sử dụng trường này.

Khóa ngoại

Trong bảng 2, Membership_ID là khóa ngoại

*

Khóa ngoại đại diện cho khóa chính của một bảng khác. Nó giúp tạo kết nối giữa các bảng:

Khóa ngoại có thể có tên khác với khóa chính Nó đảm bảo rằng các hàng trong một bảng sẽ tương ứng với các hàng trong một bảng khác. Không giống như khóa chính, khóa ngoại không cần phải là duy nhất. Hầu hết các giá trị khóa ngoại sẽ có các bản sao. Khóa ngoại có thể là null nhưng khóa chính thì không.

Xem thêm bài viết hay:  Thế Nào Là Kinh Tuyến Gốc Là Gì, Kinh Tuyến Gốc Và Vĩ Tuyến Gốc Là Gì

*

Tại sao chúng ta cần khóa ngoại?

Giả sử rằng một người thêm một bản ghi vào bảng B như sau:

*

Bạn sẽ chỉ có thể thêm một giá trị vào khóa ngoại khi nó đã tồn tại trong khóa chính trong bảng cha. Điều này giúp với tính toàn vẹn tham chiếu

Vấn đề trên có thể được giải quyết bằng cách khai báo id thành viên của bảng 2 là khóa chính của id thành viên trong bảng 1

Bây giờ, nếu bất kỳ ai muốn thêm một giá trị vào id thành viên không tồn tại trong bảng cha, một lỗi sẽ xuất hiện.

Tính bắc cầu của các phụ thuộc chức năng là gì?

Tính bắc cầu của một phụ thuộc hàm là việc thay đổi một cột không khóa có thể khiến các cột không khóa khác cũng thay đổi theo.

Xem bảng 1. Thay đổi cột chính không phải là chính – Họ và Tên có thể dẫn đến việc phải thay đổi cột Lời chào

*

Mẫu bình thường thứ ba

Nguyên tắc 1: đảm bảo nguyên tắc 2NF Nguyên tắc 2: Không có bắc cầu trong các phụ thuộc hàm.

Để có thể chuyển đổi bảng 2NF thành 3NF, chúng ta phải chia lại bảng:

Ví dụ về chuẩn hóa 3NF. Kết quả của việc chia 2NF thành 3NF như sau:

*

BẢNG 1

*

ban 2

*

bàn số 3

Chúng tôi đã chia bảng và tạo một bảng mới để giữ trường Lời chào

Chúng tôi không còn bất kỳ ảnh hưởng trực tiếp nào nên bảng được đảm bảo 3NF

Trong bảng 3, ID lời chào là khóa chính và trong bảng 1, ID lời chào là khóa ngoại của nó.

Bây giờ, ví dụ của chúng ta đã đến điểm không thể tách rời hình thức chuẩn hóa cao hơn và trên thực tế nó là hình thức chuẩn hóa cao nhất. Các nỗ lực phân tách để đạt được dạng cao hơn thường sẽ yêu cầu một cơ sở dữ liệu phức tạp hơn. Tuy nhiên, chúng tôi sẽ thảo luận ngắn gọn về các loại sau đây.

Boyce Codd BCNF . bình thường hóa

Ngay cả một cơ sở dữ liệu đã ở Dạng chuẩn thứ 3 vẫn có thể có kết quả bất thường nếu cơ sở dữ liệu đó có nhiều hơn một khóa ứng viên – Khóa Ứng viên.

Xem thêm bài viết hay:  Try To Nghĩa Là Gì

BCNF đôi khi được gọi là 3.5 Dạng bình thường.

Mẫu bình thường thứ tư

Nếu không có phiên bản bảng cơ sở dữ liệu nào chứa hai hoặc nhiều dữ liệu độc lập và nhiều bộ mô tả thực thể liên quan, thì đó là ở Dạng chuẩn thứ 4.

Xem thêm: Cách Làm Thạch Cafe Sữa – Cách Làm Thạch Cà Phê Sữa Của Đoan Trang

Dạng thường thứ năm (Dạng thường thứ năm)

Một bảng là Biểu mẫu chuẩn thứ 5 chỉ khi nó là 4NF và không thể phân tách thành các bảng nhỏ hơn mà không làm mất dữ liệu.

Hình thức bình thường thứ sáu

6thNormal Form chưa có tiêu chuẩn nhưng đang được thảo luận bởi các chuyên gia cơ sở dữ liệu.

Vậy là xong, nhớ chuẩn level 5 là có thể yên tâm đi xin việc rồi nhé!

bản tóm tắt

Thiết kế cơ sở dữ liệu là chìa khóa để triển khai thành công một DBMS đáp ứng yêu cầu dữ liệu của hệ thống doanh nghiệp Quá trình chuẩn hóa trong DBMS giúp giảm tác động của hệ thống cơ sở dữ liệu đến hiệu năng và giúp chúng ta có một mô hình bảo mật tốt hơn Sự phụ thuộc chức năng là một phần quan trọng của quá trình chuẩn hóa dữ liệu Hệ thống cơ sở dữ liệu thường có thể được chuẩn hóa ở dạng thứ 3 Khóa chính không thể là NULL Khóa phụ giúp nối các bảng và đại diện cho 1 khóa chính

Bạn thấy bài viết Chuẩn Hóa Là Gì ? 1Nf, 2Nf, 3Nf & Bcnf Với Các Ví Dụ Chuẩn Hóa Dữ Liệu có khắc phục đươc vấn đề bạn tìm hiểu ko?, nếu ko hãy comment góp ý thêm về Chuẩn Hóa Là Gì ? 1Nf, 2Nf, 3Nf & Bcnf Với Các Ví Dụ Chuẩn Hóa Dữ Liệu bên dưới để duhoc-o-canada.com có thể thay đổi & cải thiện nội dung tốt hơn cho các bạn nhé! Cám ơn bạn đã ghé thăm Website: duhoc-o-canada.com của duhoc-o-canada.com

Nhớ để nguồn bài viết này: Chuẩn Hóa Là Gì ? 1Nf, 2Nf, 3Nf & Bcnf Với Các Ví Dụ Chuẩn Hóa Dữ Liệu của website duhoc-o-canada.com

Chuyên mục: Là gì?

Viết một bình luận