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

Tác Giả: Laura McKinney
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 17 Có Thể 2024
Anonim
Sự khác biệt giữa 3NF và BCNF - Công Nghệ
Sự khác biệt giữa 3NF và BCNF - Công Nghệ

NộI Dung


Bình thường hóa là một phương pháp loại bỏ từ một mối quan hệ do đó giảm thiểu việc chèn, xóa và cập nhật sự bất thường làm giảm hiệu suất của cơ sở dữ liệu. Trong bài viết này, chúng tôi sẽ phân biệt giữa hai hình thức bình thường cao hơn, tức là 3NF và BCNF. Sự khác biệt cơ bản giữa 3NF và BCNF là 3NF loại bỏ sự phụ thuộc quá độ khỏi một mối quan hệ và một bảng trong BCNF, sự phụ thuộc chức năng tầm thường X-> Y trong một mối quan hệ phải giữ, chỉ khi X là siêu khóa.

Hãy để chúng tôi thảo luận về sự khác biệt giữa 3NF và BCNF với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.

  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánh3NFBCNF
Ý tưởngKhông có thuộc tính không chính nào phải phụ thuộc quá mức vào khóa Ứng viên.Đối với bất kỳ sự phụ thuộc tầm thường nào trong mối quan hệ R nói X-> Y, X phải là một siêu khóa của mối quan hệ R.
Phụ thuộc3NF có thể thu được mà không phải hy sinh tất cả các phụ thuộc.Phụ thuộc có thể không được bảo tồn trong BCNF.
Phân hủyPhân hủy không mất mát có thể đạt được trong 3NF.Sự phân hủy không mất mát khó đạt được trong BCNF.


Định nghĩa của 3NF

Một bảng hoặc một mối quan hệ được coi là trong Mẫu bình thường thứ ba chỉ khi bảng đã ở trong 2NF và không có gì không chính thuộc tính quá cảnh phụ thuộc vào khóa ứng viên của một mối quan hệ.

Vì vậy, trước khi tôi giải quyết quá trình bình thường hóa bảng trong 3NF, hãy cho phép tôi thảo luận về khóa ứng viên. Một Khóa ứng viênsiêu khóa tối thiểu tức là một siêu khóa với các thuộc tính tối thiểu có thể xác định tất cả các thuộc tính của mối quan hệ. Vì vậy, trong quá trình bình thường hóa bảng của bạn, trước tiên, bạn nhận ra khóa ứng viên của một mối quan hệ nhất định. Các thuộc tính là một phần của khóa ứng cử viên là thuộc tính nguyên tốvà các thuộc tính không phải là một phần của khóa ứng cử viên là thuộc tính không chính.


Bây giờ nếu chúng ta có mối quan hệ R (A, B, C, D, E, F) và chúng ta có các phụ thuộc hàm sau cho mối quan hệ R.

Quan sát các phụ thuộc chức năng, chúng ta có thể kết luận rằng AB là khóa ứng viên cho mối quan hệ R vì sử dụng khóa AB, chúng ta có thể tìm kiếm giá trị cho tất cả các thuộc tính trong mối quan hệ R. Vì vậy, A, B trở thành thuộc tính nguyên tố khi họ cùng nhau làm chìa khóa ứng cử viên. Các thuộc tính C, D, E, F trở thành không chính thuộc tính bởi vì không ai trong số chúng là một phần của khóa ứng cử viên.

Bảng nằm trong 2NF vì không có thuộc tính không chính nào phụ thuộc một phần vào khóa ứng cử viên

Nhưng, một phụ thuộc bắc cầu được quan sát giữa các phụ thuộc chức năng được cung cấp, như là thuộc tính ĐỤ không phụ thuộc trực tiếp vào khóa ứng viên AB. Thay vào đó, thuộc tính ĐỤquá cảnh phụ thuộc vào khóa ứng viên AB thông qua thuộc tính CƯỜI MỞ MIỆNG. Cho đến thuộc tính D có một số giá trị chúng ta có thể đạt tới giá trị thuộc tính của F, từ khóa ứng viên AB. Trong trường hợp giá trị của thuộc tính D là NULL, chúng ta không bao giờ có thể tìm / tìm giá trị của F với sự trợ giúp của khóa ứng viên AB. Đây là lý do tại sao 3NF yêu cầu loại bỏ sự phụ thuộc quá độ khỏi các mối quan hệ.

