Sự khác biệt giữa 3NF và BCNF là gì

Mục lục:

Anonim

Các Sự khác biệt chính giữa 3NF và BCNF là cái bàn nên có 2 cáiNS dạng bình thường và không được có bất kỳ phụ thuộc bắc cầu nào để thỏa mãn 3NF trong khi các thuộc tính nguyên tố của bảng không được phụ thuộc vào các thuộc tính không phải nguyên tố của bảng để thỏa mãn BCNF.

Dự phòng dữ liệu đề cập đến việc cùng một dữ liệu lặp lại ở nhiều nơi. Nó cũng có thể gây ra các vấn đề trong việc chèn, cập nhật và xóa dữ liệu. Chuẩn hóa là quá trình tổ chức dữ liệu thành nhiều bảng có liên quan để giảm thiểu dư thừa dữ liệu. Nó cung cấp một giải pháp cho sự dư thừa dữ liệu vì nó chia dữ liệu trong một bảng thành nhiều bảng. Tuy nhiên, không thể loại bỏ hoàn toàn việc dư thừa dữ liệu; chỉ có thể giảm dư thừa dữ liệu. Có nhiều loại chuẩn hóa khác nhau như 1NF, 2nf, 3NF, BCNF, vv Trước khi thảo luận về 3NF và BCNF, cần phải hiểu 1NF và 2NF.

1NF, 2NF, 3NF, BCNF, Chuẩn hóa

1NF là gì

Có bốn quy tắc để tạo một bảng thỏa mãn 1NF. Chúng như sau.

Nếu một bảng không nằm trong 1NS hình thức bình thường, nó được coi là một thiết kế cơ sở dữ liệu xấu. Một ví dụ như sau.

Trong bảng trên, cột chủ đề chứa nhiều giá trị. Sau khi thực hiện 1NF, bảng như sau.

2NF là gì

Có hai quy tắc để tạo một bảng thỏa mãn 2NF. Chúng như sau.

Trong bảng lưu trữ thông tin của sinh viên, id sinh viên là khóa chính và nó giúp xác định từng hàng trong bảng một cách riêng biệt. Các cột khác phụ thuộc vào khóa chính. Sự phụ thuộc này được gọi là sự phụ thuộc hàm.

Ví dụ, giả sử có một bảng được gọi là điểm số. Khóa chính là sự kết hợp của id sinh viên và id chủ đề. Nếu bảng này có tên giảng viên, nó chỉ phụ thuộc vào id chủ đề. Loại phụ thuộc này được gọi là phụ thuộc từng phần.

Một ví dụ như sau.

Khóa chính của bảng trên là sự kết hợp của student_id và subject_id. Chúng ta có thể đặt tên_vị_trình trong một bảng riêng biệt. Bây giờ bảng điểm, môn học và giảng viên như sau.

3NF là gì

Có hai quy tắc để tạo một bảng thỏa mãn 2nf. Chúng như sau.

Ví dụ: giả sử rằng bảng điểm có student_id, subject_id, điểm, tên kỳ thi và tổng điểm. Sự kết hợp giữa student_id và subject_id là khóa chính. Total_marks này không phụ thuộc vào khóa chính này. Nó phụ thuộc vào tên_ thi. Nói cách khác, một thuộc tính phụ thuộc vào thuộc tính không nguyên tố. Loại phụ thuộc này được gọi là phụ thuộc bắc cầu. Do đó, chúng ta có thể cho điểm tên bài thi và tổng điểm trong một bảng riêng biệt.

BCNF là gì

BCNF là viết tắt của Boyce-Codd-Normal Form. Nó tránh các thuộc tính nguyên tố phụ thuộc vào các thuộc tính không phải nguyên tố. Một ví dụ như sau.

Khóa chính của bảng trên là sự kết hợp của student_id và subject. Khi một giảng viên giảng một chủ đề cụ thể, chúng ta cũng có thể sử dụng cột đó để xác định từng bản ghi duy nhất. Tuy nhiên, giảng viên không phải là chìa khóa quan trọng. Cột chủ đề phụ thuộc vào giảng viên thuộc tính không nguyên tố. Do đó, bảng không thỏa mãn BCNF. Chúng ta có thể tạo bảng sinh viên và bảng giảng viên như sau.

Sự khác biệt giữa 3NF và BCNF

Sự định nghĩa

3NF là một dạng thông thường được sử dụng trong việc chuẩn hóa thiết kế cơ sở dữ liệu để giảm sự trùng lặp dữ liệu và đảm bảo tính toàn vẹn tham chiếu bằng cách đảm bảo rằng thực thể ở dạng chuẩn thứ hai và tất cả các thuộc tính trong bảng chỉ được xác định bởi các khóa ứng viên của mối quan hệ đó và không phải bởi bất kỳ thuộc tính không phải nguyên tố nào. Mặt khác, BCNF là một dạng thông thường được sử dụng trong quá trình chuẩn hóa cơ sở dữ liệu, đây là một phiên bản mạnh hơn một chút của 3NF. Do đó, đây là sự khác biệt chính giữa 3NF và BCNF.

Chức năng

Bảng nên có 2NS dạng bình thường và không được có bất kỳ phụ thuộc bắc cầu nào để thỏa mãn 3NF trong khi các thuộc tính nguyên tố của bảng không được phụ thuộc vào các thuộc tính không phải nguyên tố của bảng để thỏa mãn BCNF. Do đó, chức năng là một điểm khác biệt giữa 3NF và BCNF.

Phần kết luận

Tóm lại, một cơ sở dữ liệu chuẩn hóa được coi là một cơ sở dữ liệu tốt. Có nhiều kiểu chuẩn hóa khác nhau và hai trong số đó là 3NF và BCNF. Sự khác biệt chính giữa 3NF và BCNF là bảng phải có 2NS dạng bình thường và không được có bất kỳ phụ thuộc bắc cầu nào để thỏa mãn 3NF trong khi các thuộc tính nguyên tố của bảng không được phụ thuộc vào các thuộc tính không phải nguyên tố của bảng để thỏa mãn BCNF.

Thẩm quyền giải quyết:

1. Dạng chuẩn đầu tiên (1NF) | Chuẩn hóa cơ sở dữ liệu | DBMS, Studytonight, ngày 24 tháng 12 năm 2017, Có sẵn tại đây. 2. Dạng chuẩn thứ hai (2NF) | Chuẩn hóa cơ sở dữ liệu | DBMS, Studytonight, ngày 4 tháng 2 năm 2018, Có sẵn tại đây.3. Dạng chuẩn thứ ba (3NF) | Chuẩn hóa cơ sở dữ liệu | DBMS, Studytonight, ngày 8 tháng 2 năm 2018, Có sẵn tại đây. 4. Boyce-Codd Dạng thông thường (BCNF) | Chuẩn hóa cơ sở dữ liệu | DBMS, Studytonight, ngày 15 tháng 4 năm 2018, có sẵn tại đây. "Dạng thông thường thứ ba." Wikipedia, Wikimedia Foundation, 28 tháng 11 năm 2018, Có sẵn tại đây. 6. "Boyce-Codd Dạng bình thường." Wikipedia, Wikimedia Foundation, ngày 27 tháng 9 năm 2018, có sẵn tại đây.

Hình ảnh lịch sự:

1. “1895779” (CC0) qua Pixabay

Sự khác biệt giữa 3NF và BCNF là gì