CHƯƠNG 7 Ràng buộc toàn vẹn (Integrety Constraints) Slide bài giảng môn Cơ sở dữ liệu © Bộ môn Hệ Thống Thông Tin - Khoa Công Nghệ Thông Tin - Trường Đại học Khoa học Tự nhiên 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 ))) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 ))) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 - + - - - + © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 contraints).
• 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 contraints). • 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 contraints).
• 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 25 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 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 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 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) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 28 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ụ (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.