Sự phụ thuộc chức năng của cơ sở dữ liệu. Thuộc tính độc lập lẫn nhau

Khi biểu diễn sơ đồ khái niệm dưới dạng mô hình quan hệ khả thi Các tùy chọn khác nhau lựa chọn các sơ đồ quan hệ Một số tùy chọn lựa chọn đã được xem xét trong các phần trước (phần 6.2.3), những tùy chọn khác có được bằng cách kết hợp (hoặc tách) một số lược đồ quan hệ. Từ sự lựa chọn đúng đắn Các sơ đồ quan hệ biểu diễn lược đồ khái niệm sẽ ảnh hưởng lớn đến hiệu năng của cơ sở dữ liệu.

Ví dụ, chúng ta hãy xem xét một sơ đồ mối quan hệ cụ thể và phân tích những thiếu sót của nó. Giả sử dữ liệu về sinh viên, khoa, chuyên ngành được đưa vào bảng với sơ đồ sau quan hệ: SINH VIÊN (Mã sinh viên, Họ, Tên khoa, Tên chuyên ngành).

Kiểu quan hệ này quyết định những nhược điểm sau cơ sở dữ liệu tương ứng:

  • Sự trùng lặp thông tin (dư thừa). Đối với những sinh viên học cùng khoa thì tên khoa sẽ được lặp lại. Các chuyên ngành sẽ được lặp lại cho các khoa khác nhau.
  • Sự không nhất quán tiềm tàng ( cập nhật sự bất thường). Ví dụ, nếu tên của một chuyên ngành thay đổi, thì bằng cách thay đổi nó trong một bộ dữ liệu (đối với một sinh viên), cần phải thay đổi nó trong tất cả các bộ dữ liệu khác có nó.
  • Khả năng mất thông tin ( xóa bất thường). Khi chúng tôi xóa thông tin về tất cả học viên đang theo học một chuyên ngành nào đó, chúng tôi sẽ mất toàn bộ thông tin về chuyên ngành đó.
  • Khả năng thông tin không được đưa vào cơ sở dữ liệu ( chuyển đổi dị thường). Cơ sở dữ liệu sẽ không chứa thông tin về một chuyên ngành nếu không có sinh viên nào theo học trong đó.

TRONG lý thuyết Cơ sở dữ liệu quan hệ dữ liệu có các phương pháp chính thức để xây dựng mô hình cơ sở dữ liệu quan hệ trong đó không có sự dư thừa và cập nhật sự bất thường, loại bỏ và đưa vào.

Bình thường hóa. Dạng bình thường đầu tiên.

Việc xây dựng một phiên bản hợp lý của các lược đồ quan hệ (có các đặc tính tốt hơn cho các hoạt động bao gồm, sửa đổi và xóa dữ liệu so với tất cả các tập hợp lược đồ khác) được thực hiện bằng cách sử dụng cái gọi là bình thường hóa mô hình mối quan hệ. Việc chuẩn hóa được thực hiện trong nhiều giai đoạn. Ở giai đoạn đầu, sơ đồ quan hệ phải ở vị trí đầu tiên dạng bình thường (1NF).

Mối quan hệ là ở lần đầu tiên dạng bình thường, nếu tất cả các thuộc tính của một mối quan hệ chấp nhận giá trị đơn giản(nguyên tử hoặc không thể phân chia), không phải là một tập hợp hoặc bộ gồm nhiều thành phần cơ bản hơn.

Hãy xem xét ví dụ sau.

Bảng thể hiện thực thể BÁO CÁO KIỂM TRA

Mã sinh viên Họ Mã bài thi Chủ đề và ngày tháng Cấp
1 Sergeev 1 Toán học 5.06.08 4
2 Ivanov 1 Toán học 5.06.08 5
1 Sergeev 2 Vật lý 9.06.08 5
2 Ivanov 2 Vật lý 9.06.08 5

Bây giờ tại giao điểm của bất kỳ hàng và cột nào cũng có một giá trị và do đó, cái bàn này là trong lần đầu tiên dạng bình thường.

Tiếp theo, mối quan hệ được trình bày ở phần đầu tiên dạng bình thường, được chuyển đổi tuần tự thành thứ hai và thứ ba dạng bình thường. Quá trình xây dựng dạng chuẩn thứ hai và thứ ba sẽ được mô tả trong các phần dưới đây. Theo một số giả định về dữ liệu, điều thứ ba dạng bình thường là lựa chọn tốt nhất mong muốn.

