1. Trang chủ
  2. » Giáo Dục - Đào Tạo

chương 7 ràng buộc toàn vẹn

68 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 1,14 MB

Nội dung

? Ch ơng RÀNG BU C TOÀN V N Bộ môn Hệ thống thông tin Khoa CNTT – Đại học Khoa học tự nhiên, TpHCM Nội dung • • • • Khái niệm Các đặc trưng RBTV Phân loại C̀i đặt KHÁI NIỆM Khái niệm • RBTV (R̀ng buộc tòn vẹn - Integrety Constraints) • RBTV xuất phát từ qui định hay điều kiện – Trong thực tế – Trong mơ hình liệu • Các thao tác l̀m thay đổi liệu không nên thực cách tùy tiện đưa CSDL đến tình trạng ‘xấu’ • RBTV l̀ điều kiện định nghĩa hay nhiều quan hệ khác • L̀ điều kiện bất biến quan hệ Khái niệm (tt) • Tại cần phải có RBTV? – Bảo đảm tính kết dính thành phần cấu tạo nên CSDL – Bảo đảm tính quán liệu – Bảo đảm CSDL biểu diễn ngữ nghĩa thực tế • Ví dụ – Mức lương người nhân viên khơng vượt q mức lương trưởng phịng (R1) – Người quản lý trực tiếp (của nhân viên) phải nhân viên công ty (R2) CÁ C Đ Ặ C T R N G C Ủ A RBTV • Bối cảnh • Nội dung • Bảng tầm ảnh hưởng Mô tả r̀ng buộc tòn vẹn • Bối cạnh : – …… – …… • Nội dung: – … • Bảng tầm ảnh hưởng: Thêm Xóa Cập nhật R1 + - - R2 - + + (attr1) CÁC ĐẶC TR NG CỦA RBTV • Bối cảnh • Nội dung • Bảng tầm ảnh hưởng Bối cảnh • Bối cảnh RBTV – L̀ quan hệ có khả bị vi phạm RBTV thực phép cập nhật • Ví dụ (R1) – Mức lương người nhân viên không vượt q 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 nhân viên v̀o phòng ban – Bổ nhiệm trưởng phịng cho phịng ban • Bối cảnh: NHANVIEN, PHONGBAN Bối cảnh (tt) • Ví dụ (R2) – Người quản lý trực tiếp phải nhân viên cơng ty • Các phép cập nhật – Cập nhật người quản lý trực tiếp nhân viên – Thêm nhân viên • Bối cảnh: NHANVIEN 10 C̀i đặt • Các RBTV c̀i đặt – Primary key – Foreign key – Check contraint – Trigger – Transaction 54 Trigger • Là tập hợp lệnh thực tự động xuất biến cố thêm xóa sửa trước sau giá trị giá trị cũ Biến cố Điều kiện Thỏa Không thỏa Tập hợp lệnh row-level statement-level Thông báo lỗi 55 Trigger (tt) • Cú pháp CREATE TRIGGER AFTER|BEFORE INSERT|UPDATE|DELETE REFERENCING NEW ROW|TABLE AS OLD ROW|TABLE AS FOR EACH ROW | FOR EACH STATEMENT WHEN () ON DROP TRIGGER 56 Ví dụ 15 • Lương trưởng phòng phải lớn 50000 CREATE TRIGGER TR_PB_UPD AFTER UPDATE OF TRPHG ON PHONGBAN REFERENCING NEW ROW AS NewTuple FOR EACH ROW WHEN (50000 >= (SELECT LUONG FROM NHANVIEN WHERE MANV=NewTuple.TRPHG)) Thông báo lỗi cho người dùng 57 Ví dụ 15 (tt) • Lương trưởng phòng phải lớn 50000 CREATE TRIGGER TR_PB_UPD AFTER UPDATE OF TRPHG ON PHONGBAN REFERENCING NEW ROW AS NewTuple OLD ROW AS OldTuple FOR EACH ROW FROM NHANVIEN WHEN (50000 >= (SELECT LUONG WHERE MANV=NewTuple.TRPHG)) UPDATE PHONGBAN SET TRPHG=OldTuple.TRPHG WHERE TRPHG=NewTuple.TRPHG 58 Ví dụ 15 (tt) • Lương trưởng phòng phải lớn 50000 CREATE TRIGGER TR_PB_UPD AFTER UPDATE OF LUONG ON NHANVIEN REFERENCING NEW ROW AS NewTuple OLD ROW AS OldTuple FOR EACH ROW WHEN (NewTuple.LUONG

Ngày đăng: 12/08/2022, 15:35

w