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 ạ ọ