Nếu những giả định này không được đáp ứng thì quá trình chuẩn hóa sẽ tiếp tục và tỷ lệ được chuyển đổi thành thứ tư và thứ năm. dạng bình thường. Việc xây dựng các dạng tương ứng được mô tả trong tài liệu và không được thảo luận trong cuốn sách này.

Trước khi chuyển sang xây dựng thứ hai hình dạng bình thường, cần phải xác định một số khái niệm hình thức.

8.2. Sự phụ thuộc chức năng (sự phụ thuộc giữa các thuộc tính của mối quan hệ)

Giả sử R(A 1, A 2, ..., A n) là một lược đồ quan hệ và X và Y là các tập con (A 1, A 2, ..., A n).

Sự phụ thuộc chức năng về thái độ R là một phát biểu có dạng “Nếu hai bộ dữ liệu R phù hợp với các thuộc tính của tập hợp(tức là các bộ này có cùng giá trị trong các thành phần tương ứng của chúng cho từng thuộc tính của tập X ), thì chúng phải trùng nhau về các thuộc tính của tập hợp . Về mặt hình thức, sự phụ thuộc này được viết bằng biểu thức X -> Y, và người ta nói rằng X xác định chức năng Y. Một câu lệnh khác thường được sử dụng là: X xác định chức năng Y hoặc Y về mặt chức năng phụ thuộc vào X ( đóng góp bởi X -> Y) khi và chỉ khi mỗi giá trị của tập hợp X mối quan hệ R được liên kết với một giá trị của tập hợp Y mối quan hệ R. Nói cách khác, nếu hai bộ dữ liệu R trùng nhau về ý nghĩa X, chúng giống nhau về ý nghĩa Y.

Bình luận. Nói chung, thuật ngữ “mối quan hệ” có thể có hai nghĩa:

  • mối quan hệ như một biến có thể lấy những nghĩa khác nhau(một bảng trong đó có thể nhập các giá trị khác nhau vào hàng và cột);
  • một mối quan hệ dưới dạng một tập hợp các giá trị cụ thể (một bảng có các phần tử được điền).

Phụ thuộc chức năng mô tả tất cả các quan hệ có thể là giá trị của sơ đồ quan hệ R về nguyên tắc. Đó là lý do tại sao cách duy nhấtđịnh nghĩa phụ thuộc chức năng– phân tích cẩn thận ngữ nghĩa (ý nghĩa) của các thuộc tính.

Phụ thuộc chức năngđặc biệt là các ràng buộc về tính toàn vẹn, vì vậy nên kiểm tra chúng mỗi khi cơ sở dữ liệu được cập nhật.

Ví dụ phụ thuộc chức năng cho mối quan hệ BÁO CÁO KIỂM TRA

Mã sinh viên -> Họ Mã sinh viên, Mã bài kiểm tra -> Lớp

Một ví dụ về sự phụ thuộc hàm cho mối quan hệ SINH VIÊN được đưa ra ở đầu bài giảng này

Mã sinh viên -> Họ, Mã sinh viên -> Khoa

Lưu ý rằng sự phụ thuộc cuối cùng tồn tại với điều kiện một sinh viên không thể học ở nhiều khoa.

Bộ hoàn chỉnh phụ thuộc chức năng

Đối với mỗi mối quan hệ, có một tập hợp các phụ thuộc chức năng được xác định rõ ràng giữa các thuộc tính mối quan hệ này. Hơn nữa, từ một hoặc nhiều phụ thuộc hàm vốn có trong mối quan hệ đang được xem xét, có thể rút ra những phụ thuộc hàm khác phụ thuộc chức năng, cũng vốn có trong mối quan hệ này.

Một tập hợp các phụ thuộc chức năng nhất định cho một mối quan hệ R hãy biểu thị F một tập hợp đầy đủ các phụ thuộc chức năng có thể được suy ra một cách logic từ F gọi là đóng cửa F và được chỉ định F+.

Nếu một tập hợp các phụ thuộc hàm trùng với một bao đóng bộ đã cho, thì tập hợp các phụ thuộc hàm như vậy được gọi là đầy đủ.

Các khái niệm được giới thiệu cho phép chúng ta định nghĩa chính thức khái niệm về khóa.

Hãy có một kế hoạch nào đó R với các thuộc tính A 1 A 2 ...A n , F – một số tập hợp phụ thuộc chức năng và X – một số tập hợp con R. Sau đó X được gọi là khóa nếu, trước hết, trong F+ có một sự phụ thuộc X -> A 1 A 2 ...A n và thứ hai, không có tập hợp con Y bao gồm trong X, nghiện Y -> A 1 A 2 ...A n Không thuộc vê F+.

