Chương 4: Ràng buộc toàn vẹn & Phụ thuộc hàm - Cô Nguyễn Thị Thu Hiếu
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:
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 h1h2 thì h1.MaHVh2.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 XY
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 XY
R9
Thêm Xóa
Sửa
MONHOC
-
-
+(MaKhoa)
GIAOVIEN
-
-
+(MaKhoa)
GIANGDAY
+
-
+(MaGV)
LOGO