Cơ sở dữ liệu nâng cao - Buổi 8

III.6 Chuổi kết ñược cài ñặt trên ñồ thị (nhắc

lại)

III.7 Thuật toán biến ñổi cấu trúc CSDLQH

III.8 Chuyển từ ñồ thị quan hệ sang cấu trúc

CSDL quan hệ

pdf25 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2389 | Lượt tải: 1download
Tóm tắt nội dung Cơ sở dữ liệu nâng cao - Buổi 8, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Buổi # 8 
(lớp TH2008-1)
Cơ sở dữ liệu nâng cao
Đồng Thị Bích thủy
26/10/2010
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
2
Nội dung tuần này
III.6 Chuổi kết ñược cài ñặt trên ñồ thị (nhắc 
lại)
III.7 Thuật toán biến ñổi cấu trúc CSDLQH
III.8 Chuyển từ ñồ thị quan hệ sang cấu trúc 
CSDL quan hệ
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
3
III.6 Chuỗi kết ñược cài ñặt trên 
ĐTQH / ñồ thị CĐTX (nhắc lại)
 Khái niệm chui kt ñ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 lô-gíc khi thực hiện phép 
kết.
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
4
Lấy lại Ví dụ 3.1
Cho cấu trúc mức quan niệm: 
NhânViên (Ma_NV, HoTen_NV, Ma_P)
NhânViên_2 (Ma_NV, HoTen_NV)
Thuộc (Ma_NV, Ma_P)
Phòng (Ma_P, Ten_P)
ĐềÁn (Ma_DA, Ten_DA, Ma_P)
ĐềÁn_2 (Ma_DA, Ten_DA)
PhụTrách (Ma_DA, Ma_P)
PhânCông (Ma_NV, Ma_DA), 
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
5
 Tên các ñề án do phòng của nhân viên 
NVA phụ trách:
pi Ten_DA σHoTen_NV = “NVA”
(NhânViên_2 Thuộc Phòng 
PhụTrách ĐềÁn_2)
Chuổi kết thể hiện câu truy vấn
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
6
Đồ thị quan hệ của ví dụ 3.1 
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
7
Đồ thị CĐTX của ví dụ 3.1
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
8
III.7 Thuật toán biến ñổi lược ñồ
CSDLQH
 Vào: Cấu trúc CSDL mức quan niệm :
ρ = {}, mỗi Qi có tập khóa {Ki}
 Ra: Đồ thị quan hệ tương ứng với ρ
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
9
III.7 Thuật toán (2)
 Bước 1 - Biến ρ thành một phân rã ñồng nhất:
1.1. ∀ (Qi, Qj):
nếu Ki ↔Kj, với Ki và Kj lần lượt là một khóa 
của Qi và Qj, 
thì gộp Qi, Qj lại thành một quan hệ.
1.2. ∀(Qi, Qj): 
nếu Qi+ có chứa một khóa Kj của Qj 
thì Qi+ phải chứa tất cả các khoá của Qj 
(khi ñó Qi có thể có thêm khoá)
 Bước 2 - Tạo nút và quan hệ nút:
∀ Qi: tạo một nút Ni với QNi = Qi
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
10
III.7 Thuật toán (3)
 Bước 3 - Tạo nút bản lề và quan hệ nút 
tương ứng:
*** M
c ñích: làm ni bt các thu
c tính chung ca mi 
cp quan h	 nút ***
3.1. ∀ (Qi, Qj), Qij+ = Qi+ ∩ Qj+
3.2. Chừng nào Qij+ ≠ ∅ :
 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+]
 Nếu ¬∃ Qh ∈ ρ sao cho một khóa của Qh là một khoá của 
Q[Qij+] 
thì Tạo nút bản lề Nbl với quan hệ tương ứng Qbl = Q[KQij+]
Cuối nếu
 Qij+ := Qij+ - KQij+
Cuối Chừng nào
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
11
III.7 Thuật toán (4)
 Bước 4 - Tạo cung 
*** ch to s cung ti thiu t m
t nút ***
4.1. ∀Ni với Qi tương ứng, xác ñịnh:
PTH(Ni) = {Nj với Qj tương ứng sc KQj+ ⊂ Qi+}
PTH_Thừa(Ni) = {Nj ∈PTH(Ni) | 
∃Nh ∈ PTH(Ni) với KQj+⊂ KQh+}
Lồng_Khoá(Ni) = {Nj với Qj tương ứng | KQj+⊂ KQi+}
Lồng_Khoá_Thừa (Ni) = 
{Nj ∈ Lồng_Khoá(Ni) | ∃Nh ∈ Lồng_Khoá(Ni) với Qh 
sao cho KQj+⊂ KQh+}
Cung (Ni) = (PTH(Ni) – PTH_Thừa(Ni) ) ∪
( Lồng_Khoá(Ni) – Lồng_Khoá_Thừa(Ni) )
Cuối ∀
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
12
III.7 Thuật toán (5)
 Bước 4 (tiếp)