Sự phụ thuộc chức năng hoàn chỉnh là sự phụ thuộc của một thuộc tính không khóa vào toàn bộ khóa tổng hợp..

Sự phụ thuộc chức năng một phần là sự phụ thuộc của thuộc tính không khóa vào một phần của khóa tổng hợp..

Tính toán đóng nhiều phụ thuộc chức năng sau đây được sử dụng quy tắc suy luận (

Khi thiết kế cơ sở dữ liệu trong cơ sở dữ liệu quan hệ Mục tiêu chính của việc phát triển mô hình dữ liệu logic là tạo ra sự biểu diễn chính xác của dữ liệu, mối quan hệ giữa chúng và các ràng buộc cần thiết. Để làm được điều này, trước tiên cần phải xác định một tập hợp các mối quan hệ phù hợp. Phương pháp được sử dụng cho việc này được gọi là chuẩn hóa. Chuẩn hóa là một biến thể của cách tiếp cận từ dưới lên trong thiết kế cơ sở dữ liệu, bắt đầu bằng việc thiết lập mối quan hệ giữa các thuộc tính.

Mục đích của việc bình thường hóa

Bình thường hóa - một phương pháp tạo một tập hợp các mối quan hệ với các thuộc tính được chỉ định dựa trên các yêu cầu dữ liệu được thiết lập trong một số tổ chức.

Chuẩn hóa thường được thực hiện như một loạt các thử nghiệm trên một quan hệ để kiểm tra xem nó có đáp ứng (hoặc không đáp ứng) các yêu cầu của một dạng chuẩn hóa nhất định hay không.

Quá trình chuẩn hóa là một phương pháp chính thức cho phép các mối quan hệ được xác định dựa trên khóa chính(hoặc khóa ứng viên, như trong trường hợp BCNF) và các phụ thuộc chức năng tồn tại giữa các thuộc tính của chúng. Các nhà thiết kế cơ sở dữ liệu có thể sử dụng quá trình chuẩn hóa dưới dạng các tập hợp thử nghiệm được áp dụng cho các mối quan hệ riêng lẻ để chuẩn hóa lược đồ quan hệ thành một dạng cụ thể, nhất định, từ đó ngăn chặn khả năng xảy ra các bất thường trong cập nhật.

Mục tiêu chính của thiết kế cơ sở dữ liệu quan hệ là nhóm các thuộc tính và mối quan hệ để giảm thiểu sự dư thừa dữ liệu và do đó giảm lượng bộ nhớ cần thiết để lưu trữ vật lý các mối quan hệ được biểu diễn dưới dạng bảng.

Phụ thuộc chức năng

Sự phụ thuộc hàm mô tả mối quan hệ giữa các thuộc tính và là một trong những khái niệm cơ bản của chuẩn hóa. Phần này cung cấp định nghĩa về khái niệm này và các phần sau mô tả mối quan hệ của nó với các quá trình chuẩn hóa mối quan hệ cơ sở dữ liệu.

Sự phụ thuộc chức năng- mô tả mối quan hệ giữa các thuộc tính của một mối quan hệ. Ví dụ, nếu trong mối quan hệ. R chứa thuộc tính A và B, thuộc tính B phụ thuộc chức năng vào thuộc tính A (ký hiệu là AB), khi đó mỗi giá trị của thuộc tính A chỉ liên kết với một giá trị của thuộc tính B. (Hơn nữa, mỗi thuộc tính A và B có thể bao gồm một hoặc nhiều thuộc tính.)

Sự phụ thuộc chức năng là một thuộc tính ngữ nghĩa (hoặc ngữ nghĩa) của các thuộc tính của một quan hệ. Ngữ nghĩa của một mối quan hệ xác định cách các thuộc tính của nó có thể liên quan với nhau và cũng xác định sự phụ thuộc chức năng giữa các thuộc tính dưới dạng các hạn chế áp đặt lên một số thuộc tính.

Mối quan hệ giữa các thuộc tính A và B có thể được biểu diễn dưới dạng sơ đồ như trong Hình 5.

Bản ngã- Yếu tố quyết định sự phụ thuộc hàm là một thuộc tính hoặc nhóm thuộc tính nằm trên sơ đồ phụ thuộc hàm ở bên trái ký hiệu mũi tên.

Hình 5 - Sơ đồ phụ thuộc hàm

Khi có sự phụ thuộc hàm, thuộc tính hoặc nhóm thuộc tính nằm trên sơ đồ bên trái ký hiệu mũi tên của nó được gọi là định thức. Ví dụ, trong hình. 6.1 Thuộc tính A là yếu tố quyết định thuộc tính B.

Khái niệm phụ thuộc hàm là khái niệm trung tâm trong quá trình chuẩn hóa.

Một cơ sở dữ liệu quan hệ chứa cả cấu trúc và thông tin ngữ nghĩa. Cấu trúc của cơ sở dữ liệu được xác định bởi số lượng và loại mối quan hệ chứa trong đó cũng như các mối quan hệ một-nhiều tồn tại giữa các bộ của các mối quan hệ này. Phần ngữ nghĩa mô tả tập hợp các phụ thuộc chức năng tồn tại giữa các thuộc tính của các mối quan hệ này. Hãy để chúng tôi xác định sự phụ thuộc chức năng.

Sự định nghĩa: Nếu cho hai thuộc tính X và Y của một quan hệ nào đó, thì Y được gọi là phụ thuộc hàm vào X nếu tại bất kỳ thời điểm nào mỗi giá trị của X tương ứng với chính xác một giá trị của Y. Sự phụ thuộc hàm được ký hiệu là X -> Y. Lưu ý rằng X và Y có thể đại diện không chỉ là các thuộc tính đơn lẻ mà còn có thể là các nhóm được tạo thành từ nhiều thuộc tính của một mối quan hệ. Chúng ta có thể nói rằng sự phụ thuộc chức năng là mối quan hệ một-nhiều tồn tại trong một mối quan hệ.

    Mối quan hệ dạng chuẩn thứ 2 (2NF). Xác định sự phụ thuộc chức năng hoàn toàn và 2NF. Đặc điểm của các mối quan hệ trong 2NF. Thuật toán giảm xuống 2NF. Định lý Heath. Ví dụ.

Ý tưởngsự phụ thuộc chức năng hoàn toàn.

Định nghĩa: thuộc tính không khóa phụ thuộc hoàn toàn về mặt chức năng từ một khóa tổng hợp nếu nó phụ thuộc về mặt chức năng vào toàn bộ khóa nhưng không phụ thuộc về mặt chức năng vào bất kỳ thuộc tính cấu thành nào của nó.

Sự định nghĩa: sự phụ thuộc chức năng quá mức- một phần phụ thuộc chứa thông tin có thể thu được trên cơ sở các phần phụ thuộc khác có sẵn trong cơ sở dữ liệu.

2NF - dạng bình thường thứ hai.

Định nghĩa dạng chuẩn thứ hai: một mối quan hệ ở dạng 2NF, nếu nó ở dạng 1NF và mỗi thuộc tính không khóa có chức năng phụ thuộc hoàn toàn vào khóa.

Lược đồ cơ sở dữ liệu không có các phụ thuộc chức năng dư thừa được coi là chính xác. Nếu không, bạn phải sử dụng quy trình phân rã (phân rã) tập hợp các quan hệ hiện có. Trong trường hợp này, tập hợp được tạo chứa số lượng quan hệ lớn hơn, là các hình chiếu của các quan hệ của tập hợp ban đầu. (Thao tác chiếu được mô tả trong phần đại số quan hệ.) Quá trình từng bước có thể đảo ngược nhằm thay thế một tập hợp các quan hệ đã cho bằng một sơ đồ khác, loại bỏ các phụ thuộc hàm dư thừa, được gọi là chuẩn hóa.

Điều kiện thuận nghịch đòi hỏi sự phân rã bảo toàn tính tương đương của các mạch khi thay thế mạch này bằng mạch khác, tức là. trong các mối quan hệ kết quả:

1) các bộ dữ liệu bị thiếu trước đó sẽ không xuất hiện;

