Tải bản đầy đủ (.ppt) (38 trang)

Bài 6. Ràng buộc toàn vẹn dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (463.95 KB, 38 trang )

Chương 6

Ràng buộc toàn vẹn

11/21/16

1


Nội dung chính





RBTV
Các đặc trưng của RBTV
Phân loại RBTV
Cài đặt RBTV

11/21/16

2


RBTV
RBTV là các điều kiện từ ứng
dụng thực tế đảm bảo cho CSDL
luôn ở trạng thái an toàn.
 Các điều kiện này phải luôn đúng
sau mỗi thao tác làm thay đổi


trạng thái của CSDL


11/21/16

3


Các đặc trưng của RBTV
Nội dung
Bối cảnh
Tầm ảnh hưởng

11/21/16

4


Nội dung của RBTV(1/2)



Nội dung của RBTV là điều kiện phải thỏa.
Nội dung RBTV được phát biểu bằng ngôn
ngữ tự nhiên hoặc một ngôn ngữ hình
thức (phép tính quan hệ, đại số quan hệ,
mã giả,…)





Ngôn ngữ tự nhiên: Dễ hiểu nhưng không chặt chẽ,
logic.
Ngôn ngữ hình thức: chặt chẽ, cô đọng nhưng đôi
lúc khó hiểu.
11/21/16

5


Nội dung của RBTV (2/2)


Ví dụ 1: Một RBTV R1 được phát biểu
bằng ngôn ngữ tự nhiên như sau:






Tổng số giờ làm việc của nhân viên không được vượt quá 45
giờ/tuần.

Điều kiện trên có thể phát biểu lại bằng
ngôn ngữ hình thức như sau:
∀ n ∈ NHANVIEN,

∑ (p∈PHANCONG∧p.MANV=n.MANV) p.THOIGIAN ≤ 45
11/21/16


6


Bối cảnh của RBTV
Bối cảnh của một RBTV là tập các quan
hệ mà khi thao tác trên các quan hệ đó
có khả năng làm cho ràng buộc toàn vẹn
bị vi phạm.
Ví dụ: Bối cảnh của RBTV R1 trong ví dụ
trên là quan hệ PHANCONG

11/21/16

7


Tầm ảnh hưởng (1/2)
Tầm ảnh hưởng của RBTV được biểu diễn
bằng một bảng hai chiều gọi là bảng tầm
ảnh hưởng.

11/21/16

8


Tầm ảnh hưởng của RBTV
(2/2)
Bảng tầm ảnh hưởng của RBTV có dạng như sau:


Ri

Thêm

Xóa

Sửa

Quan hệ 1

+

+

- (*)

-

-

+(A)

………
Quan hệ n

Ký hiệu +
: Có thể gây ra vi phạm RBTV
Ký hiệu : Không thể gây ra vi phạm RBTV
Ký hiệu +(A) : Có thể gây ra vi phạm RBTV khi thao

tác trên thuộc tính A
Ký hiệu –(*) : Không thể gây ra vi phạm RBTV do thao tác
không
thực hiện được
11/21/16

9


Phân loại RBTV


RBTV có bối cảnh trên 1 quan hệ



RBTV có bối cảnh trên nhiều quan hệ

11/21/16

10


RBTV có bối cảnh trên
1 quan hệ




RBTV miền giá trị.

RBTV liên bộ
RBTV liên thuộc tính

11/21/16

11


RBTV miền giá trị (1/3)





RBTV miền giá trị qui định tập giá trị mà
một thuộc tính có thể nhận.
Ví dụ 2:
DOM(PHAI) = {‘Nam’, ‘Nữ’}

11/21/16

12


RBTV miền giá trị (2/3)


Ví dụ 3: Xét lược đồ quan hệ





NHANVIEN (MANV, HONV, TENLOT, TENNV,
NGSINH, PHAI, DCHI, MA_NQL, PHONG,
MLUONG)

Xét RBTV R2:




Nội dung:
 Phái của nhân viên chỉ có thể là ‘Nam’
hoặc ‘Nữ’
 ∀n ∈ NHANVIEN: n.PHAI IN {‘Nam’,’Nữ’}
Bối cảnh: quan hệ NHANVIEN
11/21/16

13


RBTV miền giá trị (3/3)


Bảng tầm ảnh hưởng:

R2

Thêm


Xóa

Sửa

NHANVIEN

+

-

+(PHAI)

11/21/16

14


RBTV liên bộ (1/2)




RBTV liên bộ là điều kiện ràng buộc giữa các bộ
trên cùng một quan hệ

Ví dụ 5: Xét lược đồ quan hệ:





PHONGBAN(MAPHG, TENPHG, TRPHG,NGNC)

Xét RBTV R4:


Nội dung:






Hai bộ khác nhau sẽ khác nhau tại giá trị khóa
∀ p1, p2 ∈ PHONGBAN: p1 ≠ p2
⇒ p1[MAPHG] ≠ p2[MAPHG]

Bối cảnh: quan hệ PHONGBAN

