raØng buoÄc toaØn veÏn

Post on 09-Jan-2016

21 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

RAØNG BUOÄC TOAØN VEÏN. 1. RBTV, Caùc yeáu toá cuûa RBTV 2. Phaân loaïi raøng buoäc toaøn veïn. 1. RBTV, Caùc yeáu toá cuûa RBTV. 1.1. Ñònh nghóa 1.2. Caùc yeáu toá cuûa RBTV. 1.1. Ñònh nghóa. - PowerPoint PPT Presentation

TRANSCRIPT

1

RAØNG BUOÄC TOAØN VEÏN

1. RBTV, Caùc yeáu toá cuûa RBTV2. Phaân loaïi raøng buoäc toaøn veïn

2

1. RBTV, Caùc yeáu toá cuûa RBTV1.1. Ñònh nghóa

1.2. Caùc yeáu toá cuûa RBTV

3

1.1. Ñònh nghóa Raøng buoäc toaøn veïn (RBTV) laø

moät quy taéc ñònh nghóa treân moät (hay nhieàu) quan heä do moâi tröôøng öùng duïng quy ñònh. Ñoù chính laø quy taéc ñeå ñaûm baûo tính nhaát quaùn cuûa döõ lieäu trong CSDL.

Moãi RBTV ñöôïc ñònh nghóa baèng moät thuaät toaùn trong CSDL.

4

1.1. Ñònh nghóa Ví duï R1 : Moãi lôùp hoïc coù 1 maõ soá duy

nhaát ñeå phaân bieät vôùi moïi lôùp hoïc khaùc.

R2 : Moãi lôùp hoïc phaûi thuoäc moät KHOA cuûa tröôøng.

R3 : Moãi hoïc vieân coù 1 maõ soá rieâng bieät, khoâng truøng vôùi caùc hoïc vieân khaùc.

R4 : Moãi hoïc vieân phaûi ñaêng kyù vaøo moät lôùp cuûa tröôøng.

5

1.1. Ñònh nghóa Khoùa noäi, Khoùa ngoaïi, NOT NULL ... laø

nhöõng RBTV veà mieàn giaù trò cuûa caùc thuoäc tính.

Trong thöïc teá, taát caû caùc RBTV cuûa moät CSDL phaûi ñöôïc phaùt hieän ñaày ñuû

Trong moät CSDL, RBTV ñöôïc xem nhö moät coâng cuï ñeå dieãn ñaït ngöõ nghóa cuûa CSDL ñoù.

Trong suoát quaù trình khai thaùc CSDL, caùc RBTV ñeàu phaûi ñöôïc thoûa maõn ôû baát kyø thôøi ñieåm naøo

6

Phöông phaùp kieåm tra RBTV Heä quaûn trò CSDL coù caùc cô cheá töï

ñoäng kieåm tra caùc RBTV veà mieàn giaù trò cuûa Khoùa noäi, Khoùa ngoaïi, NOT NULL qua khai baùo caáu truùc caùc baûng

Thoâng qua nhöõng thuû tuïc kieåm tra vaø xöû lyù vi phaïm RBTV do nhöõng ngöôøi phaân tích - thieát keá caøi ñaët

7

Thôøi ñieåm kieåm tra RBTV Kieåm tra ngay khi thöïc hieän 1 thao taùc

caäp nhaät CSDL (theâm, söûa, xoùa). Thao taùc caäp nhaät chæ ñöôïc xem laø hôïp leä neáu nhö noù khoâng vi phaïm baát cöù moät RBTV naøo.  

Kieåm tra ñònh kyø hay ñoät xuaát. Ñoái vôùi nhöõng tröôøng hôïp vi phaïm RBTV, heä thoáng seõ coù nhöõng xöû lyù thích hôïp.

8

1.2. Caùc yeáu toá cuûa RBTV Ñieàu kieän: töùc laø noäi dung cuûa

RBTV, töø ñoù xaùc ñònh caùch bieåu dieãn.

Boái caûnh xaûy ra RBTV: treân moät hay nhieàu quan heä, cuï theå treân caùc quan heä naøo.

