1 / 41

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

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.

steffi
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  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   Baûng taàm aûnh höôûng cuûa R2

  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   Baûng taàm aûnh höôûng cuûa R4

  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  

  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ïn • RBTV coù boái caûnh laø 1 baûng • RBTV veà mieàn giaù trò • RBTV lieân thuoäc tính • RBTV lieân boä • RBTV coù boái caûnh laø nhieàu baûng • RBTV veà phuï thuoäc toàn taïi • RBTV lieân thuoäc tính – lieân quan heä • RBTV lieân boä – lieân quan heä • RBTV do coù chu trình

  27. 2.Phaân loaïi raøng buoäc toaøn veïn RBTV 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ïn RBTV 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ïn RBTV 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ïn RBTV 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ïn RBTV 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Û-THI Neá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ïn RBTV 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ïn RBTV 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ïn RBTV 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ët Hoùañôn.Ngaøy-giao >= Ñaëthaøng. Ngaøy-ñaët • Tröôûng phoøng phaûi töø 40 tuoåi trôû leân Year(NgayNhChuc) – Year(Ngsinh) >= 40

  35. 2.Phaân loaïi raøng buoäc toaøn veïn RBTV 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ïn RBTV 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ïn RBTV do coù chu trình Neá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ïn RBTV do coù chu trình Ví 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.

More Related