G i á o v i ê n : P G S . TS. Đ ồ n g Th ị B í c h T h ủ y
H ọ c v i ê n : H u ỳ n h T h ị L ệ Q u y ê n
M ã s ố : 1 2 1 2 0 3 2
Đ i t ng t i đ i và ng nghĩa c a ố ượ ố ạ ữ ủ
c s d li u quan h ph quátơ ở ữ ệ ệ ổ
Maximal Objects and the Semantics
of Universal Relation Databases
Q1:COI_THI:
Q2: GD
Q3:CT-M
Q: (quan hệ phổ quát)
Cho phép người dùng
truy vấn trên Q.
Đ t v n đặ ấ ề
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 101 CSDL Y
Tran-v-C 2 10-12 101 CSDL Y
Đ t v n đặ ấ ề
Gi thuy t (theo Fagin, Mendelzon, Ullman)ả ế :
Quan h ph quát có th đ c mô t b ng ệ ổ ể ượ ả ằ
1) M t ph thu c k t vàộ ụ ộ ế
2)T p các ph thu c hàm.ậ ụ ộ
Gọi r là quan hệ trên lược đồ R và R1,R2,…,Rn là quan hệ con trong R.
Ta nói rằng có phụ thuộc kết nối giữa các R1, R2 , ,Rn
và kí hiệu {R1,R2 , ,Rn} nếu nối của các phép chiếu của r lên các tập
R1,R2 , ,Rm tương ứng bằng chính nó.
Hay ta có r = r.R1 r.R2 r.Rn
Một phép kết Ri (1≤ i ≤ n ) gọi là phụ thuộc kết nếu Ui=1 Ri = R
B k t qu t trên quan h ph quát, trên m i thu c tính đ u không đ c có ộ ế ả ệ ổ ọ ộ ề ượ
giá tr khác r ngị ỗ
Q1:COI_THI:
Q2: GD
Q3:LICH-KT
Q: (quan hệ phổ quát)
Đ t v n đặ ấ ề
M GV
Gi i thu tả ậ X
CSDL Y
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 CSDL Y
Tran-v-C 2 10-12 CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12
Tran-v-C 2 10-12
GV-CT N G P
Ng-v-A 2 8-10 101
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
Vo-v-D 2 8-10 103
Q1:COI_THI:
Q2: GD
Q3:CT-M
Q: (quan hệ phổ quát)
Đ t v n đặ ấ ề
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
Vo-v-D Gi i thu tả ậ
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 101 CSDL Y
Tran-v-C 2 10-12 101 CSDL Y
Vo-v-D 2 8-10 103 Gi i thu tả ậ X
Đầu vào: các lược đồ quan hệ, tập đối tượng dữ liệu và biểu thức truy vấn.
retrieve <atrribute list>
where <condition>
Đầu ra: Biểu thức là chuỗi kết nối tối tiểu các Qi thỏa câu truy vấn.
Truy v n trên quan h ph quátấ ệ ổ
Giải thuật 1:
Bước 1: Kết tự nhiên các quan hệ tạo ra quan hệ phổ quát Q với p biến bộ.
Bước 2: Với mỗi bộ phân biệt, tách thành các quan hệ Qi dựa trên các “đối
tượng” cho trước.
Bước 3: Áp dụng điều kiện chọn trong câu truy vấn để chọn các bộ trên quan
hệ phổ quát thỏa điều kiện.
Bước 4: Áp dụng phép chiếu để chọn ra các thuộc tính mà người dùng cần
trong câu truy vấn.
Bước 5: (Bước cải tiến) Tìm ra phép kết nối tối tiểu của các Qi mà kết quả
của phép kết này trùng với kết quả của bước 4.
Q1:COI_THI:
Q2: GD
Q3:CT-M
Đ t v n đặ ấ ề
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
retrieve t.P
where t.G = ‘8-10’
{GV-CT, N, G, P} , {M, GV}, {GV-CT, M}
Ví dụ
Q1:COI_THI:
Q2: GD
Q3:CT-M
Q: (quan hệ phổ quát)
Đ t v n đặ ấ ề
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 101 CSDL Y
Tran-v-C 2 10-12 101 CSDL Y
Q(GV-CT, N, G, P, M, GV)
Đ t v n đặ ấ ề
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 101 CSDL Y
Tran-v-C 2 10-12 101 CSDL Y
Q1:COI_THI:
Q2: GD
Q3:CT-M
GV-CT N G P M GV
GV-CT M
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
Ng-v-A 2 8-10 101
CSDL Y
Gi i ả
thu tậ
X
CSDL Y
Tran-v-C CSDL
Ng-v-A Gi i ả
thu tậ
Ng-v-B CSDL
{GV-CT, N, G, P} , {M, GV},
{GV-CT, M}
Q: được tạo bởi phụ thuộc kết vì Ui=1 Qi = Q
retrieve t.P
where t.G = ‘8-10’
retrieve t.P
where t.G = ‘8-10’
Q1:COI_THI:
Q2: GD
Q3:CT-M
Đ t v n đặ ấ ề
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i ả
thu tậ
X
Ng-v-B 2 10-12 101 CSDL Y
Tran-v-C 2 10-12 101 CSDL Y
Q: σG = ‘8-10’ Q1 Q2 Q3 Q: Q1 Q2 Q3
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i ả
thu tậ
X
retrieve t.P
where t.G = ‘8-10’
Q1:COI_THI:
Q2: GD
Q3:CT-M
Đ t v n đặ ấ ề
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
Q: σG = ‘8-10’ Q1 Q2 Q3
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i ả
thu tậ
X
Q: ∏P σG = ‘8-10’ Q1 Q2 Q3
P
101
retrieve t.P
where t.G = ‘8-10’
Q1:COI_THI:
Q2: GD
Q3:CT-M
Đ t v n đặ ấ ề
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12 101
Tran-v-C 2 10-12 101
M GV
Gi i ả
thu tậ
X
CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
P
101
Q: ∏P σG=‘8-10’ Q1
P
101
Q: ∏P σG = ‘8-10’ Q1
Q1:COI_THI:
Q2: GD
Q3:CT-M
Q: (quan hệ phổ quát)
Nh n xét gi i thu t truy v n 1ậ ả ậ ấ
GV-CT N G M
Ng-v-A 2 8-10 Gi i ả
thu tậ
Ng-v-B 2 10-12 CSDL
M GV
Gi i ả
thu tậ
X
CSDL Y
N G P M
2 8-10 101 Gi i ả
thu tậ
2 10-12 101 CSDL
2 10-12 103 CSDL
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 101 CSDL Y
103
Q1:COI_THI:
Q2: GD
Q3:LICH-KT
Q: (quan hệ phổ quát)
Nh n xét gi i thu t truy v n 1ậ ả ậ ấ
M GV
Gi i thu tả ậ X
CSDL Y
GV-CT N G P M GV
Ng-v-A 2 8-10 101 Gi i thu tả ậ X
Ng-v-B 2 10-12 CSDL Y
Tran-v-C 2 10-12 CSDL Y
GV-CT M
Ng-v-A Gi i thu tả ậ
Ng-v-B CSDL
Tran-v-C CSDL
GV-CT N G P
Ng-v-A 2 8-10 101
Ng-v-B 2 10-12
Tran-v-C 2 10-12
GV-CT N G P
Ng-v-A 2 8-10 101
Gi i quy t v n đ n y sinhả ế ấ ề ả
Cách xác định được lược đồ cơ sở dữ liệu có vấn
đề nhất quán toàn cục?
Cách giải quyết vấn đề truy vấn cho các lược đồ
trên?
Ki m tra l c đ CDSL nh t quán toàn c c?ể ượ ồ ấ ụ
-
Xây dựng một siêu đồ thị (hypergraph) từ phụ
thuộc kết (Q1,Q2,….Qn) (lược đồ cơ sở dữ liệu
đã thiết kế)
-
Nếu siêu đồ thị đó có chu trình thì chứng tỏ ít
nhất một thuộc tính trong các quan hệ Qi đã có sự
“đa nghĩa”. Do đó dẫn tới sự không nhất quán toàn
cục.
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
Siêu đ th H(X,Y) bao g m:ồ ị ồ
X là t p các node, m i node là m t thu c tính trong quan h ậ ỗ ộ ộ ệ
Qi
Y là t p các c nh, v i m i c nh bao g m t t c các thu c tính ậ ạ ớ ỗ ạ ồ ấ ả ộ
có trong quan h Qiệ
Ví d : L c đ v i các quan h : ABC, ACD, BE. Có ụ ượ ồ ớ ệ
th bi u di n l c đ này b ng siêu đ th ể ể ễ ượ ồ ằ ồ ị
H({A,B,C,D,E},{ABC, ACD, BE}}
Xây d ng siêu đ thự ồ ị
A
C
D
B E
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
Áp dụng luật Graham cho H(X,Y):
+ Xoá thuộc tính A X nếu A có bậc 1(chỉ xuất hiện duy ∈
nhất trong một “cạnh”).
+ Xoá cạnh E1 nếu E1,E2 Y và E1 E2∈ ⊆
+ Xoá cạnh E nếu E = Ø
Nếu siêu đồ thị H không còn một cạnh hay một node
nào thì siêu đồ thị H không có chu trình.
Ngược lại là siêu đồ thị có chu trình.
Thu t toán ki m tra siêu đ th có chu trình hay không?ậ ể ồ ị
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
A
C
D
B E
+ Xoá thuộc tính A X nếu A có bậc 1(chỉ ∈
xuất hiện duy nhất trong một “cạnh”).
+ Xoá cạnh E1 nếu E1,E2 Y và E1 E2∈ ⊆
+ Xoá cạnh E nếu E = Ø
L c đ v i các quan h : ượ ồ ớ ệ
Q1(ABC), Q2(ACD), Q3(BE).
Siêu đ th H({A,B,C,D,E},{ABC, ồ ị
ACD, BE}}
A
C
D
B E
+ Xoá D, E (E, D bậc 1)
+ Xoá cạnh {A,C},{B} ({A,C}, {B} {A,B,C})⊆
+ Xoá A, B, C (bậc 1)
+ Xoá cạnh chứa A, B, C do rỗng
Không có chu trình
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
- Xây dựng một lược đồ cơ sở dữ liệu cho nghiệp vụ quản lý ngân hàng
-
Xác định các thuộc tính như sau:
BNK (ngân hàng)
ACC (mã tài khoản)
L (mã vay)
C (khách hàng)
AMT (số tiền vay )
BAL (số tiền gửi)
ADR (địa chỉ khách hàng)
- Lược đồ quan hệ phổ quát như sau: Q( C, ADR, L, AMT, ACC, BAL}
-
Xác định mối quan hệ:
+ Một khách hàng(C) có thể mở nhiều tài khoản(ACC).
+ Một tài khoản(ACC) xác định một số tiền gửi (BAL).
+ Một tài khoản(ACC) phải thuộc một ngân hàng(BNK).
+ Một khách hàng(C) có thể nhiều khoản vay(L).
+ Một khoản vay(L) xác định một số tiền vay(AMT).
+ Một khoản vay(L) phải thuộc một ngân hàng(BNK).
+ Một khách hàng(C)có một địa chỉ nhà cụ thể(ADR).
-
Từ đó, xác định các phụ thuộc hàm, phụ thuộc đa trị:
C ->-> ACC. C ->-> L.
ACC -> BAL. L -> AMT.
ACC -> BNK. L -> BNK.
C -> ADR.
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
-
Từ mối quan hệ của các phụ thuộc hàm, phụ thuộc đa trị định ra các đối
tượng.
-
Về bản chất, đối tượng là một tập các thuộc tính tối thiểu có mối quan hệ
ngữ nghĩa với nhau.
-
Tác giả xác định được 7 đối tượng:
1. OWN(acc,c). 4. HOLD (c,l)
2. HAS(acc,bal). 5. FOR (l,amt)
3. ACCAT(acc,bnk). 6. LAT (bnk,l)
7. LIVES(c,adr)
-
Các phụ thuộc hàm, phụ thuộc đa trị:
C ->-> ACC. C ->-> L.
ACC -> BAL. L -> AMT.
ACC -> BNK. L -> BNK.
C -> ADR.
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
-
Từ các đối tượng, xây dựng các quan hệ con tương ứng:
1. Q1(ACC,C). 4. Q4 (C,L).
2. Q2(ACC,BAL). 5. Q5 (L,AMT).
3. Q3(ACC,BNK). 6. Q6 (BNK,L).
7. Q7(C,ADR).
-
7 đối tượng:
1. OWN(acc,c). 4. HOLD (c,l)
2. HAS(acc,bal). 5. FOR (l,amt)
3. ACCAT(acc,bnk). 6. LAT (bnk,l)
7. LIVES(c,adr).
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
-
Lược đồ cơ sở dữ liệu:
1. Q1(ACC,C). 4. Q4 (C,L).
2. Q2(ACC,BAL). 5. Q5 (L,AMT).
3. Q3(ACC,BNK). 6. Q6 (BNK,L).
7. Q7(C,ADR).
-
Vẽ siêu đồ thị.
Có chu trình
Áp dụng
Graham
Ki m tra l c đ CDSL nh t quán toàn c cể ượ ồ ấ ụ
BA
L
C
L
AM
T
AC
C
BN
K
BAL
ADR
ACC
BNK
AMT
C
BA
L
C
L
AM
T
AC
C
BN
K
BAL
ADR
ACC
BNK
AMT
C
+ Xoá BAL, ADR, AMT
+ Xoá cạnh {C},{ACC} ,{L}
Truy v n trên quan h ph quátấ ệ ổ
Định nghĩa 2 đối tượng tối đại:
+ Khách hàng gửi tiền trong
ngân hàng:
MO1 = {C-ADR, C-ACC, ACC-
BAL, ACC-BNK}.
+ Khách hàng vay tiền từ ngân
hàng:
MO2 = {C-ADR, C-L, L-AMT,
L-BNK}.