Taàm aûnh höôûng cuûa RBTV: Khaû naêng tính toaøn veïn döõ lieäu bò vi phaïm

Haønh ñoäng caàn phaûi coù khi phaùt hieän coù RBTV bò vi phaïm.

9

1.2. Caùc yeáu toá cuûa RBTV Ñieàu kieän cuûa RBTV:  Ñieàu kieän cuûa RBTV laø söï moâ taû,

vaø bieåu dieãn hình thöùc noäi dung cuûa noù, coù theå ñöôïc bieåu dieãn baèng ngoân ngöõ töï nhieân, thuaät giaûi (baèng maõ giaû - Pseudo Code, ngoân ngöõ töïa Pascal), ngoân ngöõ ñaïi soá taäp hôïp, ñaïi soá quan heä … hoaëc baèng caùc phuï thuoäc haøm  

10

1.2. Caùc yeáu toá cuûa RBTV Ñieàu kieän cuûa RBTV – Ví duï: Cho 1 CSDL quaûn lyù hoùa ñôn baùn

haøng goàm caùc baûng sau: HOÙAÑÔN (Soá-hoùa-ñôn, Soá-maët-haøng,

Toång-trò-giaù). DM_HAØNG (Maõ-haøng, Teân-haøng, Ñôn-vò-

tính). CHITIEÁT-HÑ (Soá-hoùa-ñôn, Maõ-haøng, Soá-

löôïng-ñaët, Ñôn-giaù, Trò-giaù).  

11

1.2. Caùc yeáu toá cuûa RBTV Ñieàu kieän cuûa RBTV – Ví duï: R1 :“Moãi hoùa ñôn coù 1 Soá hoùa ñôn

rieâng bieät, khoâng truøng vôùi hoùa ñôn khaùc”:

hñ1, hñ2 HOÙAÑÔN, hñ1 hñ2 hñ1.Soá-hoùa-ñôn hñ2. Soá-hoùa-ñôn.

R2 : “Soá-maët-haøng = soá boä cuûa CHITIEÁT_HÑ coù cuøng Soá-hoùa-ñôn”:

hñ  HOÙAÑÔN thì: hñ.Soá-maët-haøng = COUNT (cthñ

CHITIEÁT_HÑ, cthñ.Soá-hoùa-ñôn = hñ.Soá-hoùa-ñôn)  

12

1.2. Caùc yeáu toá cuûa RBTV Ñieàu kieän cuûa RBTV – Ví duï: R3 : “Toång caùc trò giaù cuûa caùc maët

haøng trong CHITIEÁT_HÑ coù cuøng Soá-hoùa-ñôn phaûi baèng Toång-trò-giaù ghi trong HOÙAÑÔN”:

hñ HOÙAÑÔN thì: hñ.Toång-trò-giaù = SUM (cthñ.Trò-giaù) ñoái vôùi caùc cthñ CHITIEÁT_HÑ sao cho : cthñ. Soá-hoùa-ñôn= hñ. Soá-hoùa-ñôn.

13

1.2. Caùc yeáu toá cuûa RBTV Ñieàu kieän cuûa RBTV – Ví duï: R4 : “Moãi boä cuûa CHITIEÁT_HÑ phaûi

coù maõ haøng thuoäc veà danh muïc haøng”:

CHITIEÁT_HÑ [Maõ-haøng] DM_HAØNG[Maõ-haøng]

cthñ CHITIEÁT_HÑ, hh DM_HAØNG, sao cho: cthñ.Maõ-haøng=hh.Maõ-haøng.    

14

1.2. Caùc yeáu toá cuûa RBTV Boái caûnh cuûa RBTV:  Boái caûnh coù theå ñònh nghóa treân

moät quan heä cô sôû hay nhieàu quan heä cô sôû. Ñoù laø nhöõng quan heä maø RBTV ñöôïc aùp duïng treân ñoù

15

1.2. Caùc yeáu toá cuûa RBTV Boái caûnh cuûa RBTV – ví duï:  Trong ví duï treân, boái caûnh cuûa caùc

raøng buoäc toaøn veïn nhö sau R1 :chæ laø moät quan heä HOÙAÑÔN R2 : 2 quan heä HOÙAÑÔN vaø

