You are on page 1of 41

Bài 06:

RÀNG BUỘC TOÀN VẸN

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 1


Tài liệu tham khảo

[1] Đỗ Phúc, Nguyễn Đăng Tỵ.


Giáo trình cơ sở dữ liệu.
Đại học Quốc gia Tp.HCM.
[2] Đồng Thị Bích Thủy.
Giáo trình cơ sở dữ liệu.
Đại học Quốc gia Tp.HCM.
[3] Lê Minh Triết.
Slide bài giảng CSDL
Đại học Sư Phạm TP.HCM
[4] Trần Sơn Hải
Slide bài giảng CSDL
Đại học Sư Phạm TP.HCM

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 2


Nội dung

1. Khái niệm Ràng buộc toàn vẹn


2. Các đặc trưng của một RBTV
3. Phân loại RBTV
4. Bảng tầm ảnh hưởng tổng hợp

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 3


1. Khái niệm
Khái niệm

RBTV (Integrety Constraints) xuất phát từ những qui định hay


điều kiện
• Trong thực tế
• Trong mô hình dữ liệu: Các thao tác làm thay đổi dữ liệu không nên
được thực hiện một cách tùy tiện vì có thể đưa CSDL đến một tình
trạng ‘xấu’
RBTV là một điều kiện được định nghĩa trên một hay nhiều
quan hệ khác nhau
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

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 5


Khái niệm

Tại sao cần phải có RBTV?


• Bảo đảm tính kết dính của các thành phần cấu tạo nên CSDL
• Bảo đảm tính nhất quán của dữ liệu
• Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế

Ví dụ
• Mức lương của một người nhân viên không được vượt quá trưởng
phòng (R1)
• Người quản lý trực tiếp (của một nhân viên) phải là một nhân viên
trong công ty (R2)
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 6
Khái niệm

Xét quan hệ Nhân viên với các thông tin sau:


Mã NV Tên NV Ngày sinh Giới tính
NV001 Nguyễn Công Phú 11/12/1989 Nam
NV002 Phạm Thị Anh Khanh 20/6/1989 Nữ
NV003 Phạm Thị Khánh Như 11/11/1991 Nữ
NV004 Đỗ Thành Kính 1/12/1985 Nam
NV005 Lê Thanh Phúc 3/8/1986 Nam
NV006 Nguyễn Đức Lâm 5/11/1996 ?

Quy định: Giới tính chỉ được thuộc một trong hai giá trị => là một
RBTV
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 7
Khái niệm

Xét quan hệ Sinh viên với các thông tin sau:


Mã NV Tên NV Ngày sinh Giới tính Ngày nhập học
NV001 Nguyễn Công Phú 11/12/1989 Nam 5/9/2011
NV002 Phạm Thị Anh Khanh 20/6/1989 Nữ 5/9/2012
NV003 Phạm Thị Khánh Như 11/11/1991 Nữ 5/11/2011
NV004 Đỗ Thành Kính 1/12/1985 Nam 5/9/2011
NV005 Lê Thanh Phúc 3/8/1986 Nam 5/9/2012
NV006 Nguyễn Đức Lâm 5/11/2000 Nam 5/9/2016

Quy định: Tuổi của sinh viên phải lớn hơn 18t=> là một RBTV lên
quan đến ngày sinh và ngày nhập học
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 8
2. Các đặc trưng
của RBTV
2.1 Nội dung

Mô tả chặt chẽ ý nghĩa của ràng buộc toàn vẹn.


Nội dung được phát biểu bằng ngôn ngữ tự nhiên hoặc bằng
ngôn ngữ hình thức (ngôn ngữ tân từ, đại số quan hệ, mã giả,…)
• 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

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 10


2.1 Nội dung

Ví dụ:
• Ngôn ngữ tự nhiên
• Mức lương của một người nhân viên không được vượt quá trưởng phòng
• Ngôn ngữ hình thức
t NHANVIEN (
u PHONGBAN ( v NHANVIEN (
u.TRPHG v.MANV
u.MAPHG t.PHG
t.LUONG v.LUONG )))

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 11


2.1 Nội dung

Ví dụ 2:
• Ngôn ngữ tự nhiên
• Người quản lý trực tiếp phải là một nhân viên trong công ty

• Ngôn ngữ hình thức


t NHANVIEN ( t.MA_NQL  null
s NHANVIEN (t.MA_NQL s.MANV ))

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 12


2.2 Bối cảnh

Là tập các quan hệ khi thao tác trên những quan hệ đó có khả
năng làm cho ràng buộc bị vi phạm.
Đó là những quan hệ có thể vi phạm ràng buộc toàn vẹn khi thực
hiện các thao tác thêm, xoá, sửa.

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 13