2) về các mối quan hệ kế hoạch mới Tập hợp phụ thuộc hàm ban đầu phải được thỏa mãn.

Định lý Heath

Hãy để mối quan hệ được đưa ra.

Nếu như r thỏa mãn sự phụ thuộc hàm thì nó bằng hợp của phép chiếu và

    Quan hệ dạng chuẩn thứ 3 (3NF). Định nghĩa về sự phụ thuộc bắc cầu và thuật toán rút gọn về 3NF. Định nghĩa và thuật toán rút gọn về BCNF. Đặc điểm của các mối quan hệ trong 3NF và trong NFBC. Ví dụ.

Việc kết hợp nhiều thuộc tính vào một quan hệ không được thực hiện một cách ngẫu nhiên. Dữ liệu được lưu trữ trong lĩnh vực này được kết nối với nhau. Mối quan hệ này được xác định bởi một tập hợp các phụ thuộc chức năng giữa các thuộc tính của mối quan hệ. Điều này có nghĩa là giá trị của một thuộc tính phụ thuộc vào giá trị của các thuộc tính khác, tức là không được phép kết hợp bất kỳ giá trị thuộc tính nào. Những sự phụ thuộc này phát sinh từ những hạn chế của lĩnh vực chủ đề. Ví dụ, liên quan đến Quân nhuáp dụng các hạn chế sau:

Mỗi nhà cung cấp chỉ có một địa chỉ

Mỗi nhà cung cấp cung cấp hàng hóa ở một mức giá nhất định,

· Hàng hóa do các nhà cung cấp khác nhau cung cấp có thể được phân phối đến các kho khác nhau, nhưng hàng hóa cùng tên do một nhà cung cấp cung cấp chỉ được lưu giữ trong một kho,

· Mỗi kho có khối lượng riêng.

Những ràng buộc này là những sự phụ thuộc, có thể được hình thành như sau:

· địa chỉ phụ thuộc về mặt chức năng vào nhà cung cấp,

· Giá cả phụ thuộc vào sản phẩm và nhà cung cấp,

· Số lượng kho phụ thuộc vào sản phẩm và nhà cung cấp,

· Khối lượng phụ thuộc vào số lượng kho.

Sự phụ thuộc hàm xảy ra khi các giá trị của một bộ trên một tập thuộc tính xác định duy nhất các giá trị của một bộ trên một tập thuộc tính khác (hoặc trên một thuộc tính).

Hãy để thái độ r có một sơ đồ R, XY- tập hợp con R. Thái độ r thỏa mãn sự phụ thuộc hàm X→Y, Nếu như π Y (σ X=x (r)) có nhiều nhất một bộ cho mỗi giá trị xÎX, tức là các giá trị của thuộc tính X xác định duy nhất giá trị của thuộc tính Y.

Chúng ta sẽ biểu thị sự phụ thuộc hàm như sau:

· Nhà cung cấp → Địa chỉ,

· (Sản phẩm, Nhà cung cấp)→ Giá cả,

· (Sản phẩm, Nhà cung cấp)→ Kho bãi,

· Kho → Khối lượng.

Và họ đọc như thế này:

· Nhà cung cấp xác định Địa chỉ,

· Sản phẩm và Nhà cung cấp xác định Giá,

· Sản phẩm và Nhà cung cấp xác định Kho hàng,

· Kho xác định khối lượng.

Trong ngôn ngữ phụ thuộc hàm, khóa của lược đồ R là một tập hợp con KÍR, như vậy mà KR và không có tập hợp con thích hợp K¢ÍK không có tài sản này.

Dạng bình thường

Chúng ta hãy xây dựng các quy tắc để thực hiện việc phân hủy một mối quan hệ. Quá trình này được gọi là chuẩn hóa, tức là đưa mối quan hệ về dạng bình thường.

Các dạng thông thường thể hiện các hạn chế trên một lược đồ quan hệ giúp giải phóng nó khỏi các thuộc tính không mong muốn đã được liệt kê ở trên. Trước khi giảm mối quan hệ về dạng bình thường, bạn nên xây dựng tất cả các phụ thuộc chức năng giữa các thuộc tính tồn tại trong miền.

Sơ đồ quan hệ R trong dạng chuẩn đầu tiên (1NF) nếu giá trị của tất cả các thuộc tính là nguyên tử (không phải tổng hợp), nghĩa là giá trị của từng thuộc tính không phải là danh sách cũng không phải là tập hợp các giá trị.

Ví dụ, thuộc tính Họ và tên là hỗn hợp, bao gồm ba dữ liệu: họ, tên và bảo trợ.

Để chuyển đổi một lược đồ thành 1NF, bạn cần thay thế tất cả các thuộc tính phức hợp bằng các thuộc tính đơn giản.

Để loại bỏ sự dư thừa thông tin được lưu trữ trong cơ sở dữ liệu, có các dạng thông thường thứ hai và thứ ba.

Sơ đồ quan hệ R trong dạng chuẩn thứ hai (2NF) nếu nó ở dạng chuẩn thứ nhất và mỗi thuộc tính không chính phụ thuộc đầy đủ chức năng vào khóa chính.

