MỤC LỤC
( Bao đóng của một tập thuộc tính trên tập phụ thuộc hàm của một quan hệ).
Phép toán tìm kiếm bản ghi trong file dữ liệu là phép toán quan trọng nhất vì chỉ sau khi tìm kiếm song thì người ta mới tiến hành loại bỏ bản ghi ấy hoặc bổ sung một bản ghi mới vào trước hoặc sau bản ghi mà ta đã tìm được. Dù rằng dễ thấy A có thể chính bằng R nhưng người ta vẫn phải đi tìm khóa tối tiểu, tức là khóa nhỏ nhất mà không thể nhỏ hơn được nữa để việc so sánh các giá trị khóa với nhau trong quá trình tìm kiếm bản ghi là nhanh nhất.
Mỗi giá trị MH đều xác định duy nhất một loại mặt hàng trong quan hệ BAN_HANG. - Ở đây ta luôn giả thiết rằng nếu một hệ Sperner đóng vai trò tập các khoá tối tiểu (tập các phản khóa), thì hệ Sperner không rỗng ( Không chứa R).
Hệ bằng nhau và hệ bằng nhau cực đại đóng một vai trò quan trọng trong các thuật toán thiết kế cũng như mối quan hệ giữa các lớp quan hệ và lớp các phụ thuộc hàm trong quá trình nghiên cứu cấu trúc logic của lớp các phụ thuộc hàm.
Như vậy theo định nghĩa phụ thuộc hàm, c không phụ thuộc hàm vào E, trái với (1). Ta ký hiệu M(F) là tập tất cả các phụ thuộc có vế phải cực đại của F Định nghĩa 21.
Có thể thấy rằng Eij = ∅ (trong trường hợp hai dòng i và j không có cột nào trùng nhau về giá trị, có nghĩa rằng chúng khác nhau hoàn toàn, có thể xẩy ra một số các tập bằng nhau trùng nhau. Không bao giờ có Eij = R ( có nghĩa rằng Eij = toàn bộ không gian), vì nếu xẩy ra thì có hai dòng trùng nhau, theo định nghĩa quan hệ thì không cho phép có hai dòng trùng nhau. Thuật toán này sàng lọc từng cột một bắt đầu từ cột a1 đến cột an, việc sàng lọc này là bỏ đi những cột thừa với điều kiện bỏ đi những phần còn lại bao đóng của nó bằng R.
Nếu đã biết một khoá A ( không chắc chẵn là khoá tối tiểu ) tại bước một có thể đặt K0 = A và áp dụng các bước tiếp theo ta vẫn tớnh được một khoỏ tối tiểu khỏc và rừ ràng số bước tớnh là ớt hơn so với cách đặt K0 = R.
Việc chuẩn hoá các quan hệ cũng như các sơ đồ quan hệ đóng một vai trò quan trọng trong việc thiết kế các hệ quản trị cơ sở dữ liệu trên mô hình dữ liệu của E.F.Codd. Nhờ có chuẩn hoá các quan hệ và các sơ đồ quan hệ chúng ta tránh được việc dư thừa dữ liệu và tăng tốc độ các phép toán xử lý quan hệ. Có thể thấy rằng thuộc tính NGOAINGU còn có thể được chia nhỏ hơn ra thành từng ngoại ngữ một và sau đó có thể phân thành hai bộ phận là tên ngoại ngữ và trình độ ngoại ngữ.
Nói cách khác, lớp các quan hệ BCNF là lớp con thực sự của lớp các quan hệ 3NF và lớp các quan hệ 3NF này lại là lớp con thực sự của lớp các quan hệ 2NF.
Biết rằng đối với một quan hệ r cho trước thì tập hợp tất cả các phản khóa của r được xây dựng trong thời gian đa thức. Trong [9] chúng ta đã chỉ ra rằng giao của tất cả các phản khóa đúng bằng tập tất cả các thuộc tính thứ cấp. Trong dạng chuẩn 3NF chúng ta loại bỏ các phụ thuộc bộ phận, phụ thuộc bắc cầu giữa các thuộc tính thứ cấp với các khoá tối tiểu.
Biết rằng [1] đối với một sơ đồ quan hệ s cho trước thì tồn tại một quan hệ r là quan hệ Armstrong của s.
Khi đó r là BCNF khi và chỉ khi mọi tập sinh của r đều là khóa. Ngược lại trong trường hợp này, chúng ta gọi nó là phụ thuộc hàm không tầm thường.
Khi xây dựng cơ sở dữ liệu trong thực tế, việc chuẩn hoá dữ liệu sẽ loại bỏ bớt dữ liệu dư thừa và tránh được những điểm không nhất quán về dữ liệu do trùng lặp thông tin gây ra. Tuy nhiên áp dụng tất cả những điều đã nói đến trong lý thuyết chuẩn hoá vào trong thực tế là một điều không tưởng, vì đòi hỏi một khối lượng tính toán quá lớn, cho nên trong thực tế người ta tìm cách giảm nhẹ các điều kiện đã nói đến trong lý thuyết. Một quan hệ ( bảng ) tập các thuộc tính A xác định hàm với tập các thuộc tính B hay tập tập các thuộc tính B phụ thuộc hàm vào các tập thuộc tính A nếu với mọi giá trị của A tương ứng với một giá trị duy nhất của B.
Sự phụ thuộc hàm giữa các tập thuộc tính thường được chỉ ra căn cứ vào ngữ nghĩa của mỗi thuộc tính đó, chứ không hoàn toàn được tính một cách máy móc từ dữ liệu, cũng không phải là sự áp đặt như trong định nghĩa phụ thuộc hàm đối với sơ đồ quan hệ.
Do vậy trong chương này ta sẽ nhắc lại những vấn đề chuẩn hoá đã nói đến trong các chương trước nhưng đã được đơn giản hóa cho phù hợp với yêu cầu của thực tế. Một thực thể hay một quan hệ được xem là dạng chuẩn thứ nhất khi tất cả các thuộc tính của nó chỉ chứa các giá trị nguyên tố ( giá trị nguyên tố là những giá trị được coi là không thể chia nhỏ hơn được nữa ) tức là tất cả các thuộc tính của thực thể là sơ cấp. Giả sử chúng ta có một bảng tổng kết bán hàng như ở trên, chúng ta sẽ có một biểu bán hàng gồm 7 cột để mô tả việc bán hàng trong một tru kỳ thời gian nào đó (ví dụ: 1 tháng).
Dễ thấy rằng cột Ngày tháng và cột Mã hàng là một khóa tối tiểu của file dữ liệu HểA ĐƠN ta chọn nú làm khúa chớnh vỡ một ngày cú thể bán được nhiều loại hàng, và nhiều loại hàng bán trong nhiều ngày ( vì không có hai dòng con trên hai cột đó mà giá trị bằng nhau ), nếu đứng riêng từng cột một thì không được vì có nhiều dòng trùng nhau.
Dễ thấy rằng một ngày chỉ có duy nhất một tổng mà thôi, hay nói cách khác giá trị của ngày tháng xác định duy nhất giá trị của tổng. Như vậy file dữ liệu HểA ĐƠN khụng phải là 2NF thực tiễn, chỳng ta có thể thấy rằng Tên hàng và Đơn giá đều được xác định duy nhất do Mã hàng. - Xét lần lượt từng cột nằm ngoài khóa chính đó theo định nghĩa của từng cột một, xem xem nó có phụ thuộc hàm vào các phần tử nằm trong khóa chính hay không.
Trên cơ sở sơ đồ chúng ta sẽ nhanh chóng xác định rằng file dữ liệu này có phải là dạng chuẩn 2NF thực tiễn hay không, như ở ví dụ trên nó không phải là dạng chuẩn 2NF vì có những cột nằm bên ngoài khóa chính nhưng phụ thuộc vào những phần tử bên trong của khóa chính.
Cũng đối với dạng chuẩn 2, định nghĩa ở chương 2 rừ ràng là chặt chẽ hơn vì nó đòi hỏi mọi thuộc tính không phải là khóa mà phải phụ thuộc hàm trực tiếp vào mọi khóa tối tiểu điều này cũng khó lòng thực hiện và thật không cần thiết khi quan hệ đã được gắn chặt với mọi thực thể trong thực tế. Bây giờ chúng ta lại tiếp tục khảo xát xem các file dữ liệu con đó có phải là dạng chuẩn 3NF hay không, nếu file dữ liệu con nào đó không phải là 3NF thì ta lại tách file dữ liệu con thành các file dữ liệu con 3NF. Như vậy chúng ta thấy rằng trong sơ đồ biểu diễn của file dữ liệu HÀNG HOÁ, ta thấy trên đồ thị của các phụ thuộc hàm có hai con đường để đi từ , 'Mã hàng' đến ' Đơn giá' hoặc đi qua thuộc tính tên hàng.
Ta chọn khóa chính là Mã hàng Ta chọn khóa chính là Tên hàng Như vậy từ file dữ liệu HểA ĐƠN là 1NF ta cú thể tỏch ra cỏc file dữ liệu DOANH SỐ, KHỐI LƯỢNG, HÀNG, MẶT HÀNG ở dạng chuẩn 3NF.
Khi xem xét một quan hệ có thoả mãn dạng chuẩn Boyce-Codd hay không, ngoài khoá chính ta phải quan tâm tới các khoá khác, các khoá này tuy không được chọn làm khoá chính nhưng nó cũng thoả mãn điều kiện khoá tối tiểu. Môn học phụ thuộc hàm vào thầy dạy ( vì mỗi thầy chỉ dạy một môn) Trong quan hệ này ta tìm được hai khóa dự bị là Sinh viên, Môn học và Sinh viên, Thầy dạy. Tuy nhiên để chuẩn hóa các quan hệ của cơ sở dữ liệu đến dạng chuẩn BCNF đòi hỏi phải thực hiện tìm hết tất cả các khóa dự bị của quan hệ đó, như vậy điều này rất khó thực hiện trong thực tế.
Xuất phát từ những điều đã học trong lý thuyết chuẩn hoá cơ sở dữ liệu, em xây dựng một chương trình chuẩn hóa cơ sở dữ liệu, hy vọng rằng chương trình có thể phần nào có ích trong việc xây dựng thông tin quản lý, cũng như trong việc học tập và nghiên cứu về cơ sở dữ liệu.
Việc chuẩn hóa cơ sở dữ liệu đóng một vai trò rất quan trọng trong việc xây dựng cơ sở dữ liệu. Nhờ chuẩn hóa ta có thể loại bỏ bớt thông tin dư thừa, đồng thời cũng loại được sự thiếu nhất quán do dư thừa thông tin.
- Hiển thị kết quả của chương trình có nghĩa là hiển thị kết quả bao đóng (A+) và BCNF của sơ đồ quan hệ đã cho (Hiển thị). - Hướng dẫn sử dụng chương trình (Trợ giúp) - Và cuối cùng là thoát khỏi chương trình ( Thoát). Form này thực hiện chức năng tính bao đóng từ sơ đồ quan hệ đã cho ( các bước tính chỉ giới hạn 10 bước ).
Giả sử chúng ta nhập vào một sơ đồ quan hệ như trên sau đó chúng ta bấm vào nút Trở về, lúc này chương trình lại quay trở lại Form chính.