Ràng buộc toàn vẹn (Integrity Constraint)

Slides:



Advertisements
Similar presentations
5.
Advertisements

CHƯƠNG III: NGÂN HÀNG VÀ CÁC NGHIỆP VỤ NGÂN HÀNG.
By Nguyen Minh Quy - UTEHY
LOGO JOOMLA & PHP See How easy it is! Trung tâm đào tạo lập trình viên quốc tế Aprotrain -Aptech Làm web trong 10 phút Diễn giả : Đặng Tuấn Tú.
Chào mừng quý thầy cô và các em TRƯỜNG THPT TRẦN VĂN KỶ TỔ LÝ – TIN - KTCN.
BÀI 3. ĐƯỜNG THẲNG VÀ MẶT PHẲNG SONG SONG SỞ GD&ĐT ĐIỆN BIÊN TRƯỜNG THCS-THPT TẢ SÌN THÀNG BÀI DỰ THI SOẠN GIẢNG E-LEARNING Chương II ĐƯỜNG THẲNG VÀ MẶT.
Orientation Các vấn đề về IT.
Các kiểu dữ liệu trong VB
Giáo viên: Nguyễn Ngọc Thúy Hằng Đơn vị: Trường THPT Lê Quý Đôn
BIỆN PHÁP TRÁNH THAI TỰ NHIÊN ĐỐI TƯỢNG: CĐ HỘ SINH THỜI GIAN: 4 TIẾT.
CƠ CHẾ QUẢN LÝ KINH TẾ TRƯỚC THỜI KÌ ĐỔI MỚI (1975 – 1986)
37 Lê Quốc Hưng, Quận 4, Tp. Hồ Chí Minh ​ (08) ĐỀ XUẤT POC CÁC GIẢI PHÁP GIÁM SÁT HẠ TẦNG TRÊN NỀN TẢNG CÔNG.
1 BÀI 6 BẤM CÁP VÀ CHIA SẺ DỮ LIỆU MẠNG. 2 Nội Dung  Bấm cáp xoắn đôi đúng chuẩn Phương pháp bấm cáp chuẩn A Phương pháp bấm cáp chuẩn B  Kết nối máy.
TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C/C++
Thị trường mới ThS. Nguyễn Văn Thoan
Đánh giá hiệu quả chiến lược – Phương pháp bảng điểm cân bằng
Chương 1: mạng máy tính và Internet
Ngôn ngữ truy vấn SQL Chương 5. Nội dung trình bày  Giới thiệu  Định nghĩa dữ liệu  Cập nhật dữ liệu  Truy vấn dữ liệu.
Kính Chào Cô và Các b ạ n thân m ế n !!!!!. HÌNH THỨC CHÍNH THỂ CỦA NHÀ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM VÀ MỘT SỐ NƯỚC TRÊN THẾ GIỚI. Thuyết trình.
Tác tử thông minh.
Ngôn ngữ lập trình C/C++
SỬ DỤNG EXCEL ĐỂ TRÍCH KHẤU HAO TSCĐ
CHƯƠNG 9 PHẦN MỀM POWERPOINT
BÀI 4 CÔNG NGHỆ THÔNG TIN VÀ CHUỖI CUNG ỨNG
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
© 2007 Thomson South-Western
Hướng dẫn viết đề cương nghiên cứu
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++
THIẾT KẾ HỆ THỐNG THÔNG TIN Chương 5.
Chương 8 KẾT NỐI VỚI SQL SERVER & ỨNG DỤNG TRÊN C#
Vấn đề ngôn ngữ lập trình
Chương 4: Thị trường tài chính
MỘT SỐ HƯỚNG DẪN KHI SOẠN CÂU HỎI TRẮC NGHIỆM
NHẬP MÔN VỀ KỸ THUẬT.
© 2007 Thomson South-Western
OBJECT-ORIENTED ANALYSIS AND DESIGN WITH UML 2.0
Hệ quản trị Cơ sở dữ liệu Giới thiệu
CÔNG NGHỆ THƯƠNG MẠI ĐIỆN TỬ
Chương 1: Khái quát về dự án đầu tư.
Ra quyết định kinh doanh
Policy Analysis Tools of the Trade NMDUC 2009.
Cấu hình đơn giản cho Router
Bài giảng môn Tin ứng dụng
MÔI TRƯỜNG VÀ THÔNG TIN MARKETING
Ring ? Bus ? ? Mesh ? Start ?. Ring ? Bus ? ? Mesh ? Start ?
Môn: Lập trình Hướng đối tượng (Object Oriented Programming)
Chương 6 Các chiến lược tiếp thị
TÀI LIỆU GIẢNG DẠY IC3 GS4 SPARK
GIÁO TRÌNH ĐÀO TẠO TRƯỜNG ĐẠI HỌC SÀI GÒN
HỆ ĐIỀU HÀNH MẠNG.
ỨNG DỤNG HIV INFO 3.0 QUẢN LÝ SỐ LIỆU NGƯỜI NHIỄM HIV/AIDS
DOANH NGHIỆP – SINH VIÊN VỀ VẤN ĐỀ THỰC TẬP
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
ÔN TẬP Chuyển các số sau từ hệ thập phân sang nhị phân, bát phân, thập lục phân: Chuyển các số sau từ hệ nhị phân.
BÀI 29: LỌC DỮ LIỆU TỪ DANH SÁCH DỮ LIỆU
Chương 4 - CÁC MÔ ĐUN ĐiỀU KHIỂN TRONG HỆ THỐNG CƠ ĐiỆN TỬ
Data Integrity TÍNH TOÀN VẸN DỮ LiỆU.
ĐÁNH GIÁ TÁC ĐỘNG SỨC KHỎE
Chương 5: Relational mapping
Lớp DH05LN GIÁO VIÊN PHỤ TRÁCH ThS. NGUYỄN QUỐC BÌNH
KỸ NĂNG LUYỆN TRÍ NHỚ ThS. Huỳnh Phạm Ngọc Lâm.
Thày thuốc nhân dân TsViên Văn Đoan
Chương 3. Lập trình trong SQL Server TRIGGER
AUDIO DROPBOX - TUTORIALS
Module 2 – CSR & Corporate Strategy
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐIỆN BIÊN TRƯỜNG THPT MÙN CHUNG
Company LOGO CĂN BẢN VỀ MẠNG NGUYEN TAN THANH Xem lại bài học tại
Quản trị rủi ro Những vấn đề căn bản Nguyễn Hưng Quang 07/11/2015 NHẬT HOA IC&T.
TRƯỜNG ĐẠI HỌC NGOẠI THƯƠNG CƠ SỞ II TẠI TP. HỒ CHÍ MINH HỘI NGHỊ KHOA HỌC CƠ SỞ II “BÁO CÁO HOẠT ĐỘNG ĐI THỰC TẾ CỦA GIẢNG VIÊN CSII, NĂM HỌC ”
Nghiên cứuLập kế hoạch Thực thi giao tiếp Đánh giá.
Presentation transcript:

Ràng buộc toàn vẹn (Integrity Constraint) Chương 6 Ràng buộc toàn vẹn (Integrity Constraint)

Nội dung trình bày Giới thiệu Các yếu tố của RBTV Phân loại RBTV Cài đặt RBTV

Giới thiệu RBTV Mục đích của RBTV RBTV có 3 yếu tố Các điều kiện mọi trạng thái của quan hệ đều phải thỏa ở bất kỳ thời điểm nào. Xuất phát từ các qui tắc quản lý được áp đặt lên các đối tượng trong thế giới thực. Mục đích của RBTV Đảm bảo tính nhất quán của dữ liệu. Người giám sát phải là một nhân viên trong công ty. Dự án phải được điều phối bởi một phòng trong công ty. Đảm bảo ngữ nghĩa thực tế của CSDL. Ngày nhận chức > Ngày sinh. Lương nhân viên < Lương trưởng phòng. RBTV có 3 yếu tố Nội dung. Bối cảnh. Bảng tầm ảnh hưởng.

Nội dung của RBTV Được phát biểu bằng Ngôn ngữ tự nhiên. Đơn giản, dễ hiểu. Ngôn ngữ hình thức Đại số quan hệ, phép tính quan hệ, mã giả (pseudo code). Có cơ sở toán học, đôi lúc khó hiểu.

Ví dụ RB-1 Mỗi nhân viên có một mã số riêng biệt dùng để phân biệt với các nhân viên khác. t1, t2  NHANVIEN (t1 t2  t1.MaNV  t2.MaNV) RB-2 Mỗi nhân viên phải làm việc trong một phòng ban. NHANVIEN[MaPhong] PHONGBAN[MaPB] RB-3 Mỗi nhân viên chỉ được phép tham gia không quá 3 dự án. s  THAMGIA (card({t | t  THAMGIA  t.MaNV = s.MaNV}) 3) RB-4 Mỗi phòng ban phải có ít nhất một nhân viên s  PHONGBAN (t  NHANVIEN (t.MaPhong = s.MaPB))

