Chương 6
Ràng buộc toàn vẹn
Nội dung chi tiết
Khái niệm
Các đặc trưng của RBTV
Phân loại
Cài đặt
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
2
Khái niệm
RBTV (Integrety Constraints) 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
y 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’
RBTV là một điều kiện được định nghĩa trên một
hay nhiều quan hệ khác nhau
Các RBTV là những điều kiện bất biến mà mọi thể
hiện của QH đều phải thỏa ở bất kỳ thời điểm nào
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
3
Khái niệm (tt)
Tại sao cần phải có RBTV?
¾ 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 quán của dữ liệu
¾ Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa
thực tế
Ví dụ
¾ Mức lương của một người nhân viên không được
vượt quá 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)
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
4
Nội dung chi tiết
Khái niệm
Các đặc trưng của RBTV
¾Bối cảnh
¾Nội dung
¾Bảng tầm ảnh hưởng
Phân loại
Cài đặt
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
5
Bối cảnh
Bối cảnh của một RBTV
¾ 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
y 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 NV vào một phòng ban
∗ Bổ nhiệm trưởng phòng cho một phòng ban
y Bối cảnh: NHANVIEN, PHONGBAN
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
6
Bối cảnh (tt)
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
y Các phép cập nhật
∗ Cập nhật người quản lý trực tiếp của một
nhân viên
∗ Thêm mới một nhân viên
y Bối cảnh: NHANVIEN
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
7
Nội dung
Nội dung của một RBTV được phát biểu bằng
¾ Ngôn ngữ tự nhiên
y Dễ hiểu nhưng thiếu tính chặt chẽ
¾ Ngôn ngữ hình thức
y Cô đọng, chặt chẽ nhưng đôi lúc khó hiểu
y Biểu diễn thông qua
∗ Đại số quan hệ
∗ Phép tính quan hệ
∗ Mã giả (pseudo code)
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
8
Nội dung (tt)
Ví dụ (R1)
¾ Ngôn ngữ tự nhiên
y Mức lương của một người nhân viên không
được vượt quá 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 )))
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
9
Nội dung (tt)
Ví dụ (R2)
¾ Ngôn ngữ tự nhiên
y 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
y
∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧
∃s ∈ NHANVIEN (t.MA_NQL = s.MANV ))
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
10
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
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
11
Bảng tầm ảnh hưởng một RBTV
Tên_RB Thêm
Xóa
Sửa
Quan hệ 1
+
−
Quan hệ 2
−
+
−
−
+
−
+ (Thuộc tính)
…
Quan hệ n
(+) Vi phạm RBTV ? (Kiểm tra khi cập nhật)
(−) Không vi phạm RBTV
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
12
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. buộc m
…
…
…
T
X
S
+
-
+
-
+
-
-
-
+
…
Quan hệ n
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
-
+
-
13
Nội dung chi tiết
Khái niệm
Các đặc trưng của RBTV
Phân loại RBTV
Một quan hệ
y Miền giá trị
y Liên bộ
y Liên thuộc tính
Nhiều quan hệ
y
y
y
y
y
Tham chiếu
Liên bộ, liên quan hệ
Liên thuộc tính, liên QH
Thuộc tính tổng hợp
Chu trình
Cài đặt
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
14
RBTV - Miền giá trị
RBTV qui định các giá trị cho một thuộc tính
R
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
β
23
9
β ∈9
{α,
∈ β,
{1..10}
γ}
Miền giá trị
¾ Liên tục
¾ Rời rạc
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
15
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
+
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
Xóa
−
Sửa
+
(THOIGIAN)
16
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’} )
¾ Bảng tầm ảnh hưởng:
hay
DOM(PHAI) = {‘Nam’, ‘Nu’}
R4
NHANVIEN
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
Thêm
Xóa
+
−
Sửa
+ (PHAI)
17
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)
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
18
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
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
Thêm
+
Xóa
−
Sửa
+ (TENPHG)
19
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:
R6
PHANCONG
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
Thêm
+
Xóa
−
Sửa
+ (MA_VIEN, SODA)
20
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
Thêm
+
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
Xóa
+
Sửa
+ (NGAY, GIO, DOI)
21
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ệ
R
A
B
C
D
α
α
β
β
β
1
5
12
1
7
3
9
α
β
β
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
23
22
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
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
23
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:
R9
KHOAHOC
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
Thêm
+
Xóa
−
Sửa
+ (BDAU, KTHUC)
24
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
R
A
B
C
D
α
α
1
1
α
β
5
7
β
β
12
3
β
β
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
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN
25