Cộng đồng chia sẻ tri thức Doc24.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 vào ngày 2020-09-10 03:05:26 || Kiểu file: PDF Lượt xem: 164 | Lượt Download: 0 | File size: 0.6797 Mb

Nội dung tài liệu Xem trước tài liệu

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

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

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