Tài liệu ôn thi cao học - thạc sĩ khoa học máy tính, hệ thống thông tin trường ĐH KHTN TP.HCM: p4

45 1K 2
Tài liệu ôn thi cao học - thạc sĩ khoa học máy tính, hệ thống thông tin trường ĐH KHTN TP.HCM: p4

Đ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

Tài liệu ôn thi cao học - thạc sĩ khoa học máy tính, hệ thống thông tin trường ĐH KHTN TP.HCM: p4

Ràng buộc toàn vẹn Khái niệm Các đặc trưng RBTV Phân loại Cài đặt Khái niệm RBTV (Integrety Constraints) (Integrety RBTV điều kiện bất biến định nghĩa hay nhiều quan hệ khác mà thể quan hệ phải thỏa thời điểm Ví dụ Mức lương người nhân viên khơng vượt q 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) 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’ 3/20/2008 Ơn thi Cao học 2008 Vai trò Đặc trưng RBTV Vai trị 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ế Các đặc trưng RBTV Bối cảnh Nội dung Bảng tầm ảnh hưởng 3/20/2008 Ôn thi Cao học 2008 Bối cảnh RBTV Bối cảnh 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 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 3/20/2008 Ôn thi Cao học 2008 Nội dung Nội dung RBTV phát biểu Ngôn ngữ tự nhiên Dễ hiểu thiếu tính chặt chẽ Ngơn ngữ hình thức Cơ đọng, chặt chẽ đơi lúc khó hiểu Biểu diễn thơng qua Đại số quan hệ Phép tính quan hệ Mã giả (pseudo code) 3/20/2008 Ôn thi Cao học 2008 Nội dung (tt) (tt) Ví dụ (R1) Ngơn ngữ tự nhiên Mức lương người nhân viên không vượt q 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 ))) 3/20/2008 Ôn thi Cao học 2008 Nội dung (tt) (tt) Ví dụ (R2) Ngơn ngữ tự nhiên 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 ∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧ ∃s ∈ NHANVIEN (t.MA_NQL = s.MANV )) 3/20/2008 Ôn thi Cao học 2008 Bảng tầm ảnh hưởng Bảng tầm ảnh hưởng Xác định thao tác cập nhật cần phải kiểm tra RBTV thực quan hệ bối cảnh Có loại Bảng tầm ảnh hưởng cho RBTV Bảng tầm ảnh hưởng tổng hợp 3/20/2008 Ôn thi Cao học 2008 Bảng tầm ảnh hưởng RBTV Tên_RB Thêm Xóa Sửa Quan hệ + − + (Thuộc tính) Quan hệ − + − − + − … Quan hệ n (+) Vi phạm RBTV (−) Khơng vi phạm RBTV 3/20/2008 Ơn thi Cao học 2008 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àng buộc m … + … … T X S + - + - + - - - + … Quan hệ n 3/20/2008 - + - Ôn thi Cao học 2008 10 Phân loại RBTV RBTV quan hệ Miền giá trị Liên Liên thuộc tính RBTV 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 3/20/2008 Ơn thi Cao học 2008 11 RBTV - Miền giá trị Ràng buộc qui định giá trị cho thuộc tính A B C D α α 1 α β β β 12 β R β 23 β ∈ ∈ β, γ} {α, {1 10} Miền giá trị Liên tục Rời rạc 3/20/2008 Ôn thi Cao học 2008 12 Ví dụ Thời gian tham gia đề án nhân viên không 60 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 + 3/20/2008 Xóa − Sửa + (THOIGIAN) Ơn thi Cao học 2008 13 Ví dụ Giới tính nhân viên ‘Nam’ ‘Nu’ Bối cảnh: NHANVIEN Biểu diễn: ∀t ∈ NHANVIEN ( t.PHAI ∈ {‘Nam’, ‘Nu’} ) hay DOM(PHAI) = {‘Nam’, ‘Nu’} Bảng tầm ảnh hưởng: R4 NHANVIEN 3/20/2008 Thêm + Xóa − Ơn thi Cao học 2008 Sửa + (PHAI) 14 RBTV - Liên Sự tồn hay nhiều phụ thuộc vào tồn hay nhiều khác quan hệ R A B C D α α 1 α β β β 12 β β 23 Trường hợp đặc biệt RB khóa RB (unique) 3/20/2008 Ôn thi Cao học 2008 15 Ví dụ Tên phịng Bối cảnh: PHONGBAN Biểu diễn: ∀t1, t2 ∈ PHONGBAN ( t1≠ t2 ∧ t1.TENPHG ≠ T2.TENPHG ) Bảng tầm ảnh hưởng: R5 PHONGBAN 3/20/2008 Thêm + Xóa − Ơn thi Cao học 2008 Sửa + (TENPHG) 16 Ví dụ Một nhân viên tham gia tối đa đề án Bối cảnh: PHANCONG Biểu diễn: ∀t ∈ PHANCONG ( card({ s ∈ PHANCONG | s.MA_NVIEN = t.MA_NVIEN}) ≤ ) Bảng tầm ảnh hưởng: Thêm R6 PHANCONG + 3/20/2008 Xóa − Sửa + (MA_VIEN, SODA) Ôn thi Cao học 2008 17 Ví dụ THIDAU(NGAY, GIO, DOI, SOBAN) Mỗi trận đấu thi đấu đội Bối cảnh: THIDAU Biểu diễn: ∀t ∈ THIDAU ( ∃!s ∈ THIDAU ( t ≠ s ∧ t.NGAY = s.NGAY ∧ t.GIO = s.GIO )) Bảng tầm ảnh hưởng R7 THIDAU 3/20/2008 Thêm + Xóa + Ơn thi Cao học 2008 Sửa + (NGAY, GIO, DOI) 18 RBTV - Liên thuộc tính Là ràng buộc thuộc tính quan hệ A B C D α α 1 α β β β 12 β R β 23 3/20/2008 Ôn thi Cao học 2008 19 Ví dụ Một nhân viên khơng quản lý trực tiếp Bối cảnh: NHANVIEN Biểu diễn: ∀t ∈ NHANVIEN ( t.MA_NQL ≠ t.MANV ∨ t.MA_NQL = null ) Bảng tầm ảnh hưởng: R8 NHANVIEN Thêm − Xóa − Sửa + (MA_NQL) Ở thời điểm thêm vào NHANVIEN, MA_NQL null 3/20/2008 Ôn thi Cao học 2008 20 10 Ví dụ R(A, B, C, D, E, I) F = { A→BCD, BCD→E, CD→EI } BCD→E phụ thuộc hàm đầy đủ khơng? 3/20/2008 Ơn thi Cao học 2008 61 Một số khái niệm (tt) PTH thừa Xét X → Y thừa F ≡ F – {X→Y} 3/20/2008 Ôn thi Cao học 2008 62 31 Phủ tối thiểu Cho F tập PTH định nghĩa R Mà VP chứa thuộc tính PTH G gọi PTT Nếu G phủ G chứa PTH đầy đủ G không chứa PTH thừa Ký hiệu: G=PTT(F) 3/20/2008 Ôn thi Cao học 2008 63 Ví dụ R(A, B, C, D) F = { A→B, B→A, B→C, A→C, C→A } PTT(F) ? Mọi VP có thuộc tính Các PTH đầy đủ Có thể bỏ phụ thuộc hàm thừa nào? 3/20/2008 Ơn thi Cao học 2008 64 32 Ví dụ (tt) Xét A→B A+F – {A→B} = AC không chứa VP A→B không phụ thuộc hàm thừa Xét B→A B+F-{B→A} = BCA B→A phụ hàm thừa 3/20/2008 có chứa VP Ơn thi Cao học 2008 65 Ví dụ (tt) Nếu bỏ B→A A→C F’ = { A→B, B→C, C→A } F’ ≡ F nên F’=PTT(F) Chỉ cần xét F suy dẫn từ F’ F’ ≡ F” Nếu bỏ B→C F” = { A→B, B→A, A→C, C→A} F” ≡ F nên F”=PTT(F) 3/20/2008 Ôn thi Cao học 2008 66 33 Ví dụ R(A, B, C) F = { AB→C, A→B, B→C } PTT(F) ? Mọi VP có thuộc tính Có AB→C khơng PTH đầy đủ Thay PTH đầy đủ Có thể bỏ phụ thuộc hàm thừa nào? 3/20/2008 Ôn thi Cao học 2008 67 Ví dụ (tt) F = { A→C, A→B, B→C } Có thể bỏ phụ thuộc hàm thừa nào? 3/20/2008 Ôn thi Cao học 2008 68 34 Đồ thị PTH Có hướng Nút O : PTH • : thuộc tính Cung nối từ nút O đến nút • nút • đến nút O 3/20/2008 Ôn thi Cao học 2008 69 Ôn thi Cao học 2008 70 Ví dụ R(A, B, C, D, E) F={ f1: A→BC f2: B→A f3: AD→E f4: BD→E } Xem hình trang 16 3/20/2008 35 Tìm khóa Tìm thuộc tính đích Khơng xuất khóa Tìm thuộc tính nguồn Sẽ xuất khóa Tìm nút thuộc tính cịn lại Sao cho tổ hợp chúng + nguồn suy thuộc tính cịn lại 3/20/2008 Ôn thi Cao học 2008 71 Ôn thi Cao học 2008 72 Ví dụ R(A, B, C, D, E, G) F={ f1: AD→B f2: EG→A f3: BC→G } Xem hình trang 19 3/20/2008 36 Tính chất PTH Tính chiếu Cho R f: X → Y Lấy R’ = R[W], X ⊆ W Y ∩ W ≠ ∅ R’ có f’: X → (Y ∩ W) R(ABC) f: A→BC R’(AB) ta có f’: A→B 3/20/2008 Ơn thi Cao học 2008 73 Tính chất PTH Tính phản chiếu Cho R f: X → Y Lấy R’(V), W ⊆ V R’ có f’: X → Y R(AB) f: A→B R’(ABC) ta có f’: A→B 3/20/2008 Ơn thi Cao học 2008 74 37 Ví dụ R(A, B, C, D, E) F={ f1: A→BC f2: B→A f3: AD→E f4: BD→E } R’(ABC) F’ = ? 3/20/2008 Ôn thi Cao học 2008 75 Cài đặt RBTV với SQL Các RBTV cài đặt Primary key Foreign key Check constraint Assertion Trigger Transaction 3/20/2008 Ôn thi Cao học 2008 76 38 Assertion Là biểu thức SQL mang giá trị TRUE thời điểm Người sử dụng cần cho biết phải Cú pháp CREATE ASSERTION CHECK () DROP ASSERTION 3/20/2008 Ôn thi Cao học 2008 77 Ví dụ 12 Ngày sinh trưởng phịng phải nhỏ ngày nhận chức CREATE ASSERTION R12 CHECK ( NOT EXISTS ( SELECT * FROM NHANVIEN, PHONGBAN WHERE MANV=TRPHG AND NGSINH > NGAY_NHANCHUC ) ) 3/20/2008 Ôn thi Cao học 2008 78 39 Ví dụ 15 Lương trưởng phòng phải lớn 50000 CREATE ASSERTION R15 CHECK ( NOT EXISTS ( SELECT * FROM NHANVIEN, PHONGBAN WHERE MANV=TRPHG AND LUONG < 50000 ) ) 3/20/2008 Ôn thi Cao học 2008 79 Ví dụ 15 (tt) (tt) Lương trưởng phòng phải lớn 50000 Check Constraint ALTER TABLE PHONGBAN ( TENPB VARCHAR(20) UNIQUE, MAPHG INT NOT NULL, TRPHG CHAR(9), NG_NHANCHUC DATETIME, CONSTRAINT CHK_PB_LUONGTRPHG CHECK ( TRPHG NOT IN (SELECT MANV FROM NHANVIEN WHERE LUONG < 50000 )) ) 3/20/2008 Ơn thi Cao học 2008 80 40 Ví dụ 16 Số lượng nhân viên phòng ban không 20 người CREATE ASSERTION R16 CHECK ( 20 >= ALL ( SELECT COUNT(MANV) FROM NHANVIEN GROUP BY PHG ) ) 3/20/2008 Ơn thi Cao học 2008 81 Ví dụ 16 (tt) (tt) Số lượng nhân viên phịng ban khơng q 20 người Check Constraint ALTER TABLE NHANVIEN ADD CONSTRAINT CHK_NV_SLNVPB CHECK ( 20 >= ALL ( SELECT COUNT(MANV) FROM NHANVIEN GROUP BY PHG )) 3/20/2008 Ôn thi Cao học 2008 82 41 Assertion hay Check Constraint ? 3/20/2008 Ôn thi Cao học 2008 83 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 Tập hợp lệnh Không thỏa row-level statement-level Thơng báo lỗi 3/20/2008 Ơn thi Cao học 2008 84 42 Trigger (tt) (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 3/20/2008 Ôn thi Cao học 2008 85 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 3/20/2008 Ơn thi Cao học 2008 86 43 Ví dụ 15 (tt) (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 3/20/2008 Ôn thi Cao học 2008 87 Ví dụ 15 (tt) (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: 01/05/2014, 09:30

Từ khóa liên quan

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

Tài liệu liên quan