Bài 7: Ràng bu c toàn v n ẹ
ộ
Khoa HTTT-Đ i h c CNTT
1
ạ ọ
N i dung chính
ộ
ớ
ộ
ệ
i thi u ràng bu c toàn v n (RBTV) ộ
ư
1. Gi ẹ 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 ợ
ưở
ả
ổ
2 Khoa HTTT-Đ i h c CNTT
ạ ọ
1. Gi
ớ
i thi u ệ
ề
ộ ng d ng th c t Ràng bu c toàn v n là các quy đ nh, đi u ki n t ệ ừ ị ẹ , các đi u ki n này là b t bi n. ế ự ế ứ ụ ệ ề ấ
ả ả
(cid:222) Vì th ph i luôn đ m b o c s d li u tho ả ổ ế ộ ẹ
3 Khoa HTTT-Đ i h c CNTT
ạ ọ
ràng bu c toàn v n sau m i thao tác làm thay đ i tình tr ng c a c s d li u. ả ơ ở ữ ệ ỗ ủ ơ ở ữ ệ ạ
ủ
ặ
ộ
2. Các đ c tr ng c a m t ư RBTV
ng
2.1 N i dung ộ 2.2 B i c nh ố ả 2.3 B ng t m nh h ả
ầ ả
ưở
4 Khoa HTTT-Đ i h c CNTT
ạ ọ
2.1 N i dung ộ
ả ặ
ch t ch ý nghĩa c a ràng bu c toàn ủ
ẽ
ộ
N i dung đ
Mô t v n.ẹ ộ
ể
c phát bi u b ng ngôn ng t ằ
ữ
ứ ,…) ả
ữ ệ ễ ể
nhiên: d hi u nh ng không ch t ư ặ
ượ ữ ự nhiên ho c b ng ngôn ng hình th c (ngôn ặ ằ , đ i s quan h , mã gi ng tân t ừ ạ ố Ngôn ng t ữ ự ch , logic. ữ
Ngôn ng hình th c: ch t ch , cô đ ng ứ
ẽ
5 Khoa HTTT-Đ i h c CNTT
ạ ọ
ẽ ặ ọ
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.ử
6 Khoa HTTT-Đ i h c CNTT
ạ ọ
2.3 B ng t m nh h
ng (1)
ầ ả
ả
ưở
ị
ằ
ế
ộ
ạ
ể Ph m vi nh h ả toàn v n đ ẹ ượ chi u g i là
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. ạ ẹ ộ ng c a m t ràng bu c ộ ộ ưở ủ c bi u di n b ng m t b ng 2 ộ ả ằ ể ễ b ng t m nh h ầ ả ả
ưở . ng
ề
ọ
7 Khoa HTTT-Đ i h c CNTT
ạ ọ
2.3 B ng t m nh h
ng (2)
ầ ả
ả
ưở
M t s quy đ nh Nh ng thu c tính khoá (nh ng thu c tính n m ộ ố ữ ị ộ ằ ộ
c phép ượ ữ ệ
trong khoá chính c a quan h ) không đ ủ s a giá tr ử ị
ộ ộ ủ
ộ ử ử ừ ộ ủ
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ệ ướ ạ ả ộ
ướ ẹ ộ
ạ ọ
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 ả c. ràng bu c toàn v n tr Khoa HTTT-Đ i h c CNTT 8
2.3 B ng t m nh h
ng (3)
ầ ả
ả
ưở
B ng t m nh h ả ng c a m t ràng bu c ộ ủ ộ
Xóa
S aử
ưở Thêm
Quan h 1ệ
………
Quan h nệ
ể
ạ
ệ ệ
ự ự
ể
ạ
ử
ể
ạ
+ : 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
ạ
ệ ượ
ộ ự 9 Khoa HTTT-Đ i h c CNTT
ạ ọ
ầ ả Ràng bu c ộ Ri
3. Phân lo iạ
ệ
ề
3.1 RBTV có b i c nh trên 1 quan h ố ả 3.2 RBTV có b i c nh trên nhi u quan h ệ ố ả 3.3 Ph thu c hàm (functional dependency)
ụ
ộ
Khoa HTTT-Đ i h c CNTT
10
ạ ọ
3.1 RBTV có b i c nh 1 quan h
ố ả
ệ
ề
ộ
3.1.1 RBTV mi n giá tr . ị 3.1.2 RBTV liên thu c tính 3.1.3 RBTV liên bộ
Khoa HTTT-Đ i h c CNTT
11
ạ ọ
L
c đ CSDL qu n lý giáo
ượ ồ
ả
vụ
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)
LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
DIEUKIEN (MAMH, MAMH_TRUOC)
GIAOVIEN(MAGV,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,NGVL,
HESO, MUCLUONG, MAKHOA)
GIANGDAY(MALOP,MAMH,MAGV,HOCKY, NAM,TUNGAY,DENNGAY)
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
Khoa HTTT-Đ i h c CNTT
12
ạ ọ
3.1.1 Ràng bu c mi n giá tr ộ
ề
ị
ị ộ ậ ể
{‘Nam’,’N ’}ữ
ớ ộ ủ ọ ậ ặ ỉ ữ
ệ ưở : ng
ầ ả
Thêm Xóa
S aử
R1 HOCVIEN
Là t p giá tr mà m t thu c tính có th nh n. R1: Gi i tính c a h c viên ch là Nam ho c N : N i dung ộ HOCVIEN: hv.Gioitinh ˛ " hv ˛ ố ả : quan h HOCVIEN B i c nh B ng t m nh h ả
+
-
+(Gioitinh)
Khoa HTTT-Đ i h c CNTT
13
ạ ọ
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 ữ ộ ộ ớ
R2: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 : GIANGDAY ả B ng t m nh h
ưở : ng
ầ ả
ả
Thêm Xóa
S aử
R2 GIANGDAY
b c a quan h ộ ủ ệ
+
-
+(Tungay, Denngay)
Khoa HTTT-Đ i h c CNTT
14
ạ ọ
3.1.3 Ràng bu c liên b (1) ộ
ộ
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).
ộ ộ
R3: T t c các h c viên ph i có mã s phân bi
t v i nhau
ố
ệ ớ
ề ọ
ả
„ h2 thì h1.Mahv„ h2.Mahv
ộ ế ấ ả N i dung ộ " h1,h2 B i c nh ố ả : quan h HOCVIEN B ng t m nh h ả
: HOCVIEN: N u hế 1 ệ ưở : ng
ầ ả
Thêm Xóa S aử
R3 HOCVIEN
˛
+
-
-(*)
Khoa HTTT-Đ i h c CNTT
15
ạ ọ
3.1.3 Ràng bu c liên b (2) ộ
ộ
R4: Các giáo viên có cùng h c v , cùng h s l
ng thì
ệ ố ươ
ọ ị
ng s b ng nhau
m c l ứ ươ ẽ ằ : N i dung ộ " gv1,gv2 N u (gv ế
GIAOVIEN: 1.Hocvi=gv2.Hocvi)(cid:217) (gv1.Heso=gv2.Heso) thì
B i c nh ố ả : quan h GIAOVIEN B ng t m nh h ả
gv.Mucluong=gv.Mucluong ệ ưở : ng
ầ ả
Thêm Xóa
S aử
R4 GIAOVIEN
˛
+
-
+(Hocvi, Heso, Mucluong)
Khoa HTTT-Đ i h c CNTT
16
ạ ọ
ề
3.2 RBTV có b i c nh nhi u quan ố ả hệ
ạ
ụ
i)
3.2.1 RBTV tham chi u (khoá ngo i, ph ế thu c t n t ộ ồ ạ ộ ộ
ổ
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 đ ượ ồ
Khoa HTTT-Đ i h c CNTT
17
ạ ọ
bi u ể di n ễ quan hệ
ế
3.2.1 Ràng bu c tham chi u ộ (1)
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 ạ ộ
ộ ồ ạ
Khoa HTTT-Đ i h c CNTT
18
ạ ọ
ế
3.2.1 Ràng bu c tham chi u ộ (2)
R5: H c viên thi m t môn h c nào đó thì môn h c đó
ọ
ộ
ọ
ọ
ả
MONHOC: k.Mamh = m.Mamh
MONHOC[Mamh]
ph i có trong danh sách các môn h c ọ : N i dung ộ KETQUATHI, $ m ˛ " k ˛ Ho c: KETQUATHI[Mamh] ặ
B i c nh
B ng t m nh h
ố ả : quan h KETQUATHI, MONHOC ả
ệ ưở : ng
ầ ả
Thêm Xóa
S aử
R5 KETQUATHI
˝
+
-
-(*)
MONHOC
+
-(*) - Khoa HTTT-Đ i h c CNTT
19
ạ ọ
ộ
3.2.2 Ràng bu c liên thu c tính ộ (1)
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. ằ : " gd ˛ GIANGDAY N i dung ộ N u ế $ gv ˛
GIAOVIEN: gd.Magv = gv.Magv thì gv.NGVL £ gd.TUNGAY
B i c nh
R6
Thêm Xóa
S aử
B ng t m nh h
ố ả : GIANGDAY, GIAOVIEN ưở : ng
ầ ả
ả
GIANGDAY
+
-
+(Tungay)
-
+(Ngvl)
GIAOVIEN Khoa HTTT-Đ i h c CNTT
- 20
ạ ọ
ộ
3.2.2 Ràng bu c liên thu c tính ộ (2)
R7: Ngày thi m t môn h c ph i l n h n ngày k t thúc h c
ả ớ
ế
ọ
ộ
ọ
ơ
:
KETQUATHI
môn h c đó. ọ N i dung ộ " kq ˛ N u ế $ gd ˛ GIANGDAY, $ hv ˛ HOCVIEN:
(gd.Malop=hv.Malop)(cid:217) (kq.Mamh=gd.Mamh) thì
gd.Denngay < kq.Ngthi
B i c nh
ố ả : GIANGDAY, HOCVIEN, KETQUATHI
Khoa HTTT-Đ i h c CNTT
21
ạ ọ
ộ
3.2.2 Ràng bu c liên thu c tính ộ (3)
B ng t m nh h
ầ ả
ả
ưở : ng
R7
Thêm Xóa
S aử
HOCVIEN
-
-
+(Malop)
GIANGDAY
-
-
+(Denngay)
KETQUATHI
+
-
+(Ngthi)
Khoa HTTT-Đ i h c CNTT
22
ạ ọ
ợ
ổ
3.2.3 RBTV do thu c tính t ng h p (1) ộ
Là ràng bu c gi a các thu c tính, các b trên nh ng ữ ữ ộ ộ ộ
ệ
Thu c tính t ng h p là thu c tính đ c tính toán t ổ ộ ừ
Tr giá c a m t hoá đ n b ng t ng thành ti n c a các chi ti
t
quan h khác nhau. ợ ộ ộ ị ủ ượ ộ
ề ủ
ổ
ơ
ị
ế
ộ
ủ thu c hoá đ n đó
ộ
ơ
Khoa HTTT-Đ i h c CNTT
23
ạ ọ
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) ằ
3.2.3 RBTV do thu c tính t ng h p (2) ộ
ổ
ợ
Doanh s c a m t khách hàng b ng t ng tr giá ằ ộ ị
ộ " kh ˛
KHACHHANG,
kh.Doanhso = (cid:229)
HOADON: hd.Makh=kh.Makh)(hd.Trigia)
(hd ˛
B i c nh
B ng t m nh h
ố ả : KHACHHANG, HOADON ưở : ng ả
ầ ả
Thêm Xóa
S aử
KHACHHANG
ố ủ ổ các hoá đ n mà khách hàng đó đã mua ơ : N i dung
-
-
+(Doanhso)
HOADON
+(Trigia) 24
+ + Khoa HTTT-Đ i h c CNTT ạ ọ
3.2.3 RBTV do thu c tính t ng h p (3) ộ
ổ
ợ
ng h c viên thu c l p đó
ộ ớ
ố ượ
ộ ớ
ọ
R8: S s c a m t l p là s l ỉ ố ủ N i dung : ộ l ˛
LOP,
HOCVIEN: hv.Malop = lp.Malop)(*)
B i c nh
B ng t m nh h
l.Siso = Count(hv ˛ ố ả : quan h LOP, HOCVIEN ệ ưở : ng ả
ầ ả
R8
Thêm Xóa
S aử
LOP
"
+
-
+(Siso)
HOCVIEN
+
+
+(Malop)
Khoa HTTT-Đ i h c CNTT
25
ạ ọ
3.2.4 Do hi n di n c a chu trình (1) ệ ủ
ệ
Bi u di n l
c đ quan h d ằ
i d ng đ th : ồ ị ệ ướ ạ c bi u di n b ng nút tròn r ng to ỗ ằ ượ
ễ ể
ặ ủ ằ ỉ
ộ ộ
N u đ th bi u di n xu t hi n m t đ
ữ ộ ố ở
ễ ượ ồ ể Quan h đ ệ ượ c bi u di n b ng nút tròn đ c nh Thu c tính đ ỏ ễ ể ộ c ch rõ b ng tên c a quan T t c các nút đ u đ ề ượ ấ ả 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ỏ ồ ị ể
Khoa HTTT-Đ i h c CNTT
ng khép ộ ườ ễ ệ ấ
26 ệ ủ
ạ ọ ự ệ
c đ CSDL có s hi n di n c a chu trình. ế kín => l ượ ồ
3.2.4 Do hi n di n c a chu trình (2) ệ ủ
ệ
Magv
Malop
GIANGDAY
X
GIAOVIEN
Mamh
Y
Hoten
Hocvi
Tenmh
MONHOC
…
Makhoa
TCLT
Khoa HTTT-Đ i h c CNTT
27
ạ ọ
3.2.4 Do hi n di n c a chu trình (3) ệ ủ
ệ
Makhoa
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 đó
ữ
ộ
ọ
ụ
X = GIANGDAY[Magv, Mamh] Y = (GIAOVIEN ⋈ MONHOC) [Magv,Mamh] Ý nghĩa:
ph trách ố
Khoa HTTT-Đ i h c CNTT
28
ạ ọ
M i quan h gi a X và Y trong các ràng bu c sau: ệ ữ ộ
3.2.4 Do hi n di n c a chu trình (4) ệ ủ
ệ
ỉ ượ ộ
ạ
ả
Ràng bu c 1ộ : giáo viên ch đ ữ X˝ Y
c phân công gi ng d y nh ng môn thu c khoa giáo viên đó ph trách ụ
Ràng bu c 2ộ : giáo viên ph i đ
ộ
công gi ng d y t ạ ấ ả ữ ả khoa giáo viên đó ph trách
c phân ả ượ t c nh ng môn thu c 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
ạ
ấ
ả
ọ
Khoa HTTT-Đ i h c CNTT
29
ạ ọ
3.2.4 Do hi n di n c a chu trình (4) ệ ủ
ệ
R9: giáo viên ch đ c phân công gi ng d y ạ ả
ụ ỉ ượ ộ
R9
Thêm Xóa
S aử
MONHOC
nh ng môn thu c khoa giáo viên đó ph trách ữ X˝ Y
-
-
+(Makhoa)
GIAOVIEN
-
-
+(Makhoa)
GIANGDAY
+
-
+(Magv)
Khoa HTTT-Đ i h c CNTT
30
ạ ọ
3.3 Ph thu c hàm (1) ộ
ụ
Cho quan h Q(A, B, C). Ph thu c hàm A xác ệ ộ
" q1,q2
fi đ nh B. Ký hi u A ị ệ
ụ B n u:ế ˛ Q: N u qế 1.A=q2.A thì q1.B=q2.B
B đ c g i là ph thu c hàm hi n nhiên A fi ượ ọ ụ ể ộ n u ế
B˝ A
B đ A fi ượ ọ ụ ố n u ế
Khoa HTTT-Đ i h c CNTT
31
ạ ọ
(cid:216) c g i là ộ $ A’(cid:204) A, A’„ A sao cho A’fi ph thu c hàm nguyên t B
3.3 Ph thu c hàm (2) ộ
ụ
ỗ ệ ề ụ ấ ộ ộ
M i quan h đ u có ít nh t m t ph thu c hàm Ràng bu c khoá cũng là m t ph thu c hàm ụ ộ
ộ Tenmh, Tclt, Tcth, Makhoa ộ Mamh fi
ọ ị
ng thì m c l
ể ể ụ ộ
Hocvi,Heso fi
Khoa HTTT-Đ i h c CNTT
32
R4: Các giáo viên có cùng h c v , cùng h s ệ ố ng s b ng nhau. Ràng bu c l ộ ứ ươ ươ ẽ ằ này có th bi u di n b ng ph thu c hàm nh ư ằ ễ sau:
Mucluong ạ ọ
4. B ng t m nh h
ng t ng h p (1)
ầ ả
ả
ưở
ổ
ợ
ng t ng h p
ả
ưở
ợ c a m ràng bu c trên n
ổ
ủ
ộ
B ng t m nh h quan h b i c nh
ầ ả ệ ố ả
QH1
QH2 … QHn
T X S T X S … T X S
R1
R2
…
Rm
Khoa HTTT-Đ i h c CNTT
33
ạ ọ
4. B ng t m nh h
ng t ng h p (2)
ầ ả
ả
ưở
ổ
ợ
HOCVIEN GIAOVIEN
LOP
MONHOC
GIANGDAY
KETQUA THI
T
X
S
T
X
S
T
X
S
T
X
S
T
X
S
T
X
S
+
-
+
R1
R2
+
-
+
+
-
-*
R3
R4
+
+
-
R5
-
+
-*
+
-
-*
R6
+
-
-
+
-
+
-
-
+
R7
+
-
+
-
-
+
+
+
+
R8
+
-
+
R9
-
-
+
+
- 34
+ - - + Khoa HTTT-Đ i h c CNTT ạ ọ