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ệ
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 bt 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:
Unlock-Buoi_8_CHUONG_II_CSDLNC_TH2008.pdf

