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

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

68 3 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khái niệm• RBTV R̀ng buộc tòn vẹn - Integrety Constraints • RBTV xuất phát từ những qui định hay điều kiện – Trong thực tế – Trong mô hình dữ liệu • Các thao tác l̀m thay đổi dữ liệu k

Trang 1

Bộ môn Hệ thống thông tin Khoa CNTT – Đại học Khoa học tự nhiên, TpHCM

Ch ơng 7

?

Trang 3

KHÁI NIỆM

Trang 4

Khái niệm

• RBTV (R̀ng buộc tòn vẹn - Integrety Constraints)

• RBTV xuất phát từ những qui định hay điều kiện

– Trong thực tế

– Trong mô hình dữ liệu

• Các thao tác l̀m thay đổi dữ liệu không nên được thực hiện một cách tùy tiện vì có thể đưa CSDL đến một tình trạng ‘xấu’

• RBTV l̀ một điều kiện được định nghĩa trên một hay nhiều quan hệ khác nhau

• L̀ những điều kiện bất biến đối với mọi quan hệ

4

Trang 5

Khái niệm (tt)

• Tại sao cần phải có RBTV?

– Bảo đảm tính kết dính của các thành phần cấu tạo nên CSDL

– Bảo đảm tính nhất quán của dữ liệu

– Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế

• Ví dụ

– Mức lương của một người nhân viên không được vượt quá mức lương của trưởng phòng (R1)

– Người quản lý trực tiếp (của một nhân viên) phải là một nhân viên trong công ty (R2)

5

Trang 7

Mô tả r̀ng buộc tòn vẹn

Trang 8

C ÁC ĐẶC TR NG CỦA RBTV

• Bối cảnh

• Nội dung

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

Trang 10

Bối cảnh (tt)

• Ví dụ (R2)

– Người quản lý trực tiếp phải là một nhân viên trong công ty

• Các phép cập nhật

– Cập nhật người quản lý trực tiếp của một nhân viên

– Thêm mới một nhân viên

Bối cảnh: NHANVIEN

10

Trang 11

C ÁC ĐẶC TR NG CỦA RBTV

• Bối cảnh

• Nội dung

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

Trang 12

Đại số quan hệ

– Phép tính quan hệ

Mã giả (pseudo code) –

12

Trang 15

s  NHANVIEN ( s.MANV = t.MA_NQL))

s  NHANVIEN ( s.MANV = t.MA_NQL))

Trang 16

s  NHANVIEN ( s.MANV = t.MA_NQL))

Trang 17

C ÁC ĐẶC TR NG CỦA RBTV

• Bối cảnh

• Nội dung

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

Trang 20

t  NHANVIEN ( t.PHAI = 'Nam'  t.PHAI = 'Nu' 

t.PHAI = NULL )

t  NHANVIEN ( t.PHAI != NULL t.PHAI= 'Nam'  t.PHAI = 'Nu')

hoặc

Trang 21

- + + (MAPHG)PHONGBAN

Trang 22

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

• Người quản lý trực tiếp của nhân viên nếu có thì phải l̀ một

nhân viên trong công ty

Trang 23

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

• Cho lược đồ:

NHANVIEN (MANV, HOTEN, PHAI, TUOIVEHUU)

• RBTV: Tuổi về hưu của nhân viên Nam là 60, của nhân viên nữ là 55.

Trang 24

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

24

Quan hệ 1Quan hệ 2Quan hệ 3Quan hệ n

Trang 25

5 Liên bộ - liên quan hệ

8 Chu trình

Trang 26

D 1 7 3 9

Trang 28

Ví dụ 4

• Giới tính của nhân viên l̀ ‘Nam’ hoặc ‘Nu’

28

Trang 29

Ví dụ 4b

• Giới tính của nhân viên nếỘ có thì phải l̀ ‘Nam’ hoặc ‘Nu’

29

?

Trang 30

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ệ

D 1 7 3 9

Trang 32

Ví dụ 6

• R6: Một nhân viên được tham gia tối đa 5 đề án

32

Trang 33

Ví dụ 7

THIDAU(NGAY, GIO, DOI, SOBAN)

• Mỗi trận đấu l̀ cuộc thi đấu của đúng 2 đội

33

Trang 34

D 1 7 3 9

Trang 36

Ví dụ 9

KHOAHOC(MAKH, TENKH, BDAU, KTHUC)

• Mỗi khóa học kéo dài ít nhất 3 tháng

36

Trang 37

RBTV - Tham chiếu

• Giá trị xuất hiện tại các thuộc tính trong một quan hệ nào đó phải tham

chiếu đến giá trị khóa chính của một quan hệ khác cho trước

D 1 7 3 9

S

3

1 2

Bắt buộc phải tồn tại trước

Trang 38

  (MA_NVIEN)

Trang 39

RBTV - Tham chiếu (tt)

• Còn gọi là phụ thuộc tồn tại

• Thường có bối cảnh là hai quan hệ

– Nhưng có trường hợp suy biến thành một quan hệ

