Trường Đại học Khoa học Tự nhiênKhoa 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 dung • Dẫn nhập • Biểu diễn cấu trúc quan niệm dưới d
Trang 1Trườ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 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ú ý
Mụ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.
– 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ý.
Yê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.
một quan hệ nào khác) Cấu trúc logic phải bảo toàn khả năng này
Trang 2Yêu cầu cho giai đoạn thiết kế logic
Yêu cầu cho giai đoạn thiết kế logic VD VD
• 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)
đượ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)
– 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 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ị
• Đồ thị G(N,C) được định nghĩa trên một tập nút N={n1,n2,Jnn} và một tập cung C={c1, c2,Jcm}
– Đồ 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
Trang 3Một số khái niệm trong lý thuyết đồ thị (tt)
cho:
∀nilà nút xuất phát (hoặc nút đi/ đến) của ci ∈D, tồn tại một
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:
(c1, c2) là một dòng có gốc n1 (c1, c2) không là một dòng có gốc n2
(c1, c2) là một mạch đi
(c1, c2) là một dòng có gốc n2 (c1, c2) không là một mạch đi
(c1, c2) không là dòng của gốc nào cả
(c1, c2) là dòng của gốc n1, n2 hoặc n3
Đồ thị con đường truy xuất
• Định nghĩa:
– Đồ thị con đường truy xuất là một đồ thị có hướng với:
Q: tập các quan hệ Qi
Đồ 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
ứ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ị).
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
Trang 4Đồ thị con đường truy xuất (tt)
được truy xuất
cij
cij
14
Đồ 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)
• 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ô
• 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.
Trang 5Đồ 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:
NQ: Tập nút
18
Đồ thị quan hệ (tt)
• Diễn giải:
Qi, Qjlà các quan hệ lần lượt ứng với hai nút Nivà Nj
khóa của Qivà Qj
của Qi, Qj: Qji+= KQi+∪KQj+
Qij
Đồ thị quan hệ (tt)
Qji+= KQi+∪KQj+
Qij
Quan hệ cung Qiji, Qijjvà Qijđều được hình thành từ tập các thuộc tính khóa KQi+∪KQj+
Đồ thị quan hệ (tt)
• Ví dụ 4.3:
Trang 6Biến đổi từ đồ thị con đường truy xuất thô sang đồ thị
quan hệ
– ∀c,c’ ∈ C có chiều ngược nhau và cùng ứng với một
tối đa (max(c), max(c’)) lớn hơn 1
22
Chuyển từ đồ thị quan hệ sang đồ thị con đường truy xuất thô
– 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ệ
• 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:
đồ thị con đường truy xuất (N,C,Q,Cđ ) nếu và chỉ nếu:
∀Qi, i=1 m, Qi∈ Q
∃một dòng D = (c1, c2,b ,cp) trên đồ thị con đường truy xuất sao cho :
– ∀ cung ci của D, ciứng với một quan hệ Qj, trong chuỗi kết – ∀ Qi trong chuỗi kết :
Trang 7Chuỗ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ệ:
∀Qi, i=1 m, Qi∈ QQ
∃một dòng D = (c1, c2,b ,cp) trên đồ thị quan hệ sao cho :
– ∀ cung ci của D, ciứng với một quan hệ Qj, trong chuỗi kết
– ∀ Qi trong chuỗi kết :
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)
Chuỗi kết trên đồ thị
Chuỗi kết trên đồ thị Diễn giải Diễ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à ng
Nộ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ú ý
Trang 8Thuật toán
• Vào: Cấu trúc CSDL mức quan niệm :
p = {<Qi>}, mỗi Qicó tập khóa {Ki}
• Ra: Đồ thị quan hệ tương ứng với p
30
Thuật toán (tt)
• Bước 1 : Biến p thành một phân rã đồng nhất:
thành một quan hệ.
thể có thêm khoá)
• Bước 2: Tạo nút và quan hệ nút
31
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.
Xác định tất cả các khóa củaQ[Qij+], ký hiệu KQij+là tập thuộc
tính khóa của Q[Qij+]
Q[Qij+] 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
Qij+ := Qij+- KQij+
Cuối Trong khi
32
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)
PTH(Ni) = {Njvới Qjtương ứng sao cho KQj+⊂ Qi+}
∃Nh∈PTH(Ni) sao cho KQj+⊂KQh}
Lồng_Khoá(Ni) = {Njvới Qjtương ứng sao cho KQj+⊂KQi+}
sao cho KQj+⊂KQh}
Cung (Ni) = (PTH(Ni) – PTH_Thừa(Ni) )
Cuối ∀
Trang 9Thuật toán (tt)
• Bước 4( tiếp)
Cuối ∀
34
Thuật toán (tt)
• Bước 5: Hủy những nút bản lề thừa
» Không có thuộc tính nào khác ngoài khóa
Nhập Nkvào Ni(nhập Qk+vào Qi+)
Cuối ∀
Thuật toán (tt)
• Bước 6: Mịn hóa các quan hệ nút
Cuối ∀
Cuối ∀
Thuật toán (tt)
• Bước 7: Tạo cung vô hướng:
» Qkkhông có thuộc tính không khóa (Qk+= KQk+)
Njvới Qivà Qjsao cho KQk+= KQi+∪KQj+
Thì
Tạo một cung vô hướng nối Ni, Njvới Qij= Qk
Trang 10Ví 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)
– 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)
– 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
40
Ví dụ 4.5 (tt)
– Bước 4
)
Lồng_
Khoá(Qi)
LK_Thừa (Qi)
)
Ghi chú “-” : không cần tính
Trang 11Ví dụ 4.5 (tt)
Các quan hệ cung:
42
Ví dụ 4.5
– Kết quả của bước 1-4
Ví dụ 4.5 (tt)
– Bước 5: Không thực hiện, vì không tạo nút bản lề nào
– Bước 6:
– Bước 7: không tạo được cung vô hướng nào cả.
Ví dụ 4.5 (tt)
– Kết quả thuật toán:
Trang 12Biến đổi từ đồ thị quan hệ sang cấu trúc CSDL quan hệ
• Mục đích: kiểm chứng xem cấu trúc quan hệ biểu diễn
dưới dạng đồ thị quan hệ có hoàn toàn tương đương với
cấu trúc ban đầu hay không.
• Thuật toán:
đồ thị quan hệ về cấu trúc CSDL quan hệ:
p-1= {Qi} ∪{Qij}, với Qilà quan hệ nút và Qijlà quan hệ cung
46
Nộ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ú ý
47
Một số trường hợp đáng chú ý
• Trường hợp 1
Cho cấu trúc quan hệ phổ quát:
A →Y; B →Z }>
Và cấu trúc quan niệm:
<Q2(ABX) , F2= {AB →X}> ;
<Q3(AY) , F3= {A →Y}>;
<Q4(BZ) , F4={B →Z}> }
48
Một số trường hợpN Một số trường hợpN Trường hợp 1(tt) Trường hợp 1(tt)
Trang 13Một số trường hợpN
Một số trường hợpN Trường hợp 1(tt) Trường hợp 1(tt)
• Nhận xét:
– Các đồ thị tương đương nhau ở góc độ thao tác quan
hệ: các chuỗi kết dựa trên thuộc tính chung có thể đặt
ra trên cấu trúc CSDL này đều được cài đặt trên cả 4 đồ
thị:
– Đồ thị (a) và (d) : dòng (12, 23)
– Đồ thị (b) : dòng (13)
– Đồ thị (c): dòng (13) hoặc (12, 23)
50
Một số trường hợpN Một số trường hợpN Trường hợp 1(tt) Trường hợp 1(tt)
• Nhận xét (tt)
– Tuy nhiên, cách truy xuất sẽ khác nhau trên các đồ thị
Ví dụ: Truy xuất Q0 [AB]:
– Đồ thị (a), (c), (d): truy xuất chỉ ở nút 2 : Q2[AB]
Một thể hiện minh họa cho đồ thị (b):
TQ1
TQ2
Một số trường hợpN
Một số trường hợpN Trường hợp 1(tt) Trường hợp 1(tt)
• Nhận xét (tt)
– Các đồ thị cũng có ý nghĩa khai thác khác nhau:
trước những bộ dạng (s,a,-,t)
Một số trường hợpN Một số trường hợpN Trường hợp 1(tt) Trường hợp 1(tt)
• Nhận xét (tt)
– Thuật toán chuyển từ cấu trúc CSDL sang đồ thị quan
hệ đã trình bày đề nghị đồ thị (a):
con đường truy xuất để người thiết kế có cái nhìn gọn nhất
sau với các tiêu chí : ý đồ khai thác, tần suất khai thác,b
Trang 14Một số trường hợpN
Một số trường hợpN Trường hợp 2 Trường hợp 2
Cho cấu trúc phổ quát:
AD → CY; C →AB;
AB →CZ }>
Và cấu trúc CSDL quan niệm:
C →AB; AB → C}>;
54
Một số trường hợpN Một số trường hợpN Trường hợp 2 (tt) Trường hợp 2 (tt)
C/AB// Z
CD/ AD// Y
CDE/ AE //X
Q 3
Q 2
Q 1
Q 12 (CDE/ AE //)
Q 23 (CD/ AD// B)
(b)
Q 13 (CDE/ AE// B)
55
Một số trường hợpN
Một số trường hợpN Trường hợp 2 (tt) Trường hợp 2 (tt)
• Nhận xét:
– Cung (13) thể hiện phụ thuộc hàm không hiển nhiên
AE → AB
– Thuật toán đề nghị đồ thị (b)