03/11/15 1
Update and Retrieval in a Relational
Database Through a Universal
Schema Interface (USI)
ACM Trans on DBMS, 1985
Nhóm thực hiện: Nhóm 9
Đỗ Thanh Toàn
Vũ Minh Trí
Võ Đình Phong
Phạm Cao Cường
VOLKERT BROSDA & GOTTFRIED VOSSEN
Môn học: Các Hệ CSDL Nâng cao
Giảng viên: PGS-TSKH Đồng Thị Bích Thủy
03/11/15 2
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 3
1. Đặt vấn đề
Trước đó muốn thao tác trên CSDL, cần phải biết
cấu trúc (bảng, thuộc tính) của nó
Ví dụ: C = {Q
i
, F
i
}
Truy vấn: GV(MaGV, Hoten), HOC(MaGV, MaSV, MaMon).
Hãy cho biết những sinh viên học giáo viên tên ABC ?
δ
Hoten=ABC
(GV HOC) Cần biết cấu trúc C (
)
)
Cập nhật (Update + Delete + Insert): diễn ra trên từng
Qi cũng cần biết cấu trúc C (
)
)
Lược đồ phổ quát (Universal schemas) giải
quyết
MAGV
03/11/15 4
1. Đặt vấn đề
Lý do cần lược đồ phổ quát
C = {Q
i
, F
i
} - Kết quả đã đạt được:
Truy vấn: δ
Hoten=ABC
Q
o
Cập nhật: Vẫn diễn ra trên từng Qi nên vẫn cần biết cấu trúc C
Người dùng cần được giải phóng khỏi việc phải biết cấu trúc CSDL
Mục tiêu của bài báo
03/11/15 5
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 6
2. Hướng tiếp cận
Giao diện lược đồ phổ quát giải quyết ntn:
Lưu trữ: Vẫn lưu trữ các Qi riêng biệt
Cung cấp giao diện Q
o
phục vụ cho:
Truy vấn: chỉ cần chiếu lên các thuộc tính mong
muốn không mới
Cập nhật: Thao tác trực tiếp trên Q
0
, hệ thống
tự kiểm tra tính hợp lệ của dữ liệu mới đóng
góp của bài báo này
Lưu ý: Update = Delete + Insert
03/11/15 7
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 8
3. PP giải quyết các TH – Khái niệm
Object: là tập thuộc tính được người dùng
quan tâm.
Tập các object được gọi là P
C = {Q
i
, F
i
, P
i
}: P
i
là tập đối tượng của qh
Qi
C
o
= {Q
o
, F
o
, P
o
}
với P
o
là tập gồm:
Tập các object P
Tập các thuộc tính Q
i
+
VT
∪
VP của các phụ thuộc hàm F
i
03/11/15 9
3. PP giải quyết các TH – Insert
Một bộ q được insert vào gọi là hợp lệ nếu:
Tập thuộc tính của nó phải là đối tượng (object)
Không làm mất tính nhất quán của CSDL
Cần xét q có khả năng ảnh hướng lên những Qi
nào
Tập các Qi như vậy gọi là vùng duy nhất, ký hiệu:
ureg(attr(q))
03/11/15 10
3. PP giải quyết các TH – Insert
Vấn đề: Xét thỏa ĐKDN như thế nào ?
Insert trong lược đồ phổ quát Insert trong lược đồ quan hệ
Một object q ∈ Qi được thêm
vào không vị phạm nhất quán
toàn cục nếu:
Tập thuộc tính của q
thỏa điều kiện duy nhất
(ĐKDN)
Nếu không, phải xét
trên vùng duy nhất
ureg(attr(q)) = {Q
i
q
, Các
Q
j
liên quan}
Một bộ q ∈ Qi được thêm
vào không vi phạm nhất
quán toàn cục nếu:
Qi thỏa ĐKDN chỉ
cần xét trong nội bộ Qi
Qi không thỏa ĐKDN
do những {Qj} nào?
phải xét q trên các
{Qj} này
03/11/15 11
3. PP giải quyết các TH – Insert
Xét thỏa điều kiện duy nhất
Nếu q không nằm gọn trong 1 Qi ? Tách q ra thành từng object con để insert
Cơ chế ràng buộc khóa ngoại
sửa đổi
Insert trong lược đồ phổ quát Insert trong lược đồ quan hệ
1. Dựa trên chuỗi kết hàm tối
tiểu phủ đầy các thuộc tính
của ureg(attr(q))
2. Chiếu lên tất cả Qj trong ureg
nếu q không vi phạm thì q
có thể thêm được
1. Dựa trên chuỗi kết hàm tối
tiểu phủ đầy các (Qj)
+
2. Chiếu lên tất cả Qj nếu q
không vi phạm thì q có thể
thêm được
03/11/15 12
3. PP giải quyết các TH – Insert
Nếu q là kết của nhiều quan hệ {Qj}
Chia q thành {q1, q2, …, qk} sao cho mỗi qj nằm
trọn trong 1 Qj (các qj phải là object)
Việc thêm q = thêm lần lượt các qj
“Xếp hạng” cho các Qj, thêm “lần lượt” nghĩa là thêm
theo thứ hạng từ thấp đến cao
Xếp hạng dựa theo sự ràng buộc khóa ngoại giữa các quan hệ khác
03/11/15 13
3. PP giải quyết các TH – Insert
Ví dụ vùng duy nhất + xác định chuỗi
kết hàm tối thiểu phủ đầy
<Q1(ABCDE),{A
<Q1(ABCDE),{A
→
→
DEB,B
DEB,B
→
→
ACDE,DE
ACDE,DE
→
→
ABC}>
ABC}>
<Q2(CDF){C
<Q2(CDF){C
→
→
D,C
D,C
→
→
F}>
F}>
<Q3(DI),{D
<Q3(DI),{D
→
→
I}> ; <Q4(FDH),{FD
I}> ; <Q4(FDH),{FD
→
→
H}>
H}>
<Q5(FG),{F
<Q5(FG),{F
→
→
G}> ; <Q6(GI),{I
G}> ; <Q6(GI),{I
→
→
G}>
G}>
Muốn xác định vùng duy nhất của CDF:
Muốn xác định vùng duy nhất của CDF:
Ta có CDF
Ta có CDF ∈
Q2
Q2
Xét điều kiện duy nhất của
Xét điều kiện duy nhất của
Q2
Q2
-
Đối với Q1: (Q
Đối với Q1: (Q
2
2
)
)
+
+
∪
Fi-F1
Fi-F1
ko chứa siêu khóa của Q1
ko chứa siêu khóa của Q1
-
Đối với Q3: (Q
Đối với Q3: (Q
2
2
)
)
+
+
∪
Fi-F3
Fi-F3
ko chứa siêu khóa của Q3
ko chứa siêu khóa của Q3
-
Đối với Q4: (Q
Đối với Q4: (Q
2
2
)
)
+
+
∪
Fi-F4
Fi-F4
ko chứa siêu khóa của Q4
ko chứa siêu khóa của Q4
-
Đối với Q5: (Q
Đối với Q5: (Q
2
2
)
)
+
+
∪
Fi-F5
Fi-F5
= CDFIG…
= CDFIG…
Chứa siêu khóa của Q5
Chứa siêu khóa của Q5
-
Đối với Q6: (Q
Đối với Q6: (Q
2
2
)
)
+
+
∪
Fi-F6
Fi-F6
= CDFIG…
= CDFIG…
Chứa siêu khóa của Q6
Chứa siêu khóa của Q6
Các quan hệ cần ktra theo CDF (hay Q2) là: {Q2, Q5,
Các quan hệ cần ktra theo CDF (hay Q2) là: {Q2, Q5,
Q6}
Q6}
Chuỗi kết hàm tối tiểu phủ đầy Q2
Chuỗi kết hàm tối tiểu phủ đầy Q2
+
+
, Q5
, Q5
+
+
, Q6
, Q6
+
+
là:
là:
Q2 Q3 Q5
Q2 Q3 Q5
03/11/15 14
3. PP giải quyết các TH – Insert
Ví dụ
TH1: Thêm (C,D,F)=(4,1,2)
TH1: Thêm (C,D,F)=(4,1,2)
r1: A B C D E r2: C D F
1 1 1
2 1 1
r3: D I
1 1
2 2
r4: F D H
r5: F G
2 1
r6: G I
1 1
2 2
CDFIG = (4,1,2,1,1)
CDFIG = (4,1,2,1,1)
Do chiếu CDFIG lên Q2, Q3, Q5 và Q6 đều hợp lệ
Do chiếu CDFIG lên Q2, Q3, Q5 và Q6 đều hợp lệ
(C,D,F)
(C,D,F)
trên là có thể chèn
trên là có thể chèn
TH2: Thêm (C,D,F)=(4,2,2)
TH2: Thêm (C,D,F)=(4,2,2)
CDFIG = (4,2,2,2,1)
CDFIG = (4,2,2,2,1)
Chiếu lên Q6 thi thấy vi phạm phụ thuộc hàm I
Chiếu lên Q6 thi thấy vi phạm phụ thuộc hàm I
G
G
(C,D,F)=(4,2,2) là không thể chèn
(C,D,F)=(4,2,2) là không thể chèn
03/11/15 15
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 16
3. PP giải quyết các TH – Delete
Đối tượng xóa phải nằm trọn trong 1 Qi
Nếu 1 tình trạng T của CSDL có được bằng
phép insert ở phần trước, khi đó xóa 1 bộ
q nào đó, tình trạng T’ mới cũng phải là
kết quả có được từ các hành động insert
03/11/15 17
3. PP giải quyết các TH – Delete
Ví dụ 1
Diễn giải – Xét ví dụ sau
r2: C D F
1 1 1
r3: D I
1 1
r5: F G
1 2
r6: G I
2 1
2 2
1. Xóa Object (C,F) = (1, 1)
C là khóa của R2, ngoài (C,F), còn có object (C,D) ứng với C=2
và 2 object này là độc lập nhau nếu xóa (C,F)=(1,1) mà
(C,D)=(1,1) cũng bị xóa là không hợp lý Yêu cầu Xóa(C,F)
“Xóa giá trị F=1 ứng với C=1 Thay (C,D,F)=(1,1,1)
bằng (C,D,F)=(1,1,null)
Lưu ý: người dùng chỉ thấy Qo, không thấy các {Qi}
03/11/15 18
3. PP giải quyết các TH – Delete
Ví dụ 2
Diễn giải – Xét ví dụ sau
r2: C D F
1 1 null
r3: D I
1 1
r5: F G
1 2
r6: G I
2 1
2 2
2. Xóa (I,G) = (2, 2)
I là khóa của R6. Không có object nào ứng với I=2 Xóa (2,2)
khỏi R6. Dễ thấy R6 không bị tham chiếu, vì vậy việc xóa hoàn
tất.
03/11/15 19
3. PP giải quyết các TH – Delete
Ví dụ 3
Diễn giải – Xét ví dụ sau
r2: C D F
1 1 null
r3: D I
1 1
r5: F G
1 2
r6: G I
2 1
3. Xóa (I,G) = (1, 2)
I là khóa của R6, object (D,I)=(1,1) cũng có giá trị I=1, và
R3(I)R6(I), vì vậy xóa (G,I) ở R6 cần xem xét thêm, xóa cả
những bộ chứa I tương ứng ở tất cả quan hệ khác
03/11/15 20
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 21
3. PP giải quyết các TH – Update
Trong bài báo này xem thao tác
update = delete + insert
Hướng giải quyết của update trong
lược đồ phổ quát là tổng hợp của 2
thao tác delete + insert
03/11/15 22
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 23
3. PP giải quyết các TH – Query
Truy vấn là tạo ra cửa sổ cho người dùng thấy được các
bộ họ mong muốn Phép truy vấn được gọi là phép tính
tạo ra các cửa sổ như vậy
Gọi X là tập thuộc tính cần truy vấn (trên Q
o
) – kí hiệu
[X]. X đạt được qua phép toán sau:
[X] = τ
X
(rep(d))
Với rep(d) là thể hiện tiêu biểu của CSDL; τ là phép Total
Projection, tức là chiếu lên tập X và trả ra những bộ
không chứa giá trị null.
Ví dụ:
retrieve (R)
where T = “Deadwood”
03/11/15 24
Nội dung
Đặt vấn đề
Hướng tiếp cận của bài báo
Phương pháp giải quyết cho các trường hợp
Insert
Delete
Update
Query
Kết luận
03/11/15 25
4. Kết luận
Đạt được
Tạo được giao diện Qo phục vụ cho truy vấn và câp
nhật
Che khuất 1 phần sự phức tạp cấu trúc CSDL
Hạn chế
Delete diễn ra trên từng object
Không hỗ trợ
“Delete all”
Không khớp nhau về quan điểm nhìn nhận giữa user
và designer về lược đồ CSDL và tên các thuộc tính
Người dùng vẫn phải biết đến “object” để cập nhật
Hạn chế của cách tiếp cận dựa trên Qo: Nếu CSDL có
quá nhiều thuộc tính, không thể yêu cầu người dùng
nhớ tất cả chúng. Thay vào đó, họ sẽ nhớ từng nhóm
attr cục bộ phục vụ cho công việc của mình