Ràng buộc toàn vẹn
Khái niệm
Các đặc trưng của RBTV
Phân loại
Cài đặt
Khái niệm RBTV (Integrety Constraints)
(Integrety
RBTV là một điều kiện bất biến được định nghĩa trên một hay nhiều
quan hệ khác nhau mà mọi thể hiện của quan hệ đều phải thỏa ở bất kỳ
thời điểm nào
Ví dụ
Mức lương của một người nhân viên khơng được vượt q trưởng phịng (R1)
Người quản lý trực tiếp (của một nhân viên) phải là một nhân viên trong công ty (R2)
RBTV xuất phát từ những qui định hay điều kiện
Trong thực tế
Trong mơ hình dữ liệu
Các thao tác làm thay đổi dữ liệu không nên được thực hiện một cách tùy tiện vì có thể
đưa CSDL đến một tình trạng ‘xấu’
3/20/2008
Ơn thi Cao học 2008
2
1
Vai trị và Đặc trưng của RBTV
Vai trị
Bảo đảm tính kết dính của các thành phần cấu tạo nên CSDL
Bảo đảm tính nhất qn của dữ liệu
Bảo đảm CSDL ln biểu diễn đúng ngữ nghĩa thực tế
Các đặc trưng của RBTV
Bối cảnh
Nội dung
Bảng tầm ảnh hưởng
3/20/2008
Ôn thi Cao học 2008
3
Bối cảnh của một RBTV
Bối cảnh
Là những quan hệ có khả năng bị vi phạm RBTV khi thực hiện các
phép cập nhật
Ví dụ (R1)
Mức lương của một người nhân viên khơng được vượt quá trưởng
phòng
Các phép cập nhật
Cập nhật lương cho nhân viên
Thêm mới một nhân viên vào một phòng ban
Bổ nhiệm trưởng phịng cho một phịng ban
Bối cảnh: NHANVIEN, PHONGBAN
3/20/2008
Ơn thi Cao học 2008
4
2
Nội dung
Nội dung của một RBTV được phát biểu bằng
Ngôn ngữ tự nhiên
Dễ hiểu nhưng thiếu tính chặt chẽ
Ngơn ngữ hình thức
Cơ đọng, chặt chẽ nhưng đơi lúc khó hiểu
Biểu diễn thơng qua
Đại số quan hệ
Phép tính quan hệ
Mã giả (pseudo code)
3/20/2008
Ơn thi Cao học 2008
5
Nội dung (tt)
(tt)
Ví dụ (R1)
Ngơn ngữ tự nhiên
Mức lương của một người nhân viên không được vượt q trưởng phịng
Ngơn ngữ hình thức
∀t ∈ NHANVIEN (
∃u ∈ PHONGBAN ( ∃v ∈ NHANVIEN (
u.TRPHG = v.MANV ∧
u.MAPHG = t.PHG ∧
t.LUONG ≤ v.LUONG )))
3/20/2008
Ôn thi Cao học 2008
6
3
Nội dung (tt)
(tt)
Ví dụ (R2)
Ngơn ngữ tự nhiên
Người quản lý trực tiếp phải là một nhân viên trong công ty
Ngôn ngữ hình thức
∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧
∃s ∈ NHANVIEN (t.MA_NQL = s.MANV ))
3/20/2008
Ôn thi Cao học 2008
7
Bảng tầm ảnh hưởng
Bảng tầm ảnh hưởng
Xác định thao tác cập nhật nào cần phải kiểm tra RBTV khi được
thực hiện trên quan hệ bối cảnh
Có 2 loại
Bảng tầm ảnh hưởng cho một RBTV
Bảng tầm ảnh hưởng tổng hợp
3/20/2008
Ôn thi Cao học 2008
8
4
Bảng tầm ảnh hưởng một RBTV
Tên_RB
Thêm
Xóa
Sửa
Quan hệ 1
+
−
+ (Thuộc tính)
Quan hệ 2
−
+
−
−
+
−
…
Quan hệ n
(+) Vi phạm RBTV
(−) Không vi phạm RBTV
3/20/2008
Ôn thi Cao học 2008
9
Bảng tầm ảnh hưởng tổng hợp
Ràng buộc 1 Ràng buộc 2
T
X
S
T
X
S
Quan hệ 1
+
-
+
+
-
+
Quan hệ 2
-
+
-
Quan hệ 3
-
-
Ràng buộc m
…
+
…
…
T
X
S
+
-
+
-
+
-
-
-
+
…
Quan hệ n
3/20/2008
-
+
-
Ôn thi Cao học 2008
10
5
Phân loại RBTV
RBTV trên một quan hệ
Miền giá trị
Liên bộ
Liên thuộc tính
RBTV trên nhiều quan hệ
Tham chiếu
Liên bộ, liên quan hệ
Liên thuộc tính, liên quan hệ
Thuộc tính tổng hợp
Chu trình
3/20/2008
Ơn thi Cao học 2008
11
RBTV - Miền giá trị
Ràng buộc qui định các giá trị cho một thuộc tính
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
R
β
23
9
β ∈ 9 ∈ β, γ}
{α, {1..10}
Miền giá trị
Liên tục
Rời rạc
3/20/2008
Ôn thi Cao học 2008
12
6
Ví dụ 3
Thời gian tham gia đề án của một nhân viên không quá 60 giờ
Bối cảnh: PHANCONG
Biểu diễn:
∀t ∈ PHANCONG ( t.THOIGIAN ≤ 60 )
Bảng tầm ảnh hưởng:
R3
Thêm
PHANCONG
+
3/20/2008
Xóa
−
Sửa
+
(THOIGIAN)
Ơn thi Cao học 2008
13
Ví dụ 4
Giới tính của nhân viên là ‘Nam’ hoặc ‘Nu’
Bối cảnh: NHANVIEN
Biểu diễn:
∀t ∈ NHANVIEN ( t.PHAI ∈ {‘Nam’, ‘Nu’} )
hay
DOM(PHAI) = {‘Nam’, ‘Nu’}
Bảng tầm ảnh hưởng:
R4
NHANVIEN
3/20/2008
Thêm
+
Xóa
−
Ơn thi Cao học 2008
Sửa
+ (PHAI)
14
7
RBTV - Liên bộ
Sự tồn tại của một hay nhiều bộ phụ thuộc vào sự tồn tại của một
hay nhiều bộ khác trong cùng quan hệ
R
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
β
23
9
Trường hợp đặc biệt
RB khóa chính
RB duy nhất (unique)
3/20/2008
Ơn thi Cao học 2008
15
Ví dụ 5
Tên phòng là duy nhất
Bối cảnh: PHONGBAN
Biểu diễn:
∀t1, t2 ∈ PHONGBAN (
t1≠ t2 ∧ t1.TENPHG ≠ T2.TENPHG )
Bảng tầm ảnh hưởng:
R5
PHONGBAN
3/20/2008
Thêm
+
Xóa
−
Ơn thi Cao học 2008
Sửa
+ (TENPHG)
16
8
Ví dụ 6
Một nhân viên được tham gia tối đa 5 đề án
Bối cảnh: PHANCONG
Biểu diễn:
∀t ∈ PHANCONG (
card({ s ∈ PHANCONG | s.MA_NVIEN = t.MA_NVIEN}) ≤ 5 )
Bảng tầm ảnh hưởng:
Thêm
R6
PHANCONG
+
3/20/2008
Xóa
−
Sửa
+ (MA_VIEN, SODA)
Ơn thi Cao học 2008
17
Ví dụ 7
THIDAU(NGAY, GIO, DOI, SOBAN)
Mỗi trận đấu là cuộc thi đấu của đúng 2 đội
Bối cảnh: THIDAU
Biểu diễn:
∀t ∈ THIDAU ( ∃!s ∈ THIDAU (
t ≠ s ∧ t.NGAY = s.NGAY ∧ t.GIO = s.GIO ))
Bảng tầm ảnh hưởng
R7
THIDAU
3/20/2008
Thêm
+
Xóa
+
Ơn thi Cao học 2008
Sửa
+ (NGAY, GIO, DOI)
18
9
RBTV - Liên thuộc tính
Là ràng buộc giữa các thuộc tính trong cùng quan hệ
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
R
β
23
9
3/20/2008
Ơn thi Cao học 2008
19
Ví dụ 8
Một nhân viên khơng quản lý trực tiếp chính mình
Bối cảnh: NHANVIEN
Biểu diễn:
∀t ∈ NHANVIEN ( t.MA_NQL ≠ t.MANV ∨ t.MA_NQL = null )
Bảng tầm ảnh hưởng:
R8
NHANVIEN
Thêm
−
Xóa
−
Sửa
+ (MA_NQL)
Ở thời điểm thêm 1 bộ vào NHANVIEN, MA_NQL là null
3/20/2008
Ôn thi Cao học 2008
20
10
Ví dụ 9
KHOAHOC(MAKH, TENKH, BDAU, KTHUC)
Mỗi khóa học kéo dài ít nhất 3 tháng
Bối cảnh: KHOAHOC
Biểu diễn:
∀t ∈ KHOAHOC ( t.KTHUC − t.BDAU ≥ 3 )
Bảng tầm ảnh hưởng:
Thêm
R9
KHOAHOC
Xóa
−
+
3/20/2008
Sửa
+ (BDAU, KTHUC)
Ôn thi Cao học 2008
21
RBTV - Tham chiếu
Giá trị xuất hiện tại các thuộc tính trong một quan hệ nào đó phải
tham chiếu đến giá trị khóa chính của một quan hệ khác cho trước
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
R
β
23
9
S
E
F
7
1
3
2
Bắt buộc phải tồn tại trước
Trường hợp đặc biệt
RB khóa ngoại
3/20/2008
Ơn thi Cao học 2008
22
11
Ví dụ 10
Mọi thân nhân phải có mối quan hệ gia đình với một nhân viên
trong cơng ty
Bối cảnh: THANNHAN, NHANVIEN
Biểu diễn:
hay
∀t ∈ THANNHAN ( ∃s ∈ NHANVIEN ( s.MANV = t.MA_NVIEN ))
THANNHAN.MA_NVIEN ⊆ NHANVIEN.MANV
Bảng tầm ảnh hưởng:
Thêm
Xóa
NHANVIEN
−
+
+ (MANV)
THANNHAN
+
−
+ (MA_NVIEN)
R10
3/20/2008
Sửa
Ơn thi Cao học 2008
23
RBTV - Tham chiếu (tt)
tt)
Còn gọi là phụ thuộc tồn tại
Thường có bối cảnh là hai quan hệ
Nhưng có trường hợp suy biến thành một quan hệ
Ví dụ (R2)
Người quản lý trực tiếp phải là một nhân viên trong công ty
Bối cảnh: NHANVIEN
Biểu diễn:
∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧
∃s ∈ NHANVIEN (t.MA_NQL = s.MANV ))
Bảng tầm ảnh hưởng
R2
NHANVIEN
3/20/2008
Thêm
+
Xóa
+
Ơn thi Cao học 2008
Sửa
+ (MANV, MA_NVIEN)
24
12
RBTV - Liên bộ, liên quan hệ
bộ,
Là ràng buộc xãy ra giữa các bộ trên nhiều quan hệ khác nhau
R
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
β
23
9
S
A
B
C
α
2
7
α
4
7
β
2
3
γ
2
10
3/20/2008
Ôn thi Cao học 2008
25
Ví dụ 11
HOADON(SOHD, MAKH, NGAYHD)
CTHD(SOHD, MAHH, DGIA, SLG)
Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn
Bối cảnh: HOADON, CTHD
Biểu diễn:
∀t ∈ HOADON ( ∃s ∈ CTHD ( t.SOHD = s.SOHD ))
Bảng tầm ảnh hưởng:
Thêm
Xóa
HOADON
+
+
+ (SOHD)
CTHD
+
+
+ (SOHD)
R11
3/20/2008
Ôn thi Cao học 2008
Sửa
26
13
RBTV - Liên thuộc tính, liên quan hệ
tính,
Là ràng buộc xãy ra giữa các thuộc tính trên nhiều quan hệ khác
nhau
A
B
C
D
A
B
C
α
α
1
1
α
2
7
α
β
5
7
α
4
7
β
β
12
3
β
2
3
β
R
β
23
9
γ
2
10
3/20/2008
S
Ơn thi Cao học 2008
27
Ví dụ 12
Ngày sinh của trưởng phòng phải nhỏ hơn ngày nhận chức
Bối cảnh: NHANVIEN, PHONGBAN
Biểu diễn:
∀t ∈ PHONGBAN ( ∃s ∈ NHANVIEN (
s.MANV = t.TRPHG ∧
t.NG_NHANCHUC > s.NGSINH ))
Bảng tầm ảnh hưởng:
Thêm
Xóa
NHANVIEN
−
−
+ (NGSINH, MANV)
PHONGBAN
+
−
+ (NG_NHANCHUC, TRPHG)
R12
3/20/2008
Ôn thi Cao học 2008
Sửa
28
14
RBTV - Thuộc tính tổng hợp
Thuộc tính tổng hợp
Là thuộc tính có giá trị được tính tốn từ các thuộc tính khác
Khi CSDL có thuộc tính tổng hợp
RBTV bảo đảm quan hệ giữa thuộc tính tổng hợp và các thuộc tính
nguồn
3/20/2008
Ơn thi Cao học 2008
29
Ví dụ 13
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC,
SO_NV)
Số nhân viên của một phòng ban phải bằng tổng số lượng nhân
viên thuộc phịng đó
Bối cảnh: NHANVIEN, PHONGBAN
Biểu diễn:
∀t ∈ PHONGBAN (
t.SO_NV = ∑ { s ∈ NHANVIEN | s.PHG = t.MAPHG} )
Bảng tầm ảnh hưởng:
Thêm
Xóa
NHANVIEN
+
+
+ (PHG)
PHONGBAN
−
−
+ (SO_NV, MAPHG)
R13
3/20/2008
Ơn thi Cao học 2008
Sửa
30
15
RBTV – Chu trình
Lược đồ CSDL có thể được biểu diễn bằng đồ thị
Đỉnh
Quan hệ
Tên quan hệ
Thuộc tính
Tên thuộc tính
Cạnh
Đường nối một đỉnh quan hệ với một đỉnh thuộc tính trong lược đồ CSDL
Tên thuộc tính
Tên quan hệ
Chu trình
Đồ thị xuất hiện đường đi khép kín ~ Lược đồ CSDL có chu trình
3/20/2008
Ơn thi Cao học 2008
31
Ví dụ 14
Nhân viên chỉ được phân cơng vào các đề án do phịng ban của
mình phụ trách
PHG=PHONG
NHANVIEN
MANV=MA_NVIEN
MANV, MADA
MA_NVIEN, SODA
DEAN
SODA=MADA
PHANCONG
3/20/2008
Ơn thi Cao học 2008
32
16
Ví dụ 14 (tt)
(tt)
Nhân viên chỉ được phân cơng vào các đề án do phịng ban của
mình phụ trách
Bối cảnh: NHANVIEN, DEAN, PHANCONG
Biểu diễn:
NVDA ← NHANVIEN
PHG=PHONG
DEAN
∀t ∈ PHANCONG ( ∃s ∈ NVDA (
t.MA_NVIEN = s.MANV ∧ t.MADA = s.SODA ))
Bảng tầm ảnh hưởng:
R14
NHANVIEN
Thêm
−
Xóa
−
DEAN
−
−
+ (MADA,PHONG)
+
−
+ (MA_NVIEN,SODA)
PHANCONG
3/20/2008
Ơn thi Cao học 2008
Sửa
+ (MANV,PHG)
33
Phụ thuộc hàm
Phụ thuộc hàm
Suy dẫn từ phụ thuộc hàm
Luật dẫn
Bao đóng
17
Phụ thuộc hàm
Phụ thuộc hàm (PTH) trên quan hệ R biểu diễn mối liên hệ giữa các tập
thuộc tính trong R
A’s
B’s
t1
Ký hiệu A → B
t2
Nếu
Thì
3/20/2008
Ơn thi Cao học 2008
35
Định nghĩa
PTH được phát biểu dựa trên
Ngữ nghĩa của môi trường ứng dụng
Qui tắc
Cho quan hệ R(A, B, C)
A ≠ ∅, B ≠ ∅
Một thể hiện r của R thỏa PTH A→B nếu
∀ t1, t2∈ r,
t1[A] = t2[A]
⇒ t1[B] = t2[B]
Mỗi giá trị tại A xác định duy nhất một giá trị tại B
3/20/2008
Ôn thi Cao học 2008
36
18
Ví dụ
Xét lược đờ quan hệ
Phim(Tênphim, Nămsx, Thờilượng, Loạiphim, Xưởngsx, Diễnviên)
Và thể hiện
Tênphim
Nămsx
Thờilượng
Loạiphim
Xưởngsx
Diễnviên
Star Wars
1977
124
color
Fox
Star Wars
1977
124
color
Fox
Carrie Fisher
Mark Hamill
Star Wars
1977
124
color
Fox
Harrison Ford
Mighty Ducks
1991
104
color
Disney
Emilio Esteves
Wayne’s World
1992
95
color
Paramount
Dana Carvey
Wayne’s World
1992
95
color
Paramount
Mike Meyers
Tênphim Nămsx → Thờilượng
Tênphim Nămsx → Diễnviên
Tênphim Nămsx → Loại
Không là phụ thuộc hàm
Tênphim Nămsx → Xưởngsx
3/20/2008
Ôn thi Cao học 2008
37
Chú ý
Xét thể hiện r1
Tênphim
Nămsx
Thờilượng
Loạiphim
Xưởngsx
Star Wars
1977
124
color
Fox
Diễnviên
Carrie Fisher
Star Wars
1977
124
color
Fox
Mark Hamill
Star Wars
1977
124
color
Fox
Tênphim → Ford
Harrison Loại
Mighty Ducks
1991
104
color
Disney
Emilio Esteves
Wayne’s World
1992
95
color
Paramount
Dana Carvey
Wayne’s World
1992
95
color
Paramount
Mike Meyers
3/20/2008
Ôn thi Cao học 2008
38
19
Chú ý (tt)
Xét thể hiện r2
Tênphim
Nămsx
Thờilượng
Loạiphim
Xưởngsx
Diễnviên
Star Wars
1977
124
color
Fox
Carrie Fisher
Star Wars
1977
124
color
Fox
Mark Hamill
Star Wars
1977
124
color
Fox
Tênphim → Ford
Harrison Loại
Mighty Ducks
1991
104
color
Disney
Kingkong
1993
120
color
Paramount
Emilio Esteves
Fay Wray
Kingkong
1993
120
Black/white
Paramount
Robert Amstrong
PTH phải được định nghĩa trên lược đồ quan hệ
Thỏa với mọi thể hiện của quan hệ
3/20/2008
Ơn thi Cao học 2008
39
Một sớ khái niệm
PTH hiển nhiên
X → Y là PTH hiển nhiên
⇔ Y⊆X
PTH đầy đủ
Định nghĩa sau
3/20/2008
Ôn thi Cao học 2008
40
20
Luật dẫn Armstrong
Luật phản hồi
(FD1)
∀Y ⊆ X, X→ Y
Luật cộng
(FD2)
Nếu X → Y và Z ⊆ W
Thì XW → YZ
Luật bắc cầu
(FD3)
3/20/2008
Nếu X → Y và Y → Z
Thì X → Z
Ôn thi Cao học 2008
41
Luật dẫn khác
Luật bắc cầu giả
(FD4)
Nếu X → Y và Y, W → Z
Thì X, W → Z
Luật hội
(FD5)
Nếu X → Y và X → Z
Thì X → Y, Z
Luật phân rã
(FD6)
Nếu X → Y và Z ⊆ Y
Thì X → Z
3/20/2008
Ơn thi Cao học 2008
42
21
Bao đóng của F
Cho F là tập các PTH định nghĩa trên R
Cho F là tập các PTH định nghĩa trên R
Nếu có 1 PTH f khác cũng được thỏa với mọi thể hiện của R
Thì ta gọi f là hệ quả của F
Tập hợp các PTH hệ quả từ F được gọi là bao đóng của F
Ký hiệu F+
F ⊆ F+
3/20/2008
Ơn thi Cao học 2008
43
Ví dụ
Xét lược đờ R(A,B,C) thỏa tập PTH
F = { f1: A → B
f2: B → C }
Ta có thể suy diễn R cịn thỏa PTH
f3: A → C
3/20/2008
Ôn thi Cao học 2008
44
22
Tìm bao đóng của F+
F+=F
repeat
for each PTH f ⊆ F+
Áp dụng các luật dẫn Amstrong đeể suy dẫn ra tập luật
suy dẫn {f’}
F + = F + ∪{f’}
until F + khơng tăng trưởng nữa
3/20/2008
Ơn thi Cao học 2008
45
Ví dụ
Xét lược đồ R(A, B, C, G, H, I)
Và PTH F định nghĩa trên R
F = { f1: A → B
f2: A → C
f3: CG → H
f4: CG → I
f5: B → H
}
Tìm được nhiều PTH trong F+
3/20/2008
Ơn thi Cao học 2008
46
23
Ví dụ
A → B, B → H
:
A→H
CG → H, CG → I :
CG → HI
A → C, CG → I
AG → I
:
3/20/2008
Ơn thi Cao học 2008
47
Nhận xét
Bài tốn thực tế
Cho một PTH f: X → Y
Xác định f có thuộc bao đóng F+ hay khơng
Giải quyết
Tìm bao đóng F+
Kiểm tra f có nằm trong F+ khơng
Tìm bao đóng F+ có hiệu quả ???
Chuyển sang bài toán thành viên
Ta chỉ cần tìm bao đóng của tập thuộc tính X dựa trên F
Kiểm tra Y có thuộc bao đóng của X hay khơng
3/20/2008
Ơn thi Cao học 2008
48
24
Bao đóng của tập thuộc tính X
Ký hiệu X+F
Định nghĩa
X+F
= { Y | X → Y được suy dẫn từ F }
Là tập hợp những VP của các PTH có VT là X nằm trong F
X+F dùng để xem f có được suy dẫn từ F hay khơng?
Ta thấy
X ⊆ X+F
X ⊆ R+
3/20/2008
Ơn thi Cao học 2008
49
Tìm bao đóng của X
B1.
B2.
X+F = X
Lặp {
Tìm các PTH trong F
có VT là các thuộc tính nằm trong X+F
có VP khơng nằm trong X+F
Nếu (có f : U → V thuộc F) và (U ⊆ X+F)
Thì X+F = X+F ∪ V
} cho đến khi (X+F = R+) hoặc
(khơng cịn thay đổi được nữa)
3/20/2008
Ơn thi Cao học 2008
50
25