coù theå tôùi nhieàu thuoäc tính cuûa (caùc) boä giaù trò trong moät quan heä.. 2.Phaân loaïi raøng buoäc toaøn veïn[r]
(1)RAØNG BUỘC TOAØN VẸN
1 RBTV, Các yếu tố RBTV
(2)1 RBTV, Các yếu tố RBTV
1.1 Định nghóa
(3)1.1 Định nghóa
Ràng buộc toàn vẹn (RBTV) quy tắc định nghĩa (hay nhiều) quan hệ môi trường ứng dụng quy định Đó
chính quy tắc để đảm bảo tính quán liệu CSDL
(4)1.1 Định nghóa
Ví dụ
R1 : Mỗi lớp học có mã số để phân biệt với lớp học khác
R2 : Mỗi lớp học phải thuộc KHOA trường
R3 : Mỗi học viên có mã số riêng biệt, không trùng với học viên khác
(5)1.1 Định nghóa
Khóa nội, Khóa ngoại, NOT NULL
những RBTV miền giá trị thuộc tính
Trong thực tế, tất RBTV CSDL phải phát đầy đủ
Trong CSDL, RBTV xem công cụ để diễn đạt ngữ nghĩa CSDL
(6)Phương pháp kiểm tra RBTV
Hệ quản trị CSDL có chế tự động kiểm tra RBTV miền giá trị
Khóa nội, Khóa ngoại, NOT NULL qua khai báo cấu trúc bảng
(7)Thời điểm kiểm tra RBTV
Kiểm tra thực thao tác
cập nhật CSDL (thêm, sửa, xóa) Thao tác cập nhật xem hợp lệ khơng vi phạm RBTV Kiểm tra định kỳ hay đột xuất Đối với
(8)1.2 Caùc yếu tố RBTV
Điều kiện: tức nội dung RBTV, từ xác định cách biểu diễn
Bối cảnh xảy RBTV: hay nhiều quan hệ, cụ thể quan hệ Tầm ảnh hưởng RBTV: Khả tính
tồn vẹn liệu bị vi phạm
(9)1.2 Các yếu tố RBTV
Điều kiện RBTV:
Điều kiện RBTV mô tả, biểu diễn hình thức nội dung nó, biểu diễn ngôn ngữ tự nhiên, thuật giải (bằng mã giả - Pseudo Code, ngôn ngữ tựa Pascal), ngơn ngữ đại số
(10)1.2 Các yếu tố RBTV
Điều kiện RBTV – Ví dụ:
Cho CSDL quản lý hóa đơn bán hàng gồm bảng sau:
HÓƠN (Số-hóa-đơn, Số-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,
(11)1.2 Các yếu tố RBTV
Điều kiện RBTV – Ví dụ:
R1 :“Mỗi hóa đơn có Số hóa đơn riêng biệt, khơng trùng với hóa đơn khác”:
hđ1, hđ2 HÓƠN, hđ1 hđ2
hđ1.Số-hóa-đơn hđ2 Số-hóa-đơn
R2 : “Số-mặt-hàng = số CHITIẾT_HĐ có Số-hóa-đơn”:
hđ HÓƠN thì:
(12)1.2 Các yếu tố RBTV
Điều kiện RBTV – Ví dụ:
R3 : “Tổng trị giá mặt hàng CHITIẾT_HĐ có Số-hóa-đơn
phải Tổng-trị-giá ghi HÓƠN”: hđ HÓƠN thì: hđ.Tổng-trị-giá = SUM
(cthđ.Trị-giá) cthđ
(13)1.2 Các yếu tố RBTV
Điều kiện RBTV – Ví dụ:
R4 : “Mỗi CHITIẾT_HĐ phải có mã hàng thuộc danh mục hàng”:
CHITIẾT_HĐ [Mã-hàng] DM_HÀNG[Mã-hàng]
(14)1.2 Các yếu tố RBTV
Bối cảnh RBTV:
(15)1.2 Các yếu tố RBTV
Bối cảnh RBTV – ví dụ:
Trong ví dụ trên, bối cảnh ràng buộc toàn vẹn sau
R1 :chỉ quan hệ HÓƠN
(16)1.2 Các yếu tố RBTV
Tầm ảnh hưởng RBTV:
Một RBTV liên quan đến số
(17)1.2 Các yếu tố RBTV
Tầm ảnh hưởng RBTV:
Trong quaù trình phân tích, thiết kế
CSDL, người phân tích cần lập bảng xác
(18)1.2 Các yếu tố RBTV
Bảng Tầm ảnh hưởng:
Bảng tầm ảnh hưởng gồm cột: cột chứa tên bảng liên quan tới RBTV; cột thao tác Thêm / Sửa / Xóa giá trị
(19)1.2 Các yếu tố RBTV
Bảng Tầm ảnh hưởng (tt):
Nếu RBTV khơng có nguy bị vi phạm cập nhật CSDL đánh dấu trừ (-)
Nếu khơng bị vi phạm khơng phép sửa đổi ký hiệu trừ với dấu (
(20)1.2 Các yếu tố cuûa RBTV
Tầm ảnh hưởng RBTV – ví dụ:
Bảng tầm ảnh hưởng R1
Quan hệ Thêm Sửa Xóa
HÓƠN + - (*) (Số-hóa-đơn)
-Bảng tầm ảnh hưởng R2
Quan hệ Thêm Sửa Xóa
(21)1.2 Các yếu tố RBTV
Tầm ảnh hưởng RBTV – ví dụ:
Bảng tầm ảnh hưởng R3
Quan hệ Thêm Sửa Xóa
HĨAĐƠN CHITIẾT_HĐ + + + (Tổng-trị-giá) + (Trị-giá) + + Bảng tầm ảnh hưởng R4
Quan hệ Thêm Sửa Xóa
(22)1.2 Các yếu tố RBTV
Tầm ảnh hưởng RBTV – ví dụ:
Bảng tầm ảnh hưởng tổng hợp
QH HÓA-ĐƠN CHITIẾT-HĐ DM_HÀNG
RB T S X T S X T X S
R1 + -(*)
-R2 + + + + - +
(23) DocGia(MaDG, TenDg)
Sach(MaS, TenS, MaLoai)
Loai(MaLoai, TenLoai)
PhieuMuon(SoPM, MaDG, NgayM)
(24)1.2 Các yếu tố cuûa RBTV
Hành động RBTVï bị vi phạm: Hành động (phản ứng) gồm phần
-Thông báo: thông báo cho người dùng biết liệu vi phạm RBTV cần sửa lại
(25)1.2 Các yếu tố RBTV
Hành động RBTVï bị vi phạm: Thơng thường có giải pháp:
Đưa thông báo yêu cầu sửa chữa liệu cho phù hợp với RBTV Thông báo phải đầy đủ tạo thân thiện với người sử dụng
Giải pháp phù hợp cho việc xử lý thời gian thực
Từ chối thao tác cập nhật
(26)2.Phân loại ràng buộc tồn vẹn
1 RBTV có bối cảnh bảng
1 RBTV miền giá trị RBTV liên thuộc tính RBTV liên
2 RBTV có bối cảnh nhiều bảng
1 RBTV phụ thuộc tồn
(27)2.Phân loại ràng buộc tồn vẹn
RBTV miền giá trò
Trong hầu hết CSDL quan hệ, loại
RBTV phổ biến
Mỗi thuộc tính đặc trưng khơng
bởi kiểu giá trị, mà bị giới hạn miền giá trị kiểu liệu
Do đó, thực thao tác cập
(28)2.Phân loại ràng buộc toàn vẹn
RBTV miền giá trị – ví dụ:
Trong quan hệ KQUẢ-THI(MASV, MAMH, LANTHI, DIEM), quy định sinh viên
chỉ thi môn tối đa lần, điểm thi môn học lần thi không bị
âm khơng vượt q 10
Có RBTV miền giá trị quan hệ:
(29)2.Phân loại ràng buộc tồn vẹn
RBTV liên thuộc tính
Đó loại RBTV có liên quan tới nhiều thuộc tính quan hệ
Thơng thường phụ thuộc tính
toán, suy diễn từ giá trị hay nhiều thuộc tính
(30)2.Phân loại ràng buộc toàn vẹn
RBTV liên thuộc tính-ví dụ
Trong Quan hệ CHITIẾT_HĐ trên, có RBTV liên thuộc tính là:
cthđ CHITIẾT_HĐ / cthđ.Trị-giá =
cthđ.Số-lượng-đặt * cthđ.Đơn-giá
(31)2.Phân loại ràng buộc tồn vẹn
RBTV liên bộ
Đây loại RBTV có liên quan tới nhiều
có thể tới nhiều thuộc tính (các) giá trị quan hệ
Ví dụ:
Mã số sinh viên không trùng
Điểm thi lần sau > lần trước:kq KQUẢ-THI
Nếu kq.Lần-thi = kq.Điểm 10 hoặc:
Nếu kq.Lần thi > kq’ KQUẢ-THI
(32)2.Phân loại ràng buộc tồn vẹn
RBTV phụ thuộc – tồn tại
RBTV phụ thuộc tồn gọi
phụ thuộc khóa ngoại Đây loại RBTV phổ biến CSDL
Bộ giá trị quan hệ thêm vào
một cách hợp lệ tồn ghi tương ứng quan hệ khác
Phụ thuộc tồn xảy có
hai trường hợp sau:
(33)2.Phân loại ràng buộc tồn vẹn
RBTV phụ thuộc – tồn tại
Ví dụ:
Mỗi sinh viên phải thuộc lớp Mỗi lớp phải thuộc khoa
Mỗi Điểm phải sinh viên, môn Mỗi nhân viên phải thuộc phòng
Mỗi Mã-hàng Chitiết-HĐ phải tồn
tại quan hệ Hàng-hóa
Mỗi Số-hóa-đơn Chitiết-HĐ phải
(34)2.Phân loại ràng buộc tồn vẹn
RBTV liên thuộc tính – liên quan hệ:
Một thuộc tính quan hệ có mối liên hệ với thuộc tính quan hệ khác
Ví dụ:
Ngày giao hàng phải sau ngày đặt
Hóơn.Ngày-giao >= Đặthàng Ngày-đặt
Trưởng phịng phải từ 40 tuổi trở lên
(35)2.Phân loại ràng buộc toàn vẹn
RBTV liên – liên quan hệ:
Một thuộc tính quan hệ có mối liên hệ với quan hệ khác
Ví dụ:
Mỗi giáo viên phải dạy lớp
Hóơn.Sốmặthàng = số
Chitiết-HĐ có số hóa đơn
Mỗi phiếu mượn mượn tối đa
(36)2.Phân loại ràng buộc toàn vẹn
RBTV có chu trình
Biểu diễn cấu trúc CSDL dạng đồ thị
sau: Mỗi nút đồ thị biểu diễn quan hệ thuộc tính
Quan hệ biểu diễn nút tròn trắng
()
Thuộc tính biểu diễn nút trịn
đen nhỏ ()
Các nút rõ tên quan hệ
(37)2.Phân loại ràng buộc toàn vẹn
RBTV có chu trình
Nếu đồ thị, ta thấy xuất đường khép kín ta nói lược đồ CSDL có diện chu trình
(38)2.Phân loại ràng buộc tồn vẹn
RBTV có chu trình
Ví dụ:
Q1 (Mã-nhân-viên, Mã-phòng)
Q2 (Mã-phịng, Mã-đề-án)
Q3 (Mã-đề-án, Tên-đề-án)
(39)2.Phân loại ràng buộc toàn vẹn
Giả thiết 1: Với tân từ sau:
Mỗi nhân viên phân công vào tất đề án phịng phụ trách.
2 đường mang ý nghĩa giống Đường
dài Q1 kết nối với Q2 (ký hiệu Q1 I><I Q2)
đường ngắn Q4 xác định đề án mà nhân viên tham gia vào Đây
chu trình giaû
Nếu muốn giữ lại quan hệ Q4, tức khơng
hủy bỏ chu trình, phải có RBTV với thuật tốn sau:
(40)[Mã-2.Phân loại ràng buộc toàn vẹn Giả thiết 2: Với tân từ sau:
Mỗi nhân viên phân công vào số đề án phịng phụ trách.
Con đường ngắn Q4 phụ thuộc vào đường dài Q1 I><I Q2, nhân viên khơng tham gia vào tất đề án phòng phụ trách Chu trình mang ý nghĩa thực
(41)2.Phân loại ràng buộc toàn vẹn Giả thiết 3: Với tân từ sau:
Mỗi nhân viên phân công vào đề án bất kỳ.
2 đường hồn tồn độc lập nhau,
khơng liên quan tới nhau, mang ý nghĩa hồn tồn khác