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

36 495 6
Bài giảng cơ sở dữ liệu nâng cao

Đ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

Tài liệu nâng cao CƠ SỞ DỮ LIỆU 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 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 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 IV- Mô hình thực thể liên kết mở rộng (mô hình EER) Một cách truyền thống, xây dựng sở liệu thường bắt đầu việc xây dựng mô hình liên kết – thực thể (mô hình ER) sau chuyển đổi thành mô hình quan hệ Các khái niệm mô hình ER coi đầy đủ để trình bày lược đồ sở liệu ứng dụng sở liệu truyền thống, chủ yếu ứng dụng xử lý liệu kinh doanh công nghiệp Ngày nay, ứng dụng cho công nghệ sở liệu trở nên phổ biến Các sở liệu loại đòi hỏi yêu cầu phức tạp so với ứng dụng truyền thống Để trình bày yêu cầu cách xác rõ ràng, người thiết kế sở liệu phải sử dụng thêm khái niệm Việc thêm vào mô hình ER khái niệm làm mở rộng mô hình tạo nên mô hình ER mở rộng (gọi tắt mô hình EER – Enhanced Entity Relationship Model) Mô hình EER bao gồm tất khái niệm mô hình ER, có khái niệm lớp, kiểu liên kết lớp cha/ lớp con, tính thừa kế, chuyên biệt, tổng quát, phạm trù IV.1- Lớp cha, lớp thừa kế Khái niệm mô hình EER lớp kiểu thực thể Như ta biết, kiểu thực thể sử dụng để biểu diễn kiểu thực thể tập hợp thực thể kiểu sở liệu Trong nhiều trường hợp, kiểu thực thể có nhóm thực thể nhóm cần trình bày rõ ràng ý nghĩa sở liệu Ví dụ, thực thể thành viên kiểu thực thể NHÂNVIÊN chia thành nhóm nhỏ: KỸSƯ, NGƯỜIQUẢNLÝ, KỸTHUẬTVIÊN… Tập thực thể nhóm tập thực thể tập thực thể nhân viên, nghĩa thực thể thành viên nhóm nhân viên Chúng ta gọi nhóm lớp kiểu thực thể NHÂNVIÊN Kiểu thực thể NHÂNVIÊN gọi lớp cha lớp Ta gọi quan hệ lớp cha lớp kiểu liên kết lớp cha/ lớp Kiểu liên kết lớp cha/ lớp thường gọi kiểu liên kết (IS_A) Chúng ta thường nói kỹ sư nhân viên, kỹ thuật viên nhân viên Chú ý thực thể thành viên lớp biểu diễn thực thể thực thành viên lớp cha, vậy, thực thể thành viên lớp thực thể thành viên lớp cha giống nhau, vai trò chúng hoàn toàn khác Khi tạo kiểu liên kết lớp cha/ lớp hệ thống sở liệu, trình bày thành viên lớp như đối tượng riêng biệt, ghi riêng biệt kết hợp với thực thể lớp cha qua thuộc tính khoá Kiểu liên kết lớp cha/ lớpcon kiểu liên kết có tỷ số lực lượng 1:1 Một khái niệm quan trọng gắn với lớp thừa kế kiểu Kiểu thực thể xác định thuộc tính kiểu liên kết mà tham gia Vì thực thể thành viên lớp biểu diễn thực thể thực thực thể lớp cha nên giá trị thuộc tính lớp phải giống giá trị thuộc tính nó đóng vai trò thành viên lớp cha Thực thể thừa kế liên kết lớp cha Một lớp với thuộc tính riêng với tất thuộc tính kiểu liên kết kế thừa từ lớp cha có quyền coi kiểu thực thể IV.2- Chuyên biệt hoá, tổng quát hoá IV.2.1- Chuyên biệt hoá Là trình xác định tập hợp lớp kiểu thực thể Kiểu thực thể gọi lớp cha chuyên biệt hoá Tập lớp tạo nên chuyên biệt hoá xác định dựa sở đặc trưng phân biệt thực thể lớp cha Ví dụ, tập lớp {THƯKÝ, KỸSƯ, KỸTHUẬTVIÊN} chuyên biệt hoá lớp cha NHÂNVIÊN xác định dựa kiểu công việc thực thể Một kiểu thực thể có số chuyên biệt hoá dựa đặc trưng khác Ví dụ, chuyên biệt hoá khác kiểu thực thể NHÂNVIÊN sinh tập lớp {NHÂNVIÊN_BIÊNCHẾ, NHÂNVIÊN_HỢPĐỒNG} Trong chuyên biệt hoá này, thực thể phân biệt dựa sở hình thức trả tiền Một chuyên biệt hoá biểu diễn sơ đồ EER sau: Các lớp xác định chuyên biệt hoá nối đường đến vòng tròn, vòng tròn nối với lớp cha Ký hiệu tập (trên đường nối tập với vòng tròn hướng kiểu liên kết lớp cha / lớp con) Các thuộc tính áp dụng cho thực thể lớp cụ thể - ví dụ Tốcđộđánhmáy lớp THƯKÝ - nối với hình chữ nhật biểu diễn lớp Các thuộc tính gọi thuộc tính riêng thuộc tính địa phương lớp Tương tự, lớp tham gia vào kiểu liên kết riêng, ví dụ, lớp NHÂNVIÊN_HỢPĐỒNG tham gia vào kiểu liên kết (hình II-7) Có hai lý để đặt kiểu liên kết lớp cha/lớp chuyên biệt hoá vào mô hình liệu Thứ có số thuộc tính áp dụng cho số thực thể cho toàn thực thể lớp cha Khi đó, lớp xác định để nhóm thực thể mà thuộc tính áp dụng Các thành viên lớp chia sẻ phần lớn thuộc tính chúng với thành viên khác lớp cha.Ví dụ, lớp THƯKÝ có thuộc tính riêng Tốcđộđánhmáy, lớp KỸSƯ có thuộc tính riêng Kiểukỹsư thuộc tính khác chúng chung với kiểu thực thể NHÂNVIÊN Lý thứ hai có thành viên lớp tham gia vào số kiểu liên kết Ví dụ, có nhân viên hợp đồng tham gia công đoàn diễn đạt kiện cách tạo lớp NHÂNVIÊN_HỢPĐỒNG NHÂNVIÊN liên kết lớp với kiểu thực thể CÔNGĐOÀN thông qua kiểu thực thể Tóm lại, trình chuyên biệt hoá cho phép làm việc sau: Xác định tập hợp lớp kiểu thực thể Thiết lập thuộc tính riêng cho lớp Thiết lập kiểu liên kết riêng lớp kiểu thực thể khác lớp khác Họđệm Tên Địachỉ Mãsố Họtên Kiểucôngviệc Ngày NHÂN VIÊN d d Tốcđộ đánhmáy Lương KiểuKỹ sư LươngHĐ Bậc THƯKÝ KỸTHUẬT VIÊN NGƯỜI QUẢNLÝ KỸ SƯ Quảnlý DỰ ÁN NHÂNVIÊN BIÊNCHẾ NHÂNVIÊN HỢP ĐỒNG Thuộc CÔNG ĐOÀN Hình II-7 Biểu diễn lược đồ EER chuyên biệt hoá IV.2.2- Tổng quát hoá Là trình đảo ngược chuyên biệt hoá, ta bỏ qua khác số kiểu thực thể, xác định đặc tính chung chúng tổng quát hoá chúng thành lớp cha kiểu thực thể Ví dụ, ta có kiểu thực thể XECON với thuộc tính (Mãsố, Sốgiấyphép, Giá, Tốcđộtốiđa, Sốchỗngồi) kiểu thực thể XETẢI với thuộc tính (Mãsố, Sốgiấyphép, Giá, Trọngtải, Sốcáctrục), kiểu thực thể có số thuộc tính chung, chúng tổng quát hoá thành kiểu thực thể XEÔTÔ với thuộc tính (Mãsố, Sốgiấyphép, Giá) Các kiểu thực thể XECON XETẢI trở thành lớp lớp cha XEÔTÔ Như vậy, tổng quát hoá trình tổng quát kiểu thực thể từ kiểu thực thể cho trước Một tổng quát hoá biểu diễn sơ đồ EER giống chuyên biệt hoá Tổng quát lớp cha chuyên biệt lớp sử dụng để tạo nên lớp cha (hình II-8) Mãsố Sốgiấyphép Giá Xeôtô d Sốchỗ Sốtrục Tốcđộ Trọngtải Xe Xe tải Hình II-8 Xeôtô tổng quát hoá từ Xecon Xetải IV.2.3- Phân cấp chuyên biệt lưới chuyên biệt Bản thân lớp có lớp Như tạo phân cấp chuyên biệt hoá lưới chuyên biệt hoá Một phân cấp chuyên biệt hoá có ràng buộc lớp tham gia vào kiểu liên kết lớp cha/lớp lớp Một lưới chuyên biệt có điều kiện lớp tham gia vào nhiều kiểu liên kết lớpcha/lớpcon lớp Nói cách khác, lớp phân cấp chuyên biệt thừa kế lớp cha, ngược lại, lớp lưới chuyên biệt thừa kế nhiều lớp cha Một lớp thừa kế nhiều lớp cha thuộc kiểu khác gọi kiểu hợp (union type) phạm trù (category) IV.2.4- Các ràng buộc đặc trung chuyên biệt hoá, tổng quát hoá Trong số chuyên biệt hoá, xác định cách xác thực thể thành viên lớp cách đặt điều kiện thuộc tính lớp cha Các lớp gọi lớp xác định điều kiện Nếu lớp chuyên biệt hoá có điều kiện thành viên thuộc tính lớp cha chuyên biệt hoá gọi chuyên biệt hoá xác định thuộc tính Nếu việc xác định lớp không theo điều kiện lớp gọi người sử dụng xác định Có hai ràng buộc áp dụng cho chuyên biệt hoá Ràng buộc rời rạc lớp chuyên biệt phải rời rạc Điều có nghĩa thực thể thành viên nhiều số lớp chuyên biệt hoá Một chuyên biệt hoá xác định thuộc tính thoả mãn ràng buộc rời rạc thuộc tính sử dụng để xác định thành viên đơn trị Nếu lớp không thoả mãn ràng buộc rời rạc, tập thực thể chúng chồng chéo nhau, nghĩa thực thể thành viên nhiều lớp chuyên biệt hoá Ràng buộc thứ hai chuyên biệt hoá gọi ràng buộc đầy đủ, toàn phần Một ràng buộc chuyên biệt toàn thực thể lớp cha phải thành viên lớp chuyên biệt Một ràng buộc chuyên biệt phần cho phép thực thể lớp cha không thuộc lớp Ví dụ, nhân viên phải nhân viên biên chế nhân viên hợp đồng (NHÂNVIÊN_BIÊNCHẾ, NHÂNVIÊN_HỢPĐỒNG) chuyên biệt toàn NHÂNVIÊN Nếu nhân viên thư ký, kỹ sư kỹ thuật viên chuyên biệt (THƯKÝ, KỸSƯ, KỸTHUẬTVIÊN) chuyên biệt phần NHÂNVIÊN Trong sơ đồ mô hình EER, chuyên biệt hoá rời rạc hình tròn nối với lớp có ghi chữ d (disjoin), chuyên biệt chồng chéo hình tròn nối lớp có ghi chữ o (overlap) IV.3- Sơ đồ mô hình EER Mô hình EER có biểu diễn đồ hoạ giống mô hình ER, nghĩa kiểu thực thể (các lớp) biểu diễn hình chữ nhật có ghi tên giữa, thuộc tính chúng biểu diễn hình ô van nối với hình chữ nhật Các kiểu liên kết biểu diễn hình thoi nối với kiểu thực thể tham gia liên kết Tại hình thoi có ghi rõ tỷ số lực lượng tham gia kiểu thực thể tham gia vào kiểu liên kết Ngoài ra, kiểu liên kết lớpcha/lớpcon biểu diễn đường nối có thêm ký hiệu tập “⊂“ đường nối Các lớp chuyên biệt nối với vòng tròn vòng tròn nối với lớp cha Nếu chuyên biệt rời rạc, vòng tròn ghi chữ d, chuyên biệt chồng chéo, vòng tròn có ghi chữ o 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 thảo luận vai trò mô hình liệu bậc cao trình thiết kế sở liệu Ta làm quen với khái niệm mô hình liên kết - thực thể: kiểu thực thể, kiểu liên kết, thuộc tính chúng Các kiểu thuộc tính khác xem xét: thuộc tính đơn, thuộc tính phức hợp, thuộc tính đơn trị, thuộc tính đa trị, thuộc tính lưu trữ, thuộc tính suy diễn thuộc tính có giá trị null Thông qua ví dụ cụ thể, ta tiến hành xây dựng mô hình ER “CÔNGTY” Ngoài ra, nói đến mô hình EER, mở rộng mô hình ER Các khái niệm “mở rộng” lớp, lớp con, kiểu liên kết lớp cha/lớp con, chuyên biệt hoá, tổng quát hoá giới thiệu phân tích Chúng ta nói đến cách biểu diễn đồ hoạ mô hình ER EER V.2- Câu hỏi ôn tập 1- Hãy nói vai trò mô hình liệu bậc cao trình thiết kế sở liệu 2- Liệt kê trường hợp cần phải sử dụng giá trị null 3- Định nghĩa thuật ngữ sau: thực thể, thuộc tính, giá trị thuộc tính, thể liên kết, thuộc tính phức hợp, thuộc tính đa trị, thuộc tính suy diễn được, thuộc tính phức tạp, thuộc tính khoá, miền giá trị 4- Kiểu thực thể gì? Tập thực thể gì? Giải thích khác thực thể, kiểu thực thể tập thực thể 5- Giải thích khác thuộc tính tập giá trị - Kiểu liên kết gì? Giải thích khác thể liên kết, tập liên kết kiểu liên kết 7- Vai trò tham gia gì? Khi cần phải sử dụng tên vai trò mô tả kiểu liên kết 8- Mô tả cách ràng buộc cấu trúc kiểu liên kết 9- Với điều kiện thuộc tính kiểu liên kết cấp chuyển thành thuộc tính kiểu thực thể tham gia vào kiểu liên kết 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 toàn ký hiệu Phép tách không mát Hình IV-1 Thuật toá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 toá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 toá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 + - 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 quan hệ D vi phạm BCNF Mỗi lần vào vòng lặp thuật toá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 toán, tất quan hệ D BCNF 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 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 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−>BCDE, BC−>ADE, 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 toàn phụ thuộc Nếu muốn có phép tách có tính chất nối không mát bảo toà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 toà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 toán tổng hợp quan hệ với tính chất bảo toà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 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 toá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 toán sau Thuật toá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 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 toá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ệ quán 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 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 toàn X không phụ thuộc vào giá trị thuộc tính 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 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 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 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 siêu khóa Giả sử tách bảng NHÂNVIÊN thành hai bảng sau: NV_DA TênNV TênconNV DA01 Nam Lan DA02 Nam Hoa TênNV TênDA Nam Nam NV_CON 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 phụ thuộc đa trị không tầm thường 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 toá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 Đặ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 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, 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, phụ thuộc hàm R chuẩn BCNF 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 đ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 toà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ả R1 R2 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 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 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 toá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ả 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 quát dạng chuẩn có tính đến tất khóa dự tuyển quan hệ Trong phần IV trình bày nhiều thuật toán chuẩn hóa Đó thuật toá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 toàn phụ thuộc Một thuật toán kiểm tra phép tách không mát thuật toá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ả việc tổng hợp quan hệ BCNF có khả đảm bảo tính không mát, đảm bảo tính bảo toà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ì? 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 toà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 toà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 toà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 toà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: 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 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 [...]... 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Ệ IV- Các thuật toán thiết kế cơ sở dữ liệu quan hệ và các dạng chuẩn cao hơn Như chúng ta đã thảo luận trong đầu chương IV, có hai cách chính để thiết kế cơ sở dữ liệu quan hệ Cách thứ nhất là thiết kế trên-xuống (top-down design) Đây là cách hay được sử dụng nhất trong thiết kế ứng dụng cơ sở dữ liệu thương mại Nó... các cơ sở dữ liệu thực tế với hàng trăm thuộc tính là một điều rất khó khăn Vì vậy, thực tiễn thiết kế cơ sở dữ liệu hiện nay thường không chú ý đến nó Nói chung, trong thực tế thiết kế cơ sở dữ liệu, người ta chỉ chuẩn hóa các bảng đến 3NF, BCNF là đủ V- Tổng kết chương và câu hỏi ôn tập V.1- Tổng kết chương Trong chương này chúng ta đã nói đến các nguy hiểm có thể xảy ra trong việc thiết kế cơ sở dữ. .. đồ này không vi phạm BCNF) IV.2- Các thuật toán thiết kế lược đồ cơ sở dữ liệu quan hệ IV.2.1- Tách quan hệ và tính không đầy đủ của các dạng chuẩn Tách quan hệ: Các thuật toán thiết kế cơ sở dữ liệu quan hệ được trình bày trong phần này bắt đầu từ một lược đồ quan hệ vũ trụ đơn R = {A1, A2, …, An} chứa tất cả các thuộc tính của cơ sở dữ liệu Với giả thiết quan hệ vũ trụ, tên của mỗi thuộc tính là duy... tiếp cận và nhìn nhận việc thiết kế lược đồ cơ sở dữ liệu quan hệ một cách chặt chẽ trên cơ sở các phụ thuộc hàm được chỉ ra trên các thuộc tính của cơ sở dữ liệu Sau khi người thiết kế chỉ ra các phụ thuộc, người ta áp dụng một thuật toán chuẩn hóa để tổng hợp các lược đồ quan hệ Mỗi một lược đồ quan hệ riêng rẽ ở dạng chuẩn 3NF hoặc BCNF hoặc ở dạng chuẩn cao hơn Trong phần này chúng ta chủ yếu trình... dùng trong mô hìn hoá cơ sở dữ liệu? Định nghĩa các thuật ngữ: kiểu thực thể chủ, kiểu thực thể yếu, khoá bộ phận, kiểu liên kết xác định 13- Trình bày các khái niệm lớp, lớp con, chuyên biệt hoá, tổng quát hoá Trong hoàn cảnh nào ta cần tách một lớp thành các lớp con 14- Trình bày cách biểu diễn đồ hoạ của các mô hình ER và EER V.3- Bài tập Bài 1: Xây dựng mô hình ER cho cơ sở dữ liệu TRƯỜNG Hãy xây... nhất Tập hợp F các phụ thuộc hàm thỏa mãn trên các thuộc tính của R do những người thiết kế cơ sở dữ liệu chỉ ra sẽ được các thuật toán sử dụng Sử dụng các phụ thuộc hàm, các thuật toán sẽ tách lược đồ quan hệ vũ trụ R thành một tập hợp các lược đồ quan hệ D = {R1, R2, …, Rm}, tập hợp đó sẽ là lược đồ cơ sở dữ liệu quan hệ D được gọi là một phép tách (decomposition) của R Chúng ta phải đảm bảo rằng mỗi... bằng việc tổng hợp một lược đồ quan hệ rất lớn, gọi là quan hệ phổ quát (universal relation), chứa tất cả các thuộc tính của cơ sở dữ liệu Sau đó chúng ta thực hiện lặp đi lặp lại việc tách (decomposition) dựa trên các phụ thuộc hàm và các phụ thuộc khác do người thiết kế cơ sở dữ liệu chỉ ra cho đến khi không còn tách được nữa hoặc không muốn tách nữa IV.1- Định nghĩa tổng quát các dạng chuẩn Nói chung,... (giáo viên chủ nhiệm), người đó là một giáo viên 10) Sau mỗi học kỳ sẽ có một danh sách điểm để phân loại Nó gồm các thông tin: Mã sinh viên, mã học phần, điểm bằng chữ, điểm bằng số Bài 2: Xây dựng mô hình ER cho cơ sở dữ liệu THƯ VIỆN Hãy xây dựng lược đồ ER cho CSDL “THƯ VIỆN”, dựa trên các ghi chép sau: 1) Thư viện được chia ra thành các nhánh Thông tin về mỗi nhánh gồm có Mã nhánh, Tên nhánh và Địa... thể được suy diễn từ các phụ thuộc hàm có trong Ri là rất có lợi Ta gọi đó là điều kiện bảo toàn phụ thuộc Chúng ta muốn bảo toàn phụ thuộc bởi vì mỗi phụ thuộc trong F biểu thị một ràng buộc trong cơ sở dữ liệu Nếu như một trong các phụ thuộc không được thể hiện trong một quan hệ riêng rẽ Ri nào đó của phép tách, chúng ta không thể ép buộc ràng buộc này đối với quan hệ riêng rẽ, thay vào đó, chúng ta... đây: ∪ Ri =R Tính không đầy đủ của các dạng chuẩn: Mục đích của chúng ta là mỗi quan hệ riêng rẽ Ri trong phép tách D là ở dạng chuẩn BCNF hoặc 3NF Tuy nhiên, điều đó không đủ để đảm bảo một thiết kế cơ sở dữ liệu tốt Bên cạnh việc xem xét từng quan hệ riêng rẽ, chúng ta cần xem xét toàn bộ phép tách Ví dụ, xét hai quan hệ: NV_ĐĐ(Tên, ĐịađiểmDA) NV_DA1(Mã sốNV, Mã sốDA, Sốgiờ, TênDA, ĐịađiểmDA) Ở phần

Ngày đăng: 11/01/2016, 17:20

Từ khóa liên quan

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

Tài liệu liên quan