Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 127 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
127
Dung lượng
1,56 MB
Nội dung
TRƯỜNG ĐẠI HỌC PHAN THIẾT KHOA CÔNG NGHỆ THÔNG TIN CƠ SỞ DỮ LIỆU LƯU HÀNH NỘI BỘ MỤC LỤC CHƯƠNG I- CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU I- Cơ sở liệu I.1- Định nghĩa sở liệu I.2- Các tính chất sở liệu II- Hệ quản trị sở liệu II.1Định nghĩa hệ quản trị sở liệu II.2Các chức hệ quản trị sở liệu II.3Các đặc trưng giải pháp sở liệu 11 II.4Ví dụ sở liệu 13 III- Mơ hình sở liệu 15 III.1- Các loại mơ hình sở liệu 15 III.2- Lược đồ trạng thái sở liệu 17 IV- Con người hệ sở liệu 18 IV.1- Người quản trị hệ sở liệu (Database Administrator – DBA) 18 IV.2- Người thiết kế sở liệu (Database Designer) 18 IV.3- Những người sử dụng (End User) 18 IV.4- Người phân tích hệ thống lập trình ứng dụng 19 IV.5- Người thiết kế cài đặt hệ quản trị liệu 19 IV.6- Những người phát triển công cụ 19 IV.7- Các thao tác viên người bảo trì 19 V- Ngôn ngữ sở liệu giao diện 20 V.1Các ngôn ngữ hệ quản trị sở liệu 20 V.2Các loại giao diện hệ quản trị sở liệu 21 VI- Câu hỏi ôn tập 21 CHƯƠNG IIIII- MƠ HÌNH THỰC THỂ - LIÊN KẾT 23 Sử dụng mơ hình quan niệm bậc cao cho việc thiết kế sở liệu 23 Các thành phần mơ hình ER 25 II.1Thực thể thuộc tính 25 II.2Kiểu thực thể, tập thực thể, khóa tập giá trị 27 II.3Kiểu liên kết, tập liên kết thể 30 II.4Cấp liên kết, tên vai trò kiểu liên kết đệ quy 31 II.5Các ràng buộc kiểu liên kết 32 II.6Thuộc tính kiểu liên kết 33 II.7Các kiểu thực thể yếu 34 III- Ví dụ thiết kế mơ hình ER 35 III.1- Xác định kiểu thực thể, thuộc tính kiểu liên kết 35 IV- Mô hình thực thể liên kết mở rộng (mơ hình EER) 39 IV.1- Lớp cha, lớp thừa kế 39 IV.2- Chuyên biệt hóa, tổng quát hóa 40 IV.2.1- Chuyên biệt hóa 40 IV.2.2- Tổng quát hóa 42 IV.2.3- Phân cấp chuyên biệt lưới chuyên biệt 43 IV.2.4- Các ràng buộc đặc trung chuyên biệt hóa, tổng quát hóa 43 IV.3- Sơ đồ mơ hình EER 44 V- Tổng kết chương câu hỏi ôn tập 45 V.1Tổng kết chương 45 V.2Câu hỏi ôn tập 45 V.3Bài tập 46 CHƯƠNG III- MƠ HÌNH QUAN HỆ, CÁC RÀNG BUỘC QUAN HỆ VÀ ĐẠI SỐ QUAN HỆ 48 I- Các khái niệm mơ hình quan hệ 48 I.1- Miền, thuộc tính, quan hệ 48 I.2- Các đặc trưng quan hệ 50 I.2.1- Thứ tự quan hệ 50 I.2.2- Thứ tự giá trị bên 51 I.2.3- Các giá trị 51 I.2.4- Thể quan hệ 52 II- Các ràng buộc quan hệ, lược đồ sở liệu quan hệ 52 II.1Các ràng buộc miền 52 II.2Ràng buộc khoá ràng buộc giá trị không xác định (null) 53 II.3Cơ sở liệu quan hệ lược đồ sở liệu quan hệ 54 II.4Toàn vẹn thực thể, tồn vẹn tham chiếu khố ngồi 58 III- Các phép tốn mơ hình quan hệ 60 III.1- Các phép toán cập nhật 60 III.1.1- Phép chèn (Insert) 60 III.1.2- Phép xoá (Delete) 61 III.1.3- Phép sửa đổi (Update) 62 III.2- Các phép toán đại số quan hệ 62 III.2.1- Phép chọn (SELECT) 63 III.2.2- Phép chiếu (PROJECT) 65 III.2.3- Phép đặt lại tên (RENAME) 66 III.2.4- Các phép toán lý thuyết tập hợp 67 III.2.5- Phép nối (JOIN) 70 III.2.6- Tập hợp đầy đủ phép toán quan hệ 72 III.2.7- Phép chia 73 III.3- Các phép toán quan hệ bổ sung 74 III.3.1- Các hàm nhóm phép nhóm 74 III.3.2- Các phép tốn khép kín đệ quy 75 III.3.3- Các phép toán nối (outer join), hợp (outer union) 75 III.4- Một số ví dụ truy vấn đại số quan hệ 76 IV- Chuyển đổi mơ hình ER thành mơ hình quan hệ 77 IV.1- Các quy tắc chuyển đổi 77 IV.2- Chuyển đổi mơ hình cụ thể 81 V- Tổng kết chương câu hỏi ôn tập 81 V.1Tổng kết chương 81 V.2Câu hỏi ôn tập 82 V.3Bài tập 83 CHƯƠNG IV- PHỤ THUỘC HÀM VÀ CHUẨN HÓA CƠ SỞ DỮ LIỆU QUAN HỆ, CÁC THUẬT TOÁN THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ 86 I- Các nguyên tắc thiết kế lược đồ quan hệ 86 I.1- Ngữ nghĩa thuộc tính quan hệ 86 I.2- Thông tin dư thừa dị thường cập nhật 87 I.3- Các giá trị không xác định 89 I.4- Sinh giả 89 II- Các phụ thuộc hàm 90 II.1Định nghĩa phụ thuộc hàm 90 II.2Các quy tắc suy diễn phụ thuộc hàm 93 II.3Sự tương đương tập phụ thuộc hàm 97 II.4Các tập phụ thuộc hàm tối thiểu 98 III- Các dạng chuẩn dựa khóa 99 III.1- Nhập mơn chuẩn hố 99 III.2- Dạng chuẩn 101 III.3- Dạng chuẩn 102 III.4- Dạng chuẩn 104 III.5- Dạng chuẩn Boyce-Codd 104 IV- Các thuật toán thiết kế sở liệu quan hệ dạng chuẩn cao 106 IV.1- Định nghĩa tổng quát dạng chuẩn 107 IV.2- Các thuật toán thiết kế lược đồ sở liệu quan hệ 108 IV.2.1- Tách quan hệ tính khơng đầy đủ dạng chuẩn 108 IV.2.2- Phép tách bảo toàn phụ thuộc 109 IV.2.3- Phép tách kết nối không mát 111 IV.3- Các phụ thuộc hàm đa trị dạng chuẩn 118 IV.3.1- Định nghĩa phụ thuộc đa trị 118 IV.3.2- Các quy tắc suy diễn phụ thuộc hàm phụ thuộc đa trị 120 IV.3.3- Dạng chuẩn 121 IV.3.4- Tách có tính chất nối khơng mát thành quan hệ 4NF 121 IV.4- Các phụ thuộc nối dạng chuẩn 122 V- Tổng kết chương câu hỏi ôn tập 124 V.1Tổng kết chương 124 V.2Câu hỏi ôn tập 125 V.3Bài tập 126 Chương I- CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU Các sở liệu hệ sở liệu trở thành thành phần chủ yếu sống hàng ngày xã hội đại Trong vịng ngày người có nhiều hoạt động cần có giao tiếp với sở liệu như: đến ngân hàng để rút tiền gửi tiền, đăng ký chỗ máy bay khách sạn, truy cập vào thư viện tin học hố để tìm sách báo, đặt mua tạp chí nhà xuất bản… Tại ngân hàng, cửa hàng, người ta cập nhật tự động việc quản lý tiền bạc, hàng hoá Tất giao tiếp gọi ứng dụng sở liệu truyền thống Trong sở liệu truyền thống, hầu hết thông tin lưu giữ truy cập văn số Những năm gần đây, tiến kỹ thuật đưa đến ứng dụng sở liệu Các sở liệu đa phương tiện lưu trữ hình ảnh, phim tiếng nói Các hệ thống thơng tin địa lý lưu trữ phân tích đồ, liệu thời tiết ảnh vệ tinh Kho liệu hệ thống phân tích trực tuyến sử dụng nhiều công ty để lấy phân tích thơng tin có lợi từ sở liệu lớn nhằm đưa định Các kỹ thuật sở liệu động thời gian thực sử dụng việc kiểm tra tiến trình cơng nghiệp sản xuất Các kỹ thuật tìm kiếm sở liệu áp dụng cho World Wide Web để cung cấp việc tìm kiếm thơng tin cần thiết cho người sử dụng cách duyệt qua Internet Để hiểu sở kỹ thuật sở liệu phải sở kỹ thuật sở liệu truyền thống Mục đích giáo trình nghiên cứu sở kỹ thuật Trong chương định nghĩa sở liệu, hệ quản trị sở liệu, mơ hình sở liệu thuật ngữ khác I- Cơ sở liệu I.1- Định nghĩa sở liệu Cơ sở liệu kỹ thuật sở liệu có ảnh hưởng lớn đến việc sử dụng máy tính Có thể nói sở liệu đóng vai trị quan trọng lĩnh vực có sử dụng máy tính giáo dục, thương mại, kỹ nghệ, khoa học, thư viện,… Thuật ngữ sở liệu trở thành thuật ngữ phổ dụng Một sở liệu tập hợp liệu có liên quan với nhau, lưu trữ máy tính, có nhiều người sử dụng tổ chức theo mơ hình Dữ liệu kiện ghi lại có ý nghĩa Ví dụ, để quản lý việc học tập môi trường đại học, liệu thông tin sinh viên, môn học, điểm thi….Chúng ta tổ chức liệu thành bảng lưu giữ chúng vào sổ sách sử dụng phần mềm máy tính để lưu giữ chúng máy tính Ta có tập liệu có liên quan đến mang nhiều ý nghĩa, sở liệu I.2- Các tính chất sở liệu Một sở liệu có tính chất sau: Một sở liệu biểu thị khía cạnh giới thực hoạt động công ty, nhà trường, ngân hàng… Những thay đổi giới thực phải phản ánh cách trung thực vào sở liệu Những thông tin đưa vào sở liệu tạo thành không gian sở liệu “thế giới nhỏ” (miniworld) Một sở liệu tập hợp liệu liên kết với cách logic mang ý nghĩa cố hữu Một sở liệu khơng phải tập hợp tuỳ tiện Một sở liệu thiết kế phổ biến cho mục đích riêng Nó có nhóm người sử dụng có chủ định có số ứng dụng xác định phù hợp với mối quan tâm người sử dụng Nói cách khác, sở liệu có nguồn cung cấp liệu, mức độ tương tác với kiện giới thực nhóm người quan tâm tích cực đến nội dung Một sở liệu có cỡ tuỳ ý có độ phức tạp thay đổi Có sở liệu gồm vài trăm ghi (như sở liệu phục vụ việc quản lý lương quan nhỏ), có sở liệu có dung lượng lớn (như sở liệu phục vụ cho việc tính cước điện thoại, quản lý nhân phạm vi lớn) Các sở liệu phải tổ chức quản lý cho người sử dụng tìm kiếm liệu, cập nhật liệu lấy liệu cần thiết Một sở liệu tạo trì cách thủ cơng tin học hoá Một sở liệu tin học hố tạo trì bằng nhóm chương trình ứng dụng hệ quản trị sở liệu II- Hệ quản trị sở liệu II.1- Định nghĩa hệ quản trị sở liệu Một hệ quản trị sở liệu tập hợp chương trình giúp cho người sử dụng tạo ra, trì khai thác sở liệu Nó hệ thống phần mềm phổ dụng, làm dễ trình định nghĩa, xây dựng thao tác sở liệu cho ứng dụng khác Định nghĩa sở liệu bao gồm việc đặc tả kiểu liệu, cấu trúc ràng buộc cho liệu lưu trữ sở Xây dựng sở liệu trình lưu trữ liệu phương tiện lưu trữ hệ quản trị sở liệu kiểm soát Thao tác sở liệu bao gồm chức truy vấn sở liệu để lấy liệu cụ thể, cập nhật sở liệu để phản ánh thay đổi giới nhỏ tạo báo cáo từ liệu Các hệ quản trị sở liệu dùng để thể sở liệu tin học hố phổ dụng (là phần mềm đóng gói) chuyên dụng (là tập phần mềm tạo với mục đích riêng) Người ta gọi sở liệu hệ quản trị sở liệu thuật ngữ chung hệ sở liệu Môi trường hệ sở liệu mơ tả hình vẽ (hình I-1) II.2- Các chức hệ quản trị sở liệu Một hệ quản trị sở liệu có chức sau : Lưu trữ định nghĩa, mối liên kết liệu (gọi siêu liệu) vào từ điển liệu Các chương trình truy cập đến sở liệu làm việc thông qua hệ quản trị sở liệu Hệ quản trị sở liệu sử dụng liệu từ điển liệu để tìm kiếm cấu trúc thành phần liệu mối liên kết yêu cầu Mọi thay đổi tệp sở liệu tự động ghi lại vào từ điển liệu Như vậy, hệ quản trị sở liệu giải phóng người sử dụng khỏi việc lập trình cho mối liên kết phức tạp chương trình, việc sửa đổi chương trình truy cập đến tệp sở liệu bị sửa đổi Nói cách khác, hệ quản trị sở liệu loại bỏ phụ thuộc liệu cấu trúc khỏi hệ thống Người sử dụng / Người lập trình Chương trình ứng dụng / Truy vấn Phần mềm xử lý Truy vấn / Chương trình Phần mềm truy cập đến liệu lưu trữ Định nghĩa sở liệu (Siêu liệu ) Cơ sở liệu ình I-1 Mơi trường hệ sở liệu Tạo cấu trúc phức tạp theo yêu cầu để lưu trữ liệu Nó giúp người sử dụng làm nhiệm vụ khó khăn định nghĩa lập trình cho đặc trưng vật lý liệu Biến đổi liệu nhập vào để phù hợp với cấu trúc liệu điểm Như vậy, hệ quản trị sở liệu giúp người sử dụng phân biệt dạng logic dạng vật lý liệu Bằng việc trì độc lập liệu, hệ quản trị sở liệu chuyển yêu cầu logic thành lệnh định vị cách vật lý lấy liệu yêu cầu Điều có nghĩa hệ quản trị sở liệu tạo khuôn dạng 10 cho liệu lấy để làm cho phù hợp với mong muốn logic người sử dụng Tạo hệ thống bảo mật áp đặt tính bảo mật riêng tư sở liệu Tạo cấu trúc phức tạp cho phép nhiều người sử dụng truy cập đến liệu Cung cấp thủ tục lưu phục hồi liệu để đảm bảo an toàn toàn vẹn liệu Xúc tiến áp đặt quy tắc an toàn để loại bỏ vấn đề tồn vẹn liệu Điều cho phép ta làm tối thiểu dư thừa liệu làm tối đa tính quán liệu Cung cấp việc truy cập liệu thông qua ngôn ngữ truy vấn Một ngôn ngữ truy vấn ngôn ngữ phi thủ tục cho phép người sử dụng cần phải làm mà khơng cần phải làm Các hệ quản trị sở liệu cung cấp việc truy cập liệu cho người lập trình thơng qua ngơn ngữ thủ tục II.3- Các đặc trưng giải pháp sở liệu Trước khái niệm sở liệu đời, hệ thống tệp (file) phương pháp áp dụng việc quản lý Một tệp xem cặp hồ sơ lưu trữ thông tin liên quan đến cơng việc riêng biệt Ví dụ, quan, phận tài vụ có cặp hồ sơ liên quan đến lương nhân viên, phận tổ chức có cặp hồ sơ liên quan đến vấn đề nhân sự… Việc xử lý để lấy thông tin thống kê lương, q trình cơng tác… lúc đầu thực cách thủ công Dần dần, khối lượng thông tin ngày lớn, việc xử lý thông tin ngày phức tạp, người ta sử dụng máy tính vào việc quản lý Các cặp hồ sơ chuyển thành tệp máy tính việc xử lý thơng tin thực cách lập trình (trong ngơn ngữ lập trình hệ 3) Việc quản lý theo giải pháp hệ thống tệp có nhiều nhược điểm Thứ nhất, dư thừa thông tin: thông tin lưu trữ nhiều lần (chẳng hạn, danh sách nhân viên có mặt tệp lương có mặt tệp nhân sự) Điều gây việc lãng phí nhớ dễ gây sai sót cập nhật liệu, dễ sinh liệu không đắn Thứ hai, việc phụ thuộc chương 11 R1= (MãsốNV, TênNV) R2 = (MãsốDA, TênDA, ĐịađiểmDA) R3 = (MãsốNV, MãsốDA, Sốgiờ) F= {Mã sốNV→ TênNV, MãsốDA → {TênDA, ĐịađiểmDA}, {MãsốNV, MãsốDA} → Sốgiờ} MãsốNV TênNV Mã sốDA TênDA ĐịađiểmDA Sốgiờ R1 1 0 0 R2 0 1 R3 1 1 (Giá trị ban đầu ma trận S) MãsốNV TênNV Mã sốDA TênDA ĐịađiểmDA Sốgiờ R1 1 0 0 R2 0 1 R3 1 1 1 (Ma trận S sau áp dụng hai phụ thuộc hàm dòng cuối ko chứa toàn ký hiệu “a”) Ma trận chứa hàng gồm tồn ký hiệu Phép tách khơng mát Hình IV-1 Thuật tốn kiểm tra nối khơng mát Thuật toán 5.2 cho phép kiểm tra xem phép tách D cụ thể có tuân theo tính chất nối khơng mát hay khơng Câu hỏi liệu có thuật tốn tách lược đồ quan hệ vũ trụ R = {A1, A2, …, An} thành phép tách D = {R1, R2, …,Rm} cho Ri BCNF phép tách D có tính chất nối khơng mát F hay khơng? Câu trả lời có Trước trình bày thuật tốn, ta xem số tính chất phép tách nối khơng mát nói chung Tính chất 1: Một phép tách D = {R1,R2} R có tính chất nối khơng mát tập phụ thuộc hàm F R - Hoặc phụ thuộc hàm ((R1∩ R2 ) → (R1− R2)) F+ 114 - Hoặc phụ thuộc hàm ((R1∩ R2) → (R2 − R1)) F+ Với tính chất này, kiểm tra lại phép tách chuẩn hóa 4.3 thấy phép tách thỏa mãn tính chất nối khơng mát Tính chất 2: Nếu phép tách D = {R1, R2, …, Rm} R có tính chất nối khơng mát tập phụ thuộc hàm F R phép tách D1 = {Q1, Q2, …,Qk} Ri có tính chất nối khơng mát phép chiếu F Ri phép tách D2 = { R1, R2,…, Ri-1, Q1, Q2,…,Qk, Ri+1,…, Rm} R có tính chất nối khơng mát F Tính chất nói phép tách D có tính chất nối khơng mát tập F tiếp tục tách quan hệ Ri D thành phép tách khác D1 (l = 1,2, k) có tính chất nối khơng mát πRi(F) việc thay Ri D D1 (l = 1,2, k) tạo phép tách có tính chất nối khơng mát F Thuật toán 5.3 sau sử dụng hai tính chất để tạo phép tách D = {R1, R2, …, Rm} quan hệ vũ trụ R dựa tập phụ thuộc hàm F cho Ri BCNF Thuật toán 5.3: Tách quan hệ thành quan hệ BCNF với tính chất nối khơng mát Input: Một quan hệ vũ trụ R tập hợp phụ thuộc hàm F thuộc tính R Đặt D := {R} ; Khi có lược đồ quan hệ Q D BCNF, thực vòng lặp: Với lược đồ quan hệ Q D khơng BCNF tìm phụ thuộc hàm X→ Y Q vi phạm BCNF thay Q D hai lược đồ quan hệ (Q-Y) (X∪Y) Quá trình lặp dừng khơng cịn quan hệ D vi phạm BCNF Mỗi lần vào vịng lặp thuật tốn 5.3, tách quan hệ Q BCNF thành hai lược đồ quan hệ Theo tính chất 2, phép tách D có tính chất nối khơng mát Kết thúc thuật tốn, tất quan hệ D BCNF 115 Trong bước thuật toán 5.3, cần xác định xem lược đồ quan hệ Q có BCNF hay khơng Một phương pháp để làm điều kiểm tra Với phụ thuộc hàm X → Y Q, ta tính X+ Nếu X+ khơng chứa tất thuộc tính Q X → Y vi phạm BCNF X khơng phải siêu khóa Một kỹ thuật dựa quan sát lược đồ quan hệ Q vi phạm BCNF có tồn cặp thuộc tính A,B Q cho {Q – {A,B}} → A Bằng việc tính bao đóng {Q – {A,B}}+ cho cặp thuộc tính {A,B} Q kiểm tra xem bao đóng có chứa A (hoặc B) hay khơng, xác định Q có BCNF hay khơng Ví dụ áp dụng: Xét lược đồ quan hệ R = { A, B, C, D, E, F) Với phụ thuộc hàm: A → BCDEF, BC → ADEF, B→ F, D→ E, D→ B Lược đồ quan hệ có hai khóa dự tuyển A BC Ta có B → F vi phạm BCNF B khơng phải siêu khóa, R tách thành: R1(B,F) với phụ thuộc hàm B→ F R2(A,B,C,D,E) với phụ thuộc hàm A→SCDE, BC→ADF, D→E, D→B Do D→ E vi phạm BCNF ( D thuộc tính khơng khóa ), R2 tách thành: R21(D,E) với phụ thuộc hàm D → E R22(ABCD) với phụ thuộc hàm A → BCD, BC→ AD, D→ B Do D B vi phạm BCNF (Dkhơng phải thuộc tính khóa), R22 tách thành: R221(D,B) R222(A,B,D) với phụ thuộc hàm A → BD (phụ thuộc hàm BC → AD bị mất) Tóm lại, ta có phép tách D = {R1, R21, R221, R222} Phép tách có tính chất nối khơng thơng tin khơng bảo tồn phụ thuộc 116 Nếu muốn có phép tách có tính chất nối khơng mát bảo tồn phụ thuộc ta phải hài lòng với lược đồ quan hệ dạng 3NF Thuật toán sau cải tiến thuật toán 5.1, tạo phép tách thỏa mãn : - Bảo tồn phụ thuộc - Có tính chất nối không mát - Mỗi lược đồ quan hệ kết dạng 3NF Thuật toán 5.4: Thuật tốn tổng hợp quan hệ với tính chất bảo tồn phụ thuộc nối không mát Input: Một quan hệ vũ trụ R tập phụ thuộc hàm F thuộc tính R 1) Tìm phủ tối thiểu G cho F 2) Với vế trái X phụ thuộc hàm xuất G tạo lược đồ quan hệ D với thuộc tính {X∪{A1}∪{A2}∪…∪ {Ak}}, X →A1, X→A2,…, X→ Ak phụ thuộc hàm G với X vế trái (X khóa quan hệ này) 3) Nếu khơng có lược đồ quan hệ D chứa khóa R tạo thêm lược đồ quan hệ D chứa thuộc tính tạo nên khóa R Bước thuật tốn 5.4 địi hỏi phải xác định khóa K R Để xác định khóa K R, ta sử dụng thuật tốn sau Thuật tốn xác định khóa: Tìm khóa K R dựa tập F phụ thuộc hàm 1) Đặt K := R; 2) Với thuộc tính A K {tính (K-A)+ F; Nếu (K-A)+ chứa tất thuộc tính R đặt K := K-{A}}; *Chú ý: Chúng ta có nhận xét sau: Nếu quan hệ có khóa thuộc tính khóa quan hệ phải tập tập hợp thuộc tính vế phải phụ thuộc hàm F Vì vậy, để tìm khóa nhanh hơn, trước tiên tính RF hợp thuộc tính vế trái phụ thuộc hàm F, sau 117 tính bao đóng tất tập RF Nếu bao đóng tập chứa tất thuộc tính R tập siêu khóa Để kiểm tra khóa ta thực bước 2) thuật tốn Khơng phải lúc có khả tìm phép tách thành lược đồ quan hệ bảo toàn phụ thuộc lược đồ phép tách BCNF Các lược đồ quan hệ phép tách theo thuật toán thường 3NF Để có lược đồ BCNF, kiểm tra lược đồ quan hệ 3NF phép tách cách riêng rẽ để xem có thỏa mãn BCNF khơng Nếu có lược đồ quan hệ Ri khơng BCNF ta tách tiếp để nguyên 3NF IV.3- Các phụ thuộc hàm đa trị dạng chuẩn Trong phần thảo luận khái niệm phụ thuộc hàm đa trị định nghĩa dạng chuẩn Các phụ thuộc đa trị hệ dạng chuẩn không cho phép thuộc tính có tập giá trị (nghĩa thuộc tính đa trị) Nếu có hai nhiều thuộc tính độc lập đa trị lược đồ quan hệ phải lặp lại giá trị thuộc tính với giá trị thuộc tính khác để giữ cho trạng thái quan hệ qn trì tính độc lập thuộc tính Ràng buộc phụ thuộc đa trị IV.3.1- Định nghĩa phụ thuộc đa trị Giả thiết có lược đồ quan hệ R, X Y hai tập R Một phụ thuộc đa trị (MVD), ký hiệu X →→ Y , ràng buộc sau trạng thái quan hệ R: Nếu hai t1 t2 tồn R cho t1[X] = t2[X] hai t3 t4 tồn R với tính chất sau: t3[X] = t4[X] = t1[X] = t2[X] t3[Y] = t1[Y] t4[Y] = t2[Y] t3[Z] = t2[Z] t4[Z] = t1[Z] với Z = (R- (X ∪ Y)) Khi X→→Y thỏa mãn, ta nói X đa xác định Y Bởi tính đối xứng định nghĩa, X →→ Y thỏa mãn R, X→→Z thỏa mãn R Như X→→Y kéo theo X→→Z đơi viết X→→Y|Z Định nghĩa hình thức rằng, cho trước giá trị cụ thể X, tập hợp giá trị Y xác định giá trị X xác định hoàn tồn 118 X khơng phụ thuộc vào giá trị thuộc tính cịn lại Z R Như vậy, hai tồn có giá trị khác Y giá trị X giá trị Y phải lặp lại riêng rẽ với giá trị khác Z có mặt với giá trị X Điều tương ứng cách khơng hình thức với Y thuộc tính đa trị thực thể biểu diễn R Ví dụ phụ thuộc đa trị: NHÂNVIÊN TênNV TênDA TênconNV Nam DA01 Lan Nam DA02 Hoa Nam DA01 Hoa Nam DA02 Lan Trong bảng có hai phụ thuộc đa trị là: TênNV→→TênDA, TênNV→→TênconNV Một MVD X→→Y gọi phụ thuộc đa trị tầm thường nếu: a) Y tập X b) X ∪ Y = R Một MVD không thỏa mãn a) b) gọi MVD khơng tầm thường Nếu có phụ thuộc đa trị không tầm thường quan hệ, phải lặp giá trị cách dư thừa Trong quan hệ NHÂNVIÊN ví dụ trên, giá trị ‘DA01’, ‘DA02’ TênDA lặp lại với giá trị TênconNV (một cách đối xứng, giá trị ‘Lan’, ‘Hoa’ lặp lại với giá trị TênDA) Rõ ràng ta khơng mong muốn có dư thừa Tuy nhiên, lược đồ quan hệ BCNF khơng có phụ thuộc hàm thỏa mãn quan hệ Vì vậy, phải định nghĩa dạng chuẩn thứ tư mạnh BCNF ngăn cấm lược đồ quan hệ quan hệ NHÂNVIÊN 119 IV.3.2- Các quy tắc suy diễn phụ thuộc hàm phụ thuộc đa trị Các quy tắc từ Qt1 đến Qt8 sau tạo nên tập hợp đắn đầy đủ cho việc suy diễn phụ thuộc hàm phụ thuộc đa trị từ tập phụ thuộc cho trước Giả thiết tất thuộc tính chứa lược đồ quan hệ “vũ trụ” R = {A1, A2, …,An} X, Y, Z, W tập R Qt1) (quy tắc phản xạ cho FD): Nếu X ⊇ Y X → Y Qt2) (quy tắc tăng cho FD): {X →Y} |= XZ → YZ Qt3) (quy tắc bắc cầu cho FD): { X → Y, Y→ Z } |= X→ Z Qt4) (quy tắc bù cho MVD): {X →→Y } |= {X→→ (R-(X∪ Y))} Qt5) (quy tắc tăng cho MVD): Nếu X →→Y W ⊇ Z WX →→ YZ Qt6) (quy tắc bắc cầu cho MVD): {X→→ Y, Y→→ Z } |= X→→ (Z – Y) Qt7) (quy tắc tái tạo cho FD MVD): {X →Y} |= X→→ Y Qt8) (quy tắc liên hợp cho FD MVD): Nếu X →→ Y có tồn W với tính chất a) W ∩Y = ∅, b) W →Z c) Y ⊇ Z X → Z Qt1 đến Qt3 quy tắc suy diễn Amstrong phụ thuộc hàm Qt4 đến Qt6 quy tắc suy diễn liên quan đến phụ thuộc đa trị Qt7 Qt8 liên kết phụ thuộc hàm phụ thuộc đa trị Đặc biệt, Qt7 nói phụ thuộc hàm trường hợp đặc biệt phụ thuộc đa trị Điều có nghĩa phụ thuộc hàm phụ thuộc đa trị thỏa mãn định nghĩa hình thức phụ thuộc đa trị Về bản, phụ thuộc hàm X →Y phụ thuộc đa trị X →→ Y với hạn chế phụ có nhiều giá trị Y kết hợp với giá trị X Cho trước tập hợp phụ thuộc hàm phụ thuộc đa trị R = {A1, A2, …, An}, sử dụng quy tắc từ Qt1 đến Qt8 để suy tập hợp đầy đủ phụ thuộc (hàm đa trị) F+ trạng thái quan hệ r R thỏa mãn F Chúng ta lại gọi F+ bao đóng F 120 IV.3.3- Dạng chuẩn Định nghĩa: Một lược đồ quan hệ R dạng chuẩn (4NF) tập hợp phụ thuộc F (gồm phụ thuộc hàm phụ thuộc đa trị) với phụ thuộc đa trị không tầm thường X→→Y F+ , X siêu khóa R Như vậy, lược đồ quan hệ vi phạm 4NF chứa phụ thuộc hàm đa trị khơng mong muốn Ví dụ, lược đồ quan hệ NHÂNVIÊN ví dụ vi phạm 4NF phụ thuộc hàm đa trị TênNV→→TênDA TênNV→→ Têncon, TênNV khơng phải siêu khóa Giả sử tách bảng NHÂNVIÊN thành hai bảng sau: NV_DA TênNV TênDA Nam Nam NV_CON TênNV TênconNV DA01 Nam Lan DA02 Nam Hoa Hai bảng 4NF phụ thuộc đa trị TênNV→→TênDA TênNV→→TênconNV phụ thuộc đa trị tầm thường Trong hai bảng khơng có phụ thuộc đa trị khơng tầm thường khơng có phụ thuộc hàm IV.3.4- Tách có tính chất nối khơng mát thành quan hệ 4NF Khi tách lược đồ quan hệ R thành R1 = (X∪Y) R2 = (R-Y) dựa phụ thuộc hàm đa trị X→→Y R, phép tách có tính chất nối khơng mát Đó điều kiện cần đủ cho phép tách lược đồ thành hai lược đồ có tính chất nối khơng mát Ta có tính chất sau: Tính chất 1’: Các lược đồ quan hệ R1 R2 tạo thành phép tách có tính chất nối khơng mát R (R1∩ R2)→→ (R1 –R2) (hoặc (R1∩R2) →→(R1 –R2)) Áp dụng tính chất có thuật tốn tạo phép tách có tính chất nối khơng mát thành lược đồ quan hệ dạng 4NF Thuật toán 5.5: Tách quan hệ thành quan hệ 4NF với tính chất nối khơng mát Input: Một quan hệ vũ trụ R tập phụ thuộc hàm phụ thuộc đa trị F 121 Đặt D := {R}; Khi có lược đồ quan hệ Q D không 4NF, thực hiện: {Chọn lược đồ quan hệ Q D không 4NF; Tìm phụ thuộc đa trị khơng tầm thường X→→Y Q vi phạm 4NF; Thay Q D hai lược đồ quan hệ (Q – Y) (X ∪ Y)}; Ví dụ áp dụng: Xét lược đồ NHÂNVIÊN(TênNV, TênDA, TênconNV) Ta có phụ thuộc hàm đa trị TênNV→→TênDA TênNV khơng phải siêu khóa, vi phạm 4NF Ta tách thành NV_DA(TênNV, TênDA), NV_CON(TênNV, TênconNV) IV.4- Các phụ thuộc nối dạng chuẩn Như thấy, tính chất tính chất 1’ cho điều kiện để lược đồ quan hệ R tách thành hai lược đồ quan hệ R1 R2 phép tách có tính chất nối khơng mát Tuy nhiên, số trường hợp, khơng có phép tách có tính chất nối khơng mát R thành hai lược đồ quan hệ có phép tách có tính chất nối khơng mát thành nhiều hai quan hệ Hơn nữa, khơng có phụ thuộc hàm R chuẩn BCNF khơng có phụ thuộc đa trị có R vi phạm 4NF Khi phải sử dụng đến phụ thuộc khác gọi phụ thuộc nối có phụ thuộc nối thực phép tách đa chiều thành dạng chuẩn (5NF) Một phụ thuộc nối (JD), ký hiệu JD(R1, R2, …, Rn) lược đồ quan hệ R ràng buộc trạng thái r R Ràng buộc tuyên bố trạng thái hợp pháp r R phải có phép tách có tính chất nối khơng mát thành R1, R2, …, Rn Điều nghĩa là: *( πR1(r), πR2(r), …, πRn(r)) = r Một phụ thuộc nối JD(R1, R2, …, Rn) phụ thuộc nối tầm thường lược đồ quan hệ Ri JD(R1, R2, …, Rn) R Một lược đồ quan hệ R dạng chuẩn (5NF) (hoặc dạng chuẩn nối chiếu PJNF – Project-Join normal form) tấp F phụ thuộc hàm, phụ thuộc 122 đa trị phụ thuộc nối với phụ thuộc nối không tầm thường JD(R1, R2, …, Rn) F+, Ri siêu khóa R Ví dụ: Xét quan hệ CUNGCẤP gồm tồn thuộc tính khóa CUNGCẤP Tênnhàcungcấp Tênhàng TênDựán Ncc1 Bulong Dựán1 Ncc1 Đaiốc Dựán2 Ncc2 Bulong Dựán2 Ncc3 Đaiốc Dựán3 Ncc2 Đinh Dựán1 Ncc2 Bulong Dựán1 Ncc1 Bulong Dựán2 Giả thiết ràng buộc phụ thêm sau đúng: Khi nhà cung cấp S cung cấp hàng P VÀ dự án J sử dụng hàng P VÀ nhà cung cấp S cung cấp hàng cho dự án J THÌ nhà cung cấp S cung cấp hàng P cho dự án J Ràng buộc phụ thuộc nối JD(R1,R2,R3) ba phép chiếu R1(Tênnhàcungcấp,Tênhàng), R2(Tênnhàcungcấp,Têndựán),R3(Tênhàng,TênDựán) quan hệ CUNGCẤP Quan hệ CUNGCẤP tách thành ba quan hệ R1, R2, R3 dạng chuẩn Chú ý ta áp dụng phép nối tự nhiên cho đôi quan hệ sinh giả, áp dụng phép nối tự nhiên cho ba quan hệ khơng sinh giả R2 R1 R3 Tênnhàcungcấp Tênhàng Tênnhàcungcấp Têndựán Tênhàng Têndựán Ncc1 Bulong Ncc1 Dựán1 Bulong Dựán1 Ncc1 Đaiốc Ncc1 Dựán2 Đaiốc Dựán2 Ncc2 Bulong Ncc2 Dựán2 Bulong Dựán2 Ncc3 Đaiốc Ncc3 Dựán3 Đaiốc Dựán3 Ncc2 Đinh Ncc2 Dựán1 Đinh Dựán1 123 Việc phát phụ thuộc nối sở liệu thực tế với hàng trăm thuộc tính điều khó khăn Vì vậy, thực tiễn thiết kế sở liệu thường không ý đến Nói chung, thực tế thiết kế sở liệu, người ta chuẩn hóa bảng đến 3NF, BCNF đủ V- Tổng kết chương câu hỏi ôn tập V.1- Tổng kết chương Trong chương nói đến nguy hiểm xảy việc thiết kế sở liệu, xác định cách khơng hình thức số chuẩn mực để lược đồ quan hệ “tốt” hay “tồi” đưa số nguyên tắc khơng hình thức cho thiết kế tốt Sau trình bày vài khái niệm cho phép ta thiết kế quan hệ theo cách trên-xuống cách phân tích quan hệ cách riêng rẽ Chúng ta định nghĩa trình thiết kế phân tích tách cách giới thiệu q trình chuẩn hóa Những vấn đề bất thường cập nhật xảy có dư thừa xảy quan hệ đề cập đến Các chuẩn mực khơng hình thức lược đồ quan hệ tốt bao gồm ngữ nghĩa thuộc tính rõ ràng đơn giản, giá trị null mở rộng quan hệ Một phép tách tốt phải tránh việc sinh giả thực phép nối Chúng ta định nghĩa khái niệm phụ thuộc hàm thảo luận số tính chất Các phụ thuộc hàm nguồn thông tin ngữ nghĩa thuộc tính lược đồ quan hệ Chúng ta cách suy diễn phụ thuộc phụ thêm dựa tập phụ thuộc hàm cho trước tập quy tắc suy diễn Chúng ta định nghĩa khái niệm bao đóng phủ tối thiểu tập phụ thuộc hàm cung cấp thuật tốn tính phủ tối thiểu Ta làm để kiểm tra xem hai tập phụ thuộc hàm có tương đương hay khơng Tiếp theo, mơ tả q trình chuẩn hóa để đạt đến thiết kế tốt cách kiểm tra quan hệ kiểu phụ thuộc hàm không mong muốn Chúng ta cung cấp cách chuẩn hóa liên tiếp dựa khóa định nghĩa trước quan hệ sau giảm nhẹ đòi hỏi đưa định nghĩa tổng qt dạng chuẩn có tính đến tất khóa dự tuyển quan hệ 124 Trong phần IV trình bày nhiều thuật tốn chuẩn hóa Đó thuật tốn tổng hợp quan hệ tạo quan hệ 3NF từ lược đồ quan hệ vũ trụ dựa tập phụ thuộc hàm người thiết kế sở liệu xác định Các thuật toán tạo quan hệ BCNF (hoặc 4NF) cách tách không mát liên tiếp quan hệ khơng chuẩn hóa thành hai quan hệ thành phần thời điểm Chúng ta thảo luận hai tính chất quan trọng phép tách: tính chất nối khơng mát (hoặc khơng phụ thêm) tính chất bảo tồn phụ thuộc Một thuật tốn kiểm tra phép tách khơng mát thuật tốn kiểm tra tính khơng mát phép tách thành hai quan hệ cúng trình bày Chúng ta thấy việc tổng hợp quan hệ dạng 3NF đảm bảo hai tính chất có khả cịn việc tổng hợp quan hệ BCNF có khả đảm bảo tính khơng mát, khơng thể đảm bảo tính bảo tồn phụ thuộc Cuối cùng, nghiên cứu loại phụ thuộc khác: phụ thuộc đa trị phụ thuộc nối, đưa định nghĩa dạng chuẩn 4, dạng chuẩn thuật toán tách quan hệ vi phạm thành quan hệ 4NF, 5NF Việc phát phụ thuộc nối khó khăn nên thiết kế thực tiễn người ta thường bỏ qua V.2- Câu hỏi ơn tập 1) Hãy giải thích ngữ nghĩa thuộc tính độ đo khơng hình thức tính tốt lược đồ quan hệ 2) Hãy thảo luận bất thường chèn, xóa sửa đổi Vì chúng xem không tốt? Hãy minh họa ví dụ 3) Hãy trình bày vấn đề giả làm để ngăn ngừa chúng? 4) Trình bày nguyên tắc việc thiết kế lược đồ quan hệ Hãy minh họa việc vi phạm nguyên tắc có hại nào? 5) Phụ thuộc hàm gì? Ai người phụ thuộc hàm thuộc tính lược đồ quan hệ? 6) Vì suy phụ thuộc hàm từ trạng thái quan hệ cụ thể? 7) Vì quy tắc suy diễn Amstrong (Qt1 đến Qt3) quan trọng? 8) Tính đầy đủ tính đắn quy tắc suy diễn Amstrong gì? 9) Bao đóng tập phụ thuộc hàm gì? 125 10) Khi hai tập phụ thuộc hàm tương đương? Làm để kiểm tra tính tương đương chúng? 11) Tập tối thiểu phụ thuộc hàm gì? Có phải tập tối thiểu phụ thuộc hàm có tập tối thiểu tương đương hay khơng? 12) Thuật ngữ quan hệ khơng chuẩn hóa ám gì? 13) Định nghĩa dạng chuẩn 1NF, 2NF, 3NF, BCNF dựa khóa dạng chuẩn dạng tổng quát Sự khác hai định nghĩa gì? 14) Phụ thuộc hàm cần tránh quan hệ 3NF? 15) Định nghĩa dạng chuẩn Boyce-Codd Nó khác với 3NF? Vì xem mạnh 3NF? 16) Điều kiện bảo tồn thuộc tính phép tách gì? 17) Vì dạng chuẩn tự chưa đủ điều kiện cho thiết kế lược đồ tốt? 18) Tính chất bảo tồn phụ thuộc phép tách gì? Vì quan trọng? 19) Vì đảm bảo phép tách lược đồ quan hệ khơng BCNF thành BCNF bảo tồn phụ thuộc? Hãy cho phản ví dụ 20) Tính chất nối không mát (không phụ thêm) phép tách gì? Vì quan trọng? 21) Giữa tính chất bảo tồn phụ thuộc nối không mát thiết phải thỏa mãn? Vì sao? Phụ thuộc hàm đa trị gì? Nó ràng buộc gì? Khi sinh ra? 22) Hãy minh họa trình tạo quan hệ dạng chuẩn 1? Làm để có dạng chuẩn cách đắn, tránh phụ thuộc đa trị? 23) Định nghĩa dạng chuẩn Nó có lợi gì? 24) Định nghĩa phụ thuộc nối dạng chuẩn V.3- Bài tập 1) Hãy kiểm tra quy tắc suy diễn phụ thuộc hàm sau hay sai: 126 a) {W →Y, X →Z} |= {WX →Y} b) {X →Y} Y ⊇Z |= {X →Z} c) {X →Y , X →W, WY →Z} |= {X →Z} d) {XY →Z, Y →W} |= {XW →Z} e) {X →Z, Y →Z} |= {X →Y} f) {X →Y, Z →W} |= {XZ →YW} g) {XY →Z , Z →X} |= {Z →Y} h) {X →Y, Y →Z} |= {X →YZ} i) {XY →Z, Z →W} |= {X →W} 2) Cho lược đồ quan hệ R(A,B,C,D,E,F,G,H,I,J) tập phụ thuộc hàm sau đây: F1 = {AB → C, A → DE, B → F, F → GH, D→ IJ} a) Khóa quan hệ gì? Hãy tách quan hệ thành 2NF, sau thành 3NF b) Làm lại câu a) với tập phụ thuộc hàm sau: G1= { AB → C, BD → EF, AD→ GH, A → I , H → J } 3) Xét quan hệ R(A,B,C,D,E) phụ thuộc hàm sau: AB →C, CD →E, DE → B AB có phải khóa dự tuyển quan hệ khơng? Vì sao? Hãy tìm khóa 4) Cho quan hệ sau: A B C BộID 10 b1 c1 #1 10 b2 c2 #2 11 b4 c1 #3 12 b3 c4 #4 13 b1 c1 #5 14 b3 c4 #6 127 Những phụ thuộc hàm sau đúng: A → B , B → C, C → B, B → A, C → A Nếu có phụ thuộc hàm sai, giải thích 128 ... Têngiáoviên 1011 101 20 01 Vân 10 12 101 20 02 Vân 1031 103 20 01 Hoàng 10 32 103 20 02 Hoàng 1 020 1 02 20 02 Lân 1040 104 20 02 Huy 13 ĐIỂM MãsốSV MãsốHP Điểm 17 1031 17 1 020 1031 1011 10 1 020 1040 BIẾT TRƯỚC... Địachỉ Lê Vân 451 520 2 12/ 09/84 Nữ Hà nội Hoàng Tùng 45168 02 21/03/84 Nam Bắc ninh Trương Định 4 620 503 15/05/85 Nam Hà nam Phạm An 46 122 03 16/04/85 Nam Nam định Đỗ Cung 4 521 4 02 20/01/84 Nam Nghệ... 60 III.1 .2- Phép xoá (Delete) 61 III.1.3- Phép sửa đổi (Update) 62 III .2- Các phép toán đại số quan hệ 62 III .2. 1- Phép chọn (SELECT) 63 III .2. 2- Phép chiếu