2.2 Bối cảnh

Ví dụ 1: Mức lương của một người nhân viên không được vượt
quá trưởng phòng
Các phép cập nhật
• Cập nhật lương cho nhân viên
• Thêm mới một nhân viên vào một phòng ban
• Bổ nhiệm trưởng phòng cho một phòng ban
Bối cảnh: NHANVIEN, PHONGBAN

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 14


2.2 Bối cảnh

Ví dụ 2: Người quản lý trực tiếp phải là một nhân viên trong công
ty
Các phép cập nhật
• Cập nhật người quản lý trực tiếp của một nhân viên
• Thêm mới một nhân viên
Bối cảnh: NHANVIEN

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 15


2.3 Bảng tầm ảnh hưởng

 Nhằm xác định khi nào tiến hành kiểm tra ràng buộc toàn vẹn.
Thao tác nào thực hiện có thể làm vi phạm ràng buộc toàn vẹn.
 Phạm vi ảnh hưởng của một ràng buộc toàn vẹn được biểu diễn
bằng một bảng 2 chiều gọi là bảng tầm ảnh hưởng.

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 16


2.3 Bảng tầm ảnh hưởng

Một số quy định


 Những thuộc tính khoá (những thuộc tính nằm trong khoá chính
của quan hệ) không được phép sửa giá trị
 Thao tác thêm và xoá xét trên một bộ của quan hệ.
 Thao tác sửa xét sửa từng thuộc tính trên bộ của quan hệ
 Trước khi xét thao tác thực hiện có thể làm vi phạm ràng buộc
hay không thì CSDL phải thoả ràng buộc toàn vẹn trước.

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 17


2.3 Bảng tầm ảnh hưởng

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

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 18


2.3 Bảng tầm ảnh hưởng

Tên_RB Thêm Xóa Sửa


Quan hệ 1    (Thuộc tính)
Quan hệ 2   


Quan hệ n   

() Vi phạm RBTV


() Không vi phạm RBTV

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 19


 Bảng tầm ảnh hưởng tổng hợp
Ràng buộc 1 Ràng buộc 2 Ràng buộc m
T X S T X S … … … T X S

Quan hệ 1 + - + + - + + - +

Quan hệ 2 - + -

Quan hệ 3 - - + - + -

Quan hệ n - + - - - +

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 20


2. Các loại RBTV
Phân loại

Một quan hệ
• Miền giá trị
• Liên bộ
• Liên thuộc tính
Nhiều quan hệ
• Tham chiếu
• Liên bộ, liên quan hệ
• Liên thuộc tính, liên quan hệ
• Thuộc tính tổng hợp
• Chu trình

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 22


3.1.1 Ràng buộc miền giá trị

Là tập giá trị mà một thuộc tính có thể nhận.


R1: Thời gian tham gia đề án của một nhân viên không quá 60
giờ
• Nội dung:
t PHANCONG ( t.THOIGIAN 60 )
• Bối cảnh: PHANCONG
• Bảng tầm ảnh hưởng:
R1 Thêm Xóa Sửa
PHANCONG + - + (THOIGIAN)

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 23


3.1.2 Ràng buộc 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ệ

R A B C D

  1 1
  5 7
  12 3
  23 9

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 24


3.1.2 Ràng buộc 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ệ
R2: Một nhân viên không quản lý trực tiếp chính mình
• Nội dung:
t NHANVIEN ( t.MA_NQL  t.MANV  t.MA_NQL
null )
• Bối cảnh : NHANVIEN
• Bảng tầm ảnh hưởng:

R2 Thêm Xóa Sửa


NHANVIEN + - + (MA_NQL)

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 25


3.1.3 Ràng buộc 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).
R A B C D
  1 1
  5 7
  12 3
  23 9

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 26


3.1.3 Ràng buộc liên bộ

R3: Tên phòng ban là duy nhất


• Nội dung:
t1, t2 PHONGBAN ( t1 t2 t1.TENPHG  T2.TENPHG )
• Bối cảnh: PHONGBAN
• Bảng tầm ảnh hưởng:

R3 Thêm Xóa Sửa


PHONGBAN + - + (TENPHG)

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 27


3.1.3 Ràng buộc liên bộ
R4: Một nhân viên được tham gia tối đa 5 đề án
– Nội dung:
t PHANCONG (
card({ s PHANCONG | s.MA_NVIEN t.MA_NVIEN}) 5)
- Bối cảnh: PHANCONG
- Bảng tầm ảnh hưởng:

R4 Thêm Xóa Sửa


PHANCONG + - +(MANV)
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 28
3.2 RBTV có bối cảnh nhiều quan hệ