CHITIEÁT_HÑ; R3 : 2 quan heä HOÙAÑÔN vaø

CHITIEÁT_HÑ; R4 : 2 quan heä CHITIEÁT_HÑ vaø

DM_HAØNG.

16

1.2. Caùc yeáu toá cuûa RBTV Taàm aûnh höôûng cuûa RBTV:  Moät RBTV coù theå lieân quan ñeán moät

soá quan heä, vaø chæ khi coù thao taùc caäp nhaät (Theâm, Söûa, Xoùa) môùi coù nguy cô daãn ñeán vi phaïm RBTV, ño ñoù caàn xaùc ñònh roõ thao taùc naøo daãn ñeán vieäc caàn phaûi kieåm tra RBTV.  

17

1.2. Caùc yeáu toá cuûa RBTV Taàm aûnh höôûng cuûa RBTV:  Trong quaù trình phaân tích, thieát keá

moät CSDL, ngöôøi phaân tích caàn laäp baûng xaùc ñònh taàm aûnh höôûng cho moãi raøng buoäc toaøn veïn nhaèm xaùc ñònh khi naøo thì phaûi tieán haønh kieåm tra caùc raøng buoäc toaøn veïn ñoù

18

1.2. Caùc yeáu toá cuûa RBTV Baûng Taàm aûnh höôûng:  Baûng taàm aûnh höôûng goàm 4 coät:

coät 1 chöùa teân caùc baûng lieân quan tôùi RBTV; 3 coät tieáp theo laø thao taùc Theâm / Söûa / Xoùa 1 boä giaù trò

Neáu RBTV coù nguy cô bò vi phaïm thì taïi oâ ñoù ngöôøi ta ñaùnh daáu baèng daáu coäng (+), vaø coù theå chæ roõ theâm caùc thuoäc tính naøo neáu ñöôïc caäp nhaät môùi daãn ñeán vi phaïm RBTV baèng caùch lieät keâ chuùng döôùi daáu (+).

19

1.2. Caùc yeáu toá cuûa RBTV Baûng Taàm aûnh höôûng (tt):  Neáu RBTV khoâng coù nguy cô bò vi

phaïm khi caäp nhaät CSDL thì ñaùnh daáu tröø (-)

Neáu khoâng bò vi phaïm vì khoâng ñöôïc pheùp söûa ñoåi thì kyù hieäu laø tröø vôùi daáu sao ( -(*) ).  

20

1.2. Caùc yeáu toá cuûa RBTV Taàm aûnh höôûng cuûa RBTV – ví duï: 

Baûng taàm aûnh höôûng cuûa R1  

Quan heä Theâm Söûa Xoùa

HOÙAÑÔN + - (*) (Soá-hoùa-ñôn) -

Baûng taàm aûnh höôûng cuûa R2

Quan heä Theâm

Söûa Xoùa

HOÙAÑÔN CHITIEÁT_HÑ

++

+ (Soá-maët-haøng)+[Soá-hoùa-ñôn)

++

21

1.2. Caùc yeáu toá cuûa RBTV Taàm aûnh höôûng cuûa RBTV – ví duï: 

Baûng taàm aûnh höôûng cuûa R3  

Quan heä Theâm Söûa Xoùa

HOÙAÑÔN CHITIEÁT_HÑ

+ +

+ (Toång-trò-giaù)+ (Trò-giaù)

++

Baûng taàm aûnh höôûng cuûa R4

Quan heä Theâm Söûa Xoùa

CHITIEÁT_HÑ DM_HAØNG

+(Maõ-haøng)-

- (*)- (*)

-+

22

1.2. Caùc yeáu toá cuûa RBTV Taàm aûnh höôûng cuûa RBTV – ví duï: 

Baûng taàm aûnh höôûng toång hôïp  

QH HOÙA-ÑÔN CHITIEÁT-HÑ DM_HAØNG

RB T S X T S X T X S

R1 + -(*) -

R2 + + + + - +

R3 + + + + + +

R4 + -(*) - - -(*) +

23