Sự phụ thuộc khóa chức năng không đầy đủ là gì? Sự phụ thuộc như vậy tồn tại trong một quan hệ nếu bất kỳ thuộc tính nào không có trong khóa lại phụ thuộc hàm vào các bộ phận các thuộc tính có trong khóa. Bất kỳ thuộc tính không chính nào nhất thiết phải phụ thuộc về mặt chức năng vào tất cả các thuộc tính chính như được xác định bởi khóa quan hệ. Và nếu bất kỳ thuộc tính không chính nào, ngoài ra, về mặt chức năng không phụ thuộc vào tất cả mà phụ thuộc vào một phần của các thuộc tính chính, thì đây là sự phụ thuộc chức năng không đầy đủ.

Ví dụ, liên quan đến Cung cấp các thuộc tính chính là Sản phẩmCác nhà cung cấp. Thuộc tính Giá về mặt chức năng hoàn toàn phụ thuộc vào khóa và thuộc tính Địa chỉ phụ thuộc vào một phần của khóa, tức là chỉ phụ thuộc vào thuộc tính Các nhà cung cấp, đây là sự phụ thuộc hàm không đầy đủ. Vì vậy sơ đồ Quân nhu không ở 2NF.

Để chuyển đổi một mạch trong 1NF thành 2NF, bạn cần chia nó thành nhiều mạch:

· thực hiện phép chiếu sơ đồ R trên các thuộc tính chính và các thuộc tính phụ thuộc hoàn toàn về mặt chức năng vào khóa, tức là loại trừ các thuộc tính không chính không phụ thuộc hoàn toàn vào khóa,

· đối với mỗi phần phụ thuộc hàm không đầy đủ, thực hiện phép chiếu sơ đồ R trên các thuộc tính có trong phần phụ thuộc này, tức là để lại một phần khóa quan hệ R và các thuộc tính phụ thuộc chức năng vào phần này.

Trong ví dụ quan hệ Quân nhu Kết quả của việc giảm sơ đồ xuống 2NF sẽ thu được hai mối quan hệ:

Vật tư_1(Sản phẩm, Các nhà cung cấp, Giá, Kho, Khối lượng),

Vật tư_2(Các nhà cung cấp, Địa chỉ).

Tuy nhiên, thông tin về khối lượng kho vẫn tiếp tục bị trùng lặp. Để loại bỏ nhược điểm này của sơ đồ, có dạng chuẩn thứ ba.

Sơ đồ quan hệ R trong dạng chuẩn thứ ba (3NF), nếu nó ở dạng chuẩn thứ hai và không có sự phụ thuộc bắc cầu của các thuộc tính không chính vào khóa.

Sự phụ thuộc bắc cầu là gì? Sự phụ thuộc bắc cầu xảy ra khi một thuộc tính không chính phụ thuộc về mặt chức năng vào một thuộc tính không chính khác, do đó thuộc tính không chính này lại phụ thuộc về mặt chức năng vào một khóa.

Sơ đồ quan hệ Vật tư_1(Sản phẩm, Các nhà cung cấp, Giá, Kho, Khối lượng) không ở dạng 3NF vì nó chứa phần phụ thuộc bắc cầu:

{Sản phẩm, Nhà cung cấp} → Cổ phần, Cổ phầnÂm lượng.

Để chuyển đổi mạch ở 2NF thành 3NF, bạn cần:

· thực hiện phép chiếu sơ đồ R trên các thuộc tính chính và các thuộc tính độc lập bắc cầu với khóa, tức là loại trừ các thuộc tính không chính phụ thuộc bắc cầu vào khóa,

· đối với mỗi thuộc tính phụ thuộc quá độ, thực hiện phép chiếu lược đồ Rđối với các thuộc tính có trong phần thứ hai của sự phụ thuộc bắc cầu, tức là chỉ để lại các thuộc tính không chính của mối quan hệ R, giữa đó có sự phụ thuộc hàm số.

Trong ví dụ quan hệ Vật tư_1 Kết quả của việc giảm mạch xuống 3NF sẽ thu được hai quan hệ:

Vật tư_1_1(Sản phẩm, Các nhà cung cấp, Giá cả, Kho hàng),

Vật tư_1_2(Cổ phần, Âm lượng).

Do đó, bằng cách chia tuần tự lược đồ quan hệ ban đầu thành một số lược đồ khác theo các quy tắc được xem xét, chúng ta thu được lược đồ trong 3NF, không có những bất thường trong việc cập nhật và sao chép thông tin, như đã thảo luận ở phần đầu.

