Thiết kế cơ sở dữ liệu mức logic

14 1.6K 4
Thiết kế cơ sở dữ liệu mức logic

Đ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

1 Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin Bộ môn Hệ thống Thông tin Chương 4 : Thiết kế Cơ sở dữ liệu mức logic 2 Nội dungNội dung • Dẫn nhập • Biểu diễn cấu trúc quan niệm dưới dạng đồ thị • Thuật toán biểu diễn cấu trúc CSDL quan hệ sang đồ thị quan hệ • Một số trường hợp đáng chú ý 3 Mục tiêuMục tiêu • Giai đoạn thiết kế logic là bước trung gian để giai đoạn thiết vật lý được thực hiện dễ dàng. – Biểu diễn lại mô hình CSDL mức quan niệm thành mô hình dữ liệu phù hợp với hệ quản trị sẽ dùng để cài đặt sau này.  Độc lập với các đặc trưng khác của hệ quản trị. – Chọn một biểu diễn ở dạng đồ thị phù hợp, làm cơ sở cho việc lựa chọn chỉ mục ở giai đoạn thiết kế vật lý. 4 Yêu cầu cho giai đoạn thiết kế logicYêu cầu cho giai đoạn thiết kế logic • Kết quả của giai đoạn thiết kế vật lý phải hoàn toàn “trung thực” với cấu trúc quan niệm: – Bảo toàn nội dung CSDL – Bảo toàn sự truy xuất trực tiếp đến các quan hệ của cấu trúc quan niệm.  Khi một quan hệ con Q i tồn tại trong cấu trúc quan niệm C, một bộ của Q i có thể được truy xuất trực tiếp (không cần thông qua một quan hệ nào khác). Cấu trúc logic phải bảo toàn khả năng này. – Bảo toàn tính hiệu quả trong việc kiểm tra ràng buộc toàn vẹn. 2 5 Yêu cầu cho giai đoạn thiết kế logic Yêu cầu cho giai đoạn thiết kế logic VDVD • Ví dụ 4.1 Cho cấu trúc mức quan niệm: NhânViên(Ma_NV, HoTen_NV, Ma_P ) Phòng (Ma_P, Ten_P) ĐềÁn(Ma_DA, Ten_DA, Ma_P) PhânCông (Ma_NV, Ma_DA), ràng buộc: Một nhân viên được phân công vào tất cả các đề án do phòng ban mà nhân viên đó trực thuộc phụ trách ) 6 Ví dụ 4.1 (tt)Ví dụ 4.1 (tt) – Xét cấu trúc logic sau: NhânViên(Ma_NV, HoTen_NV, Ma_P ) Phòng (Ma_P, Ten_P) ĐềÁn_1 (Ma_DA, Ten_DA) PhụTrách(Ma_DA, Ma_P) Không có quan hệ PhânCông: có bảo toàn nội dung không? Có bảo toàn sự truy xuất trực tiếp đến quan hệ PhânCông không? 7 Nội dungNội dung • Dẫn nhập • Biểu diễn cấu trúc quan niệm dưới dạng đồ thị • Thuật toán biểu diễn cấu trúc CSDL quan hệ sang đồ thị quan hệ • Một số trường hợp đáng chú ý 8 Một số khái niệm trong lý thuyết đồ thịMột số khái niệm trong lý thuyết đồ thị • Đồ thị G(N,C) được định nghĩa trên một tập nút N={n 1 ,n 2 ,n n } và một tập cung C={c 1 , c 2 ,c m } – Đồ thị có hướng nếu tồn tại một cung có hướng (khi đó các nút trong đồ thị gọi là nút đi hoặc nút đến), ngược lại đồ thị vô hướng (các nút gọi là nút xuất phát). – Đường đi (đối với đồ thị vô hướng) và mạch đi (đối với đồ thị có hướng) – Khuyên – Chu trình 3 9 Một số khái niệm trong lý thuyết đồ thị (tt)Một số khái niệm trong lý thuyết đồ thị (tt) – Dòng có gốc n 1 là một tập cung D = (c 1 , c 2 , ,c p ) sao cho:  Một cung trong tập D có nút xuất phát (hoặc nút đi) là n 1  ∀ n i là nút xuất phát (hoặc nút đi/ đến) của c i ∈ D, tồn tại một đường đi hoặc mạch đi từ gốc n 1 đến n i qua các cung của D. 10 Một số khái niệm trong LTĐT Một số khái niệm trong LTĐT –– ví dụví dụ • Ví dụ 4.4: (c 1 , c 2 ) là một dòng có gốc n 1 (c 1 , c 2 ) không là một dòng có gốc n 2 (c 1 , c 2 ) là một mạch đi (c 1 , c 2 ) là một dòng có gốc n 2 (c 1 , c 2 ) không là một mạch đi (c 1 , c 2 ) không là dòng của gốc nào cả (c 1 , c 2 ) là dòng của gốc n 1 , n 2 hoặc n 3 11 Đồ thị con đường truy xuấtĐồ thị con đường truy xuất • Định nghĩa: – Đồ thị con đường truy xuất là một đồ thị có hướng với:  N: Tập các nút của đồ thị  C⊆ (N x N): Tập các cung (có hướng)  Q: tập các quan hệ Q i .  Cđ: Tập các con đường truy xuất 12 Đồ thị con đường truy xuất Đồ thị con đường truy xuất –– Định nghĩa (tt)Định nghĩa (tt) – Mỗi cung trên đồ thị tương ứng với một con đường truy xuất – Một quan hệ Q i ∈ Q có thể là quan hệ nút (nếu nó tương ứng với một nút trên đồ thị) hoặc quan hệ cung (nếu nó ứng với một cung trên đồ thị). – Mỗi quan hệ cung Q C có thể tương ứng với tối đa hai cung ngược chiều nhau trên đồ thị, nút đến của cung này là nút đi của cung kia và ngược lại 4 13 Đồ thị con đường truy xuất (tt)Đồ thị con đường truy xuất (tt) – N i N j :Từ một quan hệ nút Q Ni có thể truy xuất từ 1 đến n bộ của quan hệ nút Q Nj thông qua con đường truy xuất tương ứng với c ij . – N i N j :Từ một quan hệ nút Q Ni có thể truy xuất đến 1 bộ của quan hệ nút Q Nj thông qua con đường truy xuất tương ứng với c ij – Trên mỗi con đường truy xuất có gắn một bản số (x 1 , x 2 , x 3 ) thể hiện số bộ tối thiểu, trung bình và tối đa có thể được truy xuất c ij c ij 14 Đồ thị con đường truy xuất _Ví dụ)Đồ thị con đường truy xuất _Ví dụ) • Ví dụ 4.2: Ngõ vào CSDL Ngõ vào CSDL 15 Ví dụ 4.2 (tt)Ví dụ 4.2 (tt) • Diễn giải: – Có hai ngõ vào CSDL: NhânViên_2 và ĐềÁn_2, nghĩa là cung cấp một giá trị Ma_NV (Ma_DA), ta có thể truy xuất ngay một bộ tương ứng trong quan hệ NhânViên_2 (ĐềÁn_2) – Từ một bộ NhânViên_2, ta có thể truy xuất trực tiếp một bộ của Phòng_2 mà nhân viên trực thuộc, thông qua con đường truy xuất NhânViên_2 → Phòng_2 – Từ một bộ của Phòng_2, ta có thể truy xuất trực tiếp danh sách các nhân viên của phòng thông qua con đường truy xuất Phòng_2 → NhânViên_2. – Từ một bộ của NhâhViên, ta không thể truy xuất trực tiếp danh sách các đề án mà nhân viên được phân công, do không có con đường truy xuất NhânViên_2 → ĐềÁn_2 16 Đồ thị con đường truy xuất thôĐồ thị con đường truy xuất thô • Là đồ thị con đường truy xuất đặc biệt, trong đó, nếu giữa hai nút của đồ thị có một cung thì bao giờ cũng tồn tại một cung theo chiều ngược lại. 5 17 Đồ thị quan hệĐồ thị quan hệ • Khái niệm: – Đồ thị quan hệ là một dạng đồ thị con đường truy xuất được đơn giản hoá – Giúp người thiết kế dễ dàng hơn trong việc đánh giá chất lượng của việc biểu diễn cấu trúc CSDL bằng đồ thị. – Đồ thị quan hệ là một đồ thị có hướng, với:  N Q : Tập nút  C Q ∈ N Q x N Q :tập cung có hướng hoặc vô hướng  Q Q : tập quan hệ Qi 18 Đồ thị quan hệ (tt)Đồ thị quan hệ (tt) • Diễn giải: – N i N j :  Q i , Q j là các quan hệ lần lượt ứng với hai nút N i và N j  có một phụ thuộc hàm K Qi → K Qj , với K Qi và K Qj lần lượt là một khóa của Q i và Q j  Quan hệ cung Q ij được hình thành từ tất cả các thuộc tính khóa của Q i , Q j : Q ji + = KQ i + ∪ KQ j + Q ij 19 Đồ thị quan hệ (tt)Đồ thị quan hệ (tt) – N i N j :  Không có phụ thuộc hàm giữa KQi và KQj  Q ji + = KQ i + ∪ KQ j +  Có thể được biểu diễn lại theo dạng: Q ij Quan hệ cung Q iji , Q ijj và Q ij đều được hình thành từ tập các thuộc tính khóa KQ i + ∪ KQ j + 20 Đồ thị quan hệ (tt)Đồ thị quan hệ (tt) • Ví dụ 4.3: 6 21 Biến đổi từ đồ thị con đường truy xuất thô sang đồ thị Biến đổi từ đồ thị con đường truy xuất thô sang đồ thị quan hệquan hệ – N Q = N – Q Q = Q – ∀c,c’ ∈ C có chiều ngược nhau và cùng ứng với một quan hệ cung Q c , ∃ c Q ∈ C Q sao cho c Q cũng ứng với quan hệ Q c trong Q Q.  Cung c Q là cung vô hướng nếu bản số của c và c’ đều có giá trị tối đa (max(c), max(c’)) lớn hơn 1  Ngược lại c Q là cung có hướng 22 Chuyển từ đồ thị quan hệ sang đồ thị con đường truy Chuyển từ đồ thị quan hệ sang đồ thị con đường truy xuất thôxuất thô – N =N Q – Q= Q Q – ∀c Q =(n 1 , n 2 ) ∈ C Q , (c Q ứng với một quan hệ Q c ∈ Q Q ), ∃ c,c’ ∈ C có chiều ngược nhau và cùng ứng với một quan hệ cung Q c ∈ Q.  Nếu c Q là cung vô hướng: max(c) >1 và max(c’)>1  Ngược lại max(c) =<1 hoặc max(c’) <= 1 – Các nút trong N đều là nút vào. 23 Chuỗi kết được cài đặt trên đồ thị quan hệChuỗi kết được cài đặt trên đồ thị quan hệ • Khái niệm chuỗi kết được cài đặt trên đồ thị quan hệ là cơ sở để đánh giá tính hiệu quả của cấu trúc logic khi thực hiện phép kết. 24 Chuỗi kết Chuỗi kết –– Định nghĩa với đồ thị con đường truy xuấtĐịnh nghĩa với đồ thị con đường truy xuất • Định nghĩa đối với đồ thị con đường truy xuất: – Một chuỗi kết p = Q 1 Q 2  Q m được cài đặt trên đồ thị con đường truy xuất (N,C,Q,Cđ ) nếu và chỉ nếu:  ∀ Q i , i=1 m, Q i ∈ Q  ∃ một dòng D = (c 1 , c 2 , ,c p ) trên đồ thị con đường truy xuất sao cho : – ∀ cung c i của D, c i ứng với một quan hệ Q j, trong chuỗi kết – ∀ Q i trong chuỗi kết : » Hoặc ∃ một cung c của D ứng với Q i » Hoặc ∃ một nút n trên D ứng với Q i 7 25 Chuỗi kết Chuỗi kết –– Định nghĩa với đồ thị quan hệĐịnh nghĩa với đồ thị quan hệ • Định nghĩa đối với đồ thị quan hệ: – Một chuỗi kết p = Q 1 Q 2  Q m được cài đặt trên đồ thị quan hệ (N Q ,C Q ,Q Q ) nếu và chỉ nếu:  ∀ Q i , i=1 m, Q i ∈ Q Q  ∃ một dòng D = (c 1 , c 2 , ,c p ) trên đồ thị quan hệ sao cho : – ∀ cung c i của D, c i ứng với một quan hệ Q j, trong chuỗi kết – ∀ Q i trong chuỗi kết : » Hoặc ∃ một cung c của D ứng với Q i » Hoặc ∃ một nút n trên D ứng với Q i 26 Chuỗi kết trên đồ thị Chuỗi kết trên đồ thị Ví dụVí dụ • Ví dụ 4.4: – Chuỗi kết (AX) (AB) (BY) (BC) (CZ) được cài đặt trên (a), (b), (d) nhưng không được cài đặt trên (c) 27 Chuỗi kết trên đồ thị Chuỗi kết trên đồ thị Diễn giảiDiễn giải • Nếu chuỗi kết p được cài đặt trên đồ thị, tồn tại một dòng D có gốc là n g . – Từ quan hệ Q g ứng với n g ta có thể truy xuất nhanh đến những bộ của Q i trong p thông qua các đường đi hoặc mạch đi xuất phát từ n g 28 Nội dungNội dung • Dẫn nhập • Biểu diễn cấu trúc quan niệm dưới dạng đồ thị • Thuật toán biểu diễn cấu trúc CSDL quan hệ sang đồ thị quan hệ • Một số trường hợp đáng chú ý 8 29 Thuật toánThuật toán • Vào: Cấu trúc CSDL mức quan niệm : p = {<Q i >}, mỗi Q i có tập khóa {K i } • Ra: Đồ thị quan hệ tương ứng với p 30 Thuật toán (tt)Thuật toán (tt) • Bước 1 : Biến p thành một phân rã đồng nhất: 1.1. Với mọi cặp quan hệ con Q i , Q j , nếu K i ↔K j , với K i và K j lần lượt là một khóa của Q i và Q j , thì gộp Q i , Q j lại thành một quan hệ. 1.2. Với mỗi (Q i , Q j ), nếu Q i + có chứa một khóa K j của Q j thì Q i + phải chứa tất cả các khoá của Q j (khi đó Q i có thể có thêm khoá) • Bước 2: Tạo nút và quan hệ nút Với mỗi quan hệ Q i , tạo một nút N i với Q Ni = Q i 31 Thuật toán (tt)Thuật toán (tt) • Bước 3: Tạo nút bản lề và quan hệ nút bản lề: – Mục đích: làm nổi bật các thuộc tính chung của mỗi cặp quan hệ nút. 3.1. ∀Q i , Q j , Q ij + = Q i + ∩ Q j + 3.2. Trong khi Q ij ≠ ∅  Xác định tất cả các khóa củaQ[Q ij + ], ký hiệu KQ ij + là tập thuộc tính khóa của Q[Q ij + ]  Nếu ¬∃ Q h ∈ p sao cho một khóa của Q h là một khoá của Q[Q ij + ] thì Tạo nút bản lề N bl với quan hệ tương ứng Q bl = Q[KQ ij + ] Cuối nếu  Q ij + := Q ij + - KQ ij + Cuối Trong khi 32 Thuật toán (tt)Thuật toán (tt) • Bước 4: Tạo cung (chỉ tạo số cung tối thiểu từ một nút) 4.1. ∀N i với Q i tương ứng, xác định:  PTH(N i ) = {N j với Q j tương ứng sao cho KQ j + ⊂ Q i + }  PTH_Thừa(N i ) = {N j ∈PTH(N i ) sao cho: ∃N h ∈ PTH(N i ) sao cho KQ j + ⊂ KQ h + }  Lồng_Khoá(N i ) = {N j với Q j tương ứng sao cho KQ j + ⊂ KQ i + }  Lồng_Khoá_Thừa (N i ) = {N j ∈ Lồng_Khoá(N i ) sao cho: ∃N h ∈ Lồng_Khoá(N i ) với Q h sao cho KQ j + ⊂ KQ h + }  Cung (N i ) = (PTH(N i ) – PTH_Thừa(N i ) ) ∪ ( Lồng_Khoá(N i ) – Lồng_Khoá_Thừa(N i ) ) Cuối ∀ 9 33 Thuật toán (tt)Thuật toán (tt) • Bước 4( tiếp) 4.2. ∀N j ∈ Cung(N i ) :  Tạo một cung có hướng từ N i → N j , ký hiệu c ij Cuối ∀ 4.3. Q ij = Q i [KQ i + ∪ KQ j + ] 34 Thuật toán (tt)Thuật toán (tt) • Bước 5: Hủy những nút bản lề thừa ∀N k thỏa các điều kiện: » Q k có một khóa duy nhất K k » Không có thuộc tính nào khác ngoài khóa » Chỉ có một cung vào N k , xuất phát từ nút N i Thì : (Vai trò bản lề của N k không còn cần thiết nữa)  Nhập N k vào N i (nhập Q k + vào Q i + )  Hủy cung c ik Cuối ∀ 35 Thuật toán (tt)Thuật toán (tt) • Bước 6: Mịn hóa các quan hệ nút ∀ N i với Q i tương ứng thì: ∀ N j ∈ Cung(N i ) với Q j tương ứng thì: Hủy khỏi Q i + những thuộc tính khóa của Q j mà không phải là thuộc tính khóa của Q i Cuối ∀ Cuối ∀ 36 Thuật toán (tt)Thuật toán (tt) • Bước 7: Tạo cung vô hướng: ∀ N k thỏa: » Q k không có thuộc tính không khóa (Q k + = KQ k + ) » Chỉ có hai cung ra khỏi N k (không có cung vào) đến N i và N j với Q i và Q j sao cho KQ k + = KQ i + ∪ KQ j + Thì  Tạo một cung vô hướng nối N i , N j với Q ij = Q k  Hủy nút N k  Hủy hai cung c ki và c kj 10 37 Ví dụVí dụ • Ví dụ 4.5 Cho cấu trúc quan niệm sau: 1. ĐĐH (Số_ĐĐH , Ngày_ĐH, TrịGiá) 2. MặtHàng (Mã_MH , Tên_MH, ĐơnGiá) 3. ChiTiếtĐĐH (Mã_MH, Số_ĐĐH , SL_ĐH) 4. Giao hàng (Số_GH , Ngày_GH, Số_ĐĐH) 5. ChiTiếtGH (Số_GH, Mã_MH , SL_GH, Số_ĐĐH) 38 Ví dụ 4.5 (tt)Ví dụ 4.5 (tt) – Bước 1: không có khóa tương đương giữa các quan hệ – Bước 2: Tạo nút 39 Ví dụ 4.5 (tt)Ví dụ 4.5 (tt) – Bước 3: Các tập thuộc tính chung khác rỗng của các cặp quan hệ:  1 và 3: So_ĐĐH, khoá của 1  1 và 4: So_ĐĐH, khoá của 1  1 và 5: So_ĐĐH, khoá của 1  2 và 3: Ma_MH, khoá của 2  2 và 5: Ma_MH, khoá của 2  3 và 5: Ma_MH, So_ĐĐH, khoá của tập này là (Ma_MH, So_ĐĐH) = khóa của 3  4 và 5: So_GH, So_ĐĐH, khóa của tập này là (So_GH) = Khoá của 4; loại bỏ So_GH, khóa của tập còn lại là (So_ĐĐH) = khóa của 1 Kết luận: Không tạo nút bản lề nào cả 40 Ví dụ 4.5 (tt)Ví dụ 4.5 (tt) – Bước 4 PTH(Q i ) PTH_ Thừa(Q i ) Lồng_ Khoá(Q i ) LK_Thừa (Q i ) Cung(Q i ) 1. ĐĐH ∅ - - - ∅ 2.MặtHàng ∅ - - - ∅ 3. ChiTiếtĐĐH 1,2 ∅ 1,2 ∅ 1,2 4. GiaoHàng 1 ∅ ∅ - 1 5.ChiTiếtGH 1,2,3,4 1,2 2,4 ∅ 2,3,4 Ghi chú “-” : không cần tính . phù hợp, làm cơ sở cho việc lựa chọn chỉ mục ở giai đoạn thiết kế vật lý. 4 Yêu cầu cho giai đoạn thiết kế logicYêu cầu cho giai đoạn thiết kế logic • Kết quả của giai đoạn thiết kế vật lý phải. học Khoa học Tự nhiên Khoa Công nghệ Thông tin Bộ môn Hệ thống Thông tin Chương 4 : Thiết kế Cơ sở dữ liệu mức logic 2 Nội dungNội dung • Dẫn nhập • Biểu diễn cấu trúc quan niệm dưới dạng đồ thị •. tiêuMục tiêu • Giai đoạn thiết kế logic là bước trung gian để giai đoạn thiết vật lý được thực hiện dễ dàng. – Biểu diễn lại mô hình CSDL mức quan niệm thành mô hình dữ liệu phù hợp với hệ quản

Ngày đăng: 27/01/2015, 15:50

Từ khóa liên quan

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

Tài liệu liên quan