3.2.1 RBTV tham chiếu (khoá ngoại, phụ thuộc tồn tại)
3.2.2 RBTV liên thuộc tính
3.2.3 RBTV do thuộc tính tổng hợp
3.2.4 RBTV do chu trình trong lược đồ biểu diễn quan hệ

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 29


3.2.1 Ràng buộc 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

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 30


3.2.1 Ràng buộc tham chiếu
R5: 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
 Nội dung:
∀k ∈ KETQUATHI, ∃m ∈ MONHOC: k.Mamh = m.Mamh
Hoặc: KETQUATHI[Mamh] ⊆ MONHOC[Mamh]
 Bối cảnh: quan hệ KETQUATHI, MONHOC
 Bảng tầm ảnh hưởng:
R5 Thêm Xóa Sửa
KETQUATHI + - -(*)
MONHOC - + -(*)
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 31
3.2.2 Ràng buộc liên thuộc tính
Là ràng buộc giữa các thuộc tính trên những quan hệ khác nhau
R6: 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.NGVL ≤
gd.TUNGAY
- Bối cảnh: GIANGDAY, GIAOVIEN
- Bảng tầm ảnh hưởng:
R6 Thêm Xóa Sửa
GIANGDAY + - +(TUNGAY)
GIAOVIEN - + +(NGAYVL)
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 32
3.2.2 Ràng buộc liên thuộc tính
R7: 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.Ngthi
Bối cảnh: GIANGDAY, HOCVIEN, KETQUATHI
 Bảng tầm ảnh hưởng:
R7 Thêm Xóa Sửa
GIANGDAY - - +(MALOP)
GIAOVIEN - - +(DENNGAY)
KETQUATHI + - +(NGTHI)
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 33
3.2.3 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.
Ví dụ :
SANPHAM(Masp,Tensp, Nuocsx, Gia)
KHACHHANG(Makh, Hoten, Doanhso)
HOADON(Sohd, Nghd,Makh,Trigia)
CTHD(Sohd,Masp,Soluong,Gia)
– Trị giá của một hoá đơn bằng tổng thành tiền của các chi tiết
thuộc hoá đơn đó

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 34


3.2.3 RBTV do thuộc tính tổng hợp
R8: Doanh số của một khách hàng bằng tổng trị giá các hoá đơn mà khách
hàng đó đã mua
- Nội dung:
∀kh ∈ KHACHHANG,
kh.Doanhso = ∑(hd ∈ HOADON: hd.Makh=kh.Makh)(hd.Trigia)
– Bối cảnh: KHACHHANG,HOADON
 Bảng tầm ảnh hưởng:
R8 Thêm Xóa Sửa
KHACHHANG + - +(DOANHSO)
HOADON + + +(MAKH)

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 35


3.2.3 RBTV do thuộc tính tổng hợp
R9: 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 = lp.Malop)(*)
– Bối cảnh: LOP,HOCVIEN
 Bảng tầm ảnh hưởng:

R9 Thêm Xóa Sửa


LOP + - +(SISO)
HOCVIEN + + +(MALOP)

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 36


3.2.4 RBTV Do hiện diện của 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 quanhệ 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 tovà 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.

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 37


3.2.4 RBTV Do hiện diện của chu trình
Lược đồ CSDL có thể được biểu diễn bằng đồ thị
• Đỉnh
• Quan hệ Tên quan hệ

• Thuộc tính Tên thuộc tính


• Cạnh
• Đường nối một đỉnh quan hệ với một đỉnh thuộc tính trong lược đồ
CSDL
Tên quan hệ Tên thuộc tính

Chu trình
• Đồ thị xuất hiện đường đi khép kín ~ Lược đồ CSDL có chu trình
ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 38
3.2.4 RBTV Do hiện diện của chu trình

Nhân viên chỉ được phân công vào các đề án do phòng ban của
mình phụ trách
PHG=PHONG

NHANVIEN MANV, MADA DEAN

MANV=MA_NVIEN SODA=MADA
MA_NVIEN, SODA

PHANCONG

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 39


3.2.3 RBTV do thuộc tính tổng hợp
R14: Nhân viên chỉ được phân công vào các đề án do phòng ban của
mình phụ trách
- Nội dung:
NVDA NHANVIEN PHG=PHONG DEAN
t PHANCONG ( s NVDA (
t.MA_NVIEN s.MANV t.MADA s.SODA ))
– Bối cảnh: LOP,HOCVIEN
R9 Thêm Xóa Sửa
 Bảng tầm ảnh hưởng:
NHANVIEN - - +(MANV,PHG)
DEAN - - +(MADA,PHONG)
PHANCONG + = +(MA_NVIEN,SODA)

ThS. Ma Ngân Giang - giangmn@hcmup.edu.vn 40


Hết

You might also like