Bối cảnh của RBTV Là những quan hệ mà RBTV có hiệu lực. Bối cảnh có thể là một quan hệ hoặc nhiều quan hệ. Ví dụ RB-1 có bối cảnh là NHANVIEN. RB-2, RB-4 có bối cảnh là NHANVIEN, PHONGBAN. RB-3 có bối cảnh là THAMGIA.

Bảng tầm ảnh hưởng của RBTV (1) RBTV có thể bị vi phạm khi thực hiện các thao tác cập nhật trên bối cảnh Thêm Xóa Sửa Bảng tầm ảnh hưởng dùng để xác định thời điểm cần kiểm tra RBTV. - + Quan hệ k ... Quan hệ 1 Sửa Xóa Thêm Tên RBTV Các quan hệ bối cảnh + : cần phải kiểm tra RBTV - : không cần kiểm tra RBTV

Ví dụ - + NHANVIEN Sửa Xóa Thêm RB-1 - + PHONGBAN NHANVIEN Sửa Xóa THAMGIA Sửa Xóa Thêm RB-3 - + PHONGBAN NHANVIEN Sửa Xóa Thêm RB-4

Bảng tầm ảnh hưởng của RBTV (2) Bảng tầm ảnh hưởng tổng hợp Xây dựng trên cơ sở bảng tầm ảnh hưởng của các RBTV. Để xác định thời điểm kiểm tra RBTV khi một thao tác cập nhật trên một quan hệ nào đó được thực hiện. ... + T Tên RBTV r - X S Quan hệ n Quan hệ 1 Tên RBTV 1

Ví dụ + - T RB-4 X S ... THAMGIA PHONGBAN NHANVIEN RB-3 RB-2 RB-1

Phân loại RBTV Phân loại theo bối cảnh Mục đích Bối cảnh là một quan hệ. Bối cảnh là nhiều quan hệ. Mục đích Giúp người thiết kế phát hiện các RBTV của một CSDL. RBTV có bối cảnh là một quan hệ RBTV miền giá trị. RBTV liên thuộc tính. RBTV liên bộ. RBTV có bối cảnh là nhiều quan hệ RBTV tham chiếu. RBTV liên thuộc tính - liên quan hệ RBTV liên bộ - liên quan hệ. RBTV thuộc tính tổng hợp.

RBTV miền giá trị (1) RB-5 Lương của nhân viên không thấp hơn 10.000. t  NHANVIEN (t.Luong  10.000) + - NHANVIEN Sửa Xóa Thêm RB-5

RBTV miền giá trị (2) RB-6 Giả sử quan hệ NHANVIEN có thêm thuộc tính ngày xếp lương. Khi mức lương thay đổi, thì giá trị của ngày xếp lương phải luôn tăng. : NHANVIEN  NHANVIEN t  NHANVIEN (t.NgXepLuong < (t).NgXepLuong) + - NHANVIEN Sửa Xóa Thêm RB-6

RBTV liên thuộc tính RB-7 RB-8 Ngày xếp lương phải lớn hơn ngày sinh của nhân viên. t  NHANVIEN (t.NgSinh < t.NgXepLuong) RB-8 Một nhân viên không được giám sát chính mình. t  NHANVIEN (t.MaGSat  t.MaNV) + - NHANVIEN Sửa Xóa Thêm RB-7 + - NHANVIEN Sửa Xóa Thêm RB-8

RBTV liên bộ Sự tồn tại của bộ này phụ thuộc vào bộ khác. Trường hợp đặc biệt là ràng buộc khóa chính. RB-1 và RB-3.

RBTV tham chiếu (1) RB-9 Chỉ có nhân viên của công ty mới được tham gia vào dự án của công ty. Sự tồn tại của một bộ t  THAMGIA phụ thuộc vào sự tồn tại của một bộ u  NHANVIEN và một bộ v  DUAN. t  THAMGIA (u  NHANVIEN, v  DUAN (u.MaNV = t.MaNV  v.MaDA = t.MaDA)) - + DUAN NHANVIEN THAMGIA Sửa Xóa Thêm RB-9

