Bài giảng Cơ sở dữ liệu (Databases) - Chương 4: Ràng buộc toàn vẹn (RBTV)
lượt xem 4
download
Bài giảng "Cơ sở dữ liệu - Chương 4: Ràng buộc toàn vẹn (RBTV)" cung cấp cho người học các kiến thức: Các vấn đề liên quan đến RBTV, các loại RBTV, phụ thuộc hàm, khóa. Cuối bài giảng có phần bài tập để người học có thể ôn tập và củng cố kiến thức.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cơ sở dữ liệu (Databases) - Chương 4: Ràng buộc toàn vẹn (RBTV)
- CƠ SỞ DỮ LIỆU ( Databases ) Chương 4: Ràng buộc toàn vẹn (RBTV)
- Nội dung 1. Các vấn đề liên quan đến RBTV 2. Các loại RBTV 3. Phụ thuộc hàm 4. Khóa 5. Bài tập Chương 4 - Ràng buộc toàn vẹn (RBTV) 2
- 4.1.1. Định nghĩa RBTV Ràng buộc toàn vẹn (RBTV) là điều kiện không được vi phạm trong CSDL. RBTV còn được gọi là các quy tắc quản lý (Rules) được áp đặt lên các đối tượng của thế giới thực. Trong 1 CSDL, các RBTV được xem như 1 công cụ để diễn đạt ngữ nghĩa của CSDL đó. Trong quá trình khai thác CSDL, các RBTV phải được thỏa mãn nhằm đảm bảo cho CSDL luôn ở trạng thái an toàn và nhất quán. Chương 4 - Ràng buộc toàn vẹn (RBTV) 3
- 4.1.1. Định nghĩa RBTV (tt) Định nghĩa: – RBTV là một quy tắc định nghĩa trên một hoặc nhiều quan hệ do môi trường ứng dụng quy định Đó chính là quy tắc để đảm bảo tính nhất quán của dữ liệu – Mỗi RBTV được định nghĩa bằng 1 thuật toán trong CSDL. Ví dụ: – R1: Mỗi Nhân viên có 1 mã số duy nhất để phân biệt với nhân viên khác – R2: Mỗi đề án phải do 1 Phòng/Ban nào đó chủ trì – R3: Mỗi nhân viên có thể tham gia nhiều đề án khác nhau – R4: Mỗi nhân viên có nhiều hoặc không có thân nhân nào Chương 4 - Ràng buộc toàn vẹn (RBTV) 4
- 4.1.1. Định nghĩa RBTV (tt) Khóa nội, Khóa ngoại, NOT NULL là những RBTV về miền giá trị của thuộc tính trong quan hệ Hệ quản trị CSDL có cơ chế tự động kiểm tra các RBTV về miền trị của Khóa nội, Khóa ngoại, NOT NULL qua khai báo cấu trúc của bảng. Các RBTV được kiểm tra ngay khi thực hiện 1 thao tác cập nhật CSDL (Thêm, Sửa, Xóa) Thao tác cập nhật CSDL chỉ được xem là hợp lệ nếu nó không vi phạm RBTV nào. Nếu vi phạm RBTV, hệ thống sẽ hủy bỏ thao tác cập nhật (hoặc hệ thống sẽ có 1 xử lý thích hợp nào đó) Chương 4 - Ràng buộc toàn vẹn (RBTV) 5
- 4.1.1. Định nghĩa RBTV (tt) Như vậy: Phương pháp kiểm tra RBTV – Kiểm tra tự động (qua khai báo của cấu trúc bảng) – Thông qua những thủ tục kiểm tra và xử lý vi phạm RBTV (do người phân tích thiết kế cài đặt) Thời điểm kiểm tra RBTV – Ngay sau khi thực hiện thao tác cập nhật CSDL – Kiểm tra định kỳ hoặc đột xuất Chương 4 - Ràng buộc toàn vẹn (RBTV) 6
- 4.1.2. Điều kiện của RBTV Là sự mô tả và biểu diễn hình thức nội dung của nó Có thể được biểu diễn bằng: – Ngôn ngữ tự nhiên – Thuật giải (bằng mã giả - Pseudo Code, ngôn ngữ tựa Pascal) – Ngôn ngữ đại số tập hợp, đại số quan hệ – Các phụ thuộc hàm Chương 4 - Ràng buộc toàn vẹn (RBTV) 7
- 4.1.2. Điều kiện của RBTV (tt) Ví dụ: Cho CSDL quản lý hóa đơn bán hàng gồm các bảng: HOADON(SoHD, SoMatHang, Tongtien) DMHANG(MaH, TenH, DvTinh) CHITIETHD(SoHD, MaH, SL, Dongia, Thanhtien) R1: Mỗi hóa đơn có 1 số hóa đơn riêng biệt, không trùng với hóa đơn khác R2: Số mặt hàng bằng số bộ của của chi tiết hóa đơn có cùng số hóa đơn R3:Tổng các thành tiền của các mặt hàng trong CHITIETHD có cùng số hóa đơn phảibằng Tổng tiền ghi trong HOADON R4: Mỗi bộ của chi tiết hóa đơn phải có Mã Hàng thuộc về Danh mục hàng. Chương 4 - Ràng buộc toàn vẹn (RBTV) 8
- 4.1.2. Điều kiện của RBTV (tt) Ví dụ - Biểu diễn bằng đại số tập hợp R1: ∀ hđ1, hđ2 ∈ HOADON, hđ1 ≠ hđ2 ⇒ hđ1.SoHD ≠ hđ2.SoHD. R2: ∀ hđ ∈ HOADON thì: ⇒ hđ.SoMatHang = COUNT(cthđ ∈ CHITIETHD, cthđ.SoHD = hđ.SoHD) R3: ∀ hđ ∈ HOADON thì: hđ.Tongtien = SUM(cthđ.Thanhtien) đối với các cthđ ∈ CHITIETHD sao cho: cthđ.SoHD= hđ.SoHD. Chương 4 - Ràng buộc toàn vẹn (RBTV) 9
- 4.1.2. Điều kiện của RBTV (tt) Ví dụ - Biểu diễn bằng đại số tập hợp (tt) R4: CHITIETHD[MaH] DMHANG[MaH] hoặc biểu diễn bằng cách khác cthđ CHITIETHD, hh DMHANG sao cho: cthđ.MaH=hh.MaH. Chương 4 - Ràng buộc toàn vẹn (RBTV) 10
- 4.1.3. Bối cảnh của RBTV Bối cảnh có thể định nghĩa trên một quan hệ cơ sở hay nhiều quan hệ cơ sở. Đó là những quan hệ mà RBTV áp dụng trên đó Ví dụ: – R1: có bối cảnh là 1 quan hệ HOADON – R2, R3: có bối cảnh là 2 quan hệ HOADON và CHITIEHD – R4: có bối cảnh là 2 quan hệ CHITIETHD và DMHANG Chương 4 - Ràng buộc toàn vẹn (RBTV) 11
- 4.1.4. Tầm ảnh hưởng của RBTV Một RBTV có thể liên quan đến một số quan hệ, chi khi có thao tác cập nhật (Thêm, Sửa, Xóa) mới xuất hiện nguy cơ vi phạm RBTV Cần phải xác định rõ khi nào dẫn đến việc kiểm tra RBTV Trong quá trình phân tích, thiết kế một CSDL, người phân tích phải lập bảng xác định tầm ảnh hưởng cho mỗi RBTV nhằm xác định khi nào phải tiến hành kiểm tra các RBTV đó Chương 4 - Ràng buộc toàn vẹn (RBTV) 12
- 4.1.4. Tầm ảnh hưởng của RBTV (tt) Bảng xác định tầm ảnh hưởng – Gồm 4 cột: • Cột 1: Tên các bảng (quan hệ) có liên quan đến RBTV • Cột 2, 3, 4: Ứng với các thao tác Thêm/Sửa/Xóa 1 bộ – Đánh dấu (+) tại ô mà RBTV có nguy cơ bị vi phạm. Có thể ghi thêm các thuộc tính nào nếu được cập nhật mới sẽ dẫn đến vi phạm RBTV bằng cách liệt kê chúng dưới dấu (+) – Đánh dấu (-) tại ô không có nguy cơ bị vi phạm. – Đánh dấu (- (*) ) nếu không bị vi phạm vì không được phép sửa đổi. Chương 4 - Ràng buộc toàn vẹn (RBTV) 13
- 4.1.4. Tầm ảnh hưởng của RBTV (tt) Ví dụ – Bảng tầm ảnh hưởng của R1 Quan hệ Thêm Sửa Xóa HOADON + (SoHD) - (*) - – Bảng tầm ảnh hưởng của R2 Quan hệ Thêm Sửa Xóa HOADON + + (SoMatHang) - CHITIETHD + - + – Bảng tầm ảnh hưởng của R3 Quan hệ Thêm Sửa Xóa HOADON + + (Tongtien) - CHITIETHD + + (Thanhtien) + Chương 4 - Ràng buộc toàn vẹn (RBTV) 14
- 4.1.4. Tầm ảnh hưởng của RBTV (tt) Ví dụ (tt) – Bảng tầm ảnh hưởng của R4 Quan hệ Thêm Sửa Xóa CHITIETHD + (MaH) - (*) - DMHANG - - (*) + Chương 4 - Ràng buộc toàn vẹn (RBTV) 15
- 4.1.4. Tầm ảnh hưởng của RBTV (tt) Bảng tầm ảnh hưởng tổng hợp của R1, R2, R3, R4 Q.Hệ HOADON CHITIETHD DMHANG RBTV Thêm Sửa Xóa Thêm Sửa Xóa Thêm Sửa Xóa + R1 - (*) - (SoHD) + R2 + - + - + (SoMatHang) + + R3 + - + + (Tongtien) (Thanhtien) + R4 - (*) - - - (*) + (MaH) Chương 4 - Ràng buộc toàn vẹn (RBTV) 16
- 4.1.5. Hành động khi RBTV bị vi phạm Khi RBTV bị vi phạm, cần có hành động thích hợp (gồm 2 phần): – Thông báo: báo cho người dùng biết dữ liệu bị vi phạm RBTV nào và cần sửa lại như thế nào. – Xử lý: Đưa ra phương án xử lý khi RBTV bị vi phạm. Có thể từ chối hoặc tiếp tục cho hiệu chỉnh dữ liệu Thông thường có 2 giải pháp: – (1) Đưa ra thông báo và yêu cầu sửa chữa dữ liệu cho phù hợp với RBTV. TB này phải đầy đủ và dễ hiểu với người dùng giải pháp này phù hợp cho việc xử lý thời gian thực – (2) Từ chối thao tác cập nhật giải pháp này phù hợp với việc xử lý theo lô Chương 4 - Ràng buộc toàn vẹn (RBTV) 17
- 4.2. Các loại RBTV RBTV có bối cảnh là 1 bảng – RBTV về miền trị của thuộc tính – RBTV liên thuộc tính – RBTV liên bộ RBTV có bối cảnh là nhiều bảng – RBTV về phụ thuộc tồn tại – RBTV về liên thuộc tính – liên quan hệ – RBTV về liên bộ - liên quan hệ – RBTV có tính chu trình Chương 4 - Ràng buộc toàn vẹn (RBTV) 18
- 4.2.1. RBTV về miền trị Rất phổ biến trong các CSDL quan hệ. Mỗi thuộc tính không chỉ đặc trưng bởi kiểu giá trị mà còn bị giới hạn bởi miền giá trị trong kiểu dữ liệu đó Khi cập nhật (thêm/sửa/xóa) giá trị cho 1 bộ trong quan hệ, phải kiểm tra RBTV này Ví dụ: DIEMTHI(MaSV, Lanthi, Diemthi) – R1: kq DIEMTHI thì 0 kq.Diemthi 10 – R2: kq DIEMTHI thì 0 kq.Lanthi 2 Chương 4 - Ràng buộc toàn vẹn (RBTV) 19
- 4.2.2. RBTV Liên thuộc tính Là loại RBTV liên quan đến nhiều thuộc tính của quan hệ Thông thường đó là các thuộc tính suy diễn từ 1 hoặc nhiều thuộc tính trong cùng một bộ giá trị Ví dụ: – Trong quan hệ: CHITIETHD(SoHD, MaH, SL, Dongia, Thanhtien) – Có RBTV liên thuộc tính: ∀ cthđ ∈ CHITIETHD thì cthđ.Thanhtien = cthđ.SL* cthđ.Đơn-giá Chương 4 - Ràng buộc toàn vẹn (RBTV) 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cơ sở dữ liệu đất đai
49 p | 633 | 79
-
Bài giảng Cơ sở dữ liệu - Nguyễn Quỳnh Chi
189 p | 267 | 51
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Tổng quan về cơ sở dữ liệu
21 p | 181 | 31
-
Bài giảng Cơ sở dữ liệu: Bài 1 - ĐH CNTT
15 p | 607 | 30
-
Bài giảng Cơ sở dữ liệu - Bài 2: Mô hình cơ sở dữ liệu quan hệ
43 p | 221 | 18
-
Bài giảng Cơ sở dữ liệu: Chương 2 - ThS. Hoàng Mạnh Hà
68 p | 151 | 12
-
Bài giảng Cơ sở dữ liệu (Database): Chương 4 - TS. Đặng Thị Thu Hiền
82 p | 40 | 8
-
Bài giảng Cơ sở dữ liệu - Chương 4: Chuẩn hóa cơ sở dữ liệu
30 p | 134 | 8
-
Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Toàn vẹn và cơ sở dữ liệu active
50 p | 81 | 8
-
Bài giảng Cơ sở dữ liệu (Database): Chương 1 - TS. Đặng Thị Thu Hiền
53 p | 48 | 7
-
Bài giảng Cơ sở dữ liệu: Phần 1 – Nguyễn Hải Châu
54 p | 122 | 6
-
Bài giảng Cơ sở dữ liệu: Mở đầu - ThS. Lương Thị Ngọc Khánh
11 p | 169 | 6
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 1.1 - PGS.TS. Đỗ Phúc
25 p | 90 | 6
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Th.S Thiều Quang Trung
40 p | 93 | 5
-
Bài giảng Cơ sở dữ liệu - Bài 1: Thiết kế Cơ sở dữ liệu với Management Studio
10 p | 62 | 5
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 2 - PGS.TS. Đỗ Phúc
55 p | 66 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 1 - GV. Đỗ Thị Kim Thành
21 p | 102 | 4
-
Bài giảng Cơ sở dữ liệu (Database) - Chương 1: Các khái niệm cơ bản về hệ cơ sở dữ liệu
34 p | 69 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn