CHƯƠNG 7 Ràng buộc toàn vẹn (Integrity Constraints) Nội dung chi tiết Khái niệm Các đặc trưng của RBTV Phân loại Cà i đạ t 2 Khái niệm RBTV (Integrety Constraints) được phát hiện từ ngữ nghĩa của dữ liệu hoặc thể hiện của dữ liệu trong thực tế (1). RBTV nhằm đảm bảo (1): Tính đúng của dữ liệu và mô hình dữ liệu. Ngữ nghĩa của CSDL Khi RBTV được khai báo, mọi thể hiện của quan hệ đều phải thỏa các RBTV này ở bất kỳ thời điểm nào (1). RBTV được phát hiện và khai báo bởi các thiết kế viên trong quá trình thiết kế dữ liệu (1).
RBTV được định nghĩa trên một quan hệ hoặc liên quan đến nhiều quan hệ (1). (1) Trích từ sách: Fundamental of Databases 4th , Ramez Elmasri & Shamkant B. Navathe, ISBN 0-321-12226-7, 2003 3 Nội dung chi tiết Khái niệm và phân loại Các đặc trưng của RBTV Bối cảnh Nội dung Bảng tầm ảnh hưởng Phân loại Cài đặt 4 Bối cảnh Bối cảnh của một RBTV Là những quan hệ có khả năng bị vi phạm RBTV khi thực hiện các phép cập nhật dữ liệu (thêm, xóa, sửa dữ liệu) Ví dụ (R1) Mức lương của một người giáo viên không được vượt quá trưởng bộ môn Các phép cập nhật Cập nhật lương cho giáo viên Thêm mới một giáo viên vào một bộ môn Bổ nhiệm trưởng bộ môn cho một bộ môn Bối cảnh: GIAOVIEN, BOMON 5 Bối cảnh (tt) Ví dụ (R2) - Người quản lý trực tiếp (của một giáo viên) phải là một giáo viên trong cùng bộ môn • 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 giáo viên Thêm mới một giáo viên • Bối cảnh: GIAOVIEN 6 Nội dung Nội dung của một RBTV được phát biểu bằng Ngôn ngữ tự nhiên Dễ hiểu nhưng thiếu tính chặt chẽ Ngôn ngữ hình thức Cô đọng, chặt chẽ nhưng đôi lúc khó hiểu Biểu diễn thông qua Đại số quan hệ Phép tính quan hệ (biến bộ) Mã giả (pseudo code) 7 Nội dung (tt) Ví dụ (R1) Ngôn ngữ tự nhiên Mức lương của một người giáo viên không được vượt quá trưởng bộ môn của giáo viên đó. Ngôn ngữ hình thức (t)(GIAOVIEN(t) (s)(BOMON(s) (u)(GIAOVIEN(u) s.LUONG ))) 8 Nội dung (tt) Ví dụ (R2) Ngôn ngữ tự nhiên Người quản lý trực tiếp của một giáo viên phải là một giáo viên trong cùng bộ môn Ngôn ngữ hình thức (t)(GIAOVIEN(t) (t.GVQLCM ))) 9 Bảng tầm ảnh hưởng Bảng tầm ảnh hưởng Xác định thao tác cập nhật nào cần phải kiểm tra RBTV khi được thực hiện trên quan hệ bối cảnh Có 2 loại Bảng tầm ảnh hưởng cho một RBTV Bảng tầm ảnh hưởng tổng hợp 10 Bảng tầm ảnh hưởng một RBTV Tên_RB Thêm Xóa Sửa Quan hệ 1 (Thuộc tính) Quan hệ 2 … Quan hệ n () Vi phạm RBTV () Không vi phạm RBTV 11 Bảng tầm ảnh hưởng tổng hợp Ràng buộc 1 Ràng buộc 2 Ràng buộc m T X S T X S … … … T X S Quan hệ 1 + - + + - + + - + Quan hệ 2 - + - Quan hệ 3 - - + - + - … Quan hệ n - + - - - + 12 Nội dung chi tiết Khái niệm Các đặc trưng của RBTV Phân loại Cài đặt 13 Phân loại RBTV được chia làm 3 loại chính (1): RBTV bắt buộc liên quan đến mô hình dữ liệu (inherent model based constraints).
Ví dụ: Một quan hệ không được chứa các bộ dữ liệu trùng nhau. RBTV liên quan đến lược đồ của mô hình dữ liệu (schema based constraints). Ví dụ: Ràng buộc miền giá trị, ràng buộc trên khóa, ràng buộc trên giá trị rỗng, ràng buộc tham chiếu. RBTV dựa trên ứng dụng (application based constraints).
Ví dụ: Mức lương của một người giáo viên không được vượt quá trưởng bộ môn (1) Trích từ sách: Fundamental of Databases 4th , Ramez Elmasri & Shamkant B. Navathe, ISBN 0-321-12226-7, 2003 14 Phân loại RBTV liên quan đến một quan hệ: Miền giá trị Liên bộ Liên thuộc tính RBTV liên quan đến nhiều quan hệ: Tham chiếu Liên bộ liên quan hệ Liên thuộc tính liên quan hệ Thuộc tính tổng hợp Chu trình 15 RBTV - Miền giá trị Ràng buộc qui định các giá trị cho một thuộc tính R A B C D 1 1 5 7 9 , {, } {1.10} 12 3 23 9 Miền giá trị Liên tục Rời rạc 16 Ví dụ 3 Giới tính của giáo viên phải là ‘Nam’ hoặc ‘Nữ’ - Bối cảnh: GIÁOVIÊN - Biểu diễn: (t )(GIAOVIEN(t) (t.PHAI = ‘Nữ‘)) hay DOM(PHAI) {‘Nam’, ‘Nữ’} - Bảng tầm ảnh hưởng: R3 Thêm Xóa Sửa GIÁOVIÊN (PHAI) 17 Ví dụ 4 Phụ cấp của mỗi công việc trong đề tài không được vượt quá 20 triệu. Bối cảnh: THAMGIAĐT Biểu diễn: (t )(THAMGIAĐT(t) t.PHỤCẤP 20) Bảng tầm ảnh hưởng: R4 Thêm Xóa Sửa THAMGIAĐT (PHỤCẤP) 18 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) 19 Ví dụ 5 Tên bộ môn là duy nhất. Bối cảnh: BOMON Biểu diễn: (t1, t2) (BOMON(t1) BOMON(t2) (t1 t2 t1.TENBM) ) Bảng tầm ảnh hưởng: R5 Thêm Xóa Sửa BOMON (TENBM) 20 Ví dụ 6 Một giáo viên được tham gia tối đa 5 công việc trong tất cả đề tài Bối cảnh: THAMGIAĐT Biểu diễn: (t)(THAMGIADT(t) card({ s | THAMGIADT(s) s.MAGV}) 5 ) Bảng tầm ảnh hưởng: R6 Thêm Xóa Sửa THAMGIADT (MAGV) 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 1 5 7 12 3 23 9 22 Ví dụ 8 Một giáo viên không trực tiếp quản lý chuyên môn chính mình Bối cảnh: GIAOVIEN Biểu diễn: (t)( GIAOVIEN(t) (t.MAGV) } Bảng tầm ảnh hưởng: R8 Thêm Xóa Sửa GIAOVIEN + (GVQLCM) 23 Ví dụ 9 Ngày bắt đầu của đề tài luôn nhỏ hơn ngày kết thúc của đề tài.
Bối cảnh: ĐỀTÀI Biểu diễn: (t)( ĐỀTÀI(t) t.NGÀYKT) Bảng tầm ảnh hưởng: R9 Thêm Xóa Sửa ĐỀTÀI + (NGÀYBĐ, NGÀYKT) 24 Ví dụ 10 Ngày bắt đầu của một công việc luôn nhỏ hơn ngày kết thúc của công việc đó. Bối cảnh: CÔNGVIỆC Biểu diễn: (t)( CÔNGVIỆC(t) t.NGÀYKT) Bảng tầm ảnh hưởng: R10 Thêm Xóa Sửa CÔNGVIỆC + (NGÀYBĐ, NGÀYKT) 25 RBTV - Tham chiếu Còn gọi là phụ thuộc tồn tại 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 của một quan hệ khác cho trước. R A B C D S E F 1 1 7 1 5 7 3 2 12 3 23 9 Bắt buộc phải tồn tại trước Trường hợp đặc biệt RB khóa ngoại 26 Ví dụ 11 Mọi giáo viên phải thuộc về một bộ môn cụ thể. Bối cảnh: BOMON, GIAOVIEN Biểu diễn: (t)(GIAOVIEN(t) s(BOMON(s) s.MABM)) Bảng tầm ảnh hưởng: R11 Thêm Xóa Sửa GIAOVIEN + - (MABM) BOMON - + +(MABM) 27 Ví dụ 12 Trưởng bộ môn phải là một giáo viên Bối cảnh: BOMON, GIAOVIEN Biểu diễn: (t)(BOMON(t) s(GIAOVIEN(s) s.TRUONGBM)) Bảng tầm ảnh hưởng: R12 Thêm Xóa Sửa GIAOVIEN - + (MAGV) BOMON + - +(TRUONGBM) 28 RBTV - Tham chiếu (tt) 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ụ (R2) Người quản lý trực tiếp của một giáo viên phải là một giáo viên trong cùng bộ môn Bối cảnh: GIAOVIEN Biểu diễn: (t)(GIAOVIEN(t) (t.GVQLCM ))) Bảng tầm ảnh hưởng R2 Thêm Xóa Sửa GIAOVIEN (GVQLCM, MABM) 29 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 R A B C D 1 1 5 7 12 3 23 9 S A B C 2 7 4 7 2 3 2 10 30 Ví dụ 13 Mỗi đề tài phải có ít nhất một công việc thuộc về đề tài đó Bối cảnh: DETAI, CONGVIEC Biểu diễn: (t) (DETAI(t) (s)(CONGVIEC(s) t.MADT)) Bảng tầm ảnh hưởng: R13 Thêm Xóa Sửa DETAI - +(MADT) CONGVIEC - (MADT) 31 Ví dụ 14 Mỗi bộ môn phải có ít nhất một giáo viên Bối cảnh: GIAOVIEN, BOMON Biểu diễn: (t) (BOMON(t) (s)(GIAOVIEN(s) t.MABM)) Bảng tầm ảnh hưởng: R14 Thêm Xóa Sửa BOMON - +(MABM) GIAOVIEN - (MABM) 32 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 D S A B C 1 1 2 7 5 7 4 7 12 3 2 3 23 9 2 10 33 Ví dụ 15 Ngày sinh của trưởng bộ môn phải nhỏ hơn ngày nhận chức: Bối cảnh: GIAOVIEN, BOMON Biểu diễn: (t)(BOMON(t) s(GIAOVIEN(s) s.NGAYNHANCHUC)) Bảng tầm ảnh hưởng: R15 Thêm Xóa Sửa GIAOVIEN - (NGAYSINH) BOMON (NGAYNHANCHUC, TRUONGBM) 34 Ví dụ 16 Phụ cấp của một công việc trong đề tài luôn luôn nhỏ hơn kinh phí của đề tài đó.
Bối cảnh: THAMGIADT, DETAI Biểu diễn: (t)(THAMGIADT(t) s(DETAI(s) s.