Boyce-Codd Normal Form là gì
Ngày đăng:
21/12/2021
Trả lời:
0
Lượt xem:
162
Show
KHÓA HỌCLaravel cơ bản MIỄN PHÍKHÓA HỌCLaravel nâng caoMIỄN PHÍChuẩn hoá dữ liệu là gì?Chuẩn hóa là một kỹ thuật thiết kế cơ sở dữ liệu tổ chức các bảng theo cách làm giảm sự dư thừa và phụ thuộc của dữ liệu. Nó chia các bảng lớn hơn thành các bảng nhỏ hơn và liên kết chúng bằng các mối quan hệ. Trong hướng dẫn này, bạn sẽ học-
Người phát minh ra mô hình quan hệ Edgar Codd đã đề xuất lý thuyết bình thường hóa với sự ra đời của Mẫu bình thường thứ nhất, và ông tiếp tục mở rộng lý thuyết với Mẫu bình thường thứ hai và thứ ba.Sau đó, ông đã tham gia với Raymond F. Boyce để phát triển lý thuyết về hình thức bình thường Boyce-Codd. Lý thuyết chuẩn hóa dữ liệu trong SQL vẫn đang được phát triển thêm.Ví dụ, có các cuộc thảo luận ngay cả trênMẫu thườngthứ6.Tuy nhiên, trong hầu hết các ứng dụng thực tế, chuẩn hóa đạt được kết quả tốt nhất ởDạng thườngthứ3.Sự phát triển của các lý thuyết Bình thường hóa được minh họa dưới đây- Ví dụ chuẩn hóa cơ sở dữ liệu -Giả sử một thư viện video duy trì một cơ sở dữ liệu của các bộ phim được thuê.Không có bất kỳ chuẩn hóa nào, tất cả thông tin được lưu trữ trong một bảng như dưới đây. Ở đây bạn thấycột Phim được thuê có nhiều giá trị. Cơ sở dữ liệu biểu mẫu bình thườngBây giờ hãy chuyển sangdạng bình thườngthứ1 Quy tắc 1NF (Mẫu thường đầu tiên)
Bảng trên trong 1NF- Ví dụ 1NFTrước khi chúng ta tiến hành, hãy hiểu một vài điều - Chìa khóa là gì?Một khóa là một giá trị được sử dụng để xác định một bản ghi trong một bảng duy nhất.Một KEY có thể là một cột đơn hoặc kết hợp nhiều cột Lưu ý: Các cột trong bảng KHÔNG được sử dụng để xác định một bản ghi duy nhất được gọi là các cột không khóa. Khóa chính là gì?
Khóa tổng hợp là gì?Khóa tổng hợp là khóa chính gồm nhiều cột được sử dụng để xác định một bản ghi duy nhất Trong cơ sở dữ liệu của chúng tôi, chúng tôi có hai người có cùng tên Robert Phil, nhưng họ sống ở những nơi khác nhau. Do đó, chúng tôi yêu cầu cả Họ và Tên để xác định một bản ghi duy nhất.Đó là một khóa tổng hợp. Hãy chuyển sang dạng 2NF bình thường thứ hai Quy tắc 2NF (Mẫu thường thứ hai)
Rõ ràng là chúng ta không thể tiến lên để tạo cơ sở dữ liệu đơn giản của mình ởdạng Chuẩn hóathứ 2trừ khi chúng ta phân vùng bảng ở trên. Bảng 1 Bảng 2 Chúng tôi đã chia bảng 1NF của chúng tôi thành hai bảng viz.Bảng 1 và Bảng2.Bảng 1 chứa thông tin thành viên.Bảng 2 chứa thông tin về các bộ phim được thuê. Chúng tôi đã giới thiệu một cột mới có tên là Memberhip_id, đây là khóa chính cho bảng 1. Các bản ghi có thể được xác định duy nhất trong Bảng 1 bằng cách sử dụng id thành viên Cơ sở dữ liệu - Khóa ngoạiTrong Bảng 2, Memberhip_ID là Khóa ngoài
Tại sao bạn cần một khóa ngoại?Giả sử, một người mới chèn một bản ghi vào Bảng B, chẳng hạn như Bạn sẽ chỉ có thể chèn các giá trị vào khóa ngoại tồn tại trong khóa duy nhất trong bảng cha.Điều này giúp trong tính toàn vẹn tham chiếu. Vấn đề trên có thể được khắc phục bằng cách khai báo id thành viên từ Bảng 2 là khóa ngoại của id thành viên từ Bảng1 Bây giờ, nếu ai đó cố gắng chèn một giá trị trong trường id thành viên không tồn tại trong bảng cha, một lỗi sẽ được hiển thị! Phụ thuộc chức năng bắc cầu là gì?Một phụ thuộc chức năng bắc cầu là khi thay đổi cột không khóa, có thể khiến bất kỳ cột không khóa nào khác thay đổi Xem xét bảng 1. Thay đổi cột không khóa Tên đầy đủ có thể thay đổi Tính toán. Hãy chuyển sang 3NF Quy tắc 3NF (Mẫu thường thứ ba)
Để di chuyển bảng 2NF của chúng tôi thành 3NF, một lần nữa chúng ta cần chia lại bảng của mình. Ví dụ 3NFBẢNG 1 Bảng 2 Bảng 3 Chúng tôi đã một lần nữa phân chia các bảng của chúng tôi và tạo ra một bảng mới lưu trữ Salutations. Không có phụ thuộc chức năng bắc cầu và do đó bảng của chúng tôi nằm trong 3NF Trong Bảng 3 ID tính toán là khóa chính và trong Bảng 1 ID tính toán là ngoại lệ đối với khóa chính trong Bảng 3 Bây giờ ví dụ nhỏ của chúng tôi đang ở mức không thể phân tách hơn nữa để đạt được các hình thức chuẩn hóa cao hơn.Trong thực tế, nó đã ở dạng bình thường hóa cao hơn.Những nỗ lực riêng biệt để chuyển sang các cấp độ chuẩn hóa dữ liệu tiếp theo thường là cần thiết trong các cơ sở dữ liệu phức tạp.Tuy nhiên, chúng tôi sẽ thảo luận về các mức độ chuẩn hóa tiếp theo một cách ngắn gọn trong phần sau. Mẫu thường Boyce-Codd (BCNF)Ngay cả khi cơ sở dữ liệu ởdạng bình thườngthứ3, vẫn sẽ có kết quả bất thường nếu nó có nhiều hơn mộtKhóaứng viên. Đôi khi BCNF cũng được gọi là3,5 Mẫu thường. Quy tắc 4NF (Mẫu thường thứ tư)Nếu không có cá thể bảng cơ sở dữ liệu nào chứa hai hoặc nhiều dữ liệu độc lập và đa trị mô tả thực thể có liên quan, thì đó là ởdạng thông thườngthứ4. Quy tắc 5NF (Mẫu thường thứ năm)Một bảng ởdạng bình thườngthứ5chỉ khi nó ở 4NF và nó không thể được phân tách thành bất kỳ số lượng bảng nhỏ hơn nào mà không mất dữ liệu. Đề xuất 6NF (Mẫu thường thứ sáu)Mẫu thườngthứ6không được chuẩn hóa, tuy nhiên, nó đang được các chuyên gia cơ sở dữ liệu thảo luận một thời gian.Hy vọng rằng, chúng ta sẽ có một định nghĩa rõ ràng và được chuẩn hóa choMẫu thườngthứ6trong tương lai gần ... Đó là tất cả để bình thường hóa !!! Danh sách bài giảng về SQLDanh sách bài giảng về SQLTóm lược
dịch từ guru99 |