DocGia(MaDG, TenDg) Sach(MaS, TenS, MaLoai) Loai(MaLoai, TenLoai) PhieuMuon(SoPM, MaDG, NgayM) CTMuon(SoPM, MaS, NgayT)

24

1.2. Caùc yeáu toá cuûa RBTV Haønh ñoäng khi RBTVï bò vi phaïm: 

Haønh ñoäng (phaûn öùng) goàm 2 phaàn-Thoâng baùo: thoâng baùo cho ngöôøi

duøng bieát döõ lieäu vi phaïm RBTV naøo vaø caàn söûa laïi nhö theá naøo

-Xöû lyù: Ñöa ra phöông aùn xöû lyù khi RBTV bò vi phaïm, coù theå töø choái thao taùc hoaëc tieáp tuïc cho hieäu chænh döõ lieäu

25

1.2. Caùc yeáu toá cuûa RBTV Haønh ñoäng khi RBTVï bò vi phaïm: 

Thoâng thöôøng coù 2 giaûi phaùp: Ñöa ra thoâng baùo vaø yeâu caàu söûa

chöõa döõ lieäu cho phuø hôïp vôùi RBTV. Thoâng baùo phaûi ñaày ñuû vaø taïo ñöôïc söï thaân thieän vôùi ngöôøi söû duïng.

Giaûi phaùp naøy laø phuø hôïp cho vieäc xöû lyù thôøi gian thöïc.

Töø choái thao taùc caäp nhaät. Giaûi phaùp naøy laø phuø hôïp ñoái vôùi

vieäc xöû lyù theo loâ (Batch processing).  

26

2.Phaân loaïi raøng buoäc toaøn veïn1. RBTV coù boái caûnh laø 1 baûng

1. RBTV veà mieàn giaù trò2. RBTV lieân thuoäc tính3. RBTV lieân boä

2. RBTV coù boái caûnh laø nhieàu baûng

1. RBTV veà phuï thuoäc toàn taïi2. RBTV lieân thuoäc tính – lieân quan

heä3. RBTV lieân boä – lieân quan heä4. RBTV do coù chu trình

27

2.Phaân loaïi raøng buoäc toaøn veïnRBTV veà mieàn giaù trò Trong haàu heát caùc CSDL quan heä,

loaïi RBTV naøy laø raát phoå bieán. Moãi thuoäc tính ñöôïc ñaëc tröng khoâng

chæ bôûi kieåu giaù trò, maø coøn bò giôùi haïn bôûi mieàn giaù trò trong kieåu döõ lieäu ñoù.

Do ñoù, khi thöïc hieän caùc thao taùc caäp nhaät (theâm, xoùa, söûa) cho quan heä ñeàu phaûi kieåm tra RBTV naøy.  

28

2.Phaân loaïi raøng buoäc toaøn veïnRBTV veà mieàn giaù trò – ví duï: Trong quan heä KQUAÛ-THI(MASV, MAMH,

LANTHI, DIEM), do quy ñònh moãi sinh vieân chæ ñöôïc thi 1 moân toái ña 3 laàn, vaø ñieåm thi cuûa moân hoïc trong moïi laàn thi khoâng bò aâm vaø khoâng vöôït quaù 10.

Coù 2 RBTV veà mieàn giaù trò trong quan heä:

R1: kq KQUAÛ-THI thì 0 kq.Laànthi 3 R2: kq KQUAÛ-THI thì 0 kq.Ñieåm 10  

29

2.Phaân loaïi raøng buoäc toaøn veïnRBTV lieân thuoäc tính Ñoù laø loaïi RBTV coù lieân quan tôùi

nhieàu thuoäc tính cuûa moät quan heä. Thoâng thöôøng ñoù laø caùc phuï thuoäc

tính toaùn, hoaëc moät suy dieãn töø giaù trò cuûa moät hay nhieàu thuoäc tính trong cuøng moät boä giaù trò

30

2.Phaân loaïi raøng buoäc toaøn veïnRBTV lieân thuoäc tính-ví duï Trong Quan heä CHITIEÁT_HÑ treân, coù

RBTV lieân thuoäc tính laø:   cthñ CHITIEÁT_HÑ / cthñ.Trò-giaù =

