Tải bản đầy đủ (.pdf) (14 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (944.83 KB, 14 trang )

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

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

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
11
41
Ví dụ 4.5 (tt)Ví dụ 4.5 (tt)
Các quan hệ cung:
 Cung 31: CTĐĐH_ĐĐH (Ma_MH, So_ĐĐH)
 Cung 32: CTĐĐH_MH(Ma_MH, So_ĐĐH)
 Cung 41: GH_ĐĐH(So_GH, So_ĐĐH)
 Cung 52: CTGH_MH (So_GH, Ma_MH)
 Cung 53: CTGH_CTĐĐH (So_GH, Ma_H, So_ĐĐH)
 Cung 54: CTGH_GH (So_GH, Ma_MH)
42

Ví dụ 4.5Ví dụ 4.5
– Kết quả của bước 1-4
43
Ví dụ 4.5 (tt)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:
 Trong quan hệ nút GiaoHàng, loại bỏ thuộc tính Số_ĐĐH
 Trong quan hệ nút ChiTiếtGH, loại bỏ thuộc tính Số_ĐĐH
– Bước 7: không tạo được cung vô hướng nào cả.
44
Ví dụ 4.5 (tt)Ví dụ 4.5 (tt)
– Kết quả thuật toán:
12
45
Biến đổi từ đồ thị quan hệ sang cấu trúc CSDL quan hệBiế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:
– Gọi p
-1
là tập quan hệ con có được sau khi biến đổi từ
đồ thị quan hệ về cấu trúc CSDL quan hệ:
p
-1
= {Q
i
} ∪{Q
ij
}, với Q

i
là quan hệ nút và Q
ij
là quan hệ cung
– Gộp các quan hệ có cùng khóa trong p
-1
lại thành một.
46
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ú ý
47
Một số trường hợp đáng chú ýMột số trường hợp đáng chú ý
• Trường hợp 1
Cho cấu trúc quan hệ phổ quát:
C
0
= <Q
0
(SABXYZT), F
0
={S →ABT; AB →X;
A →Y; B →Z }>
Và cấu trúc quan niệm:
C
1
= { <Q

1
(SABT), F
1
= {S →ABT}>;
<Q
2
(ABX) , F
2
= {AB →X}> ;
<Q
3
(AY) , F
3
= {A →Y}>;
<Q
4
(BZ) , F
4
={B →Z}> }
48
Một số trường hợp Một số trường hợp Trường hợp 1(tt)Trường hợp 1(tt)
Có thể biểu diễn C
1
ở dạng đồ thị theo 4 cách sau:
13
49
Một số trường hợp Một số trường hợp 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ị:
 Ví dụ: muốn truy xuất Q
0
[STAY]
– Đồ 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ợp Một số trường hợp 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 Q
0
[AB]:
– Đồ thị (a), (c), (d): truy xuất chỉ ở nút 2 : Q
2
[AB]
– Đồ thị (b): dòng (13, 14) và nút 2: (Q
13
Q
14
)[AB] ∪ Q
2
[AB]
Một thể hiện minh họa cho đồ thị (b):
S A B T
s
1
a

1
b
3
t
1
s
2
a
3
b
2
t
2
TQ
1
A B X
a
1
b
1
x
1
a
1
b
3
x
2
TQ
2

A Y
a
1
y
1
a
2
y
2
a
3
y
3
TQ
3
B Z
b
1
z
1
b
2
z
2
b
3
z
3
TQ
4

51
Một số trường hợp Một số trường hợp 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:
 Với đồ thị (c): người sử dụng có thể tạo các bộ Q
0
[SA] độc lập
với những bộ Q
0
[SAB], thông qua cung (13) , tức là có thể nhập
trước những bộ dạng (s,a,-,t)
 Tương tự, với đồ thị (d), người sử dụng có thể tạo các bộ
Q
0
[SB] độc lập với những bộ Q
0
[SAB], thông qua cung (14)
 Trong đồ thị (a): không có khả năng này.
– Khi cài đặt, trên quan hệ Q
1
phải khai báo:
 Đồ thị (a) : Một chỉ mục (AB)
 Đồ thị (b): hai chỉ mục (A) và (B)
 Đồ thị (c): hai chỉ mục (AB) và (A)
 Đồ thị (d): hai chỉ mục (AB) và (B)
52
Một số trường hợp Một số trường hợp 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):

 Mục tiêu là cung cấp một biểu diễn đồ thị không trùng lắp trên
con đường truy xuất để người thiết kế có cái nhìn gọn nhất
 Các biến thể (đồ thị (b), (c), (d) ) sẽ được cân nhắc ở giai đoạn
sau với các tiêu chí : ý đồ khai thác, tần suất khai thác,
14
53
Một số trường hợp Một số trường hợp Trường hợp 2Trường hợp 2
Cho cấu trúc phổ quát:
C
0
= <Q
0
(ABCDEXYZ), F
0
= {CDE →X; AE →CDB;
AD → CY; C →AB;
AB →CZ }>
Và cấu trúc CSDL quan niệm:
C
1
= {<Q
1
(CDE
/AE BX), F
1
= {CDE →ABX; AE → CDBX;
C →AB; AB → C}>;
<Q
2
(CD

/ AD Y), F
2
= {CD →AY; AD →CY; C →A}>;
< Q
3
(C
/ AB Z), F
3
= {C →ABZ; AB →CZ}>}
54
Một số trường hợp Một số trường hợp Trường hợp 2 (tt)Trường hợp 2 (tt)
Hai đồ thị quan hệ của C
1
:
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ợp Một số trường hợp 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)

×