Ngày nay, chúng ta đang sống trong kỷ nguyên của sự bùng nổ và phát triển công nghệ thông tin. Có thể nói mọi ngành mọi lĩnh vực đều ứng dụng công nghệ thông tin và việc áp dụng công nghệ vào trong việc giảng dạy và học tập không còn là vấn đề xa lạ. Xuất phát từ thực tế đó em chọn đề tài xây dựng hệ thống phần mềm giải quyết bài toán cơ sở dữ liệu quan hệ. Với đề tài này em mong muốn sẽ một phần nào đó giúp cho các bạn sinh viên đặc biệt là các bạn sinh viên chuyên ngành IT sẽ có thêm một công cụ nữa hỗ trợ cho việc học tập.Với việc trình bày một cách hệ thống lý thuyết CSDL sẽ giúp chúng ta có một cái nhìn tổng quan về môn học. Từ đó có khả năng thiết kế được các cơ sở dữ liệu phục vụ việc giải quyết bài toán trong thực tế và có thể phát triển được các phần mềm quản lý. Và việc cài đặt các thuật toán để giải các bài toán cơ sở dữ liệu quan hệ là một công cụ hữu ích trong việc học tập môn học này.Trong quá trình tìm hiểu thực tế và thực hiện đề tài Xây dựng hệ thống phần mềm giải bài toán cơ sở dữ liệu quan hệ em đã được sự giúp đỡ rất nhiệt tình của giáo viên hướng dẫn :Ths. Nguyễn Trung Tuấn và các anh chị trong bộ phận FIS ENT. Em xin chân thành cảm ơn
Trang 1MỞ ĐẦU
Ngày nay, chúng ta đang sống trong kỷ nguyên của sự bùng nổ và pháttriển công nghệ thông tin Có thể nói mọi ngành mọi lĩnh vực đều ứng dụngcông nghệ thông tin và việc áp dụng công nghệ vào trong việc giảng dạy vàhọc tập không còn là vấn đề xa lạ Xuất phát từ thực tế đó em chọn đề tài xâydựng hệ thống phần mềm giải quyết bài toán cơ sở dữ liệu quan hệ Với đề tàinày em mong muốn sẽ một phần nào đó giúp cho các bạn sinh viên đặc biệt làcác bạn sinh viên chuyên ngành IT sẽ có thêm một công cụ nữa hỗ trợ choviệc học tập
Với việc trình bày một cách hệ thống lý thuyết CSDL sẽ giúp chúng ta
có một cái nhìn tổng quan về môn học Từ đó có khả năng thiết kế được các
cơ sở dữ liệu phục vụ việc giải quyết bài toán trong thực tế và có thể pháttriển được các phần mềm quản lý Và việc cài đặt các thuật toán để giải cácbài toán cơ sở dữ liệu quan hệ là một công cụ hữu ích trong việc học tập mônhọc này
Trong quá trình tìm hiểu thực tế và thực hiện đề tài Xây dựng hệ thống phần mềm giải bài toán cơ sở dữ liệu quan hệ em đã được sự giúp đỡ rất
nhiệt tình của giáo viên hướng dẫn :
Ths Nguyễn Trung Tuấn và các anh chị trong bộ phận FIS- ENT
Em xin chân thành cảm ơn !
Trang 21.1 Các thông tin cần quản lý
Hệ thống phần mềm giải bài toán cơ sở dữ liệu là một ứng dụng, mộtcông cụ giúp cho việc giải các bài toán cơ sở dữ liệu như: tìm bao đóng, tìmkhóa, xác định dạng chuẩn, phụ thuộc hàm…
Với thông tin đầu vào là lược đồ quan hệ α=<U,F>, U là tập các thuộcU,F>, U là tập các thuộctính và F là tập các phụ thuộc hàm
Sau khi đưa vào yêu cầu thì hệ thống sẽ cho bạn một kết quả chính xác
và nhanh chóng
1.2 Tổng quan về cơ sở dữ liệu quan hệ
Thuật ngữ Cơ sở Dữ liệu (Database) không mấy xa lạ với những ngườilàm tin học Đây là một trong những lĩnh vực được tập trung nghiên cứu vàphát triển của Công nghệ thông tin, nhằm giải quyết các bài toán quản lí, tìmkiếm thông tin trên các hệ thống lớn, phức tạp, nhiều người sử dụng
Từ những năm 70, mô hình dữ liệu quan hệ do Codd đưa ra với cấutrúc hoàn chỉnh đã tạo cơ sở toán học cho các vấn đề nghiên cứu dữ liệu Vớicấu trúc đơn giản và khả năng hình thức hoá phong phú, CSDL quan hệ dễdàng mô phỏng các hệ thống thông tin đa dạng trong thực tế Lưu trữ thôngtin tiết kiệm, có tính độc lập dữ liệu cao, dễ sửa đổi, bổ sung cũng như khaithác dữ liệu là những ưu điểm nổi bật của CSDL quan hệ
Sau đây chúng ta sẽ đề cập tới những khái niệm cơ bản của CSDL quanhệ
Trang 31.2.1 Cơ sở dữ liệu và hệ cơ sở dữ liệu
* Cơ sở dữ liệu
Định nghĩa: Một cơ sở dữ liệu là một tập hợp dữ liệu về một xí nghiệp,
cơ quan, tổ chức… được lưu giữ trên máy tính, được người sử dụng, có cáchquản lí bằng một mô hình
VD: Quản lí thi tuyển sinh thì CSDL bao gồm:
+ Thí sinh (tên, ngày sinh, địa chỉ, số báo danh )
Độc lập giữa CSDL và chương trình: Sự sửa đổi chương trìnhkhông kéo theo việc sửa đổi CSDL
Tính an toàn: Không bị hỏng khi có nhiều người sử dụng hoặc
Thuộc tính: Là các dữ liệu thể hiện các đặc trưng của thực thể
Ràng buộc: Là các mối quan hệ logic của thực thể
Trang 4 Mô hình phân cấp
Mô hình dữ liệu là một cây, trong đó các nút biểu diễn các tập thực thể,giữa các nút con và nút cha được liên hệ theo mối quan hệ xác định chủ-thànhviên (1-n)
Trang 5Ta có thể xem quan hệ như một bảng gồm nhiều cột chứa tên các thuộctính, mỗi cột chứa miền giá trị của thuộc tính, mỗi cột chứa miền giá trị củathuộc tính đó Mỗi hàng trong bảng đó là một bộ giá trị của quan hệ.
* Phụ thuộc hàm
Xét tập quan hệ Ri và hai tập thuộc tính G1,G2 luôn có mặt cùng nhautrong các Ri Ta nói có sự phụ thuộc của hàm giữa G1,G2 nếu với mọi giá trịcủa G1 chỉ có thể kết hợp với một và chỉ một giá trị của G2 tại một thời điểmcho trước Tính chất đúng trong mọi Ri mà ở đó có mặt G1,G2
Như vậy Số thẻ SV là khóa của quan hệ Sinh viên
+ Giảng dạy (Số phòng học,Thời gian, Tên giảng viên, Tên mônhọc)
Số phòng học, Thời gian > Tên giảng viên, Tên môn học
Như vậy (Số phòng học, Thời gian) là khoá của quan hệ Giảng dạy
1.2.3.Các phép toán trên các quan hệ
* Phép chiếu
Xét các tập các thuộc tính C và R là tập các quan hệ định nghĩa trên C.Phép chiếu của R trên tập G thuộc C là sự thu hẹp của R đến các phần tử của
G Kí hiệu G (R)
Trang 6Nối hai quan hệ có chứa các thuộc tính hoặc tập các thuộc tính nhưnhau, quan hệ thu được gồm có các hàng ở hai quan hệ ban đầu đặt nối nhaubằng các thuộc tính giống nhau.
Phép nối hai quan hệ S và T kí hiệu là S |><U,F>, U là tập các thuộc| T
Ví dụ: Phân tích thiết kế cơ sở dữ liệu của một Xí Nghiệp
Từ việc khảo sát thực tế, từ các tin tức trao đổi với người dùng, phântích các bài toán nghiệp vụ, ta được một danh sách các thuộc tính phục vụ choxây dựng CSDL Mỗi một thuộc tính bao gồm :
Trang 7Bảng lương (Họ tên, Đơn vị, Hệ số, Lương, Phụ cấp, Tổng lĩnh)
Ta thấy ở đây Lương, Tổng lĩnh là các thuộc tính tính toán với các quitắc:
Lương = Hệ số * 14400
Tổng lĩnh = Lương + Phụ cấp
* Tìm phụ thuộc hàm giữa các thuộc tính
Sau khi có được một danh sách các thuộc tính từ việc thu thập thông tin
và khảo sát thực tế, việc cần làm tiếp theo là xác định các phụ thuộc hàm giữacác thuộc tính Chúng ta xét một ví dụ sau :
Quản lí thư viện (Số thẻ, Số sách, Tên sách, Loại sách, Ngày mượn, Tên độcgiả, Địa chỉ độc giả)
Ta thấy có các phụ thuộc hàm sau:
Số thẻ mượn, Số sách > Ngày mượn
Số sách > Tên sách, Loại sách
Số thẻ mượn >Tên độc giả, Địa chỉ độc giả
* Chuẩn hoá các quan hệ
Coi danh sách các thuộc tính thu được sau các bước trên cùng các phụthuộc hàm giữa chúng là một quan hệ, chúng ta thực hiện việc chuẩn hoáquan hệ này
Mục đích của quá trình này là giảm bớt sự dư thừa thông tin, bảo đảmtính duy nhất của mỗi thông tin, do đó tiện lợi cho việc truy nhập và cập nhậtcho CSDL Quá trình chuẩn hoá có thể được tiến hành qua nhiều bước
Ta xét ví dụ sau:
Xe máy (Số xe, Số máy, Loại xe, Ngày đăng kí, Tên chủ xe, Số điệnthoại, Địa chỉ)
Nếu một người có nhiều xe thì lặp lại (Số điện thoại, Địa chỉ ) của chủ
xe, như vậy dư thừa thông tin
Trang 8cập nhật rời rạc.
Như vậy biên pháp để khắc phục là tách ra quan hệ :
Chủ xe(Tên, Số điện thoại, Địa chỉ)
* Đưa quan hệ về dạng chuẩn 1NF
Quan hệ chưa ở dạng chuẩn 1NF là quan hệ còn chứa các nhóm lặp lại
Ta đưa về dạng 1NF bằng cách như sau:
Bỏ nhóm lặp lại ra khỏi quan hệ, chuyển nhóm đó thành mộtquan hệ mới
Cộng thêm vào khoá của nó khoá của quan hệ ban đầu để tạo rakhoá phức hợp
R2 (Số hoá đơn, Số sản phẩm, Tên sản phẩm, Lương yêu cầu)
* Đưa quan hệ về dạng chuẩn 2NF
Quan hệ đã ở dạng 1NF nhưng chưa ở dạng 2NF là có tồn tại phụ thuộchàm có nguồn là tập con của khoá Ta đưa về dạng 2NF bằng cách như sau:
Nhóm vào một quan hệ các thuộc tính phụ thuộc hoàn toàn vàokhoá và giữ lại khoá của quan hệ đó
Nhóm vào một quan hệ khác các thuộc tính phụ thuộc vào mộtphần của khoá, lấy phần đó làm khoá chính cho quan hệ
Trang 9VD : Trong quan hệ R2 (Số hoá đơn, Số sản phẩm, Tên sản phẩm, Lượng yêucầu) có phụ thuộc hàm : Số sản phẩm > Tên sản phẩm
Trong đó Số sản phẩm là một phần của khoá, ta tách R2 thành R3 và R4 nhưsau :
+ R3 (Số hoá đơn, Số sản phẩm, Lương yêu cầu)
Ta xét ví dụ: R (Học sinh, Môn học, Giáo viên, Điểm)
Trang 10nhưng đích thuộc khoá, ta tách R thành R1, R2 như sau :
+ R1 (Học sinh, Giáo viên, Điểm)
+ R2 (Giáo viên, Môn học)
Các phụ thuộc hàm đơn trị dừng lại ở dạng chuẩn BCNF (Boyce Codd) Đến đây chúng ta có thể kết thúc công việc chuẩn hoá
-Ta có thể nhận xét rằng: Mô hình CSDL quan hệ là một công cụ rất tiệnlợi để mô tả cấu trúc logic của các CSDL Như vậy ở mức logic mô hình nàybao gồm các quan hệ được biểu diễn bởi các bảng Do đó đơn vị của CSDLquan hệ là bảng, trong đó các dòng của bảng là các bản ghi dữ liệu cụ thể, còncác cột là các thuộc tính
Đối với người sử dụng có thể nói CSDL quan hệ là một tập hợp cácbảng biến đổi theo thời gian
Đối với công việc thiết kế một CDSL thì các công việc phân tích tư liệucủa bài toán và chuẩn hoá là hết sức quan trọng, phục vụ cho việc cài đặt thựctế
Trang 11CHƯƠNG II : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Sơ đồ phân cấp chức năng
Tập TT
BCNF
Tách BC
VT dư thừa
PTH dư thùa
Dạng
Bao đóng Khóa
Nhiều khóa
Cao nhất
3NF
2NF
Tách 3NF
Phủ tối thiểu
Tách BTTT
In
LG
Trang 12* Lược đồ:
Tạo mới: Chức năng này cho phép bạn tạo mới lược đồ quan hệα=<U,F>, U là tập các thuộcU,F> với U là tập các thuộc tính và F là tập các phụ thuộchàm
Lưu file: Cho phép lưu lược đồ vừa nhập vào dưới dạng file txt
Mở file: Với chức năng này thì hệ thống sẽ mở file chứa thôngtin về lược đồ quan hệ và hiển thị thông tin để quản lý
In bài giải : Với chức năng này hệ thống cho phép bạn sau khigiải bài toán có thể in bài giải hoặc lưu lại lời giải
Kiểm tra PTH có vế trái dư thừa
Kiểm tra PTH dư thừa
Xác định phủ tối thiểu của PTH
* Dạng chuẩn :
Xác định dạng chuẩn: BCNF,3NF,2NF
Trang 13 Xác định dạng chuẩn cao nhất: Hệ thống sẽ xác định dạng chuẩncao nhất của lược đồ quan hệ.
* Tách phụ thuộc hàm :
Thuật toán kiểm tra phép tách kết nối bảo toàn thông tin
Phân rã thành dạng chuẩn BC ( hay chuẩn 3NF ) bảo toàn thôngtin
2.1.3 Cấu trúc lưu trữ và xử lý dữ liệu
Sau khi phân tích bài toán thì ta xác định được dữ liệu vào ra của hệthống:
+ Dữ liệu nhập vào là lược đồ quan hệ α =<U,F>, U là tập các thuộcU,F> với U là tập cácthuộc tính và F là tập các phụ thuộc hàm
Dữ liệu có thể nhập trực tiếp từ bàn phím hoặc nhập vào hệ thống bằngcách đọc file
+ Và sau khi nhập thông tin đầu vào và yêu cầu thực hiện hệ thống sẽtrả ra kết quả của bài toán một cách nhanh chóng và chính xác
Việc lưu giữ thông tin của bài toán là lưu trữ dưới dạng file.txt Tậpthuộc tính U và tập phụ thuộc hàm F được lưu trữ trên từng dòng Việc xử lýtrong bài toán thì tập thuộc tính U được lưu trữ dưới dạng mảng 1 chiều còntập phụ thuộc hàm lưu trữ dạng Arraylist với mỗi Object là một phụ thuộchàm
Ví dụ: Bài toán: Cho lược đồ quan hệ α=<U,F>, U là tập các thuộcU,F> với tập thuộc tínhU={A, B, C} và tập phụ thuộc hàm F={AB C,C B} Dữ liệu được lưutrên file.text với U và F được lưu trữ trên từng dòng như sau:
Trang 14Dữ liệu có thể được nhập trực tiếp từ bàn phìm hoặc đọc từ file quachức năng nhập mới hoặc mở file
Dữ liệu sau khi được nhập vào sẽ được hiển thị trên treeview như hìnhdưới :
H2.2 Hiển thị lược đồ trên hệ thống
Việc thực hiện các chức năng của chương trình lúc này sẽ lấy thông tin
về lược đồ quan hệ trên treeview để xử lý
Trang 152.2 Thiết kế giao diện phần mềm
Dựa trên việc phân tích chứa năng của hệ thống ta sẽ thiết kế hệ thốngphần mềm có giao diện chính như sau:
H2.3 Giao diện chính của chương trình
Hệ thống phần mềm gồm các chức năng giống trong sơ đồ chức năngphân tích ở trên
Trang 16Lược đồ quan hệ α=<U,F>, U là tập các thuộcU,F> với U là tập các thuộc tính và F là tập cácphụ thuộc hàm được đưa vào hệ thống bằng cách nhập trực tiếp từ bàn phímhoặc bằng cách đọc file (.txt) Các thông tin về lược đồ quan hệ đó được hiểnthị dưới dạng treeview như giao diện trong hình
Mọi thông tin được đưa vào xử lý trong việc tính toán bao đóng, khóa,dạng chuẩn,… Đều được lấy từ treeview bên trái và kết quả sẽ được hiển thịtrên text bên phải
H2.4 Kết quả bài toán hiển thị trên textbox
Trang 172.3 Thiết kế các thuật toán xử lý cơ bản
Loại phụ thuộc hàm Y Z khỏi F
Bước 3: Vì U là hữu hạn nên sẽ tồn tại một chỉ số i nào đó mà Xi=Xi+1 thì Xi chính là bao đóng của X ( có thể viết X + =Xi ).
Trang 18α=<U,F>, U là tập các thuộcU,F>,
X € U
Xi+1=Xi+ZLoại Y->Zi++
Xi=XXét PTH F: Y->Z
H2.5 Sơ đồ thuật toán BĐ tập thuộc tính
Trang 192.3.1.2 Bao đóng của phụ thuộc hàm
Thuật toán:
Bước 1: Tìm tất cả tập con của U +
Bước 2: Tìm bao đóng tất cả các tập con đối với tập phụ thuộc hàm F Bước 3: Tìm tất cả các phụ thuộc hàm có thể có của lược đồ ( không tính phụ thuộc hàm hiển nhiên).
Bước 4: Dựa vào bao đóng của tất cả các tập con đã tìm để xác định phụ thuộc hàm nào thuộc F +
Trang 20α=<U,F>, U là tập các thuộcU,F>
Tìm tất cả các PTH có thể có của LĐ
Trang 212.3.2 Khóa
2.3.2.1 Tìm khóa bất kỳ của lược đồ quan hệ.
Thuật toán:
Bước 1: gán K =
Bước 2: A là một thuộc tính của U, đặt K’ = K + A Nếu (K’) + = U thì
ta có K’ là một khóa cần tìm của lược đồ và thuật toán kết thúc, ngược lại thực hiện lại bước 2.
Trang 22Thuật toán:
Bước 1: Tìm tập nguồn TN, tập thuộc tính trung gian TG.
Bước 2: Nếu (TN) + =U lược đồ quan hệ chỉ có một khóa duy nhất K =
TN, thuật toán kết thúc Ngược lại qua bước 3.
Bước 3: Tìm tất cả các tập con Xi của tập trung gian TG( cả tập ) Bước 4: Xác định (Xi TN) + Nếu (TN Xi) + = U thì Si = TN Xi Bước 5: K={Si \ Sj sao cho Si Sj}
Trang 242.3.3.1 Phụ thuộc hàm có vế trái dư thừa
đúng
H2.9 Sơ đồ thuật toán phụ thuộc hàm vế trái dư thừa
Trang 252.3.3.2 Tập phụ thuộc hàm không dư thừa
Thuật toán:
Bước 1: Lần lượt xét các phụ thuộc hàm X Y của F.
Bước 2: Nếu X Y là thành viên của F - {X Y} thì loại X Y khỏi F.
Bước 3: Thực hiện bước 2 cho các phụ thuộc hàm tiếp theo của F.
Trang 26F được gọi là một tập phụ thuộc hàm tối thiểu (hay phủ tối thiểu) nếu Fthỏa đồng thời ba điều kiện sau:
1 F là tập phụ thuộc hàm có vế trái không dư thừa
2 F là tập phụ thuộc hàm có vế phải một thuộc tính
3 F là tập phụ thuộc hàm không dư thừa
Thuật toán:
Bước 1: Loại khỏi F các phụ thuộc hàm có vế trái dư thừa.
Bước 2: Tách các phụ thuộc hàm có vế phải trên một thuộc tính thành các phụ thuộc hàm có vế phải một thuộc tính.
Bước 3: Loại khỏi F các phụ thuộc hàm dư thừa.
Trang 27α=<U,F>, U là tập các thuộcU,F>
Ftt không dư thừa
F’ Không dư thừa
Trang 282.3.4.1 Các dạng chuẩn
* Dạng chuẩn 2NF
Thuật toán:
Bước 1: Tìm tất cả khóa của lược đồ.
Bước 2: Với mỗi khóa K, tìm bao đóng của tất cả tập con thật sự S của K.
Bước 3: Nếu có bao đóng S + chứa thuộc tính không khóa thì lược đồ không đạt chuẩn 2 Ngược lại thì đạt chuẩn 2.
Trang 29Bước 1: Tìm tất cả khóa của lược đồ.
Bước 2: Xác định tập thuộc tính không khóa.
Bước 3: Nếu có các phụ thuộc hàm X A trong đó A chứa thuộc tính không khóa mà X là siêu khóa thì lược đồ đạt chuẩn 3 ngược lại không đạt chuẩn 3.
Trang 31*Dạng chuẩn BCNF
Thuật toán:
Bước 1: Tìm tất cả khóa của α.
Bước 2: Từ F tạo tập phụ thuộc hàm tương đương F1tt có vế phải một thuộc tính.
Bước 3: Nếu mọi phụ thuộc hàm X A F1tt với A X đều có X là siêu khóa thì α đạt chuẩn BC ngược lại α không đạt chuẩn BC.
A€X, (X)+=U
đúng
H2.14 Sơ đồ thuật toán dạng chuẩn BCNF
Trang 32Bước 1: Tìm tất cả khóa của α.
Bước 2: Kiểm tra chuẩn BC nếu đúng thì α đạt chuẩn BC, kết thúc thuật toán ngược lại qua bước 3.
Bước 3: Kiểm tra chuẩn 3 nếu đúng thì α đạt chuẩn 3, kết thúc thuật toán
ngược lại qua bước 4.
Bước 4: Kiểm tra chuẩn 2 nếu đúng thì α đạt chuẩn 2, kết thúc thuật toán ngược lại α đạt chuẩn 1.
Trang 342.3.5.1 Thuật toán kiểm tra phép tách kết nối bảo toàn thông tin
Thuật toán:
1 Thiết lập bảng với k+1 dòng, n+1 cột Cột j ứng với thuộc tính Aj (j=1 n), hàng i ứng với lược đồ quan hệ Ui(i=1…k) Tại ví trí hàng i, cột j ta điền ký hiệu Aj nếu Aj Ui, nếu không ta đặt ký hiệu bt vào vị trí đó (với t đầu tiên bằng 1) và sau đó tăng t lên một đơn vị.
2 Xét lần lượt các phụ thuộc hàm trong F, áp dụng cho bảng vừa mới thành lập ở trên Giả sử xét (X ->Y) thuộc F, chúng ta tìm những hàng giống nhau ở tất cả các thuộc tính của X, nếu thấy những hàng như vậy
ta sẽ làm cho các ký hiệu của hai hàng này bằng nhau ở tất cả các thuộc tính của Y Khi làm cho 2 ký hiệu này bằng nhau, nếu một trong hai ký hiệu là aj thì cho ký hiệu kia trở thành aj, nếu hai ký hiệu là bk hoặc bl thì có thể cho chúng trở thành bt hoặc bt (với t = min (k,l)) Bước này được tiếp tục cho các phụ thuộc hàm còn lại của F cho đến khi không còn áp dụng được nữa( Kể cả việc lặp lại các phụ thuộc hàm
đã xét ).
3 Xét bảng kết quả, nếu thấy trong bảng này có một hàng chứa toàn aj
(i=1 n) thì kết luận đó là phép kết nối bảo toàn thông tin, ngược lại là phép kết nối mất mát thông tin.
Trang 352.3.5.2 Phân rã thành dạng chuẩn BC (hay chuẩn 3NF) bảo toàn thông tin
Thuật toán:
Bước 1: Kiểm tra nếu tập phụ thuộc hàm F chưa tối thiểu thì phải tìm phủ tối thiểu của F.
Bước 2: Tìm tập tất cả khóa SK của lược đồ.
Bước 3: Tìm phụ thuộc hàm X -> Y thuộc F có X không là siêu khóa Nếu tìm thấy thì tách U thành U1 và U2 theo quy tắc sau:
U 1 =XY; Tính F 1 =U (F),tìm tính bao đóng tất cả tập con của XY để suy
Ngược lại nếu không tìm thấy thì có hai trường hợp:
Trường hợp 1: mọi phụ thuộc hàm trong Fi đều có vế trái là siêu khóa thì lược đồ đạt chuẩn BC.
Trường hợp 2: nếu có phụ thuộc hàm có vế trái không là siêu khóa và
vế phải chứa thuộc tính không khóa thì lược đồ đạt chuẩn 3.
Trang 36Đúng
Kiểm tra F tối thiểu?
Trang 37H2.16 Thuật toán tách thành các LĐ dạng BCNF