Quá trình phân chia một lược đồ quan hệ thành nhiều lược đồ khác được gọi là sự phân hủy các sơ đồ quan hệ. Một phép phân rã làm rút gọn một quan hệ về một trong các dạng chuẩn tắc được gọi là bình thường hóa.

Trong ví dụ đang xem xét, là kết quả của việc phân rã, thay vì một quan hệ Quân nhu chúng ta có ba mối quan hệ mới:

Vật tư_1_1(Sản phẩm, Các nhà cung cấp, Giá cả, Kho hàng),

Vật tư_1_2(Cổ phần, Âm lượng),

Vật tư_2(Các nhà cung cấp, Địa chỉ).

Với sơ đồ như vậy, bao gồm ba mối quan hệ được kết nối bằng khóa ngoại, sẽ không có sự trùng lặp thông tin về địa chỉ của nhà cung cấp và khối lượng của kho; nếu kho trống thì khối lượng của nó sẽ vẫn còn trong cơ sở dữ liệu; không cung cấp hàng thì địa chỉ của anh ta vẫn được lưu trữ trong dữ liệu cơ sở dữ liệu.

Như bạn đã nhận thấy, lược đồ 3NF lưu cơ sở dữ liệu khỏi sự trùng lặp thông tin và cập nhật các điểm bất thường, nhưng không phải lúc nào cũng vậy.

Hãy xem xét mối quan hệ Bài giảng(Học sinh, Mục, Giáo viên), nơi lưu trữ thông tin về những môn học mà học sinh học và ai dạy những môn học này. Lĩnh vực chủ đềáp đặt các hạn chế sau:

Mỗi học sinh học một môn học nhất định chỉ được dạy bởi một giáo viên,

· Mỗi giáo viên chỉ dạy một môn, nhưng mỗi môn có thể có nhiều giáo viên dạy.

Các phụ thuộc chức năng sau đây tuân theo những hạn chế này:

· (Sinh viên, Môn học) → Giáo viên;

· Giáo viên → Môn học.

Từ sự phụ thuộc chức năng, điều quan trọng là các mối quan hệ Bài giảng sẽ có một tập hợp các thuộc tính ( Học sinh, Mục}.

Thái độ Bài giảng là ở 3NF. Nhưng nó bị lỗi cập nhật bất thường. Nếu bạn muốn xóa thông tin Petrov đang học Vật lý thì thông tin Giáo sư Serov dạy Vật lý sẽ bị mất. Đồng thời, thông tin mà Giáo sư Bely dạy Đại số bị trùng lặp.

Những khó khăn này là do có sự phụ thuộc chức năng của thuộc tính chính vào thuộc tính không chính. Bài toán này được giải dưới dạng chuẩn Boyce–Codd.

Mối quan hệ đang ở Dạng chuẩn Boyce–Codd (BCNF), nếu nó ở dạng 3NF và không có sự phụ thuộc của các thuộc tính chính vào các thuộc tính không chính. Một định nghĩa tương đương yêu cầu tất cả các vế trái của các phụ thuộc hàm phải là các khóa dự tuyển.

Rút gọn quan hệ với BCNF, ta được hai quan hệ: Bài giảng_1(Học sinh, giáo viên) Và Bài giảng_2(Giáo viên, Môn học).

Phụ thuộc đa giá trị

Thuộc tính X định nghĩa nhiều giá trị thuộc tính Y V. R(hoặc Y phụ thuộc đáng kể vào X), nếu mỗi giá trị thuộc tính X tương ứng với một tập hợp (có thể trống) các giá trị thuộc tính Y, không liên quan đến bất kỳ thuộc tính nào khác R. Nghĩa là, để một mối quan hệ có sự phụ thuộc đa giá trị, nó phải có ít nhất ba thuộc tính.

Mối quan hệ đa giá trị được biểu thị bằng mũi tên kép: X→→Y.

Hãy xem xét mối quan hệ Giáo viên(Con số , tên_con , Mục ,Chức danh). Lĩnh vực chủ đề áp đặt các hạn chế sau:

Mỗi giáo viên có thể có nhiều học sinh,

Mỗi giáo viên có thể dạy nhiều môn học

Mỗi giáo viên chỉ được giữ một chức vụ

· Mỗi môn học có thể có nhiều giáo viên dạy.

Khi đó thái độ Giáo viên có hai phụ thuộc đa giá trị và một chức năng:

· Số→→Tên_con,

· Số→→Mục,

· Số→Vị trí.

