Bài giảng cơ sở dữ liệu chương 6 ràng buộc toàn vẹn

56 621 2
Bài giảng cơ sở dữ liệu   chương 6  ràng buộc toàn vẹn

Đ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

Chương Ràng buộc toàn vẹn Nội dung chi tiết ‰Khái niệm ‰Các đặc trưng RBTV ‰Phân loại ‰Cài đặt Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN Khái niệm ‰RBTV (Integrety Constraints) xuất phát từ qui định hay điều kiện ¾ Trong thực tế ¾ Trong mô hình liệu y 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 điều kiện định nghĩa hay nhiều quan hệ khác ‰Các RBTV điều kiện bất biến mà thể QH phải thỏa thời điểm Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 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 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ơ sở liệu - Khoa CNTT - CĐ KTCN ĐN Nội dung chi tiết ‰Khái niệm ‰Các đặc trưng RBTV ¾Bối cảnh ¾Nội dung ¾Bảng tầm ảnh hưởng ‰Phân loại ‰Cài đặt Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 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 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 NV vào phòng ban ∗ Bổ nhiệm trưởng phòng cho phòng ban y Bối cảnh: NHANVIEN, PHONGBAN Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 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 y 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 y Bối cảnh: NHANVIEN Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN Nội dung ‰Nội dung RBTV phát biểu ¾ Ngôn ngữ tự nhiên y Dễ hiểu thiếu tính chặt chẽ ¾ Ngôn ngữ hình thức y Cô đọng, chặt chẽ đô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ở liệu - Khoa CNTT - CĐ KTCN ĐN Nội dung (tt) ‰Ví dụ (R1) ¾ Ngôn ngữ tự nhiên y Mức lương người nhân viên không vượt 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ở liệu - Khoa CNTT - CĐ KTCN ĐN 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 nhân viên 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ở liệu - Khoa CNTT - CĐ KTCN ĐN 10 Ví dụ 16 (tt) Check Constraint ‰Số lượng nhân viên phòng ban không 20 người ALTER TABLE NHANVIEN ADD CONSTRAINT CHK_NV_SLNVPB CHECK ( 20 >= ALL ( SELECT COUNT(MANV) FROM NHANVIEN GROUP BY PHG )) Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 42 Trigger ‰ Là tập hợp lệnh thực tự động xuất biến cố thêm xóa sửa Biến cố trước sau giá trị giá trị cũ Điều kiện Không thỏa Thỏa Tập hợp lệnh row-level statement-level Thông báo lỗi Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 43 Trigger (tt) ‰ Cú pháp CREATE TRIGGER AFTER|BEFORE INSERT|UPDATE|DELETE ON REFERENCING NEW ROW|TABLE AS OLD ROW|TABLE AS FOR EACH ROW | FOR EACH STATEMENT WHEN () DROP TRIGGER Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 44 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 Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 45 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 WHEN (50000 >= (SELECT LUONG FROM NHANVIEN WHERE MANV=NewTuple.TRPHG)) UPDATE PHONGBAN SET TRPHG=OldTuple.TRPHG WHERE TRPHG=NewTuple.TRPHG Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 46 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 [...]... 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 … …... β ∈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... 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... 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:... CTHD ( t.SOHD = s.SOHD )) ¾ Bảng tầm ảnh hưởng: R11 HOADON CTHD Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN Thêm + + Xóa + + Sửa + (SOHD) + (SOHD) 29 RBTV - Liên thuộc tính, liên quan hệ ‰Là ràng buộc xãy ra giữa các thuộc tính trên nhiều quan hệ khác nhau R A B C 1 α 2 7 5 7 α 4 7 β 12 3 β 2 3 β 23 9 γ 2 10 A B C D α α 1 α β β β Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN S 30 Ví dụ 12 ‰Ngày sinh của trưởng... 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 Ví dụ 10 ‰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 ¾ Bối cảnh: THANNHAN, NHANVIEN ¾ Biểu diễn: ∀t ∈ THANNHAN ( ∃s ∈ NHANVIEN ( s.MANV = t.MA_NVIEN )) ¾ Bảng tầm ảnh hưởng: hay THANNHAN.MA_NVIEN ⊆ NHANVIEN.MANV R10 NHANVIEN THANNHAN Cơ sở dữ liệu - Khoa... 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... 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ị... ả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... ảnh hưởng: R12 NHANVIEN PHONGBAN Thêm − + Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN Xóa − − Sửa + (NGSINH, MANV) + (NG_NHANCHUC, TRPHG) 31 RBTV - Thuộc tính tổng hợp ‰Thuộc tính tổng hợp ¾ Là thuộc tính có giá trị được tính toán từ các thuộc tính khác ‰Khi CSDL có thuộc tính tổng hợp ¾ RBTV bảo đảm quan hệ giữa thuộc tính tổng hợp và các thuộc tính nguồn Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN 32 Ví dụ 13 ... RBTV Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN 12 Bảng tầm ảnh hưởng tổng hợp Ràng buộc Ràng buộc T X S T X S Quan hệ + - + + - + Quan hệ - + - Quan hệ - - + R buộc m … … … T X S + - + - + - - - + …... Thêm + Cơ sở 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 thuộc tính quan hệ R A B C D α α β β β 12 α β β Cơ sở liệu - Khoa CNTT - CĐ KTCN... R2 NHANVIEN Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN Thêm + Xóa + Sửa + (MANV, MA_NVIEN) 27 RBTV - Liên bộ, liên quan hệ ‰Là ràng buộc xảy nhiều quan hệ khác R Cơ sở liệu - Khoa CNTT - CĐ KTCN ĐN

Ngày đăng: 03/12/2015, 01:07

Từ khóa liên quan

Mục lục

  • Chương 6

  • Nội dung chi tiết

  • Khái niệm

  • Khái niệm (tt)

  • Nội dung chi tiết

  • Bối cảnh

  • Bối cảnh (tt)

  • Nội dung

  • Nội dung (tt)

  • Nội dung (tt)

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

  • Bảng tầm ảnh hưởng một RBTV

  • Bảng tầm ảnh hưởng tổng hợp

  • Nội dung chi tiết

  • RBTV - Miền giá trị

  • Ví dụ 3

  • Ví dụ 4

  • RBTV - Liên bộ

  • Ví dụ 5

  • Ví dụ 6

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan