Cộng đồng chia sẻ tri thức Lib24.vn

Chương 4: Ràng buộc toàn vẹn & Phụ thuộc hàm - Cô Nguyễn Thị Thu Hiếu

2b87a6cc6e9ce7a1fbff2f629af3d153
Gửi bởi: Nguyễn Thị Thu Hiếu 10 tháng 9 2020 lúc 10:05:26 | Được cập nhật: hôm kia lúc 22:17:10 Kiểu file: PDF | Lượt xem: 618 | Lượt Download: 8 | File size: 0.6797 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

Môn học Cơ sở dữ liệu GV: Nguyễn Thị Thu Hiếu LOGO Chương 4: Ràng buộc toàn vẹn & Phụ thuộc hàm Chương 4: Ràng buộc toàn vẹn & Phụ thuộc hàm 1. Ràng buộc toàn vẹn 2. Phụ thuộc hàm 1. Ràng buộc toàn vẹn  1.1. Giới thiệu về RBTV  1.2. Các yếu tố của RBTV  1.3. Phân loại RBTV Lược đồ CSDL Quản lý giáo vụ HOCVIEN (MaHV, Ho, Ten, NgaySinh, GioiTinh, NoiSinh, MaLop) LOP (MaLop, TenLop, TrgLop, SiSo, MaGVCN) KHOA (MaKhoa, TenKhoa, NgayThLap, TrgKhoa) MONHOC (MaMH, TenMH, TCLT, TCTH, MaKhoa) DIEUKIEN (MaMH, MaMH_Truoc) GIAOVIEN (MaGV, Ho, Ten, HocVi, HocHam, GioiTinh, NgaySinh, NgayVL, HeSo, MucLuong, MaKhoa) GIANGDAY (MaLop, MaMH, MaGV, HocKy, Nam, TuNgay, DenNgay) KETQUATHI (MaHV, MaMH, LanThi, NgayThi, Diem) (Những lược đồ này mới có ràng buộc về Khóa chính) 1. Ràng buộc toàn vẹn  1.1. Giới thiệu về RBTV  1.2. Các yếu tố của RBTV  1.3. Phân loại RBTV 1.1. Giới thiệu về RBTV Ràng buộc toàn vẹn - RBTV (Integrity Constraint)  Các RBTV là những điều kiện bất biến mà mọi thể hiện của quan hệ đều phải thỏa ở bất kỳ thời điểm nào  Ví dụ: Trong CSDL quản lý giáo vụ • Mỗi học viên có một mã riêng biệt để phân biệt với các học viên khác Mục đích của RBTV  Đảm bảo tính nhất quán của dữ liệu  Đảm bảo ngữ nghĩa thực tế của dữ liệu 1. Ràng buộc toàn vẹn  1.1. Giới thiệu về RBTV  1.2. Các yếu tố của RBTV  1.3. Phân loại RBTV 1.2. Các yếu tố của RBTV Khi xác định một RBTV cần chỉ rõ:  1.2.1. Nội dung của RBTV  1.2.2. Bối cảnh của RBTV  1.2.3. Bảng tầm ảnh hưởng của RBTV 1.2.1.Nội dung của RBTV Mô tả chặt chẽ ý nghĩa của RBTV. 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 không chặt chẽ, logic.  Ngôn ngữ hình thức: chặt chẽ, cô đọng. Biểu diễn thông qua: • Đại số quan hệ • Phép tính quan hệ • Giả mã • Phụ thuộc hàm •… Ví dụ về RBTV trong CSDL Quản lý giao vụ  RB-1:  Mỗi học viên có một mã số riêng biệt dùng để phân biệt với các học viên khác.  ∀hv1, hv2 ∈ HOCVIEN: (hv1 ≠ hv2 ⇒ hv1.MaSV ≠ hv2.MaSV)  RB-2:  Học viên thi một môn học nào đó thì môn học đó phải có trong danh sách các môn học  k  KETQUATHI, m  MONHOC: k.MaMH = m.MaMH  Hoặc: KETQUATHI[MaMH]  MONHOC[MaMH]  RB-3:  Kết quả thi của một môn học: 0 <= Điểm <=10  ∀d ∈ KetQua: d.Diem >=0 & d.Diem <= 10 1.2.2.Bối cảnh của RBTV Bối cảnh của một RBTV  Là những quan hệ mà một 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à HOCVIEN.  RB-2 có bối cảnh là KETQUATHI, MONHOC.  RB-3 có bối cảnh là KETQUATHI. 1.2.3.Bảng tầm ảnh hưởng của RBTV 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ác phép cập nhật: Thêm, Xóa, Sửa 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 1.2.3.Bảng tầm ảnh hưởng của RBTV (tt)  Bảng tầm ảnh hưởng cho một RBTV + - : thực hiện thao tác có thể làm vi phạm RBTV : thực hiện thao tác không thể làm vi phạm RBTV +(A) : có thể làm vi phạm RBTV khi sửa trên thuộc tính A -(*) : không vi phạm RBTV do thao tác không thực hiện được (không cho phép sửa…) 1.2.3.Bảng tầm ảnh hưởng của RBTV (tt)  Ví dụ: RB-1 HOCVIEN RB-2 KETQUATHI MONHOC RB-3 KETQUATHI Thêm Xóa Sửa +(MaHV) - +(MaHV) Thêm Xóa Sửa +(MaMH) - +(MaMH) - +(MaMH) +(MaMH) Thêm Xóa Sửa +(Diem) - +(Diem) 1.2.3.Bảng tầm ảnh hưởng của RBTV (tt)  Bảng tầm ảnh hưởng tổng hợp  Ví dụ: RB-1 RB-2 T X S T X S KETQUATHI + - + + - + MONHOC - + + HOCVIEN T X S + - + RB-3 Hành động khi RBTV bị vi phạm Hành động (phản ứng) gồm 2 phần:  Thông báo: thông báo cho người dùng biết dữ liệu 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 thao tác hoặc tiếp tục cho hiệu chỉnh dữ liệu. Hành động khi RBTV bị vi phạm (tt) Thông thường có 2 giải pháp:  Đư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. Thông báo phải đầy đủ và tạo được sự thân thiện với người sử dụng. →Giải pháp này là phù hợp cho việc xử lý thời gian thực.  Từ chối thao tác cập nhật. →Giải pháp này là phù hợp đối với việc xử lý theo lô (Batch processing). Việc từ chối cũng phải được lưu lại bằng những thông báo đầy đủ, rõ ràng; cần chỉ rõ vì sao thao tác bị từ chối và cần phải sửa lại những dữ liệu nào ? 1. Ràng buộc toàn vẹn  1.1. Giới thiệu về RBTV  1.2. Các yếu tố của RBTV  1.3. Phân loại RBTV 1.3.Phân loại RBTV 1.3.1.RBTV có bối cảnh là 1 bảng  1.3.1.1. RBTV về miền giá trị  1.3.1.2. RBTV liên thuộc tính  1.3.1.3. RBTV liên bộ 1.3.2.RBTV có bối cảnh là nhiều bảng  1.3.2.1. RBTV tham chiếu  1.3.2.2. RBTV liên thuộc tính – liên quan hệ  1.3.2.3. RBTV liên bộ – liên quan hệ  1.3.2.4. RBTV do thuộc tính tổng hợp  1.3.2.5. RBTV do có chu trình 1.3.1.1. RBTV về miền giá trị Là ràng buộc quy định giá trị cho một thuộc tính. RB-4: Giới tính của học viên chỉ là Nam hoặc Nữ  Nội dung: hv  HOCVIEN: hv.GioiTinh  {‘Nam’, ‘Nữ’}  Bối cảnh: quan hệ HOCVIEN  Bảng tầm ảnh hưởng: RB-4 HOCVIEN Thêm Xóa + - Sửa +(GioiTinh) 1.3.1.2. RBTV liên thuộc tính Là ràng buộc giữa các thuộc tính với nhau trên 1 bộ của quan hệ RB-5:Ngày bắt đầu (TuNgay) giảng dạy một môn học cho một lớp luôn nhỏ hơn ngày kết thúc (DenNgay)  Nội dung: gd  GIANGDAY: gd.TuNgay < gd.DenNgay  Bối cảnh: quan hệ GIANGDAY  Bảng tầm ảnh hưởng: RB-5 GIANGDAY Thêm Xóa + - Sửa +(TuNgay, DenNgay) 1.3.1.3. RBTV liên bộ Là ràng buộc giữa các bộ trên cùng một quan hệ (có thể liên quan đến nhiều thuộc tính). Trường hợp đặc biệt: Ràng buộc về khóa chính, Unique RB-6: Tất cả các học viên phải có mã số phân biệt với nhau  Nội dung: h1,h2 HOCVIEN: Nếu h1h2 thì h1.MaHVh2.MaHV  Bối cảnh: quan hệ HOCVIEN  Bảng tầm ảnh hưởng: RB-6 HOCVIEN Thêm Xóa Sửa + - -(*) 1.3.1.3. RBTV liên bộ (tt) RB-7: Các giáo viên có cùng học vị, cùng hệ số lương thì mức lương sẽ bằng nhau  Nội dung: gv1,gv2 GIAOVIEN: Nếu (gv1.HocVi=gv2.HocVi)(gv1.HeSo=gv2.HeSo) thì gv1.MucLuong=gv2.MucLuong  Bối cảnh: quan hệ GIAOVIEN  Bảng tầm ảnh hưởng: RB-7 GIAOVIEN Thêm Xóa + - Sửa +(HocVi, HeSo, MucLuong) 1.3.2.1. RBTV tham chiếu Là ràng buộc quy định giá trị thuộc tính trong một bộ của quan hệ R (tập thuộc tính này gọi là khoá ngoại), phải phụ thuộc vào sự tồn tại của một bộ trong quan hệ S (tập thuộc tính này là khoá chính trong quan hệ S). RBTV tham chiếu còn gọi là ràng buộc phụ thuộc tồn tại hay ràng buộc khóa ngoại 1.3.2.1. RBTV tham chiếu (tt) RB-8: Giáo viên phải thuộc một khoa nào đó.  Nội dung: • gv  GIAOVIEN, k  Khoa: gv.MaKhoa = k.MaKhoa • Hoặc: GIAOVIEN[MaKhoa]  KHOA[MaKhoa]  Bối cảnh: quan hệ GIAOVIEN, KHOA  Bảng tầm ảnh hưởng: RB-8 Thêm Xóa Sửa GIAOVIEN + - - KHOA - + -(*) 1.3.2.2. RBTV liên thuộc tính – liên quan hệ  Là ràng buộc mà một thuộc tính trong 1 quan hệ này có mối liên hệ với 1 thuộc tính trong 1 quan hệ khác.  RB-9: Ngày giáo viên giảng dạy một môn học phải lớn hơn hoặc bằng ngày giáo viên đó vào làm.  Nội dung: gd  GIANGDAY Nếu gv  GIAOVIEN: gd.MaGV = gv.MaGV thì gv.NgayVL  gd.TuNgay  Bối cảnh: GIANGDAY, GIAOVIEN  Bảng tầm ảnh hưởng: RB-9 Thêm Xóa Sửa GIANGDAY + - +(TuNgay) GIAOVIEN - - +(NgayVL) 1.3.2.2. RBTV liên thuộc tính – liên quan hệ (tt) RB-10: Ngày thi một môn học phải lớn hơn ngày kết thúc học môn học đó.  Nội dung: kq  KETQUATHI Nếu gd GIANGDAY, hv HOCVIEN: (gd.MaLop=hv.MaLop)(kq.MaMH=gd.MaMH) thì gd.DenNgay < kq.NgayThi  Bối cảnh: GIANGDAY, HOCVIEN, KETQUATHI  Bảng tầm ảnh hưởng: RB-10 Thêm Xóa Sửa HOCVIEN - - +(MaLop) GIANGDAY - - +(DenNgay) KETQUATHI + - +(NgayThi) 1.3.2.3. RBTV liên bộ – liên quan hệ  Là ràng buộc mà một thuộc tính của quan hệ này có mối liên hệ với các bộ của 1 quan hệ khác.  RB-11: Mỗi giáo viên phải dạy ít nhất 1 lớp  Nội dung: • ∀gv ∈ GIAOVIEN (∃gd ∈ GIANGDAY (gd.MaGV = gv.MaGV))  Bối cảnh: quan hệ GIAOVIEN, GIANGDAY  Bảng tầm ảnh hưởng: RB-11 Thêm Xóa Sửa GIANGDAY - +(MaGV) +(MaGV) GIAOVIEN +(MaGV) - +(MaGV) 1.3.2.4. RBTV do thuộc tính tổng hợp  Là ràng buộc giữa các thuộc tính, các bộ trên những quan hệ khác nhau.  Thuộc tính tổng hợp là thuộc tính được tính toán từ giá trị của các thuộc tính khác, các bộ khác.  RB-12: Sĩ số của một lớp là số lượng học viên thuộc lớp đó  Nội dung:l  LOP, l.SiSo = Count(hv  HOCVIEN: hv.Malop = l.Malop)(*)  Bối cảnh: quan hệ LOP, HOCVIEN  Bảng tầm ảnh hưởng: RB-12 Thêm Xóa Sửa LOP + - +(Siso) HOCVIEN + + +(Malop) 1.3.2.5. RBTV do có chu trình Biểu diễn lược đồ quan hệ dưới dạng đồ thị:  Quan hệ được biểu diễn bằng nút tròn rỗng to  Thuộc tính được biểu diễn bằng nút tròn đặc nhỏ  Tất cả các nút đều được chỉ rõ bằng tên của quan hệ hoặc thuộc tính. Thuộc tính thuộc một quan hệ được biểu diễn bởi một cung nối giữa nút tròn to và nút tròn nhỏ  Nếu đồ thị biểu diễn xuất hiện một đường khép kín → lược đồ CSDL có sự hiện diện của chu trình. 1.3.2.5. RBTV do có chu trình (tt) MaGV Malop GIANGDAY X GIAOVIEN MaMH Y Hoten Hocvi Tenmh MONHOC MaKhoa … TCLT 1.3.2.5. RBTV do có chu trình (tt) X = GIANGDAY[MaGV, MaMH] ⋈ MONHOC) [MaGV,MaMH] MaKhoa Y = (GIAOVIEN Ý nghĩa:  X: giáo viên và những môn học đã được phân công cho giáo viên đó giảng dạy  Y: giáo viên và những môn học thuộc khoa giáo viên đó phụ trách Mối quan hệ giữa X và Y trong các ràng buộc sau: 1.3.2.4. RBTV do có chu trình (tt) Ràng buộc 1: giáo viên chỉ được phân công giảng dạy những môn thuộc khoa giáo viên đó phụ trách XY Ràng buộc 2: giáo viên phải được phân công giảng dạy tất cả những môn thuộc khoa giáo viên đó phụ trách X=Y Ràng buộc 3: có thể phân công giáo viên giảng dạy bất kỳ môn học nào X  Y 1.3.2.5. RBTV do có chu trình (tt) RB-13: giáo viên chỉ được phân công giảng dạy những môn thuộc khoa giáo viên đó phụ trách XY R9 Thêm Xóa Sửa MONHOC - - +(MaKhoa) GIAOVIEN - - +(MaKhoa) GIANGDAY + - +(MaGV) LOGO