Mục lục: Lời mở đầu…………………………………………………………………………..1 A. Cơ sở lí luận ……………………………………………………………… 2 I. Khái quát CSDL……………………………………………………………… 2 1.Khái niệm CSDL………………….…………….........................................2 2. Hệ quản trị CSDL………………………………………………………….3 3. Kiến trúc một HQTCSDL………………………………………………….4 II. Một số vấn đề khi thiết kế CSDL……………………………………………...5 1. Dư thừa DL…………………………………………….……………….…5 2. Không nhất quán…………………………………………………….…......5 3. Bất thường khi thêm bộ …………………………………………..……......5 4. Bất thường khi xóa bộ…………………………………………….………..5 B. Nội dung……………………………………………………………………….6 I. Lược đồ quan hệ……………………………………………………………..6 1. Định nghĩa…………………………………………………………….…..7 2. Phép tách các lược đồ quan hệ…………………………………………....8 3.Chuẩn hóa lược đồ quan hệ………………………………….…………...8 II. Phụ thuộc hàm……………………………………………………….…….8 1. Khái niệm và vai trò của phụ thuộc hàm trong xây dựng CSDL…….......8 Khái niệm phụ thuộc hàm…………………………………………...8 a. Định nghĩa phụ thuộc hàm………………………………………...8 b. Một số tính chất của phụ thuộc hàm……………………………..10 c. Thuật toán Satifies……………………………………………….10 Vai trò của phụ thuộc hàm trong xây dựng CSDL………………...11 2. Các vấn đề liên quan phụ thuộc hàm trong xây dựng CSDL………...12 2.1 Hệ tiên đề Amstrong………………………………………… .. 12 2.2 Bao đóng………………………………………………………....13 2.3. Phép tách bảo toàn tập phụ thuộc hàm……………………… ... 13 3. Các dạng chuẩn và mục đích của nó trong lược đồ quan hệ……..14 III . Phụ thuộc đa trị………………………………………………………..16 1.Khái niệm và vai trò của phụ thuộc đa trị trong xây dựng CSDL……16 1.1. Khái niệm của phụ thuộc đa trị……………………………....16 1.2. Vai trò của phụ thuộc đa trị trong xây dựng CSDL………....17 2. Các vấn đề liên quan phụ thuộc đa trị……………………………….18 2.1. Hệ tiên đề đối với phụ thuộc hàm và phụ thuộc đa trị …….18 2.2. Các luật suy diễn bổ sung cho phụ thuộc đa trị………….…18 2.3. Bao đóng của tập phụ thuộc hàm và phụ thuộc đa trị……..18 2.4. Phép tách không mất thông tin……………………….…..20 2.5. Dạng chuẩn bốn………………………………………….20 IV. Cài đặt một số thuật toán. `1. Thuật toán tìm khóa……………………………………………………23 2. Chương trình……………………………………………………………24 C. Kết luận……………………………………………………………………30
TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP CHUYÊN NGHÀNH ĐỀ TÀI: TÌM HIỂU VỀ SỰ PHỤ THUỘC TRONG CƠ SỞ DỮ LIỆU Giảng viên hướng dẫn: TS.Phan Anh Phong Sinh viên thực hiện: Trần Nguyên Giáp Mã SV: 1251075337 Lớp: 53K2 CNTT Nghệ An, tháng năm 2016 LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới Thầy, Cô trường Đại học Vinh, đặc biệt Thầy Cô khoa Công nghệ thông tin – người trực tiếp giảng dạy, giúp đỡ chúng em suốt năm tháng học tập trường, cảm ơn nhà trường khoa CNTT tạo điều kiện cho chúng em có sở để chuẩn bị tốt cho cơng việc học tập rèn luyện kỹ cần thiết trở thành người kỹ sư CNTT thực Sinh viên CNTT ngày phải không ngừng học hỏi, cập nhật biết ứng dụng kiến thức học vào thực tiễn sống Đây bước để chúng em sâu vào tìm hiểu lĩnh vực cơng nghệ thơng tin, sở kiến thức học năm học vừa qua Để hoàn thành báo cáo này, cố gắng nỗ lực thân cịn có tận tình giúp đỡ giảng dạy thầy, cô giáo khoa CNTT Trường Đại học Vinh Chúng em xin gửi lời cảm ơn chân thành tới thầy Phan Anh Phong nhiệt tình hướng dẫn chúng em trình thực đề tài Vì thời gian trình độ cịn hạn chế nên chắn em không tránh khỏi thiếu sót Chúng em mong nhận góp ý thầy cô bạn để để tài hoàn thiện Sinh viên thực Trần Nguyên Giáp Lời nói đầu Ngày nay, lúc hết thành công quan phụ thuộc vào khả thu thập kịp thời, đầy đủ xác liệu cần thiết, xử lí, quản lí va sử dụng chúng cách có hiệu để phân tích tình hình đề phương hướng hành động cho tương lai Mà lượng thông tin ngày gia tăng nên khối lượng thu thập cần lưu trữ, không gian lưu trữ có hạn Nghịch lí làm nảy sinh nhu cầu phải xây dựng sở liệu (CSDL) phù hợp Để quản lí tối ưu kho liệu người sử dụng phải có cơng cụ làm đơn giản hố nhiệm vụ quản lí liệu(DL) Yêu cầu đặt cho người thiết kế nghiên cứu tính chất để xây dựng cấu trúc CSDL tối ưu Mà vấn đề phụ thuộc hàm, phụ thuộc đa trị nguyên nhân cho vấn đề nảy sinh không đáng có thiết kế CSDL nên nghiên cứu phụ thuộc hàm phụ thuộc đa trị xây dựng CSDL để xây dựng tập sơ đồ quan hệ cho phép người dùng lưu trữ thông tin cách khơng dư thừa đồng thời cho phép tìm kiếm thơng tin cách dễ dàng Mục đích nghiên cứu đề tài trước hết trang bị thêm kiến thức phục vụ cho thiết kế CSDL đồng thời kiến thức học hỏi trở thành công cụ để sinh viên lập trình viên sử dụng cho cơng việc thiết kế có nhìn đắn mang lại hiệu tốt xây dựng CSDL Đối tượng nghiên cứu đề tài em phụ thuộc hàm, phụ thuộc đa trị ứng dụng xây dựng CSDL Và thiết kế CSDL quan hệ phải nghiên cứu tính chất thuật tốn để nhận tập sơ đồ phù hợp, tốt cho công việc Đề tài chia làm ba phần lớn: Phần thứ nhìn tổng quan CSDL quan hệ phạm vi nghiên cứu đề tài Phần thứ hai: trình bày nội dung đề tài , phần giúp cho người sử dụng hiểu rõ mục đích tầm quan trọng việc thiết kế CSDL ứng dụng thực tế Phần cuối kết luận, qua đề tài để làm tối ưu trình xây dựng CSDL trang bị cho người sử dụng thêm kiến thức cần thiết phục vụ cho ứng dụng ,và tìm hiểu để có lựa chọn phù hợp cho cơng việc với mơ hình quan hệ tốt Qua đề tài nghiên cứu mong trang bị cho người đọc kiến thức bổ ích giúp ích cho muốn tìm hiểu phụ thuộc hàm,phụ thuộc đa trị có thêm kiến thức bổ sung cho trình tìm hiểu A Cơ sở lí luận I Khái quát CSDL: Khái niệm CSDL: Cơ sở liệu lĩnh vực tin học nghiên cứu chế ,nguyên lí , phương pháp tổ chức nhóm DL vật mang tin ngoài(các loại đĩa,trống từ, quang học…) nhằm phục vụ cho việc khai thác liệu hệ thống tin học ứng dụng hệ lưu trữ tra cứu thông tin ,các hệ quản trị xí nghiệp ngành… Trong số mơ hình ba cách tiếp cận cho việc tổ chức khai thác CSDL mơ hình phân cấp , mơ hình mạng mơ hình quan hệ mơ hình quan hệ quan tâm vào khoảng vài chục năm trở lại Các hệ quản trị CSDL quan hệ thiết kế cài đặt tất máy : hệ micro, hệ mini, hệ mainframe hệ siêu máy tính Trong chương trình xây dựng máy tính hệ , mơ hình quan hệ quan tâm đáng kể Sở dĩ mơ hình quan hệ phát triển rộng rãi xây dựng sở tốn học chặt chẽ _lí thuyết quan hệ có hình ảnh trực quan gần với quan niệm thông thường người dùng cuối Các ngôn ngữ thao tác CSDL quan hệ dễ học có hiệu suất phục vụ cao.Trong mơ hình quan hệ giá trị đưa vào cột phải đơn nhất, giá trị đưa vào cột phải miền liệu dòng bảng phải nên việc quản lí dễ dàng Vậy CSDL tập DL đối tượng cần quản lí, lưu trữ đồng thời vật mang tin máy tính điện tử quản lí theo chế thống gọi hệ quản lí CSDL nhằm thực ba chức sau cách tối ưu: mo tả DL, cập nhật DL, tìm kiếm DL CSDL phận thiếu hệ lưu trữ tìm kiếm thơng tin, hệ thống quản lí kinh tế ngành cấp, hệ thống quản lí kho hàng, tư liệu, hệ thống phục vụ công cộng ngân hàng, bán vé máy bay phương tiện giao thông , hệ thống thiết kế tự động ……… Hệ quản trị CSDL: Đó hệ thống phần mềm giúp cho người sử dụng khai thác CSDL theo ba chức nói Cịn CSDL đối tượng quản lí HCSDL Chúng tạo lập lưu trữ vật mang tin ngồi Hệ QTCSDL có nhiệm vụ quan trọng, miễn dịch với ngơn ngữ bậc cao nhằm giúp người sử dụng dùng hệ thống mà nhiều khơng cần quan tâm đến thuật toán chi tiết biểu diễn DL máy CSDL có người quản trị CSDL Người quản trị CSDL có nhiệm vụ quản lí theo dõi toàn thủ tục sau : _Nạp DL vào CSDL _Xoá DL khỏi CSDL _Sửa DL CSDL _Tạo lập CSDL _Tìm kiếm xuất DL _Bảo trì DL CSDL khơng bị sai hỏng truy nhập không phép không qui cách dẫn đến sai lệch mát DL CSDL có lớp người sử dụng phép thực thao tác người quản trị giới hạn góc độ khai thác DL Người sử dụng tuỳ theo vai trị ,trách nhiệm người quản trị cho phép sử dụng phần CSDL với phần họ phép thực số thao tác định Nếu người sử dụng nhân viên bán hàng quầy thơng qua MTĐT theo dõi mặt hàng bán quầy bao gồm mục : mã hàng, tên hàng , giá đơn vị , thành tiền, số lượng lại , tổng số tiền bán… Và phép nạp DL, sửa ,xóa DL phản ánh biến động mặt hàng có quầy Cịn DL khác , lưu trữ MTĐT chí lưu trữ CSDL là” khuất “đối với người DL khuất thông tin quầy khác, tổng thu chi cửa hàng, danh sách thông tin chi tiết nhân viên … Tóm lại, DL lưu trữ chung CSDL người sử dụng nhìn vào CSDL qua chung họ cảm thấy CSDL vào khung thơi, dành riêng cho họ Hệ QTCSDL chương trình máy tính giúp cho ta thực thao tác Vậy phần mềm DBASE, FOXBASE, SYSTEM-R, IMS HCSDL Các đối tượng hệ thống tạo lập CSDL Kiến trúc HCSDL Một CSDL phân nhánh mức khác hình Ở cá thể xem có CSDL đơn giản có hệ phần mềm QTCSDL Phần mềm CSDL vật lí tập tệp DL theo cấu trúc lưu thiết bị nhớ thứ cấp ( đĩa, băng từ….) CSDL mức khái niệm biểu diễn trừu tượng CSDL vật lí Các khung nhìn cách nhìn quan niệm người sử dụng CSDL mức khái niệm thực chất khơng lớn Khung nhìn CSDL mức kh niệm(logic) Khung nhìn Khung nhìn n CSDL mức vật lí Thể Một CSDL thiết kế , thường người ta quan tâm tới “bộ khung” hay gọi “mẫu” CSDL DL có CSDL gọi thể CSDL, DL thay đổi thao chu kì thời gian “bộ khung” CSDL không thay đổi Lược đồ Thường “bộ khung” nêu bao gồm số danh mục , tiêu số kiểu thực thể CSDL Giữa thực thể có mối quan hệ với Ở sử dụng thuật ngữ “lược đồ” để thay cho khái niệm “ khung” Lược đồ khái niệm khung CSDL khái niệm ,cịn lược đồ vật lí dùng cho khung CSDL mức vật lí, khung nhìn gọi Lựơc đồ Tính độc lập DL Theo hình từ khung nhìn tới CSDL khái niệm CSDL vật lí cho thấy có hai mức “ độc lập DL” Thứ : Lược đồ vlí thay đổi người quản trị CSDL mà không cần thay đổi lược đồ khái niệm lược đồ việc tổ chức lại CSDL vật lí làm thay đổi hiệu tính tốn chương trình ứng dụng khơng địi hỏi phải viết lại chương trình tính độc lập gọi độc lập DL mức vật lí Mối quan hệ khung nhìn lược đồ khái niệm cho thêm loại độc lập nữa, gọi độc lập DL logic.khi sử dụng CSDL , cần thiết phải thay đổi lược đồ khái niệm thêm thông tin loại khác thực thể bớt , xóa thơng tin thực thể tồn CSDL việc thay đổi lược đồ khái niệm không làm ảnh hưởng tới lược đồ tồn , khơng cần thiết phải thay đổi chương trình ứng dụng Vì thế, tính độc lập DL mục tiêu chủ yếu hệ CSDL Có thể định nghĩa tính độc lập CSDL “ tính bất biến hệ ứng dụng thay đổi cấu trúc lưu trữ chiến lược truy nhập” Có ba loại mơ hình CSDL mơ hình lưới , mơ hình phân cấp, mơ hình quan hệ Trong ba loại mơ hình mơ hình quan hệ có nhiều ưu điểm nhiều người quan tâm nhất, lẽ mơ hình quan hệ có tính độc lập DL cao,lại dễ dàng sử dụng Điều quan trọng cả, mơ hình quan hệ hình thức hố tốn học tốt , nghiên cứu, phát triển cho nhiều kết lí thuyết ứng dụng thực tiễn Trên sở mơ hình DL quan hệ , đến phát triển thêm số loại mơ hình khác nhằm mô tả thể giới thực cách xác phù hợp mơ hình quan hệ thực thể , mơ hình DL hướng đối tượng II.Một số vấn đề thiết kế CSDL: Phụ thuộc liệu mối ràng buộc có giá trị hữu lược đồ, chẳng hạn thuộc tính xác định thuộc tính Chúng ta xét lược đồ quan hệ sau xem xét vấn đề nảy sinh để qua thiết kế CSDL tối ưu Ví dụ việc phân công lái máy bay: phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH) Với thuộc tính : tên phi cơng(PHICONG), số máy bay(MAYBAY), ngày khởi hành(NGAYKH), khởi hành(GIOKH) Dư thừa liệu: Dễ dàng thấy phi công lái nhiều máy bay nên tên phi công lặp lại nhiều quan hệ lược đồ Cụ thể tên người lặp lại quan hệ Không quán: Là hệ việc dư thừa DL, tên phi cơng lặp lại nhiều ,khi sửa sửa cịn khác giữ nguyên Khi xảy tượng phi cơng có nhiều tên Bất thường thêm bộ: Nếu phi công tuyển chưa lái máy bay cả, thêm giá trị phi cơng để theo dõi nhà quản lí khơng biết phải đưa giá trị vào thuộc tính máy bay ngày, khởi hành Bất thường xố : Nếu phi cơng lí mà lái máy bay định quan hệ có lưu trữ DL phi cơng Khi muốn xố DL chuyến bay làm thông tin phi công Qua vấn đề nảy sinh thiết kế CSDL cần tìm thay tốt mà nội dung nghiên cứu đề tài cho phép giải đáp cho vấn đề B.Nội dung I.Lược đồ quan hệ: 1.Định nghĩa: Lược đồ quan hệ a cặp < u, F >, u= { A1,A2,……,An} tập thuộc tính, F tập phụ thuộc hàm u Ví dụ: a= với u= ABCD, F= { AB C, BD AC, C D} Quan hệ R gọi quan hệ có lược đồ a tập thuộc tính R u thoả tập phụ thuộc hàm F 2.Phép tách lược đồ quan hệ: đồ quan hệ R lược đồ{ R1, R2,…,Rn}, Ri ∩ Phép tách lược đồ quan hệ R={A1,A2,… ,An} việc thay lược R, i=1,… ,k R=R1 U R2 U… U Rk Ở khơng địi hói lược đồ Ri phải phân biệt Mục tiêu phéo tách chủ yếu loại bỏ bất thường DL gây nêu 3.Chuẩn hoá lược đồ quan hệ: Do việc cập nhập DL gây nên bất thường quan hệ cần thiết phải biến đổi thành dạng phù hợp Q trình gọi q trình chuẩn hố, quan hệ chuẩn hố miền thuộc tính chứa giá trị nguyên tố tức phân nhỏ Quan hệ có chứa miền giá trị không nguyên tố gọi quan hệ không chuẩn hố Một quan hệ chuẩn hố thành nhiều quan hệ chuẩn hóa khác không làm thông tin II.Phụ thuộc hàm 1.Khái niệm vai trò phụ thuộc hàm xây dựng CSDL: 1.1 Khái niệm phụ thuộc hàm: Phụ thuộc hàm (functional dependency) công cụ dùng để biểu diễn cách hình thức ràng buộc tồn vẹn (vắn tắt: ràng buộc) Phương pháp biểu diễn có nhiều ưu điểm, công cụ quan trọng, gắn chặt với lý thuyết thiết kế sở liệu _ Tiếp tục trình sơ đồ dạng chuẩn Boye_Codd dây dựng phép tách khơng mát thơng tin chuẩn hố R dạng chuẩn Boye_Codd 16 III Phụ thuộc đa trị Khái niệm vai trò phụ thuộc đa trị xây dựng CSDL Khái niệm phụ thuộc đa trị Phần trước người nghiên cứu xem xét loại DL tập thuộc tính sơ đồ quan hệ phụ thuộc hàm sử dụng phụ thuộc hàm để chuẩn hoá lược đồ quan hệ dạng chuẩn ba dạng chuẩn Boye_Codd Tuy nhiên, thực tế phụ thuộc hàm loại phụ thuộc xuất quan hệ mà cịn có phụ thuộc khác nguyên nhân gây nên dư thừa liệu vấn đề không quán liệu Như máy bay xác định ngày khởi hành mà nhiều ngày khởi hành khác Mối quan hệ gọi phụ thuộc đa trị Có thể hình thức hố phụ thuộc đa trị qua định nghĩa sau: Gọi R lược đồ quan hệ, X Y hai tập R, Z= R-XY Quan hệ r(R) thoả phụ thuộc đa trị X Y với hai t1Є r, t2 Є r với t1[X] =t2[X] tồn t3 Є r cho t3[X] =t1[X], t3[Y]= t1[Y] t3[Z] =t2[Z] Do tính chất đối xứng t1 t2 dễ dàng thấy r tồn t4 mà t4[X] = t1[X], t4[Y] = t2[Y] t4[Z]= t1[Z] Từ định nghĩa phụ thuộc đa trị suy ra: _Nếu X Y thoả quan hệ r X Y thoả r, _ Bổ đề: với tập thuộc tính X, Y U cho X, Y Y thoả quan hệ r(U) X _ Định lí : Cho r quan hệ lược đồ R(U) , X, Y Quan hệ r thoả phụ thuộc đa trị X U, phụ thuôc đa Y – X thoả r(U) ∩ trị X ∩ thấy phụ thuộc hàm trường hợp đặc biệt phụ thuộc đa trị U Z = U-XY Y r tách không mát thông tin thành hai quan hệ lược đồ tương ứng R1 = R[XY] R2= R[XZ] Vai trò phụ thuộc đa trị xây dựng CSDL Cũng giống phụ thuộc hàm, phụ thuộc đa trị cần phân tích nghiên cứu để từ lập trình viên thiết kế CSDL tối ưu tránh dư thừa hay bất thường DL Nhằm phục vụ tốt đáp ứng đòi hỏi yêu cầu người sử dụng Chính mà người phân tích thiết kế khơng coi nhẹ vai trị phụ 17 thuộc đa trị nguyên nhân nảy sinh vấn đề nêu phần trước Các vấn đề liên quan phụ thuộc đa trị xây dựng CSDL Hệ tiên đề phụ thuộc hàm phụ thuộc đa trị: U Kí hiệu XY =X U Y A3: Bắc cầu phụ thuộc hàm : Nếu X Y, Z Y, Y A4: Luật bù phụ thuộc đa trị: Nếu X Y U XZ Z X YZ Z Y X A5: Tăng trưởng phụ thuộc đa trị : Nếu X X ∩ A2: Tăng trưởng phụ thuộc hàm: Nếu X U X U \ XY Y, V W ∩ X ∩ A1: phản xạ phụ thuộc hàm : NếuY ∩ X, Y, Z, W ∩ Gọi R(U) lược đồ quan hệ với U={A1,A2,……,An} tập thuộc tính VY A6: Bắc cầu phụ thuộc đa trị: Y, Y Z X A7: Nếu X Y X A8: Nếu X Y, W Z \ Y Y Z với Z ∩ Nếu X Y W ∩Y=O X Z Các luật suy diễn bổ sung phụ thuộc đa trị _ Luật hợp: Nếu X Y, X _ Luật tựa bắc cầu: Nếu X Z X Y,WY _ Luật tựa bắc cầu hỗn hợp : Nếu X _ Luật tách: Nếu X Y,X Z X YZ Z WX Y, XY Z X Y ∩ Z,X Z\WY Z\Y Y\Z,X Z\Y 2.3 Bao đóng tập phụ thuộc hàm phụ thuộc đa trị Cho tập phụ thuộc hàm phụ thuộc đa trị D Muốn tìm tập D* bao đóng D tập tất phụ thuộc hàm phụ thuộc đa trị suy diễn logic từ D Có thể tính D* xuất phát từ D áp dụng hệ tiên đề A1 – A8 không phụ thuộc suy diễn Để kiểm tra phụ thuộc đa trị X Y hay sai cần xác định sở phụ thuộc X D xem xét liệu Y\X hợp vài tập hay không? Để kiểm tra liệu phụ thuộc đa trị có thoả hay khơng xác định sở phụ thuộc X Y\X có phải hợp số tập hay khơng? Để tìm sở phụ thuộc X D cần tính sở phụ thuộc tập phụ thuộc đa trị M đủ Một định lí Beeri cho 18 biết cần tính tốn sở tập phụ thuộc đa trị M, M bao gồm: Tất phụ thuộc đa trị D Tập phụ thuộc đa trị X thuộc hàm X A1,…….,X An với phụ Y D với Y= A1A2….An Một định lí khác Beeri nêu cách xác định phụ thuộc hàm không tầm thường xác định X từ sở phụ thuộc X M Có thể X A với AЄ X khi: A tập có thuộc tính sở phụ thuộc X Tồn tập thuộc tính Y đó, Y khơng chứa A, A Є Z để Y Z D Hơn Beeri cịn đưa thuật tốn với độ phức tạp thời gian đa thức để tính tốn sở phụ thuộc X M: Vào : tập phụ thuộc đa trị M tập thuộc tính U tập thuộc tính X ∩ U Ra: Cơ sở phụ thuộc X M Phương pháp : mà W ∩ Đặt T tập tập Z U cho W Y M X Z Y \ X U \ XY T thiết lập tập tập rời nhau, có cặp Z1, Z2 khơng tách rời thay chúng Z1\Z2, Z2\Z1, Z1∩Z2 với điều kiện không ghi nhận tập rỗng Gọi S tập thu sau bước Tìm phụ thuộc có dạng V W M tập Y S cho Y có giao với W khơng giao với V thay Y Y∩W Y\W không thay đổi S Gọi S tập thu sau bước S sở phụ thuộc X 2.4 Phép tách không thông tin Cho sơ đồ R phép tách R thành R1, R2,…,Rk: 19 Xây dựng bảng với hàng, cột giá trị aj, bij thuật tốn phép tách khơng mát thông tin phụ thuộc hàm nêu Nếu có phụ thuộc hàm thao tác thuật tốn nêu, có phụ thuộc đa trị X Y có hàng t1, t2 bảng mà thoả mãn t1[X] =t2[X] thêm vào bảng hàng u với u[X] = t1[X], u[Y]=t1[Y], u[R \XY]=t2[R\XY] u chưa có bảng Lặp lại bước không tạo thêm hàng không thay đổi giá trị bảng nữa, quan sát thấy có hàng chứa tồn giá trị a phép tách khơng mát thơng tin, ngược lại phép tách khơng bảo tồn thơng tin Có định lí sau: Cho sơ đồ quan hệ R ρ=(R1,R2) phép tách R D tập phụ thuộc hàm phụ thuộc đa trị thuộc tính R Phép tách ρ khơng thơng tin R1 ∩ R2 R1 \ R2 2.5 Dạng chuẩn bốn Sự tổng quát hoá dạng chuẩn Boye_Codd áp dụng cho lược đồ quan hệ có phụ thuộc đa trị gọi dạng chuẩn thứ tư Cho lược đồ quan hệ R, D tập phụ thuộc áp dụng D R dạng chuẩn bốn có phụ thuộc đa trị X Y với Y tập rỗng Y không tập X, XY khơng chứa tất thuộc tính R X chứa khố R Chú ý E có phụ thuộc hàm dạng chuẩn bốn dạng chuẩn Boye_Codd X Y phải có nghĩa X Y Có thể xác định phép tách không mát thông tin tách sơ đồ R thành ρ =(R1, R2,…,Rk) lược đồ Ri có dạng chuẩn bốn sau: _ Đầu tiên gán cho ρ = (R), có lược đồ quan hệ S ρ không dạng chuẩn bốn D chiếu S tức tồn X Y, X không chứa khố S với Y khơng phải tập rỗng không tập X; XY không không chứa tất thuộc tính S Giả sử X Y rời X từ X Y \ X suy Y sử dụng tiên đề A1, A7 luật tách Thay S S1 = XY, S2 = S \ Y , hai lược đồ quan hệ có thuộc tính với S Do S1 ∩ S2 S1 \ S2, phép tách S thành S1 S2 không mát thông tin D chiếu 20 S Tiếp tục lược đồ dạng chuẩn bốn thu kết phép tách khơng mát thơng tin chuẩn hố thơng tin dạng chuẩn bốn _ Một chi tiết quan trọng tìm tập phụ thuộc hình chiếu D S hay tập phụ thuộc D* S Một định lí Aho, Beeri Ullman cho cách tính tập phụ thuộc sau: Với X Y Є D*, X Y Є D*, X S X ∩ Với X ∩ Tính D* Y ∩ S Є S S X Y ∩ S Є S Khơng có phụ thuộc khác S suy diễn mà D R Xét ví dụ lược đồ quan hệ DayHoc(MonHoc, GiangVien, DoiTuong), để đơn giản, kí hiệu MonHoc M, GiangVien G ĐoiTuong D Giả sử lược đồ quan hệ có tập phụ thuộc đa trị D = { M G, M D} dễ thấy sơ đồ MGD chưa dạng chuẩn bốn tồn phụ thuộc đa trị mà M khơng chứa khố MGD với G khác tập rỗng G tập M; MG không chứa tất thuộc tính lược đồ Do thay lược đồ hai lược đồ MG MD Xét lược đồ thứ hình chiếu D MG M G lược đồ thứ dạng chuẩn bốn Xét lược đồ thứ hai hình chiếu D MD M D lược đồ hai dạng chuẩn bốn Như phép tách MGD thành MG MD phép tách không mát thơng tin chuẩn hố DayHoc dạng chuẩn bốn Tóm lại sử dụng phụ thuộc đa trị dạng chuẩn hố bốn quan hệ thuộc tính đơn giản hố khơng cịn dư thừa liệu bất thường cập nhật 21 IV.Cài đặt số thuật tốn tìm khóa tìm phủ tối thiểu 1.Thuật tốn tìm khóa Chương trình: // TimKhoa.cpp : Defines the entry point for the console application // // thuattoantimkhoa.cpp : Defines the entry point for the console application // #include #include #include typedef struct node { char l[10]; char r[10]; }; /// luu mang sieu khoa typedef struct khoa { char s[50]; }; int cstapsk=0;//cho so tapsk int nhapvadocdl(char u[],node f[])//du lieu vao { int m; 22 printf("\nNhap tap U : "); gets(u); printf("\n u = %s",u); printf("\nNhap so phan tu cua F :"); scanf("%d",&m); for (int i=0;i