cthñ.Soá-löôïng-ñaët * cthñ.Ñôn-giaù  Quan heä NHANVIEN (Maõ-NV, Hoï-teân,

phai, Ngaøy-sinh, Ngaøy-TD, Heä-soá-löông) Vôùi quy ñònh 18 tuoåi trôû leân môùi ñöôïc tuyeån. Ta coù RBTV lieân thuoäc tính sau:

nv NHANVIEN / Year(nv.Ngay-TD) – Year(nv.Ngay-sinh) 18

31

2.Phaân loaïi raøng buoäc toaøn veïnRBTV lieân boä Ñaây laø loaïi RBTV coù lieân quan tôùi nhieàu

boä vaø coù theå tôùi nhieàu thuoäc tính cuûa (caùc) boä giaù trò trong moät quan heä.

Ví duï: Maõ soá sinh vieân khoâng ñöôïc truøng

nhau Ñieåm thi laàn sau > laàn tröôùc:kq

KQUAÛ-THINeáu kq.Laàn-thi = 1 thì 0 kq.Ñieåm 10 hoaëc: Neáu kq.Laàn thi > 1 thì kq’ KQUAÛ-THI Sao cho kq’.Laàn-thi = kq.Laàn-thi - 1 vaø

kq.Ñieåm kq’.Ñieåm

32

2.Phaân loaïi raøng buoäc toaøn veïnRBTV veà phuï thuoäc – toàn taïi RBTV veà phuï thuoäc toàn taïi coøn ñöôïc

goïi laø phuï thuoäc veà khoùa ngoaïi. Ñaây laø loaïi RBTV phoå bieán trong caùc CSDL.

Boä giaù trò cuûa quan heä naøy ñöôïc theâm vaøo moät caùch hôïp leä neáu toàn taïi moät baûn ghi töông öùng cuûa 1 quan heä khaùc.

Phuï thuoäc toàn taïi xaûy ra neáu coù moät trong hai tröôøng hôïp sau:

Coù söï hieän dieän cuûa khoùa ngoaïi. Coù söï loàng khoùa giöõa caùc quan

heä.  

33

2.Phaân loaïi raøng buoäc toaøn veïnRBTV veà phuï thuoäc – toàn taïi Ví duï:

Moãi sinh vieân phaûi thuoäc 1 lôùp  Moãi lôùp phaûi thuoäc 1 khoa Moãi Ñieåm phaûi cuûa 1 sinh vieân, 1

moân Moãi nhaân vieân phaûi thuoäc 1 phoøng Moãi Maõ-haøng trong Chitieát-HÑ phaûi

toàn taïi trong quan heä Haøng-hoùa Moãi Soá-hoùa-ñôn trong Chitieát-HÑ

phaûi toàn taïi trong quan heä Hoùa-Ñôn

34

2.Phaân loaïi raøng buoäc toaøn veïnRBTV lieân thuoäc tính – lieân quan heä:Moät thuoäc tính trong 1 quan heä naøy coù

moái lieân heä vôùi 1 thuoäc tính trong 1 quan heä khaùc.

Ví duï: Ngaøy giao haøng phaûi sau ngaøy

ñaëtHoùañôn.Ngaøy-giao >= Ñaëthaøng. Ngaøy-

ñaët Tröôûng phoøng phaûi töø 40 tuoåi

trôû leânYear(NgayNhChuc) – Year(Ngsinh) >= 40

35

2.Phaân loaïi raøng buoäc toaøn veïnRBTV lieân boä – lieân quan heä:Moät thuoäc tính cuûa quan heä naøy coù

moái lieân heä vôùi caùc boä cuûa 1 quan heä khaùc.

Ví duï: Moãi giaùo vieân phaûi daïy ít nhaát 1

lôùp Hoùañôn.Soámaëthaøng = soá boä cuûa

Chitieát-HÑ coù cuøng soá hoùa ñôn Moãi phieáu möôïn chæ ñöôïc möôïn toái

ña 3 quyeån saùch.

36

2.Phaân loaïi raøng buoäc toaøn veïnRBTV do coù chu trình Bieåu dieãn caáu truùc CSDL döôùi daïng ñoà