• Ví dụ (10b): Người quản lý trực tiếp phải là một nhân viên trong công ty

39

Trang 40

RBTV - Liên bộ, liên quan hệ

• L̀ r̀ng buộc xãy ra giữa các bộ trên nhiều quan hệ khác nhau

D 1 7 3 9

2 2

C 7 7 3 10

Trang 42

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

D 1 7 3 9

2 2

C 7 7 3 10

Trang 43

Ví dụ 12

• Ngày sinh của trưởng phòng phải nhỏ hơn ngày nhận chức:

43

Trang 46

Ví dụ 13

PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC, SO_NV )

• Số nhân viên của một phòng ban phải bằng tổng số lượng nhân viên thuộc phòng đó

46

Trang 48

MANV, MADA

MA_NVIEN, SODA

Trang 49

  (MADA,PHONG)PHANCONG    (MA_NVIEN,SODA)

Trang 52

Ví dụ 16

• DDH (MADH, NGAYDH, MAHD)

• CT_DDH (MADH, MAMH, SOLUONG)

• HOADON (MAHD, NGAYGH, TONGTIEN, MADH)

• CT_HOADON (MACT, MAHD, MAMH, SOLUONG, DONGIA)

R̀ng buộc tòn vẹn: Chỉ giao h̀ng các mặt h̀ng có đặt.

52

Trang 55

trước sau

giá trị mới giá trị cũ

thêm xóa sửa

Điều kiện Tập hợp các lệnh

Thông báo lỗi

Thỏa Không thỏa Biến cố

Trang 56

NEW ROW|TABLE AS <Tên_1>

OLD ROW|TABLE AS <Tên_2>

FOR EACH ROW | FOR EACH STATEMENT WHEN ( <Điều kiện>)

<Tập_lệnh_SQL>

DROP TRIGGER <Tên_trigger>

Trang 57

NEW ROW AS NewTupleFOR EACH ROW

WHEN (50000 >= (SELECT LUONG FROM NHANVIEN

WHERE MANV=NewTuple.TRPHG)) Thông báo lỗi cho người dùng

Trang 58

NEW ROW AS NewTupleOLD ROW AS OldTupleFOR EACH ROW

WHEN (50000 >= (SELECT LUONG FROM NHANVIEN

WHERE MANV=NewTuple.TRPHG)) UPDATE PHONGBAN

SET TRPHG=OldTuple.TRPHGWHERE TRPHG=NewTuple.TRPHG

Trang 59

NEW ROW AS NewTupleOLD ROW AS OldTupleFOR EACH ROW

WHEN (NewTuple.LUONG <= 50000 AND NewTuple.MANV IN (

SELECT TRPHG FROM PHONGBAN )) UPDATE NHANVIEN

SET LUONG=OldTuple.LUONGWHERE LUONG=NewTuple.LUONG

Trang 60

• Là tập các lệnh thực hiện một xử lý nào đó trong một ứng dụng CSDL, sao cho

– Hoặc là tất cả các lệnh đều được thực hiện thành công

– Hoặc là không có lệnh nào được thực hiện

• Ví dụ: xử lý chuyển tiền trong ngân hàng

60

Giao tác Chuyển_tiền

Giảm tiền trong tài khoản người gửiTăng tiền trong tài khoản người nhận

Nếu tất cả đều thành công thì hoàn tất giao tác

Ngược lại quay lui giao tácCuối giao tác

Trang 62

Nếu có một thao tác thất bại thì

Quay lui giao tác

Ngược lại

Hoàn tất giao tác

Cuối nếu

Cuối giao tác

Trang 63

Ví dụ 7 (tt)

63

Giao tác Xóa_trận_đấu(ngay, gio)

Với mọi sTHIDAU (s.NGAYngay  s.GIOgio)

Xóa s khỏi THIDAU

Cuối với mọiNếu có một thao tác thất bại thì

Quay lui giao tác

Ngược lại

Hoàn tất giao tác

Cuối nếu

Cuối giao tác

Trang 64

Nếu có một thao tác thêm thất bại thì

Quay lui giao tác

Ngược lại

Hoàn tất giao tác

Cuối nếu

Cuối giao tác

Trang 65

Stored Procedure

• Các DBMS thương mại cung cấp cách thức lưu trữ các hàm hay thủ tục

– Được lưu trữ trong lược đồ CSDL

– Được sử dụng trong các câu lệnh SQL

Trang 66

Thêm t vào THIDAU

If @@error<>0 rollback tran

Thêm s vào THIDAU

If @@error<>0 rollback trancommit tran

GO

EXEC Thêm_trận_đấu x, y

Trang 67

Nhận xét

• DBMS sẽ kiểm tra RBTV

– Sau khi một thao tác cập nhật diễn ra trên CSDL

– Cuối mỗi giao tác

• Nên cài đặt RBTV ở đâu ???

– DBMS

– Application

– Trigger quá nhiều  hệ thống chậm chạp

– Stored Procedure  hiệu quả cao

67

Trang 68

C ÂU HỎI ?

68

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

w