11/21/16

15


RBTV liên bộ (2/2)


Bảng tầm ảnh hưởng:
R4

Thêm


Xóa

Sửa

PHONGBAN

+

-

-(*)

11/21/16

16


RBTV liên thuộc tính (1/2)




RBTV liên thuộc tính là ràng buộc giữa
các thuộc tính trong cùng một quan hệ

Ví dụ 7: Xét lược đồ quan hệ


DEAN (MADA, TENDA, DDIEM_DA, PHONG,

NGBD_DK, NGKT_DK)



Xét RBTV R6:



Nội dung:




Với mọi đề án, ngày bắt đầu dự kiến (NGBD_DK)
phải nhỏ hơn ngày kết thúc dự kiến (NGKT_DK)
∀d ∈ DEAN, d[NGBD_DK] <= d[NGKT_DK]

11/21/16

17


RBTV liên thuộc tính (2/2)



Bối cảnh: quan hệ DEAN
Bảng tầm ảnh hưởng:
R6


Thêm

Xóa

Sửa

DEAN

+

-

+(NGBD_DK,
NGKT_DK)

11/21/16

18


Bài tập: Cho lược đồ cơ sở dữ

liệu quản lý thư viện









THỂ_LOẠI (MATL, TENTL)
Tân từ: Mỗi thể loại sách có một mã số (MATL) để phân
biệt với các thể loại khác và có một tên thể loại (TENTL)
SÁCH (MASH, TENSH, TACGIA, MATL)
Tân từ: Mỗi quyển sách có một mã số sách (MASH) để
phân biệt với các quyển sách khác, có tên sách (TENSH),
tên tác giả (TACGIA) và thuộc một thể loại sách.
THẺ_ĐG (MADG, TENDG, DIACHI, NGAYCAP)
Tân từ: Mỗi đọc giả có một mã số (MADG) để phân biệt
với các đọc giả khác, có họ tên (TENDG), địa chỉ (DIACHI)
và ngày cấp thẻ (NGAYCAP).
PHIẾU_MƯỢN (MADG, MASH, NGAYMUON, NGAYTRA)
Tân từ: Mỗi phiếu mượn cho biết một đọc giả (MADG)
mượn một quyển sách vào ngày nào (NGAYMUON) và trả
sách vào ngày nào (NGAYTRA).
11/21/16

19


RBTV có bối cảnh trên
nhiều quan hệ






RBTV tham chiếu

RBTV liên bộ, liên quan hệ
RBTV liên thuộc tính, liên quan hệ
RBTV do thuộc tính tổng hợp
RBTV do chu trình trong lược đồ biểu
diễn quan hệ

11/21/16

20


RBTV tham chiếu (1/6)




RBTV tham chiếu là ràng buộc quy định
giá trị của thuộc tính trong một bộ của
quan hệ R phải thuộc tập giá trị của
thuộc tính khóa trong quan hệ S khác.
RBTV tham chiếu còn gọi là ràng buộc
phụ thuộc tồn tại hay ràng buộc khóa
ngoại

11/21/16

21


RBTV tham chiếu (2/6)



Ví dụ 9 : Xét lược đồ quan hệ NhanVien,
ThanNhan




NHANVIEN (MANV, HONV, TENLOT, TENNV, NGSINH, PHAI,
DCHI, MA_NQL, PHONG, MLUONG)
THANNHAN(MANV,MATN,TENTN,PHAI,NGSINH,QUANHE)

Xét RBTV R8:
 Nội dung:






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.
∀t ∈ THANNHAN, ∃n ∈ NHANVIEN:
n[MANV] = t[MANV]
(Viết tắt:THANNHAN[MANV] ⊆
NHANVIEN[MANV])

11/21/16

22



RVTV tham chiếu (3/6)
Bối cảnh: NHANVIEN, THANNHAN
Bảng tầm ảnh hưởng:


R8

Thêm

Xóa

Sửa

THANNHAN

+

-

+(MANV)

NHANVIEN

-

+

- (*)


11/21/16

23


RVTV tham chiếu (4/6)




Ví dụ 10 : Xét các lược đồ quan hệ
PHONGBAN (MAPHG, TENPHG, TRPHG, NGNC)
NHANVIEN (MANV, HONV, TENLOT, TENNV, NGSINH,
PHAI, DCHI, MA_NQL, PHONG, MLUONG)



Xét RBTV R9:
Nội dung:
 Mỗi trưởng phòng phải là một nhân viên trong
công ty.
 ∀p ∈ PHONGBAN, ∃n ∈ NHANVIEN:
 n[MANV] = p[TRPHG]
Hay: PHONGBAN[TRPHG] ⊆ NHANVIEN[MANV])
11/21/16

24



RVTV tham chiếu (5/6)



Bối cảnh: NHANVIEN, PHONGBAN
Bảng tầm ảnh hưởng:
R9

Thêm

Xóa

Sửa

PHONGBAN

+

-

+(TRPHG)

NHANVIEN

-

+

- (*)


11/21/16

25


×