RBTV tham chiếu (2) RB-10 Mọi thân nhân phải có mối quan hệ họ hàng với nhân viên của công ty. Sự tồn tại của bộ một t  THANNHAN phụ thuộc vào sự tồn tại của một bộ u  NHANVIEN. t  THANNHAN (u  NHANVIEN (u.MaNV = t.MaNV)) - + THANNHAN NHANVIEN Sửa Xóa Thêm RB-10

RBTV tham chiếu (3) RB-11 Nhận xét Người giám sát trực tiếp (nếu có) phải là một nhân viên trong công ty. Sự tồn tại của bộ một t  NHANVIEN phụ thuộc vào sự tồn tại của một bộ u  NHANVIEN. t  NHANVIEN (t  null  u  NHANVIEN (u.MaNV = t.MaGS)) Nhận xét RBTV tham chiếu có thể có bối cảnh là một quan hệ. + NHANVIEN Sửa Xóa Thêm RB-11

RBTV liên thuộc tính - liên quan hệ Mối liên hệ giữa các thuộc tính trong nhiều lược đồ quan hệ. RB-12 Ngày nhận chức của trưởng phòng phải lớn hơn ngày sinh. t  PHONGBAN (u  NHANVIEN (u.MaNV = t.TrPhong  u.NgSinh < t.NgNhanChuc)) + - PHONGBAN NHANVIEN Sửa Xóa Thêm RB-12

RBTV liên bộ - liên quan hệ Mối liên hệ giữa các bộ trên nhiều lược đồ quan hệ. RB-4. RB-13 Lương của nhân viên không được cao hơn lương trưởng phòng. t  NHANVIEN (u  PHONGBAN (v  NHANVIEN (v.MaNV = u.TrPhong  u.MaPB = t.MaPhong  v.Luong > t.Luong))) + - PHONGBAN NHANVIEN Sửa Xóa Thêm RB-13

RBTV thuộc tính tổng hợp Thuộc tính của lược đồ này được tính toán từ các thuộc tính hoặc các bộ của các lược đồ khác. RB-14 Giả sử PHONGBAN có thêm thuộc tính lưu tong số luong của phòng. Khi đó tong số luong của phòng phải bằng tổng cac gia tri luong nhân viên thuộc phòng đó. t PHONGBAN (t.TongLuong = sum({u.Luong | u  NHANVIEN  u.MaPhong = t.MaPB})) + - PHONGBAN NHANVIEN Sửa Xóa Thêm RB-14

Cài đặt RBTV Các RBTV được cài đặt bởi Primary key Foreign key Check constraint Assertion Trigger Stored Procedure

Assertion (1) create assertion <Tên assertion> check <điều kiện> drop assertion <Tên assertion> RB-12 : Ngày nhận chức của trưởng phòng phải lớn hơn ngày sinh. create assertion RB_12 check (not exists ( select * from PHONGBAN, NHANVIEN where TrPhong = MaNV and NgSinh > NgNhanChuc));

Assertion (2) RB-3 : Mỗi nhân viên chỉ được phép tham gia không quá 3 dự án. create assertion ( check (not exists ( select MaNV from THAMGIA group by MaNV having count(*) > 3));

Trigger (1) Tập hợp các lệnh tự động thực hiện khi xảy ra các sự kiện nào đó. Mô hình ECA (Sự kiện - Điều kiện - Hành động) ĐIỀU KIỆN Đúng SỰ KIỆN HÀNH ĐỘNG Thêm Xóa Sửa Xác định trên các bộ giá trị cũ và mới Tập hợp các lệnh

Trigger (2) create trigger <Tên trigger> after|before insert|delete|update on <Tên bảng> referencing 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>) <Các lệnh SQL>; drop trigger <Tên trigger>

Trigger (3) RB-13 : Lương của nhân viên không được cao hơn lương trưởng phòng. create trigger RB_13 before insert or update of Luong on NHANVIEN for each row when (new.Luong > (select Luong from NHANVIEN where MaNV = new.MaGSat)) ERROR(“Luong moi cao hon luong giam sat”);

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 trong các lược đồ CSDL Được sử dụng trong các câu lệnh SQL Cú pháp create procedure <Tên thủ tục> <Ds tham số> as Khai báo biến cục bộ Thân chương trình go exec <Tên thủ tục> <Ds tham số>