Vì vậy, để loại bỏ sự phụ thuộc quá độ này, chúng ta cần chia mối quan hệ R. Trong khi phân chia một mối quan hệ luôn đặt khóa ứng viên và tất cả các thuộc tính phụ thuộc vào khóa ứng viên đó trong mối quan hệ đầu tiên. Trong mối quan hệ được chia tiếp theo, chúng ta sẽ đặt thuộc tính gây ra sự phụ thuộc quá độ và cả các thuộc tính phụ thuộc vào nó trong mối quan hệ thứ hai.

Bây giờ, các bảng R1 và R2 nằm trong 3NF vì nó không còn phụ thuộc một phần và bắc cầu. Quan hệ R 1 (A, B, C, D, E) có khóa ứng viên AB trong khi đó, quan hệ R2 (D, E)CƯỜI MỞ MIỆNG là chìa khóa ứng cử viên của nó.

Định nghĩa về BCNF

BCNF được coi là mạnh hơn 3NF. Mối quan hệ R ở trong BCNF phải nằm trong 3NF. Và bất cứ nơi nào một phụ thuộc chức năng không tầm thường A -> B giữ mối quan hệ R, sau đó Một phải là một siêu khóa về mối quan hệ R. Như chúng ta đã biết, Super key là một khóa có một thuộc tính hoặc tập hợp các thuộc tính xác định, toàn bộ các thuộc tính của một mối quan hệ.

Bây giờ, chúng ta hãy chuyển sang một ví dụ để hiểu BCNF theo cách tốt hơn. Hãy để chúng tôi, giả sử chúng tôi có một mối quan hệ R (A, B, C, D, F), có phụ thuộc chức năng sau.

Bằng cách quan sát mối quan hệ R, chúng ta có thể nói rằng MộtBFchìa khóa ứng cử viên của mối quan hệ R, vì một mình họ có thể tìm kiếm giá trị cho tất cả các thuộc tính trong mối quan hệ R. Vì vậy, A, B, Fnguyên tố thuộc tính trong khi, C CƯỜI MỞ MIỆNGkhông chính thuộc tính. Không có phụ thuộc bắc cầu được quan sát trong các phụ thuộc chức năng trình bày ở trên. Do đó, bảng R nằm trong 3NF.

Nhưng một phụ thuộc chức năng, tức là D -> F đang vi phạm định nghĩa của BCNF, theo đó, nếu D -> F tồn tại thì CƯỜI MỞ MIỆNG nên là siêu chìa khóa đó không phải là trường hợp ở đây Vì vậy, chúng tôi sẽ phân chia mối quan hệ R.

Bây giờ, các bảng R1 nd R2 nằm trong BCNF. Quan hệ R 1 có hai ứng cử viên, đề cử chìa khóa MộtB, sự phụ thuộc chức năng tầm thường của R1, tức là A-> BCD và B -> ACD, giữ cho BCNF vì A và B là các siêu khóa cho mối quan hệ. Quan hệ R2CƯỜI MỞ MIỆNG như của nó khóa ứng viên và phụ thuộc chức năng D -> F cũng giữ cho BCNF vì D là Super Key.

  1. 3NF tuyên bố rằng không có thuộc tính không chính nào phải phụ thuộc quá mức vào khóa ứng cử viên của mối quan hệ. Mặt khác, BCNF tuyên bố rằng nếu một phụ thuộc chức năng tầm thường X -> Y tồn tại cho một mối quan hệ; thì X phải là một siêu khóa.
  2. 3NF có thể thu được mà không phải hy sinh sự phụ thuộc của mối quan hệ. Tuy nhiên, sự phụ thuộc có thể không được bảo tồn trong khi thu được BCNF.
  3. 3NF có thể đạt được mà không mất bất kỳ thông tin nào từ bảng cũ trong khi lấy BCNF, chúng tôi có thể mất một số thông tin từ bảng cũ.

Phần kết luận:

BCNF hạn chế hơn nhiều so với 3NF, giúp bình thường hóa bảng nhiều hơn. Mối quan hệ trong 3NF có dư thừa tối thiểu còn lại được BCNF loại bỏ thêm.