QUAN HỆ
Mã bài: 11.06 Giới thiệu:
Ràng buộc toàn vẹn (Integrity Constraint / Rule viết tắt là: RBTV) và kiểm tra
sự vi phạm ràng buộc toàn vẹn là hai trong những vấn đề rất quan trọng trong quá trình phân tích, thiết kế và khai thác CSDL. Trong quá trình phân tích - thiết
kế cơ sở dữ liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến những hậu quả rất nghiêm trọng về tính an toàn và toàn vẹn dữ liệu, đặc biệt trong những CSDL tương đối lớn.
Bài này sẽ giới thiệu một cách tổng quan về: ràng buộc toàn vẹn trên bối cảnh 1 quan hệ. Qua đó, giúp người học phát hiện càng đầy đủ các ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ phân tích thiết kế - đó là một việc làm rất quan trọng..
Mục tiêu:
- Trình bày được khái niệm RBTV và các yếu tố của RBTV
- Phân loại được các loại ràng buộc toàn vẹn trên 1 quan hệ.
- Lấy được ví dụ trong thực tế để minh họa.
- Phát biểu được các RBTV trong bài tập cụ thể.
Nội dung chính:
1. Khái niệm và các yếu tố của ràng buộc toàn vẹn
1.1. Khái niệm
Ràng buộc toàn vẹn là một điều kiện bất biến không được vi phạm trong một cơ
sở dữ liệu.
Trong mỗi cơ sở dữ liệu luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các quan
hệ của một lược đồ cơ sở dữ liệu. Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong cơ sở dữ liệu đều phải thoả mãn ở mọi thời điểm. Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn.. Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực. Chẳng hạn mỗi sinh viên phải có một
mã sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác nhau, một sinh viên dự thi một môn học không quá 3 lần,…
Trong một cơ sở dữ liệu, ràng buộc toàn vẹn được xem như một công cụ để diễn đạt ngữ nghĩa của cơ sở dữ liệu đó. Trong suốt quá trình khai thác cơ sở dữ liệu, các RBTV đều phải được thỏa mãn ở bất kỳ thời điểm nào nhằm đảm bảo cho
cơ sở dữ liệu luôn luôn ở trạng thái an toàn và nhất quán về dữ liệu.
Các hệ quản trị cơ sở dữ liệu thường có các cơ chế tự động kiểm tra các RBTV
về miền giá trị của Khóa nội, Khóa ngoại, giá trị NOT NULL qua khai báo cấu trúc các bảng (mô hình dữ liệu của quan hệ) hoặc thông qua những thủ tục kiểm
tra và xử lý vi phạm RBTV do những người phân tích - thiết kế cài đặt. Việc kiểm tra RBTV có thể được tiến hành vào một trong các thời điểm sau:
-Kiểm tra ngay khi thực hiện một thao tác cập nhật cơ sở dữ liệu (thêm, sửa, xóa). Thao tác cập nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất
cứ một RBTV nào, nghĩa là nó không làm mất tính toàn vẹn dữ liệu của cơ sở
dữ liệu. Nếu vi phạm RBTV, thao tác cập nhật bị coi là không hợp lệ và sẽ bị hệ thống hủy bỏ (hoặc có một xử lý thích hợp nào đó).
-Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra RBTV được tiến hành một cách độc lập đối với thao tác cập nhật dữ liệu. Đối với những trường hợp vi phạm RBTV, hệ thống sẽ có những xử lý ngầm định hoặc yều cầu người sử dụng
xử lý những sai sót một cách tường minh.
1.2. Các yếu tố của ràng buộc toàn vẹn.
1.2.1. Nội dung ( Điều kiện)
- Mô tả chặt chẽ ý nghĩa của ràng buộc toàn vẹn.
Nội dung được phát biểu bằng ngôn ngữ tự nhiên hoặc ngôn ngữ hình thức (ngôn ngữ tân từ, đạ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.
Ví dụ:
Giả sử có một CSDL quản lý hóa đơn bán hàng gồm các bảng sau:
HÓAĐƠN (Số-hóa-đơn, Số-chủng-loại-mặt-hàng, Tổng-trị-giá).
DM_HÀNG (Mã-hàng, Tên-hàng, Đơn-vị-tính).
CHITIẾT-HĐ (Số-hóa-đơn, Mã-hàng, Số-lượng-đặt, Đơn-giá, Trị-giá).
Điều kiện của ràng buộc toàn vẹn có thể biểu diễn như sau:
R1 : “Mỗi hóa đơn có một Số hóa đơn riêng biệt, không trùng với hóa đơn khác”:
hd1,hd2 HÓAĐƠN: Nếu hd1hd2 thì hd1. Số-hóa-đơn hd2.Số-hóa-đơn
1.2.2. Bối cảnh
- Là tập các quan hệ khi thao tác trên những quan hệ đó có khả năng làm cho ràng buộc bị vi phạm.
- Đó là những quan hệ có thể vi phạm ràng buộc toàn vẹn khi thực hiện các thao tác thêm, xoá, sửa.
Ví dụ: Bối cảnh của ràng buộc toàn vẹn R1 chỉ là một quan hệ HÓAĐƠN;
1.2.3. Bảng tầm ảnh hưởng
- Nhằm xác định khi nào cần tiến hành kiểm tra ràng buộc toàn vẹn. Thao tác nào thực hiện có thể vi phạm ràng buộc toàn vẹn.
- Phạm vi ảnh hưởng của một ràng buộc toàn vẹn được biểu diễn bằng bảng 2 chiều gọi là bảng tầm ảnh hưởng.
Một số quy định chung:
- Những thuộc tính là khóa chính không được sửa giá trị.
- Trước khi xét thao tác thực hiện có thể vi phạm ràng buộc hay không thì cơ sở
dữ liệu phải thỏa mãn ràng buộc toàn vẹn trước.
- Thêm xét trên một bộ của quan hệ. Sửa và xóa xét trên từng thuộc tính của quan hệ.
+ : Ảnh hưởng đến RBTV
- : Không ảnh hưởng.
+ (A): Ảnh hưởng khi sửa thuộc tính A.
- (*): Không ảnh hưởng do thao tác không thực hiện được.
Ví dụ:
Bảng tầm ảnh hưởng của ràng buộc toàn vẹn R1
2. Ràng buộc miền giá trị trên bối cảnh một quan hệ
Là một tập các giá trị mà thuộc tính có thể nhận được.
Ví dụ: Cho Lược đồ CSDL quản lý giáo vụ như sau:
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
DIEUKIEN (MAMH, MAMH_TRUOC)
GIAOVIEN(MAGV,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,
NGVL,HESO, MUCLUONG, MAKHOA)
GIANGDAY(MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY,
DENNGAY )
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
Ràng buộc miền giá trị
R1: Điểm của học viên chỉ có thể từ 1→ 10
+ Nội dung: hv KETQUATHI: hv.DIEM {1 10}
+ Bối cảnh: quan hệ KETQUATHI
+ Bảng tầm ảnh hưởng:
R1 Thêm Xóa Sửa
KETQUATHI + - +(Diem)
3. Ràng buộc toàn vẹn liên thuộc tính
Là ràng buộc giữa các thuộc tính với nhau trong cùng một bộ của quan hệ.
R2: Ngày bắt đầu (TUNGAY) giảng dạy một môn học cho một lớp luôn nhỏ hơn ngày kết thúc (DENNGAY).
+ Nội dung : gd GIANGDAY: gd.TUNGAY < gd.DENNGAY
+ Bối cảnh: quan hệ GIANGDAY
+ Bảng tầm ảnh hưởng:
4. Ràng buộc liên bộ - liên thuộc tính trên bối cảnh 1 quan hệ
Là ràng buộc trên cũng nhiều bộ của quan hệ có thể liên quan đến nhiều thuộc tính.
Ví dụ:
R3: Tất cả các học viên phải có mã số phân biệt với nhau
+ Nội dung: h1,h2 HOCVIEN: Nếu h1h2 thì h1.Mahvh2.Mahv
+ Bối cảnh: quan hệ HOCVIEN
+ Bảng tầm ảnh hưởng:
R4: Các giáo viên có cùng học vị, cùng hệ số lương thì mức lương là như nhau. + Nội dung: gv1,gv2GIAOVIEN:
Nếu (gv1.Hocvi=gv2.Hocvi) Λ (gv1.Heso=gv2.Heso)
Thì gv.Mucluong=gv.Mucluong
+ Bối cảnh: quan hệ GIAOVIEN
+ Bảng tầm ảnh hưởng:
CÂU HỎI - BÀI TẬP
1. Nêu khái niệm và các đặc trưng của Ràng buộc toàn vẹn.
2. Nêu các Ràng buộc toàn vẹn có bối cảnh trên 1 quan hệ? Cho ví dụ?
3. Tìm tất cả các ràng buộc toàn vẹn có bối cảnh 1 quan hệ trong Lược đồ CSDL quản lý giáo vụ trên.
Bài tập số 1: Cho lược đồ quan hệ:
KHACHTV (MAKH,HOTEN, DCHI,SODT,NGSINH,DOANHSO,NGGN) NHANVIEN (MANV,HOTEN,NGSINH,NGVL,HESO,MUCLUONG)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Nêu nội dung, bối cảnh và bảng tầm ảnh hưởng:
1. Mỗi hóa đơn có một số hóa đơn riêng biệt, không trùng với hóa đơn khác
2. Số chủng loại sản phẩm = số bộ CTHD có cùng số hóa đơn
3. Tổng các giá trị mặt hàng trong CTHD có cùng số hóa (SOHD) đơn phải bằng tổng trị giá (TONGTRIGIA) trong HOADON
4. Mỗi bộ của CTHD phải có MAMH thuộc về DANHMUCMH
5. Tất cả các sản phẩm có giá từ 1.000 đồng trở lên
6. Ngày gia nhập của khách hàng thành viên phải lớn hơn ngày sinh của người đó.
7. Các nhân viên có cùng hệ số lương thì phải cùng mức lương
8. Ngày nhân viên bán hàng phải lớn hơn hoặc bằng ngày đầu tiên vào làm của nhân viên đó.
9. Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn.
10. Doanh số của một khách hàng thành viên là tổng các trị giá hóa đơn mà khách hàng thành viên đó đã mua