Thái độ Giáo viên, thứ nhất, chứa thông tin dư thừa - vị trí giảng dạy được lặp lại nhiều lần. Thứ hai, nó không tránh khỏi những bất thường về cập nhật: nếu một giáo viên có một đứa trẻ khác, thì cần phải thêm không chỉ một bộ vào mối quan hệ mà bằng số môn học mà giáo viên này dạy. Tương tự, khi thêm một môn học khác, bạn cần thêm số lượng bộ bằng số lượng trẻ mà giáo viên có. Và nếu giáo viên không có con, thì thông tin về những môn học mà ông dạy không thể được đưa vào mối quan hệ.

Để loại bỏ những bất thường này, cần phải đưa mối quan hệ về dạng chuẩn thứ tư.

Mối quan hệ đang ở dạng chuẩn thứ tư (4NF), nếu nó ở dạng chuẩn Boyce–Codd và không có phụ thuộc đa giá trị nào không hoạt động.

Sau khi đưa mối quan hệ Giáo viênđến 4NF chúng ta có ba quan hệ:

Giáo viên_1(Con số , Chức danh),

Giáo viên_2(Con số , tên_con ),

Giáo viên_3(Con số , Mục ).

Tính chất của sự phân hủy

Chuẩn hóa cơ sở dữ liệu hoặc phụ thuộc chức năng là tình huống trong đó một giá trị cho phép bạn thực hiện chuyển tiếp suôn sẻđến giá trị tiếp theo trong chuỗi mà không có bất kỳ sự ngắt quãng nào. Đối với loại tình huống này, có một luồng thông tin trong cơ sở dữ liệu diễn ra mà không có bất kỳ sự chậm trễ hoặc vấn đề nào và tính toàn vẹn của dữ liệu được duy trì. Sự phụ thuộc chức năng rất quan trọng đối với việc tạo và vận hành cơ sở dữ liệu quan hệ vì quá trình này liên quan đến các liên kết nhẹ với một giá trị duy nhất hoặc một kiểu dữ liệu có các giá trị tương ứng.

Một trong những điều nhất những cách đơn giảnĐể hiểu sự phụ thuộc chức năng hoàn thành công việc như thế nào, hãy xem xét việc sử dụng số nhận dạng chính phủ, chẳng hạn như số an sinh xã hội, được cấp thường xuyên cho mọi công dân Nga. Bằng cách sử dụng số này làm phương tiện nhận dạng, người sử dụng lao động có thể truy cập được thông tin về chủ sở hữu của số này; các chủ nợ tiềm năng và các chủ nợ khác có thể sử dụng số truy cập vào các thông tin liên quan thông tin tài chính về người nộp đơn, cũng như số lượng cho phép truy cập thông tin như thuế, đánh giá và thuế đã nộp, thu nhập từ năm này sang năm tiếp theo và để tính toán quỹ hưu trí khi người đó cuối cùng sẽ được hưởng thành tích sau khi nghỉ hưu. Trong nhiều trường hợp, người sử dụng lao động thực sự có thể sử dụng cùng một số với số chính một số nhận dạng nhân viên hoặc một số phần của số lượng các công cụ quan hệ để truy cập phần còn lại tập tin điện tử người lao động.

Là một phần của thiết kế và vận hành cơ sở dữ liệu, phần phụ thuộc chức năng phục vụ cho phép người dùng nhập các giá trị nhất định mà sau đó có thể được sử dụng để lấy thông tin mong muốn. Ví dụ: nhân viên bán hàng có thể nhập giá trị tên công ty để truy xuất tất cả các bản ghi được liên kết với các liên hệ được liên kết với khách hàng của doanh nghiệp. Tương tự như vậy, nhân viên bán hàng đang lên kế hoạch bán hàng có thể nhập tên thành phố làm giá trị và làm phương tiện truy cập theo tên và thông tin liên lạc tất cả các khách hàng ở gần điểm đến của họ, giúp họ dễ dàng sắp xếp các cuộc gặp với những khách hàng này hơn.

Mặc dù cấu trúc chính xác, chẳng hạn như hệ thống cung cấp sự phụ thuộc chức năng, có thể khác nhau tùy thuộc vào ứng dụng, nhưng kết quả cuối cùng vẫn giống nhau. Một giá trị được liên kết với một giá trị khác, cho phép bạn truy cập thông tin cần thiết một cách tương đối dễ dàng. Với rất nhiều bản ghi được lưu trữ trong cơ sở dữ liệu thay vì dựa vào bản cũ phương pháp cứng sao chép tập tin, loại này sự phụ thuộc quan hệ là rất quan trọng để tìm và sử dụng dữ liệu có liên quan.