Giả thiết quan hệ phổ quát • Là nền tảng của các nghiên cứu về mô hình quan hệ và phụ thuộc dữ liệu ứng dụng vào việc thiết kế CSDL • Khái niệm quan hệ phổ quát: – Mỗi môi trường ứng
Trang 1Trườ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
• Cấu trúc CSDL tương đương
• Hai cách tiếp cận để thiết kế CSDL
con Q’1, Q’2, *Q’mvà các phụ thuộc dữ liệu định nghĩa
trên mỗi quan hệ con: D’1, D’2, * D’m :
• Thiết kế CSDL mức quan niệm:
– Biến đổi đầu vào này thành một cấu trúc CSDL quan niệm “tốt” hơn, “phù hợp” hơn với các yêu cầu của môi trường ứng dụng
– Dựa trên một số tiêu chuẩn thiết kế
C0’ = {<Q’i, D’i>} C0= <Q0, D0>
Thiết kế CSDL mức quan niệm
= <Q, D>
Trang 2Giả thiết quan hệ phổ quát
• Là nền tảng của các nghiên cứu về mô hình quan
hệ và phụ thuộc dữ liệu ứng dụng vào việc thiết
kế CSDL
• Khái niệm quan hệ phổ quát:
– Mỗi môi trường ứng dụng đều có thể được mô hình hóa
bằng một quan hệ duy nhất, gọi là quan hệ phổ quát, ký
hiệu U
– Quan hệ phổ quát tập trung tất cả các thuộc tính của
môi trường ứng dụng
6
Giả thuyết quan hệ phổ quát (tt)
• Nếu cấu trúc sơ phác CSDL là C C0’ (trường hợp a), ngầm hiểu quan hệ phổ quát U như sau:
– U chứa tất cả các thuộc tính của các quan hệ con Q’I.
– Mỗi quan hệ con Q’ilà kết quả của phép chiếu của U lên Q’i+ : ∀i, Q’i = U[Q’i+]
• Nếu cấu trúc sơ phác là C C0(trường hợp b), khái niệm quan hệ phổ quát đã ngầm được sử dụng.
Giả thuyết quan hệ phổ quát (tt)
• Hệ quả:
– (i) Mỗi một thuộc tính có một ý nghĩa duy nhất Dù thuộc
tính này hiện diện trong quan hệ con hay quan hệ phổ
quát, ý nghĩa của nó vẫn như nhau
– (ii) Giữa hai thuộc tính chỉ có một mối kết hợp mang ý
nghĩa duy nhất
Giả thuyết quan hệ phổ quát (tt)
• Ví dụ 3.1: Cho môi trường ứng dụng với 3 quan hệ
con như sau:
ĐẶT_HÀNG (Mã_ĐH, Ngày), FĐH= {Mã_ĐH → Ngày}
THỐNG_KÊ_HÀNG_GIAO(MãHG, Ngày, Lượng)
FTKHG= {MãHG, Ngày → Lượng }CHI_TIẾT_ĐẶT_HÀNG (Mã_ĐH, Mã_HG, Lượng)
FCTĐH= {Mã_ĐH, Mã_HG → Lượng }
Các thuộc tính Ngày và Lượng có ý nghĩa khác nhau trong các quan hệ khác nhau.
Trang 3Giả thuyết quan hệ phổ quát (tt)
• Ví dụ 3.1 (tt):
Gây ra tình trạng nhập nhằng về ngữ nghĩa, dẫn đến
kết quả sai trong quá trình thiết kế lại cấu trúc CSDL
khi áp dụng luật dẫn cho phụ thuộc dữ liệu trên toàn cục
Từ (Mã_ĐH → Ngày) và (MãHG, Ngày → Lượng) ta suy dẫn
được PTH (MãHG, Mã_ĐH → Lượng), dù PTH này không đúng
trên thực tế.
Phải đặt tên lại cho các thuộc tính:
Ngày trong ĐẶT_HÀNG thành Ngày_ĐH
Ngày trong THỐNG_KÊ_HÀNG_GIAO thành Ngày_TK
*
10
Giả thuyết quan hệ phổ quát (tt)
• Ví dụ 3.2:
Cho quan hệ NHÂN_VIÊN( Mã_NV, Tên_NV, Ngày)
Ý nghĩa mối kết hợp giữa Mã_NV và Ngày : Ngày sinh của nhân viên
Mối kết hợp này là duy nhất : nếu cần thêm thông tin
về ngày tuyển dụng, ta phải dùng thêm một thuộc tính Ngày_TD, không thể thêm một ý nghĩa khác cho mối kết hợp giữa Mã_NV và Ngày
Cơ chế kiểm tra phụ thuộc hàm
• Phụ thuộc hàm: một loại ràng buộc toàn vẹn quan
Cho một quan hệ Q, một khóa K của Q
Cơ chế khóa là một cơ chế có sẵn của Hệ quản trị CSDL nhằm đảm bảo:
∀q, q’ ∈ Q sao cho q ≠ q’ , q.K ≠q’.K
• Hệ thống chỉ mục với giá trị duy nhất là một ví dụ
của cơ chế khóa
• Cơ chế khóa đảm bảo kiểm tra hiệu quả các phụ
thuộc hàm dạng K→ → →A, với A∈ ∈ ∈Q+và K là một khóa của Q (Không cần duyệt tuần tự qua tất cả các bộ trong TQ)
Trang 4Hợp lệ hóa tình trạng một quan hệ
• Cho một quan hệ Q(ABC) với khóa là A, và các
phụ thuộc hàm được định nghĩa trên Q:
F = {B→ → →C, A → → →BC}
• Cho một tình trạng của Q:
• Tình trạng của Q được hợp lệ hóa đối với các
PTH định nghĩa trên Q nếu TQ thỏa tất cả các
Hợp lệ hóa tình trạng của một quan hệ (tt)
• Kiểm tra B→ → → C, đảm bảo:
∀q, q’ ∈ Q, nếu q.B = q’.B thì q.C = q’.C
Cần duyệt qua tất cả các bộ của TQ để kiểm tra tốn kém và mất thời gian khi TQ lớn
• Kiểm tra A→ → → BC: nhờ cơ chế khóa của HQT CSDL,
việc kiểm tra PTH này sẽ hiệu quả hơn.
Hợp lệ hoá một biến đổi tình trạng của Q
• Cho một tình trạng TQ1đã hợp lệ
• TQ1được biến đổi thành TQ2sau một vài thao tác
– Các thao tác biến TQ1thành TQ2có thể gây ra tình
trạng không hợp lệ cho TQ2 cần phải hợp lệ hóa TQ2
(kiểm tra lại xem F có còn thỏa trong TQ2)
– Các thao tác có thể xảy ra trên TQ1:
Thêm một bộ: phải kiểm tra lại các PTH trong F
Xóa một bộ: không cần kiểm tra lại PTH (nhưng có nguy cơ bị
mất thông tin)
Sửa một bộ: phải kiểm tra lại PTH và có nguy cơ bị mất thông
tin (Sửa = Xoá+Thêm)
Các mục tiêu thiết kế
• Hai tiêu chuẩn quan trong cần đạt được trong quá
trình thiết kế CSDL mức quan niệm:
– Cấu trúc CSDL kết quả (đầu ra của giai đoạn thiết kế
mức quan niệm) cần đạt dạng chuẩn cao nhất – Cấu trúc CSDL kết quả phải tương đương với cấu trúc
ban đầu
Trang 5Các mục tiêu thiết kế (tt)
• Tiêu chuẩn về dạng chuẩn:
– Giảm tối đa sự trùng lắp thông tin, từ đó tránh được một
số bất tiện khi cập nhật CSDL
– Các phụ thuộc dữ liệu được kiểm tra dễ dàng nhất, đơn
giản và tương đối ít tốn kém nhất
• Tiêu chuẩn tương đương:
– Đảm bảo các thông tin trong quan hệ phổ quát sẽ được
tìm thấy đầy đủ trong CSDL của cấu trúc kết quả
18
Các mục tiêu thiết kế
• Một CSDL thỏa mãn tiêu chuẩn về dạng chuẩn và
tính tương đương đảm bảo cho việc khai thác nó được thuận lợi trên cả ba phương diện:
– Truy vấn: tiêu chuẩn tương đương đảm bảo các thông
tin được truy xuất từ CSDL là những thông tin đã được phân tích
– Cập nhật: Tiêu chuẩn dạng chuẩn giảm bớt các tình
huống thông tin mâu thuẩn sau khi cập nhật
– Kiểm tra ràng buộc toàn vẹn: cả hai tiêu chuẩn đều
hướng đến mục tiêu là kiểm tra RBTV dạng phụ thuộc
dữ liệu được thuận lợi
Nội dung
• Dẫn nhập- Những mục tiêu chính
• Dạng chuẩn
• Cấu trúc CSDL tương đương
• Hai cách tiếp cận để thiết kế CSDL
Quan hệ được chuẩn hóa Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1 (DC1)
• Trước khi Codd đề nghị khái niệm dạng chuẩn
(1970), công nghệ lưu trữ dữ liệu khuyến khích cấu trúc dữ liệu phân cấp, trong đó có nhiều trường lặp.
Trang 6Quan hệ được chuẩn hóa
Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1
• Ví dụ 3.3 (tt):
– Hình sau minh họa dữ liệu của quan hệ DANH_SÁCH_LỚP:
TênLớp SỉSố TênHS_1 Điểm_11 Điểm_12 * Điểm_15 TênHS_2 Điểm_21 *
11A1 30 Nguyễn Văn A 7 8 * 9 Trần Thị B 6 *
– Các thuộc tính STT1, STT2 sau đó được thay bằng tên gọi có tính gợi nhớ, phù hợp với ngữ nghĩa của chúng:
STT1: mã số học sinh trong lớp, thay bằng “MãHS”.
STT2: môn học, thay bằng “Môn”
– Hai quan hệ trên trở thành:
DANH_SÁCH_HS(TênLớp, SỉSố, MãHS, TênHS) ĐiỂM_HS_LỚP(TênLớp, MãHS, Môn2, Điểm)
Quan hệ được chuẩn hóa
Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1
• Minh họa cho dữ liệu của cấu trúc đã chuẩn hóa:
• Các quan hệ trong cấu trúc CSDL được chuẩn hóa
như trên gọi là quan hệ ở dạng chuẩn 1
• Định nghĩa dạng chuẩn 1: Một quan hệ ở dạng
chuẩn 1 không có các trường lặp và các trường
kép, còn được gọi là cấu trúc phẳng.
Trang 7Quan hệ được chuẩn hóa
Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1
• Cấu trúc chuẩn hóa cho phép truy vấn chỉ dựa
trên ngữ nghĩa của CSDL, không dựa vào cách
thức lưu trữ thông tin
Ví dụ: Cho biết điểm môn Văn của học sinh có mã 0001
lớp 11A1:
ĐIỂM_HS_LỚP[TênLớp = ’11A1’, Mã_HS = ‘0001’, Môn = ‘Văn’, Điểm]
Với cấu trúc chưa chuẩn hóa, câu truy vấn này sẽ là:
DANH_SÁCH_LỚP(11A2)(1,2)
(Học sinh có mã 0001 lớp 11A1 được lưu thứ 1 trong danh sách, điểm
môn Văn được lưu thứ 2 trong bảng điểm của HS)
– Các vấn đề gây ra do trùng lắp thông tin:
Bất tiện khi thêm/cập nhật : để đảm bảo dữ liệu nhất quán, phải kiểm tra và cập nhật hàng loạt trên các thông tin trùng lắp
Ví dụ: Thêm một học sinh (11A1, 31, 0003, Võ Thị H) vào danh sách: phải đảm bảo thông tin về sỉ số lớp của các học sinh khác cùng lớp 11A1 cũng phải là 31 Tương tự khi cập nhật.
Mất thông tin khi xóa
Ví dụ: giả sử ta chỉ mới thêm một học sinh mã 0031 trong lớp 11A2 Khi đó, nếu xóa học sinh này đi, ta sẽ mất thông tin về tên lớp và sỉ số của lớp 11A2 trong CSDL
Quan hệ được chuẩn hóa
Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1
• Ví dụ 3.4: Cho quan hệ sau:
LỊCH_COI_THI (GV_CT, N,G,P,M,GV)
F= {f1: GV_CT→N,G,P: một giảng viên coi thi chỉ coi vào
một ngày(N), một giờ (G) và trong một phòng(P) duy nhất
f2: M → GV : mỗi môn thi (M) có một giảng
viên (GV) duy nhất phụ trách
f3:N,G,P→M : mỗi ngày, vào một giờ, trong một
phòng, chỉ có một môn thi duy
Quan hệ được chuẩn hóa Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1
• Ví dụ 3.4 (tt):
– Một thể hiện của quan hệ LỊCH_COI_THI:
– Nhận xét về sự trùng lắp thông tin và những bất tiện khi thêm/ xóa/
cập nhật?
Nguyễn Văn A 2 8:00 – 10:00 101 Giải thuật X Nguyễn Thị B 2 10:00 – 12:00 101 CSDL Y Trần Văn C 2 10:00 – 12:00 101 CSDL Y
Võ Thị D 2 8:00 – 10:00 103 Giải thuật X
Trang 8Quan hệ được chuẩn hóa
Quan hệ được chuẩn hóa – – Định nghĩa dạng chuẩn 1 Định nghĩa dạng chuẩn 1
Cần tách nhỏ quan hệ theo các tiêu chuẩn nghiêm
ngặt hơn để giải quyết các vấn đề về trùng lắp
thông tin, để CSDL hoạt động hiệu quả hơn
30
Dạng chuẩn 2 (DC2)
• Một số khái niệm bổ sung
– Thuộc tính khóa (không khóa): A là một thuộc tính khóa
(không khóa) của Q nếu:
A ∈ Q +
A có (không có) tham gia vào một khóa của Q
Ví dụ 3.5: Q1(MNOPX) ; Q2(PY)
M,N,O là các thuộc tính khóa của Q 1 , P là thuộc tính khóa của
Q2nhưng là thuộc tính không khóa của Q1
– Thuộc tính phụ thuộc đầy đủ (không phụ thuộc đầy đủ) vào một tập thuộc tính:
A là một thuộc tính phụ thuộc đầy đủ (không phụ thuộc đầy đủ) vào X nếu PTH X → A là một phụ thuộc đầy đủ (không đầy đủ)
DC2
DC2 – – Định nghĩa Định nghĩa
• Một quan hệ Q ở dạng chuẩn 2 nếu và chỉ nếu tất
cả thuộc tính không khóa đều phụ thuộc đầy đủ
• Các bất tiện trong thao tác thêm/xóa/cập nhật do trùng lắp
thông tin gây ra.
Các bảng sau minh họa cho dữ liệu của các quan hệ trong ví dụ 3.6 (đều đạt DC2):
Nhận xét về sự trùng lắp thông tin và các bất tiện khi thêm/ xoá/ sửa?
Nguyễn Văn A 2 8:00 – 10:00 101 Nguyễn Thị B 2 10:00 – 12:00 101 Trần Văn C 2 10:00 – 12:00 101
Trang 9Dạng chuẩn 3 (DC3)
• Khái niệm bổ sung: Thuộc tính phụ thuộc bắc
cầu vào một tập thuộc tính :
– A phụ thuộc bắc cầu vào X nếu có 4 điều kiện sau:
• Ví dụ 3.8 :
Cho F = {MN→OPRX; NO →M; P →RY}
– P có phụ thuộc bắc cầu vào NO?
NO → M ⇒ NO →MN : thỏa (i)
MN → P:thỏa (ii)
MN → O ⇒ MN →ON : không thỏa (iii)
P không phụ thuộc bắc cầu vào NO.
– R có phụ thuộc bắc cầu vào NO?
Q ở DC3 nếu và chỉ nếu tất cả thuộc tính không khóa
phụ thuộc đầy đủ và không phụ thuộc bắc cầu vào
khóa
• Định nghĩa 2:
Q ở DC3 nếu và chỉ nếu với mỗi phụ thuộc hàm X→A
không hiển nhiên định nghĩa trên Q (A là thuộc tính
đơn, X là tập thuộc tính), một trong hai điều kiện sau
được thỏa:
i Hoặc X chứa một khóa của Q
ii Hoặc A là thuộc tính khóa của Q
DC3 DC3 – – Ví dụ Ví dụ
– Ví dụ 3.9: Xét cấu trúc CSDL ở ví dụ 3.6 được cải tiến
để các quan hệ đều đạt DC3:
COI_THI (GV_CT, N, G, P) LỊCH_KT(N,G,P,M) GD(M,GV)
Nguyễn Văn A 2 8:00 – 10:00 101 Nguyễn Thị B 2 10:00 – 12:00 101 Trần Văn C 2 10:00 – 12:00 101
Trang 10Quan hệ LICH_KT có hai khóa (N,G,P) và (N,G,M),
vẫn đạt chuẩn 3 Xét thể hiện sau:
• Định nghĩa:
Q ở DC BCK nếu và chỉ nếu: với mỗi PTH không hiển nhiên X → A định nghĩa trên Q thì ∀B ∈ Q+,ta luôn có (X→B) là một PTH thuộc F+ Hay nói cách khác, X chứa một khóa của Q
• Ví dụ 3.11:
Quan hệ LỊCH_CT với hai khóa ở ví dụ 3.10 không đạt dạng chuẩn BCK vì có PTH M → P
Giới hạn của DC BCK
• DC BCK quan tâm giải quyết vấn đề trùng lắp
thông tin, nhưng xem nhẹ một tiêu chuẩn khác: sự
thuận lợi khi kiểm tra phụ thuộc dữ liệu.
– Minh họa thể hiện của các quan hệ:
Không còn trùng lắp thông tin, nhưng bất tiện khi kiểm tra PTH N,G,P → M : phải kết LICH_KT_1 và LICH_KT_2
Nguyễn Văn A 2 8:00 – 10:00 101 Nguyễn Thị B 2 10:00 – 12:00 101 Trần Văn C 2 10:00 – 12:00 101
T_COI_THI
Giải thuật X CSDL Y
Trang 11Dạng chuẩn 4 (DC 4)
• Định nghĩa:
Q ở dạng chuẩn 4 nếu và chỉ nếu Q ở DC BCK và: với mỗi phụ
thuộc đa trị (X→> Y) không hiển nhiên được định nghĩa trên Q thì
∀ B ∈ Q + ta luôn có X → B là một phụ thuộc hàm thuộc F + Hay nói
cách khác, X chứa một khóa của Q.
• Ví dụ:
Môi trường ứng dụng của ví dụ 3.9 có thêm phụ thuộc đa trị M →>
P Khi đó quan hệ LICH_KT(N,G,P,M) không đạt DC4
Tách quan hệ này thành LICH_KT_3(M,P) VÀ LICH_KT_2(M,N,G),
ta có các quan hệ đều đạt DC 4
• Vì kiểm tra phụ thuộc đa trị rất tốn kém (có thể kép theo
một chuỗi hiệu ứng thêm/xóa), mục tiêu của DC4 là tách
nhỏ các quan hệ, nhằm biến các phụ thuộc đa trị thành phụ
thuộc đa trị hiển nhiên.
42
DC4 DC4 – – Giới hạn Giới hạn
• Tương tự như DC BCK, việc tách nhỏ các quan hệ
để đạt DC 4 có thể làm cho việc kiểm tra một số PTH trở nên tốn kém hơn (phải kết trên nhiểu quan hệ).
Tính chất lồng nhau của các dạng chuẩn
• Ví dụ 3.14:
– Cấu trúc CSDL ở ví dụ 3.9 đạt BCK– Cấu trúc CSDL ở ví dụ 3.10 đạt DC 3
Trang 12Nội dung
• Dẫn nhập- Những mục tiêu chính
• Dạng chuẩn
• Cấu trúc CSDL tương đương
• Hai cách tiếp cận để thiết kế CSDL
46
Đặt vấn đề
• Thông tin được lưu trong một cấu trúc CSDL C:
– Nếu dùng cấu trúc C’ = {<Qi, Di>} (i = 1 n) để cài đặt thay cho cấu trúc quan hệ phổ quát C = <U,D>:
Thông tin của CSDL lưu dưới dạng các bộ của U sẽ được tách nhỏ bằng phép chiếu để lưu dưới dạng các bộ của Qi
i=1 n
Đặt vấn đề (tt)
• Hai điều kiện này không phải luôn luôn được thỏa
• ymà thông thường ta có: TU ⊆ ⊆ TU[Qi +], ∀ ∀ ∀TU
Đặt vấn đề Đặt vấn đề VD 3.15 (tt) VD 3.15 (tt)
Ng.V.A 2 8:00–10:00 Giải thuật Ng.T.B 2 10:00–12:00 CSDL Tr.V.C 2 10:00–12:00 CSDL Võ.T.D 2 8:00–10:00 Giải thuật
T_COI_THI_1 T_LICH_KT T_GD
Giống với TU?
Trang 132 Các thông tin lưu trong C ’ là những thông tin lẽ ra
được lưu trong C (không có thông tin thừa)
50
Các quan niệm về tính tương đương
• Tính chất bảo toàn phụ thuộc
• Tính chất bảo toàn thông tin
• Biểu diễn trọn vẹn
Tính chất bảo toàn phụ thuộc (i)
• Ưu tiên việc kiểm tra các phụ thuộc dữ liệu
• Quan niệm: các thông tin của CSDL được thể hiện
thông qua phụ thuộc dữ liệu
Tính chất bảo toàn phụ thuộc (tt)
• Đối với phụ thuộc hàm:
Cho: C1= <Q,F>
và C2= {<Qi, Fi>}, i=1 n, với Fi= F+[Qi+]
(Fi là những phụ thuộc hàm của Fđược bao trong Q i )
C1 ≡ C2nếu thỏa hai điều kiện sau:
Trang 14Tính chất bảo toàn phụ thuộc
• Đối với phụ thuộc đa trị:
Cho: C1= <Q,D>
và C2= {<Qi, Di>}, i=1 n
– Dibao gồm các phụ thuộc trong D+chiếu lên Qi, và các
phụ thuộc đa trị định nghĩa trong Qinhưng tiềm tàng
trong Q
– Điều kiện (i.2) của tính chất bảo toàn PTH không áp
dụng được cho phụ thuộc đa trị
54
Tính chất bảo toàn thông tin (ii)
• C2≡ C ≡ C1nếu thoả hai điều kiện sau:
(ii.1) ∪iQi+= Q+
(ii.2) Q[Qi+] = Q, tức là:
∀TQ của Q, TQ = TQ[Qi+]
i=1 n i=1
• Bảng Tableau và qui trình thay thế đuổi được sử
dụng để kiểm tra tính bảo toàn thông tin của C C2
Bảng Tableau và qui trình thay thế đuổi
• Bảng Tableau:
– Có m cột tương ứng với m thuộc tính của quan hệ Q– n dòng tương tương ứng với n quan hệ con Qi– Mỗi ô ở dòng i và cột j của bảng chứa một trong hai giá trị:
ajnếu Qi+ có chứa thuộc tính tương ứng với cột j
bktrong trường hợp ngược lại, với k bắt đầu từ 1 và tăng dần mỗi khi cần dùng đến giá trị b
Trang 15Nếu w1.A = ajvà w2.A = bkthì thay thế bktrong w2.A bằng aj
Nếu w 1 A = b k và w 2 A = a j thì thay thế b k trong w 1 A bằng a j
Nếu w1.A = bkvà w2.A = bk’thì thay thế bk’trong w1.A bằng bk
Qui trình thay thế đuổi (tt)
• Gọi T’ là bảng kết quả sau khi đã áp dụng qui trình
thay thế đuổi trên bảng Tableau T
– Nếu T’ có một dòng chứa toàn các giá trị ajthì C2bảo
toàn thông tin
– Ngược lại thì C2không bảo toàn thông tin
Tính chất bảo toàn thông tin Tính chất bảo toàn thông tin – – Ví dụ Ví dụ