4.2. ∀Nj ∈ Cung(Ni) :
Tạo một cung có hướng từ Ni → Nj, 
ký hiệu cij
Cuối ∀
4.3. Qij = Qi[KQi+ ∪ KQj+]
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
13
III.7 Thuật toán (6)
 Bước 5 - Hủy những nút bản lề thừa
 ∀Nk thỏa các ñiều kiện:
 Qk có một khóa duy nhất Kk
 Không có thuộc tính nào khác ngoài khóa
 Chỉ có một cung vào Nk, xuất phát từ nút Ni
Thì ***Vai trò bản lề của Nk không còn cần thiết nữa
 Nhập Nk vào Ni (nhập Qk+ vào Qi+) 
 Hủy cung cik
 Cuối ∀
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
14
III.7 Thuật toán (7)
 Bước 6 - Mịn hóa các quan hệ nút:
 ∀ Ni với Qi tương ứng thì:
∀ Nj ∈ Cung(Ni) với Qj tương ứng thì:
Loại khỏi Qi+ những thuộc tính khóa của 
Qj mà không phải là thuộc tính khóa của Qi
Cuối ∀
 Cuối ∀
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
15
III.7 Thuật toán (8)
 Bước 7 - Tạo cung vô hướng:
∀ Nk thỏa:
 Qk chỉ có toàn thuộc tính khóa (Qk+ = KQk+)
 Chỉ có hai cung ra khỏi Nk (không có cung vào) ñến 
Ni và Nj với Qi và Qj sao cho KQk+ = KQi+ ∪ KQj+
Thì
 Tạo một cung vô hướng nối Ni, Nj với Qij = Qk
 Hủy nút Nk
 Hủy hai cung cki và ckj
Cuối ∀
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
16
Ví dụ 3.5
Cho cấu trúc quan niệm sau:
ĐĐH (Số_ĐĐH, Ngày_ĐH, TrịGiá)
MặtHàng (Mã_MH, Tên_MH, ĐơnGiá)
ChiTiếtĐĐH (Mã_MH, Số_ĐĐH, SL_ĐH)
Giao hàng (Số_GH, Ngày_GH, Số_ĐĐH)
ChiTiếtGH (Số_GH, Mã_MH, SL_GH, Số_ĐĐH)
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
17
Ví dụ 3.5 (2)
 Bước 1: không có khóa tương ñương giữa 
các quan hệ
 Bước 2: Tạo nút
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
18
Ví dụ 3.5 (3)
 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), (1 và 4), (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  Khóa = (Ma_MH, So_ĐĐH) 
= khóa của 3
 (4 và 5): So_GH, So_ĐĐH  Khóa = (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ả
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
19
Ví dụ 3.5 (4)
 Bước 4
2,3,4∅2,41,21,2,3,45.ChiTiếtGH
∅-∅∅14. GiaoHàng
1,2∅1,2∅1,23. 
ChiTiếtĐĐH
∅---∅2.MặtHàng
∅---∅1. ĐĐH
Cung(Qi)LK_Thừa 
(Qi)
Lồng_ 
Khoá(Qi)
PTH_
Thừa(Qi)
PTH(Qi)
Ghi chú “-” : không cần tính
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
20
Ví dụ 3.5 (5)
 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)
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
21
Ví dụ 3.5 (6)
 Kết quả của bước 1-4
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
22
Ví dụ 3.5 (7)
 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ả.
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
23
Ví dụ 3.5 (8)
 Kết quả thuật toán:
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
24
III.8 Biến ñổi từ ñồ thị quan hệ 
sang lượ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 ρ-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ệ:
 ρ-1 = {Qi} ∪ {Qij}, với Qi là quan hệ nút và Qij là
quan hệ cung
 Gộp các quan hệ có cùng khóa trong ρ-1 lại thành 
một.
© Đồng Thị Bích Thủy Bộ môn Hệ Thống Thông Tin
Trường ĐH Khoa Học Tự Nhiên - HCM
25
Câu hỏi?

File đính kèm:

  • pdfUnlock-Buoi_8_CHUONG_II_CSDLNC_TH2008.pdf
Tài liệu liên quan