thò nhö sau: Moãi nuùt cuûa ñoà thò bieåu dieãn 1 quan heä hoaëc 1 thuoäc tính.

Quan heä ñöôïc bieåu dieãn baèng nuùt troøn traéng ()

Thuoäc tính ñöôïc bieåu dieãn bôûi moät nuùt troøn ñen nhoû hôn ().

Caùc nuùt ñöôïc chæ roõ baèng teân cuûa quan heä hoaëc thuoäc tính. Thuoäc tính thuoäc moät quan heä ñöôïc bieåu dieãn bôûi moät cung noái giöõa nuùt troøn traéng vaø nuùt troøn ñen ñoù. 

37

2.Phaân loaïi raøng buoäc toaøn veïnRBTV do coù chu trìnhNeáu treân ñoà thò, ta thaáy xuaát hieän 1

ñöôøng kheùp kín thì ta noùi raèng trong löôïc ñoà CSDL coù söï hieän dieän cuûa chu trình.

Söï hieän dieän naøy laøm naûy sinh moät vaán ñeà môùi: Xaùc ñònh khaû naêng ñaûm baûo tính nhaát quaùn cuûa döõ lieäu, ñoù laø moät RBTV, do söï hieän dieän cuûa chu trình. 

38

2.Phaân loaïi raøng buoäc toaøn veïnRBTV do coù chu trìnhVí duï: Q1 (Maõ-nhaân-vieân, Maõ-phoøng) Q2 (Maõ-phoøng, Maõ-ñeà-aùn) Q3 (Maõ-ñeà-aùn, Teân-ñeà-aùn) Q4 (Maõ-ñeà-aùn, Maõ-nhaân-vieân) 

39

2.Phaân loaïi raøng buoäc toaøn veïn Giaû thieát 1: Vôùi taân töø sau:  Moãi nhaân vieân ñöôïc phaân coâng vaøo taát caû

caùc ñeà aùn do phoøng ñoù phuï traùch.   2 con ñöôøng mang yù nghóa gioáng nhau.

Ñöôøng daøi hôn Q1 keát noái vôùi Q2 (kyù hieäu laø Q1 I><I Q2) con ñöôøng ngaén hôn Q4 khi cuøng xaùc ñònh 1 ñeà aùn maø 1 nhaân vieân tham gia vaøo. Ñaây laø moät chu trình giaû.

Neáu vaãn muoán giöõ laïi quan heä Q4, töùc laø khoâng huûy boû chu trình, thì phaûi coù moät RBTV vôùi thuaät toaùn sau: 

Q1 I><I Q2 [Maõ-nhaân-vieân, Maõ-ñeà-aùn] = Q4 [Maõ-nhaân-vieân, Maõ-ñeà-aùn] 

40

2.Phaân loaïi raøng buoäc toaøn veïn Giaû thieát 2: Vôùi taân töø sau: Moãi nhaân vieân ñöôïc phaân coâng vaøo

moät soá ñeà aùn do phoøng ñoù phuï traùch.  Con ñöôøng ngaén Q4 phuï thuoäc vaøo con

ñöôøng daøi Q1 I><I Q2, vì 1 nhaân vieân coù theå khoâng tham gia vaøo taát caû caùc ñeà aùn do phoøng mình phuï traùch. Chu trình treân mang yù nghóa thöïc söï.

RBTV ñöôïc theå hieän bôûi thuaät toaùn sau:  Q4 [Maõ-nhaân-vieân, Maõ-ñeà-aùn] Q1

I><I Q2 [Maõ-nhaân-vieân, Maõ-ñeà-aùn] 

41

2.Phaân loaïi raøng buoäc toaøn veïn Giaû thieát 3: Vôùi taân töø sau: Moãi nhaân vieân ñöôïc phaân coâng vaøo

nhöõng ñeà aùn baát kyø.  2 con ñöôøng hoaøn toaøn ñoäc laäp nhau,

khoâng lieân quan gì tôùi nhau, mang yù nghóa hoaøn toaøn khaùc nhau.

Do ñoù khoâng coù RBTV.

top related