Bài giảng cơ sở dữ liệu

152 9 0
Bài giảng cơ sở dữ liệu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Để đáp ứng nhu cầu học tập của sinh viên chuyên ngành Điện tử viễn thông của Học viện Công nghệ Bưu chính Viễn thông, bài giảng “Cơ sở dữ liệu” được biên soạn theo chương trình đổi mới của sinh viên chuyên ngành Điện tử viễn thông, mục tiêu của bài giảng cung cấp cho sinh viên những kiến thức nền tảng về Cơ sở dữ liệu, kiến thức về các mức trừu tượng hóa Cơ sở dữ liệu, các mô hình Cơ sở dữ liệu, các ngôn ngữ biểu diễn và xử lý dữ liệu, lý thuyết về Cơ sở dữ liệu quan hệ, quy trình thiết kế Cơ sở dữ liệu. Nội dung bài giảng gồm được chia làm 4 chương: Chương 1: Đại cương về các hệ cơ sở dữ liệu Giới thiệu tổng quan về lý thuyết cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ sở dữ liệu, kiến trúc của một hệ quản trị CSDL, phân loại các hệ CSDL. Chương 2: Mô hình dữ liệu Trình bày tổng quan về các loại mô hình dữ liệu, đặc biệt đi sâu phân tích mô hình quan hệ thực thể ER (Entity Relationship) để mô hình hóa các hoạt động trong thế giới thực, nhìn thế giới thực như là một tập các đối tượng căn bản được gọi là các thực thể và các mối quan hệ ở giữa các đối tượng này. Nội dung chương 2 còn trình bày mô hình dữ liệu quan hệ, các quy tắc chuyển đổi cơ sở dữ liệu từ ER sang mô hình dữ liệu quan hệ, các phép toán trên CSDL quan hệ. Chương 3: Ngôn ngữ định nghĩa và thao tác dữ liệu đối với mô hình quan hệ Trình bày các ngôn ngữ truy vấn trên cơ sở dữ liệu. Nội dung chương phân tích chi tiết ngôn ngữ đại số quan hệ và ngôn ngữ truy vấn SQL. Chương 4: Lý thuyết thiết kế cơ sở dữ liệu quan hệ Trình bày các khái niệm liên quan đến phụ thuộc hàm, khóa, các thuật toán tìm phủ tối thiểu của tập phụ thuộc hàm, tìm khóa, phép tách và các dạng chuẩn hóa của lược đồ quan hệ. Mặc dù đã rất cố gắng trong quá trình biên soạn bài giảng, nhưng chắc chắn bài giảng sẽ còn nhiều thiếu sót và hạn chế. Rất mong nhận được sự đóng góp ý kiến quý báu của sinh viên và các bạn đọc để bài giảng ngày một hoàn thiện hơn.

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG Bài giảng Học phần: CƠ SỞ DỮ LIỆU Mã môn học: TEL 1343 ( Lưu hành nội ) Biên soạn TS Vũ Thị Thuý Hà TS Trần Hà Nguyên Hà Nội, 12/2022 MỤC LỤC MỤC LỤC DANH MỤC HÌNH .5 DANH MỤC BẢNG .8 LỜI MỞ ĐẦU .11 CHƯƠNG ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU 1.1 Tổng quan lý thuyết sở liệu 1.1.1 Giới thiệu chung 1.1.2 Cơ sở liệu hệ sở liệu 1.1.3 Hệ quản trị sở liệu ưu nhược điểm .13 1.1.4 Các ngôn ngữ hệ CSDL 19 1.2 Kiến trúc hệ quản trị CSDL 22 1.3 Phân loại hệ CSDL 24 1.3.1 Các hệ sở liệu tập trung 24 1.3.2 Các hệ sở liệu phân tán 25 1.4 Kết luận chương .27 CHƯƠNG MƠ HÌNH DỮ LIỆU .28 2.1 Tổng quan mô hình liệu 28 2.2 Mơ hình phân cấp 29 2.3 Mơ hình mạng 30 2.4 Mơ hình hướng đối tượng .32 2.5 Mơ hình thực thể kết hợp 33 2.5.1 Các bước trình thiết kế 33 2.5.2 Các khái niệm 35 2.5.3 Các bước xây dựng mơ hình ER .50 2.6 Mơ hình quan hệ 54 2.6.1 Các khái niệm 54 2.6.2 CSDL quan hệ cách tạo lập quan hệ 59 2.6.3 Ánh xạ từ mơ hình thực thể liên kết sang mơ hình quan hệ .61 2.6.4 Các phép toán CSDL quan hệ 68 2.7 So sánh đánh giá 70 2.8 Kết luận chương 71 CHƯƠNG 3.NGÔN NGỮ ĐỊNH NGHĨA VÀ THAO TÁC DỮ LIỆU ĐỐI VỚI MƠ HÌNH QUAN HỆ 72 3.1 Phân loại ngơn ngữ truy vấn 72 3.2 Ngôn ngữ đại số quan hệ .72 3.2.1 Các phép toán lý thuyết tập hợp 72 3.2.2 Các phép toán đại số quan hệ 75 3.2.3 Các phép toán quan hệ bổ sung 79 3.3 Ngôn ngữ truy vấn SQL 82 3.3.1 Giới thiệu chung SQL 82 3.3.2 Ngôn ngữ định nghĩa liệu (DDL) .83 3.3.3 Ngôn ngữ thao tác liệu (DDM) 90 3.3.4 Ngôn ngữ truy vấn liệu (DQL) 94 3.4 Kết luận chương 116 CHƯƠNG LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ 117 4.1 Các vấn đề CSDL 117 4.1.1 Ngữ nghĩa thuộc tính quan hệ 117 4.1.2 Thông tin dư thừa dị thường cập nhật .117 4.1.3 Các giá trị không xác định 119 4.2 Phụ thuộc hàm 119 4.2.1 Định nghĩa phụ thuộc hàm 120 4.2.2 Hệ tiên đề Amstrong .120 4.2.3 Bao đóng thuật tốn tìm bao đóng .121 4.2.4 Khóa thuật tốn tìm khóa .124 4.2.5 Các tập phụ thuộc hàm tối thiểu 128 4.3 Phép tách - kết nối 130 4.3.1 Khái niệm 130 4.3.2 Phép tách-kết nối tự nhiên .130 4.3.3 Phép tách - kết nối không mát thông tin 132 4.4 Chuẩn hóa lược đồ quan hệ 134 4.4.1 Dạng chuẩn 1NF chuẩn hóa 1NF 134 4.4.2 Dạng chuẩn 2NF chuẩn hóa 2NF 135 4.4.3 Dạng chuẩn 3NF chuẩn hóa 3NF 135 4.4.4 Dạng chuẩn BCNF chuẩn hóa BCNF 137 4.4.5 Chuẩn hoá qua phép tách không làm thông tin 137 4.5 Kết luận chương 4: .140 DANH MỤC HÌNH Hình 1.1: Tiếp cận tệp tin Hình 1.2: Tiếp cận CSDL Hình 1.3: Tính tự mô tả Hình 1.4: Sự độc lập chương trình liệu .10 Hình 1.5: Hỗ trợ khung nhìn liệu .11 Hình 1.6: Kiến trúc ba mức hệ CSDL .12 Hình 1.7: Ví dụ kiến trúc ba mức hệ CSDL 13 Hình 1.8: Phần mềm quản trị CSDL 14 Hình 1.9: Hệ sở liệu .15 Hình 1.10: Các thành phần hệ quản trị CSDL 22 Hình 1.11: Bộ quản lý lưu trữ 23 Hình 1.12: Bộ xử lý câu hỏi 23 Hình 1.13: Hệ sở liệu cá nhân .24 Hình 1.14: Hệ sở liệu trung tâm 25 Hình 1.15: Hệ CSDL khách-chủ 26 Hình 1.16: Cơ sở liệu phân tán 26 Hình 2.1: Lịch sử Mơ hình liệu 28 Hình 2.2: Mơ hình liệu phân cấp 29 Hình 2.3: Ví dụ mơ hình liệu mạng 30 Hình 2.4: Quá trình thiết kế cài đặt sở liệu .35 Hình 2.5: Sơ đồ ER: Thực thể thuộc tính 36 Hình 2.6: Liên kết ràng buộc 36 Hình 2.7: Lược đồ E-R (ERD) mơ tả tình .37 Hình 2.8: Lược đồ E-R (ERD) mơ tả tình .37 Hình 2.9: Tập thực thể 38 Hình 2.10: Biểu diễn loại thuộc tính sơ đồ .39 Hình 2.11: Thuộc tính đơn .40 Hình 2.12: Thuộc tính kết hợp .41 Hình 2.13: Thuộc tính đa trị 41 Hình 2.14: Thuộc tính suy diễn .42 Hình 2.15: Thuộc tính khóa 42 Hình 2.16: Kiểu liên kết, tập liên kết .43 Hình 2.17: Ví dụ kiểu liên kết, tập liên kết 43 Hình 2.18: Nhiều kiểu liên kết kiểu thực thể 44 Hình 2.19: Mối quan hệ 44 Hình 2.20: Mối quan hệ 45 Hình 2.21: Mối quan hệ ngơi 45 Hình 2.22: Ví dụ liên kết 1-1 46 Hình 2.23: Liên kết 1-1 Error! Bookmark not defined Hình 2.24: Liên kết 1-n 47 Hình 2.25: Ví dụ liên kết 1-n 47 Hình 2.26: Liên kết n-n 47 Hình 2.27: Ví dụ liên kết n-n 48 Hình 2.28: Thuộc tính liên kết 48 Hình 2.29: Ví dụ liên kết 48 Hình 2.30: Ký hiệu tập thực thể yếu 49 Hình 2.31: Ví dụ tập thực thể yếu CHI TIET DH 49 Hình 2.32: Ví dụ tập thực thể yếu CON 50 Hình 2.33: Ví dụ tập thực thể yếu THAN NHAN 50 Hình 2.34: Kết thực thể sau bước 51 Hình 2.35: Kết liên kết sau bước 51 Hình 2.36: Kết thuộc tính thực thể sau bước .52 Hình 2.37: Sơ đồ ER ví dụ 52 Hình 2.38: Sơ đồ ER ví dụ 53 Hình 2.39: Lược đồ ER trường học 65 Hình 2.40: Lược đồ ER cơng ty 66 Hình 2.41: Mơ hình quan hệ CSDL cơng ty 68 Hình 3.1: Các phép tốn nối ngồi, hợp ngồi 81 DANH MỤC BẢNG Bảng 1.1: Ví dụ CSDL đào tạo trường đại học .6 Bảng 2.1: Mơ hình hướng đối tượng 33 Bảng 2.2: Lược đồ quan hệ sinh viên 56 Bảng 2.2:Thể quan hệ 56 Bảng 2.4: Quan hệ HỌC PHẦN 59 Bảng 2.5: Mơ hình quan hệ CSDL đào tạo .69 Bảng 2.7: So sánh mơ hình 71 Bảng 3.1: Ví dụ quan hệ R S 72 Bảng 3.2: Kết phép hợp quan hệ R S 73 Bảng 3.3: Kết phép giao quan hệ R S 74 Bảng 3.4: Kết phép trừ quan hệ R S 74 Bảng 3.5: Kết phép tích đề cát quan hệ R S 75 Bảng 3.6: Kết phép chiếu 76 Bảng 3.7: Kết phép chọn 77 Bảng 3.8: Kết phép kết nối .78 Bảng 3.9: Kết phép chia 79 Bảng 3.11: Hàm nhóm phép nhóm.s 80 Bảng 3.12: Tạo bảng .84 Bảng 3.13: Tạo bảng Nhà phân phối .85 Bảng 3.14: Tạo bảng Sản phẩm 85 Bảng 3.15: Tạo bảng Phân phối sản phẩm .86 Bảng 3.16: Sửa đổi cấu trúc 89 Bảng 3.17: Bổ sung trực tiếp giá trị 90 Bảng 3.18: Thêm hay nhiều giá trị từ bảng CSDL .91 Bảng 3.19: Cập nhật liệu 93 Bảng 3.20: Ngôn ngữ truy vấn liệu .94 Bảng 3.21: Bảng truy vấn liệu .95 Bảng 3.22: Bảng mệnh đề From 95 Bảng 3.23: Bảng truy vấn tất cột CSDL .96 Bảng 3.24: Truy vấn theo tên cột 97 Bảng 3.25: Thay đổi tiêu đề cột 98 Bảng 3.26: Sử dụng cấu trúc CASE danh sách truy vấn 98 Bảng 3.27: Bảng truy vấn sử dụng CASE .99 Bảng 3.28: Bảng Hằng biểu thức chọn 100 Bảng 3.28: Bảng giá trị Hằng xuất cột tất dòng 100 Bảng 3.30: Bảng sau sử dụng Distinct .101 Bảng 3.30: Chỉ định điều kiện truy vấn liệu 102 Bảng 3.31: Bảng thông tin so sánh toán tử 103 Bảng 3.32: Bảng kết truy vấn 103 Bảng 3.33: Kiểm tra giới hạn liệu .104 Bảng 3.35: Toán tử Like ký tự đại diện .105 Bảng 3.35: Bảng sử dụng toán tử Like 105 Bảng 3.36: Bảng sử dụng toán tử Like ký tự đại diện .106 Bảng 3.37: Sắp xếp kết truy vấn 107 Bảng 3.38: Bảng xếp kết truy vấn .108 Bảng 3.39: Phép hợp .109 Bảng 3.40: Phép hợp – Câu lệnh 109 Bảng 3.41: Phép hợp – Câu lệnh i .109 Bảng 3.42: Bảng Table 1, Table2 110 Bảng 3.43: Bảng kết phép hợp 110 Bảng 3.44: Bảng kết phép hợp với ALL 111 Bảng 3.45: Bảng Thơng tin khoa phịng 112 Bảng 3.46: Bảng thông tin lớp học 112 Bảng 3.47: Bảng kết phép nối 113 Bảng 3.48: Bảng so sánh điều kiện toán tử phép nối .115 Bảng 4.1: Bảng sở thông tin nhân viên 118 Bảng 4.2: Thuật toán xác định bao đóng 123 Bảng 4.3: Khóa tối thiểu 125 Bảng 4.4: Tìm khóa lược đồ quan hệ 127 Bảng 4.5: Tập phụ thuộc hàm không dư thừa 128 Bảng 4.6: Phủ tối thiểu tập phụ thuộc hàm .129 Bảng 4.7: Phép tách - Kết nối tự nhiên 132 Bảng 4.8: Phép tách không làm mát thông tin 134 Bảng 4.9: Dạng chuẩn 3NF 136 Bảng 4.10: Chuẩn hóa 3NF 137 Bảng 4.11: Chuẩn hóa qua phép tách khơng làm thơng tin .139 Bảng 4.12: Ví dụ chuẩn hóa qua phép tách khơng làm thơng tin 140 B3: Tìm tất tập Xi TG B4: Tìm Siêu khóa (Si) Với ∀ Xi, (TN U Xi)+ = U Si = TN U Xi B5: Tìm Khóa (Ki) cách loại bỏ siêu khóa khơng tối thiểu Với Si Sj thuộc S, Si chứa Sj loại bỏ Sj khỏi tập siêu khóa Khi đó, tập S cịn lại tập khóa cần tìm Bảng 4.4: Tìm khóa lược đồ quan hệ Ví dụ 1: S = {AB, ABC, ED, EDF} Nhận thấy AB chứa ABC, ED chứa EDF, cần loại bỏ ABC EDF Vậy S = {AB, ED} tập khóa cần tìm Ví dụ 2: Cho tập sở liệu R = , với U = {ABC}, F = {AB→C, C→A} Tìm tất khóa thuộc tập sở liệu Lời giải: - L = {ABC} R = {CA} - TN = {B} TG = {AC}≠∅ nên ta làm tiếp bước - Ta có tập Xi tập TG = {0, A, C, AC} - Lấy thuộc tính thuộc tập Xi tập TG hợp với TN ta có thuộc tính sau: ▪ S1 = TN U ∅ = B Ta có B+ = B ≠ U nên S1 = B khơng siêu khóa ▪ S2 = TN U A = AB Ta có AB+ = ABC = U nên S2 = AB siêu khóa ▪ S3 = TN U C = BC Ta có BC+ = ABC = U nên S3 = BC siêu khóa ▪ S4 = TN U AC = ABC Ta có ABC+ = ABC = U nên S4 = ABC siêu khóa 127 ▪ Vậy ta có tập siêu khóa S = {AB, BC, ABC} ▪ Tuy nhiên, AB chứa ABC BC chứa ABC nên loại bỏ siêu khóa ABC khỏi tập siêu khóa ▪ Vậy ta có, tập khóa K = {AB,BC} khóa lược đồ quan hệ Từ tập phụ thuộc hàm suy diễn phụ thuộc hàm khác Trong tập phụ thuộc hàm cho sẵn, có phụ thuộc hàm bị coi dư thừa → Làm để có tập phụ thuộc hàm tốt? 4.2.5 Các tập phụ thuộc hàm tối thiểu 4.2.5.1 Tập phụ thuộc hàm không dư thừa Định nghĩa: Tập phụ thuộc hàm F không dư thừa không ∃ X→Y∈ F cho F\{X→Y} ≈ F Thuật tốn: Tìm phủ không dư thừa tập phụ thuộc hàm Đầu vào: Tập hữu hạn thuộc tính U = {A1, A2, …, An}, tập phụ thuộc hàm F U, F = {Li → Ri | i = n} Đầu ra: Phủ không dư thừa F’ F Thuật tốn B0: F0= F B1: Tính Xi từ Xi-1 Nếu Fi-1\ {Li→Ri} ≈ Fi-1 Fi = Fi-1 \ {Li→Ri}, ngược lại Fi = Fi-1 Bn: F’ = Fn Bảng 4.5: Tập phụ thuộc hàm không dư thừa 4.2.5.2 Phủ tối thiểu tập phụ thuộc hàm Định nghĩa: Fc gọi phủ tối thiểu tập phụ thuộc hàm F thỏa mãn điều kiện: - (Đk1) Với ∀ f ∈ Fc, f có dạng X → A, A thuộc tính 128 - (Đk2) Với ∀ f = X→Y ∈ Fc, !∃ A ∈ X (A thuộc tính) mà (Fc \ f) U {(X \ A)→Y} ≅ Fc - (Đk3) !∃ X→A ∈ Fc Fc \ {X→A} ≅ Fc Thuật tốn: Tìm phủ tối thiểu tập phụ thuộc hàm Đầu vào: Tập hữu hạn thuộc tính U = {A1, A2, …, An}, tập phụ thuộc hàm F U, F = {Li → Ri | i = n} Đầu ra: phủ tối thiểu Fc tập phụ thuộc hàm F Thuật toán B1: Biến đổi F dạng F1={Li → Aj} Aj thuộc tính thuộc U (thỏa mãn Đk1) B2: Loại bỏ thuộc tính thừa vế trái phụ thuộc hàm Lần lượt giản ước thuộc tính vế trái phụ thuộc hàm F1 thu F1’ Nếu F1’ ≅ F1 loại bỏ thuộc tính xét Khi khơng có giản ước xảy nữa, thu F2 thỏa mãn Đk2 B3: Loại bỏ phụ thuộc hàm dư thừa Lần lượt kiểm tra phụ thuộc hàm f Nếu F2 \ f ≅ F2 loại bỏ f Khi khơng cịn phụ thuộc hàm loại bỏ thu F3 thoả mãn Đk3 B4: Fc = F3 Bảng 4.6: Phủ tối thiểu tập phụ thuộc hàm Ví dụ: U = {A,B,C} F = {A→BC, B→C, A→B, AB→C} Tìm phủ tối thiểu F? Thực hiện: - Bước 1: F1 = {A→B, A→C, B→C, AB→C} 129 - Bước 2: Xét phụ thuộc hàm F1 mà vế trái có nhiều thuộc tính, có AB→C Giản ước A ta cịn B→C có F1, A thuộc tính thừa Tương tự ta tìm B thừa, loại bỏ AB→C khỏi F1 F2 = {A→B, A→C, B→C} - Bước 3: Bỏ phụ thuộc hàm thừa: A→C thừa Vậy Fc = {A→B, B→C} 4.3 Phép tách - kết nối 4.3.1 Khái niệm Tách quan hệ: Các thuật toán thiết kế sở liệu quan hệ trình bày phần lược đồ quan hệ vũ trụ đơn R(A1, A2, …,An) chứa tất thuộc tính sở liệu Với giả thiết quan hệ vũ trụ, tên thuộc tính Tập hợp F phụ thuộc hàm thỏa mãn thuộc tính R người thiết kế sở liệu thuật toán sử dụng Sử dụng phụ thuộc hàm, thuật toán tách lược đồ quan hệ vũ trụ R thành tập hợp lược đồ quan hệ D = {R1, R2,…, Rk} Ri ⊆ R, tập hợp lược đồ sở liệu quan hệ D gọi phép tách (decomposition) R Chúng ta phải đảm bảo thuộc tính R xuất lược đồ quan hệ R i phép tách để khỏi bị “mất ” Một cách hình thức, ta có điều kiện bảo tồn thuộc tính sau đây: R = R1 U R2 U …U Rk Yêu cầu phép tách: - Bảo tồn thuộc tính, ràng buộc - Bảo toàn liệu 4.3.2 Phép tách-kết nối tự nhiên Việc phụ thuộc hàm X → Y F xuất trực tiếp trong lược đồ quan hệ Ri phép tách D suy diễn từ phụ thuộc hàm có Ri có nhiều lợi ích Ta gọi điều kiện bảo toàn phụ thuộc Chúng ta muốn bảo tồn phụ thuộc phụ thuộc F biểu thị ràng buộc sở liệu Nếu phụ thuộc quan hệ riêng rẽ Ri phép tách, khơng thể ép buộc ràng buộc quan hệ riêng rẽ, thay vào đó, nối hai nhiều quan hệ phép tách sau kiểm tra phụ thuộc hàm thỏa mãn kết phép nối 130 Rõ ràng thủ tục khơng hiệu khơng thực tiễn Việc phụ thuộc xác F xuất quan hệ riêng rẽ phép tách D không cần thiết Chỉ cần hợp phụ thuộc thỏa mãn quan hệ riêng rẽ D tương đương với F đủ Bây định nghĩa khái niệm sau Cho trước tập hợp phụ thuộc F R, phép chiếu F Ri, ký hiệu 𝜋𝑅𝑖 (𝐹 ) Ri tập R, tập hợp phụ thuộc hàm X → Y F+ cho thuộc tính X U Y chứa Ri Như vậy, phép chiếu F lược đồ quan hệ Ri phép tách D tập hợp phụ thuộc hàm F+, bao đóng F, cho thuộc tính vế trái vế phải chúng Ri Ta nói phép tách D = {R1, R2,…, Rm} R bảo toàn phụ thuộc F hợp phép chiếu F Ri D tương đương với F Điều có nghĩa là: ( 𝜋𝑅1 (𝐹 ) U 𝜋𝑅2 (𝐹 ) … 𝜋𝑅𝑚 (𝐹 ))+ = F+ Nếu phép tách khơng bảo tồn phụ thuộc, vài phụ thuộc bị phép tách Để kiểm tra xem phụ thuộc hàm X → B, X tập thuộc tính thuộc Ri, B thuộc tính thuộc Ri có thỏa mãn Ri hay không ta làm sau: Trước hết tính X+ , sau với thuộc tính B cho - B thuộc tính Ri - B X+ - B khơng X Khi phụ thuộc hàm X → B thỏa mãn Ri Một ví dụ phép tách khơng bảo tồn phụ thuộc sau: Xét lược đồ quan hệ: R = { A,B,C,D} với phụ thuộc hàm: A → BCD; BC → DA; D → B Lược đồ có hai khóa dự tuyển A BC Nó tách thành: R1 = {D,B}, lược đồ chứa phụ thuộc hàm D → B, 131 R2 = {A,C,D}, lược đồ chứa phụ thuộc hàm A → CD Rõ ràng sau tách, phụ thuộc hàm BC → DA bị Thuật toán: Tách không bị mát thông tin Đầu vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F Đầu ra: tách sơ đồ quan hệ R không làm mát thơng tin Thuật tốn B1: Tìm phủ tối thiểu G F B2: Với vế trái X phụ thuộc hàm xuất G, tạo lược đồ D với thuộc tính {X U {A1} U {A2} … U {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) B3: Đặt thuộc tính cịn lại (những thuộc tính chưa đặt vào quan hệ nào) vào quan hệ đơn để đảm bảo tính chất bảo tồn thuộc tính Bảng 4.7: Phép tách - Kết nối tự nhiên 4.3.3 Phép tách - kết nối không mát thông tin Định nghĩa: Cho lược đồ quan hệ R(U) phép tách R thành sơ đồ {R1, R2, …, Rk} gọi phép tách không mát thông tin đ/v tập phụ thuộc hàm F với quan hệ r xác định R thỏa mãn F thì: r = ΠR1(r) ⋈ ΠR2(r) ⋈ … ⋈ Π Rk (r) Ví dụ phép tách mát thơng tin: - Quan hệ Supplier(sid, sname, city, NOE, pid, pname, colour, quantity) tách thành quan hệ S1(sid, sname, city, NOE) SP1(pid, pname, colour, quantity) - Phép tách bị thông tin nhà phân phối phân phối sản phẩm Phép tách biểu diễn hai quan hệ động lập nhà phân phối sản phẩm 132 Ví dụ phép tách khơng mát thông tin - Nếu quan hệ tách thành S1(sid, sname, city, NOE) SP2(sid, pid, pname, colour, quantity) thơng tin phân phối sản phẩm nhà phân phối bảo toàn Định lý tách đôi: Cho lược đồ quan hệ R(U), tập phụ thuộc hàm F , phép tách R thành R1(U1), R2(U2) phép tách không mát thông tin phụ thuộc hàm sau thỏa mãn F+: U1 ∩ U2→U1 - U2 U1 ∩ U2→U2 - U1 Hệ quả: Cho lược đồ quan hệ R(U) phụ thuộc hàm X→Y thỏa mãn R(U) Phép tách R thành lược đồ R1(U1), R2(U2) phép tách không mát thông tin với: U1 = XY U2 = XZ Z = U \ XY Thuật tốn kiểm tra phép tách khơng làm mát thơng tin sau: Thuật tốn: Tách khơng bị mát thông tin Đầu vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk} Đầu ra: phép tách mát thơng tin hay khơng Thuật tốn B1: Thiết lập bảng k hàng, n cột Nếu Aj thuộc tính Ri điền aj vào (i,j) Nếu khơng điền bij Bi: Xét f = X→Y∈ F Nếu ∃ hàng t1, t2 thuộc bảng: t1[X] = t2[X] đồng t1[Y] = t2[Y], ưu tiên giá trị a Lặp thay đổi giá trị bảng Bn: Nếu bảng có hàng gồm ký hiệu a1, a2, … , an phép tách khơng 133 mát thông tin ngược lại, phép tách không bảo tồn thơng tin Bảng 4.8: Phép tách khơng làm mát thơng tin 4.4 Chuẩn hóa lược đồ quan hệ Sau nghiên cứu phụ thuộc hàm số tính chất chúng, sử dụng chúng thông tin ngữ nghĩa lược đồ quan hệ Ta giả sử quan hệ cho trước tập phụ thuộc hàm quan hệ có khố Trong phần nghiên cứu dạng chuẩn q trình chuẩn hóa lược đồ quan hệ 4.4.1 Dạng chuẩn 1NF chuẩn hóa 1NF Dạng chưa phải chuẩn (Non-first normal form-N1NF) Các quan hệ dạng chưa chuẩn quan hệ chứa nhiều thuộc tính chưa phải nguyên tố Nói cách khác, quan hệ có nhiều thuộc đa trị Một số mở rộng quan trọng tới mơ hình quan hệ quan hệ N1NF sử dụng Với hầu hết phần lại phạm vi giảng không bàn luận đến chúng cách chi tiết Các sở liệu quan hệ thời gian số loại không gian thường rơi vào loại N1NF Dạng chuẩn (First Normal Form-1NF) Một quan hệ giá trị thuộc tính dạng ngun tố quan hệ dạng 1NF Chúng ta quan tâm tới quan hệ dạng 1NF cho hầu hết phần môn học Lưu ý quan hệ chưa phải thuộc dạng chuẩn chúng chứa thuộc tính ghép, thuộc tính đa trị thuộc tính dẫn xuất Khi gặp thuộc tính đa trị mức khái niệm, nhắc lại trình chuyển đổi sang mơ hình liệu cần tạo bảng riêng biệt cho thuộc tính đa trị Trước chuyển sang xem xét dạng chuẩn 2NF, ta tìm hiểu số thuật ngữ Một khố siêu khố với thuộc tính ràng buộc loại bỏ thuộc tính từ khố biến khố khơng cịn siêu khố Nói cách khác, khố có số thuộc tính nhỏ Một khố dự bị cho quan hệ tập khoá nhỏ cho lược đồ quan hệ Khố cho quan hệ khoá dự bị lựa chọn Tất khố dự bị cịn lại trở thành khoá phụ (hay khoá thứ cấp) Một thuộc nh khố (chính) thuộc tính lược đồ quan hệ R mà thành viên khoá dự bị R Thuộc 134 tính khơng khố thuộc tính R mà khơng phải thành viên khoá dự bị 4.4.2 Dạng chuẩn 2NF chuẩn hóa 2NF Đây dạng chuẩn dựa khái niệm phụ thuộc hàm đầy đủ Một phụ thuộc hàm X → Y phụ thuộc hàm đầy đủ loại bỏ thuộc tính A từ A làm cho phụ thuộc hàm khơng cịn với thuộc tính A ∈ X, X{A} khơng xác định Y Một phụ thuộc hàm X → Y phụ thuộc hàm phần thuộc tính A bị loại khỏi X mà phụ thuộc hàm với thuộc tính A ∈ X, X-{A} → Y Định nghĩa chuẩn 2NF: lược đồ quan hệ R dạng NF với tập phụ thuộc hàm F dạng 1NF thuộc tính khơng khố phụ thuộc hàm đầy đủ vào khoá R Một cách khác để phát biểu định nghĩa là: khơng tồn thuộc tính khơng khố mà phụ thuộc hàm phần vào khoá R Nói cách khác, khơng có thuộc tính khơng khố phụ thuộc vào phần khoá R - Sales(sid, sname, city, item, price) - F = {sid → (sname,city), (sid,item) → price} - Khoá (sid,item), ta có sname, city khơng phụ thuộc hàm đầy đủ vào khóa => Quan hệ Sales khơng thuộc 2NF - S(sid, sname, city) Sales (sid, item, price) quan hệ thuộc 2NF 4.4.3 Dạng chuẩn 3NF chuẩn hóa 3NF Định nghĩa phụ thuộc bắc cầu: cho quan hệ R tập phụ thuộc hàm F R, tập X ⊆ R thuộc tính A R A nói phụ thuộc hàm bắc cầu vào X tồn Y ⊆ R mà X → Y, Y không → X Y → A A ∉ X∪Y Một cách định nghĩa khác cho phụ thuộc hàm bắc cầu là: phụ thuộc hàm X → Y lược đồ quan hệ R phụ thuộc bắc cầu có tập thuộc tính Z ⊆ R mà Z tập khoá R X → Z Z → Y 135 Định nghĩa chuẩn 3NF: Một lược đồ quan hệ R dạng 3NF với tập phụ thuộc hàm F dạng 2NF với phụ thuộc hàm X → A (1) X siêu khóa R (2) A thuộc tính khóa Định nghĩa 3NF cách khác: Một lược đồ quan hệ R dạng 3NF với tập phụ thuộc hàm F dạng 2NF khơng có thuộc tính khơng khoá phụ thuộc hàm bắc cầu vào khoá R Ví dụ: Cho R = (A, B, C, D) với K = {AB}, F = {AB → CD, C → D, D → C} R khơng dạng 3NF C → D C khơng phải siêu khố R Một cách khác, R khơng dạng 3NF AB → C C → D D thuộc tính khơng khố lại phụ thuộc bắc cầu vào khoá AB Chúng ta phân tích xem lại cần dạng chuẩn 3NF thông qua việc xét sở liệu ví dụ sau với thể liệu lược đồ quan hệ bảng sau assign (flight, day, pilot-id, pilot-name) K = {flight day} F = {pilot-id → pilot-name, pilot-name → pilot-id} flight day pilot-id pilot-name 112 Feb.11 317 Mark 112 Feb 12 246 Kristi 114 Feb 13 317 Mark Bảng 4.9: Dạng chuẩn 3NF Vì {flight day} khoá nên rõ ràng {flight day} → pilot-name Nhưng F ta có pilot-name → pilot-id, ta có {flight day} → pilot-id Bây giả sử ta thêm bảng ghi vào bảng bảng sau pilot-name → pilot-id bị vi phạm Một phụ thuộc hàm bắc cầu tồn pilot-id → pilot-name pilot-id khơng phải siêu khố 136 flight day pilot-id pilot-name 112 Feb.11 317 Mark 112 Feb 12 246 Kristi 114 Feb 13 317 Mark Feb 11 319 Mark 112 Bảng 4.10: Chuẩn hóa 3NF 4.4.4 Dạng chuẩn BCNF chuẩn hóa BCNF Định nghĩa: lược đồ quan hệ R dạng chuẩn BCNF với tập phụ thuộc hàm F với phụ thuộc hàm dạng X → A A ⊈ X, X siêu khóa R Ví dụ: Cho R = (A, B, C) với F = {AB → C, C → A} K ={AB} R khơng dạng BCNF C → A C khơng phải siêu khóa R Lưu ý khác định nghĩa dạng chuẩn chuẩn BCNF BCNF bỏ cho phép A X → A phải thuộc tính khóa Một khía cạnh thú vị BCNF Boyce Codd ban đầu dự định dạng xây dựng dạng chuẩn dạng đơn giản chuẩn 3NF Nói cách khác, mong muốn nằm 2NF 3NF nhiên sau nhanh chóng chứng minh chí cịn mạnh NF đứng vị trí 3NF 4NF Trong thực tế, hầu hết lược đồ quan hệ mà dạng chuẩn 3NF dạng chuẩn BCNF Chỉ X → A lược đồ X khơng phải siêu khóa A thuộc tính khóa, lược đồ dạng 3NF không dạng BCNF 4.4.5 Chuẩn hố qua phép tách khơng làm thơng tin Nói chung, muốn thiết kế lược đồ cho chúng khơng cịn phụ thuộc phận phụ thuộc bắc cầu kiểu phụ thuộc gây sửa đổi bất thường Các bước chuẩn hóa thành 3NF, BCNF trình bày phần trước loại bỏ phụ thuộc phận bắc cầu dựa khóa Các định nghĩa khơng tính đến khóa dự tuyển quan hệ Trong phần đưa định nghĩa dạng chuẩn tổng qt hơn, có tính đến tất khóa dự tuyển 137 Cụ thể, thuộc tính khóa định nghĩa lại phận khóa dự tuyển Các phụ thuộc hàm phận, đầy đủ, bắc cầu định nghĩa tất khóa dự tuyển quan hệ Định nghĩa dạng chuẩn 1: Một lược đồ quan hệ R dạng chuẩn (1NF) miền giá trị thuộc tính chứa giá trị nguyên tử (đơn, không phân chia được) giá trị thuộc tính giá trị phải giá trị đơn thuộc miền giá trị thuộc tính Định nghĩa dạng chuẩn 2: Một lược đồ quan hệ R dạng chuẩn (2NF) thuộc tính khơng khóa A R khơng phụ thuộc phận vào khóa R Ví dụ: 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 Lược đồ có hai khóa dự tuyển A {B,C} Ta chọn A làm khóa Do có phụ thuộc hàm B → F nên F phụ thuộc phận vào khóa {B,C}, lược đồ vi phạm chuẩn 2NF (chú ý rằng, định nghĩa dạng chuẩn dựa khóa chính, lược đồ không vi phạm 2NF) Định nghĩa dạng chuẩn 3: Một lược đồ quan hệ R dạng chuẩn (3NF) phụ thuộc hàm X → A thỏa mãn R, thì: 1) Hoặc X siêu khóa R 2) Hoặc A thuộc tính khóa R Ví dụ: Xét lược đồ quan hệ R ví dụ Giả sử tách thành hai lược đồ: R1 = {A,B,C,D,E} R2 = {B, F} Do có phụ thuộc hàm D → E D khơng phải thuộc tính khóa, E khơng phải thuộc tính khóa, nên R1 vi phạm chuẩn 3NF Định nghĩa dạng chuẩn Boyce- Codd: Một lược đồ quan hệ dạng chuẩn BoyceCodd (BCNF) phụ thuộc hàm X → A thỏa mãn R X siêu khóa R Ví dụ: Xét lược đồ R = {A, B, C, D} có A khóa {B,C} khóa dự tuyển Nếu có tồn phụ thuộc hàm D → B lược đồ vi phạm BCNF B thuộc tính khóa (chú ý trường hợp định nghĩa dạng chuẩn dựa khóa chính, lược đồ khơng vi phạm BCNF) 138 Giải thuật bên mô lại bước tách bảo tồn tập phụ thuộc hàm 3NF Thuật tốn: Tách bảo toàn tập phụ thuộc hàm 3NF Đầu vào: R(U), F (giả thiết F phủ tối thiểu) Đầu ra: Phép tách bảo toàn tập phụ thuộc hàm 3NF Thuật toán: B1: Với Ai ∈ U, Ai ∉ F loại Ai khỏi R lập quan hệ cho Ai B2: Nếu ∃ f ∈ F, f chứa tất thuộc tính R (đã bỏ Ai bước trên) kết R B3: Ngược lại, với X→ A ∈ F, xác định quan hệ Ri (XA) Nếu ∃ X→Ai , X→Aj tạo quan hệ chung R’(XAi Aj ) Bảng 4.11: Chuẩn hóa qua phép tách khơng làm thơng tin Ví dụ: Cho R = {A,B,C,D,E,F,G} F = {A→B, ACD→E, EF→G} (đã tối thiểu) Ra: Phép tách bảo toàn tập phụ thuộc hàm 3NF Xác định phép tách bảo toàn tập phụ thuộc hàm 3NF B1 Không lập quan hệ B2 !∃ f ∈ F: f chứa tất thuộc tính R B3 A→B tách R1(AB) ACD→E tách R2(ACDE) EF→G tách R3(EFG) Tách không mát thơng tin bảo tồn tập phụ thuộc hàm 3NF mô tả sau: 139 Yêu cầu: Bảo tồn tập phụ thuộc hàm (như thuật tốn trên) Đảm bảo có lược đồ chứa khóa lược đồ tách Các bước tiến hành: - Bước 1: Tìm khóa tối thiểu lược đồ quan hệ R cho - Bước 2: Tách lược đồ quan hệ R theo phép tách bảo toàn tập phụ thuộc hàm - Bước 3: Nếu sơ đồ có chứa khóa tối thiểu kết B2 kết cuối Ngược lại, thêm vào kết sơ đồ quan hệ tạo khố tối thiểu tìm Thuật tốn tách khơng mát thơng tin BCNF Thuật tốn: Tách khơng mát thơng tin BCNF Đầu vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F Đầu ra: phép tách không mát thông tin bao gồm tập sơ đồ BCNF với phụ thuộc hàm hình chiếu F lên sơ đồ Thuật tốn: - Giả sử R không BCNF, X⊂R, A thuộc tính R, X→A pth gây vi phạm BCNF Tách R thành R-A XA - Nếu R-A XA chưa BCNF, tiếp tục thực việc tách Bảng 4.12: Ví dụ chuẩn hóa qua phép tách khơng làm thơng tin 4.5 Kết luận chương 4: Nội dung chương đị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 140 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ệ Cụ thể, chương giới thiệu chi tiết chuẩn 1NF, 2NF, 3NF giúp cho việc thiết kế lược đồ quan hệ tối ưu 141

Ngày đăng: 15/11/2023, 16:14

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan