Giaùo trình CÔ SÔÛ DÖÕ lieäu trang


Chöông 3. RAØNG BUOÂC TOAØN VEÏN QUAN HEÄ



tải về 1.89 Mb.
trang9/20
Chuyển đổi dữ liệu07.07.2016
Kích1.89 Mb.
#203
1   ...   5   6   7   8   9   10   11   12   ...   20

Chöông 3.

RAØNG BUOÂC TOAØN VEÏN QUAN HEÄ


(entegrity constraint)

IRAØNG BUOÄC TOAØN VEÏN - CAÙC YEÁU TOÁ CUÛA RAØNG BUOÄC TOAØN VEÏN

1Raøng Buoäc Toaøn Veïn


Trong moãi CSDL luoân toàn taïi nhieàu moái lieân heä giöõa caùc thuoäc tính, giöõa caùc boä. Söï lieân heä naøy coù theå xaûy ra trong moät löôïc ñoà quan heä hoaëc trong caùc löôïc ñoà quan heä cuûa moät cô sôû döõ lieäu. Caùc moái lieân heä naøy laø nhöõng ñieàu kieän baát bieán maø taát caû caùc boä cuûa nhöõng quan heä coù lieân quan trong CSDL ñeàu phaûi thoûa maõn ôû moïi thôøi ñieåm. Nhöõng ñieàu kieän baát bieán ñoù ñöôïc goïi laø raøng buoäc toaøn veïn. Trong thöïc teá raøng buoäc toaøn veïn laø caùc quy taéc quaûn lyù ñöôïc aùp ñaët treân caùc ñoái töôïng cuûa theá giôùi thöïc.

Nhieäm vuï cuûa ngöôøi phaân tích thieát keá laø phaûi phaùt hieän caøng ñaày ñuû vaø chính xaùc caùc raøng buoäc toaøn veïn caøng toát vaø moâ taû chuùng moät caùch chính xaùc trong hoà sô phaân tích thieát keá - ñoù laø moät vieäc laøm raát quan troïng vaø raát caàn thieát.

Trong moät cô sôû döõ lieäu, raøng buoäc toaøn veïn ñöôïc xem nhö laø moät coâng cuï ñeå dieãn ñaït ngöõ nghóa cuûa CSDL. Moät CSDL ñöôïc thieát keá coàng keành nhöng noù theå hieän ñöôïc ñaày ñuû ngöõ nghóa cuûa thöïc teá vaãn coù giaù trò cao hôn raát nhieàu so vôùi moät caùch thieát keá goïn nheï nhöng ngheøo naøn veà ngöõ nghóa vì thieáu caùc raøng buoäc toaøn veïn cuûa cô sôû döõ lieäu.

Coâng vieäc kieåm tra raøng buoäc toaøn veïn thöôøng ñöôïc tieán haønh vaøo thôøi ñieåm caäp nhaät döõ lieäu ( theâm, söûa, xoùa). Nhöõng raøng buoäc toaøn veïn phaùt sinh caàn phaûi ñöôïc ghi nhaän vaø xöû lyù moät caùch töôøng minh (thöôøng laø bôûi moät haøm chuaån hoaëc moät ñoaïn chöông trình).


2Caùc Yeáu Toá Cuûa Raøng Buoäc Toaøn Veïn


Moãi raøng buoäc toaøn veïn coù 3 yeáu toá: ñieàu kieän, boái caûnh vaø taàm aûnh höôûng.

iÑieàu kieän


Ñieàu kieän cuûa moät raøng buoäc toaøn veïn R coù theå ñöôïc bieåu dieãn baèng ngoân ngöõ töï nhieân, thuaät giaûi, ngoân ngöõ ñaïi soá taäp hôïp, ñaïi soá quan heä,… ngoaøi ra ñieàu kieän cuûa raøng buoäc toaøn veïn cuõng coù theå ñöôïc bieåu dieãn baèng phuï thuoäc haøm. Chaúng haïn, vôùi löôïc ñoà quan heä SV thì coù moät raøng buoäc toaøn veïn nhö sau:

Vôùi r laø moät quan heä cuûa Sv ta coù raøng buoäc toaøn veïn sau

t1,t2  r

t1.MASV  t2.MASV

cuoái 

iiBoái caûnh


Boái caûnh cuûa moät raøng buoäc toaøn veïn laø nhöõng quan heä maø raøng buoäc ñoù coù hieäu löïc hay noùi moät caùch khaùc, ñoù laø nhöõng quan heä caàn phaûi ñöôïc kieåm tra raøng buoäc toaøn veïn. Boái caûnh cuûa moät raøng buoäc toaøn veïn coù theå laø moät hoaëc nhieàu quan heä. Chaúng haïn vôùi raøng buoäc toaøn veïn treân thì boái caûnh laø moät quan heä Sv

iiiTaàm aûnh höôûng


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 taàm aûnh höôûng cho moät raøng buoäc toaøn veïn nhaèm xaùc ñònh thôøi ñieåm caàn phaûi tieán haønh kieåm tra caùc raøng buoäc toaøn veïn ñoù. Caùc thôøi ñieåm caàn phaûi kieåm tra RBTV chính laø nhöõng thôøi ñieåm caäp nhaät döõ lieäu (theâm /söûa/ xoùa)

Moät baûng taâm aûnh höôûng cuûa moät RBTV coù daïng sau:



(Teân RBTV)

Theâm(T)

Söûa(S)

Xoùa(X)

r1

+

-

-

r2










...

...

..

..

...

...

...

...

rn









Baûng naøy chöùa toaøn caùc kyù hieäu + hoaëc –

Chaúng haïn + taïi oâ töông öùng vôùi doøng r1, coät theâm thì coù nghóa laø khi theâm moät boä vaøo quan heä r1 thì caàn phaûi kieåm tra RBTV

Daáu - Taïi oâ töông öùng vôùi doøng r1, coät söûa thì coù nghóa laø khi söûa moät boä treân quan heä r1 thì khoâng caàn phaûi kieåm tra RBTV naøy,…


IIPHAÂN LOAÏI RAØNG BUOÄC TOAØN VEÏN


Trong quaù trình phaân tích thieát keá cô sôû döõ lieäu, ngöôøi phaân tích phaûi phaùt hieän taát caû caùc raøng buoäc toaøn veïn tieàm aån trong CSDL ñoù. Vieäc phaân loaïi caùc raøng buoäc toaøn veïn laø raát coù ích, noù nhaèm gíuùp cho ngöôøi phaân tích coù ñöôïc moät ñònh höôùng, traùnh boû soùt nhöõng raøng buoäc toaøn veïn. Caùc raøng buoäc toaøn veïn coù theå ñöôïc chia laøm hai loaïi chính nhö sau:

  • Raøng buoäc toaøn veïn treân phaïm vi laø moät quan heä bao goàm :Raøng buoäc toaøn veïn mieàn giaù trò, raøng buoäc toaøn veïn lieân thuoäc tính, raøng buoäc toaøn veïn lieân boä.

  • Raøng buoäc toaøn veïn treân phaïm vi nhieàu quan heä bao goàm :Raøng buoäc toaøn veïn phuï thuoäc toàn taïi, raøng buoäc toaøn veïn lieân boä - lieân quan heä, raøng buoäc toaøn veïn lieân thuoäc tính - lieân quan heä.

Ñeå minh hoïa cho phaàn lyù thuyeát cuûa chöông naøy, ta neâu ví duï sau ñaây

Ví duï

Cho moät CSDL C duøng ñeå quaûn lyù vieäc ñaët haøng vaø giao haøng cuûa moät coâng ty. Löôïc ñoà CSDL C goàm caùc löôïc ñoà quan heä nhö sau:



Q1: Khach (MAKH,TENKH,DCKH,DT)

Taân töø: Moãi khaùch haøng coù moät maõ khaùch haøng (MAKH) duy nhaát, moãi MAKH xaùc ñònh moät teân khaùch haøng (TENKH), moät ñòa chæ (DCKH), moät soá ñieän thoaïi (DT).

Q2: Hang(MAHANG,TENHANG,QUYCACH,DVTINH)

Taân töø: Moãi maët haøng coù moät maõ haøng (MAHANG) duy nhaát, moãi MAHANG xaùc ñònh moät teân haøng (TENHANG), quy caùch haøng (QUYCACH), ñôn vò tính (DVTINH).

Q3: Dathang(SODH,MAHANG,SLDAT,NGAYDH,MAKH)

Taân töø: Moãi laàn ñaët haøng coù soá ñaët haøng (SODH) xaùc ñònh moät ngaøy ñaët haøng (NGAYDH) vaø maõ khaùch haøng töông öùng (MAKH). Bieát maõ soá ñaët haøng vaø maõ maët haøng thì bieát ñöôïc soá löôïng ñaët haøng(SLDAT). Moõi khaùch haøng trong moät ngaøy coù theå coù nhieàu laàn ñaët haøng

Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT)

Taân töø: Moãi hoùa ñôn coù moät maõ soá duy nhaát laø SOHD, moãi hoùa ñôn baùn haøng coù theå goàm nhieàu maët haøng. Moãi hoùa ñôn xaùc ñònh ngaøy laäp hoùa ñôn (NGAYLAP), öùng vôùi soá ñaët haøng naøo (SODH). Giaû söû raèng hoùa ñôn baùn haøng theo yeâu caàu cuûa chæ moät ñôn ñaët haøng coù maõ soá laø SODH vaø ngöôïc laïi, moãi ñôn ñaët haøng chæ ñöôïc giaûi quyeát chæ trong moät hoùa ñôn. Do ñieàu kieän khaùch quan coù theå coâng ty khoâng giao ñaày ñuû caùc maët haøng cuõng nhö soá löôïng töøng maët haøng nhö yeâu caàu trong ñôn ñaët haøng nhöng khoâng bao giôø giao vöôït ngoaøi yeâu caàu. Moãi hoùa ñôn xaùc ñònh moät trò giaù cuûa caùc maët haøng trong hoùa ñôn (TRIGIAHD) vaø moät ngaøy xuaát kho giao haøng cho khaùch (NGAYXUAT)

Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)

Taân töø: Moãi SOHD, MAHANG xaùc ñònh giaù baùn (GIABAN) vaø soá löôïng baùn (SLBAN) cuûa moät maët haøng trong moät hoùa ñôn.

Q6: Phieuthu(SOPT, NGAYTHU, MAKH, SOTIEN)

Taân töø: Moãi phieáu thu coù moät soá phieáu thu (SOPT) duy nhaát, moãi SOPT xaùc ñònh moät ngaøy thu (NGAYTHU) cuûa moät khaùch haøng coù maõ khaùch haøng laø MAKH vaø soá tieàn thu laø SOTIEN. Moãi khaùch haøng trong moät ngaøy coù theå coù nhieàu soá phieáu thu.

1Raøng buoäc toaøn veïn lieân boä


Raøng buoäc toaøn veïn lieân boä laø söï raøng buoäc toaøn veïn giöõa caùc boä trong cuøng moät quan heä .

Raøng buoäc toaøn veïn lieân boä hay coøn goïi laø raøng buoäc toaøn veïn veà khoùa. Ñaây laø loaïi raøng buoäc toaøn veïn raát phoå bieán, noù coù maët trong moïi löôïc ñoà quan heä cuûa CSDL vaø thöôøng ñöôïc caùc heä quaûn trò CSDL töï ñoäng kieåm tra.


Ví duï: Vôùi r laø moät quan heä cuûa Khach ta coù raøng buoäc toaøn veïn sau

R1:  t1, t2  r

t1. MAKH  t2. MAKH

Cuoái 


R1

Theâm

Söûa

Xoùa

r

+

+

-

2Raøng buoäc toaøn veïn veà phuï thuoäc toàn taïi:


Raøng buoäc toaøn veïn veà phuï thuoäc toàn taïi coøn ñöôïc goïi laø raøng buoäc toaøn veïn veà khoùa ngoaïi. Cuõng gioáng nhö raøng buoäc toaøn veïn veà khoùa chính, raøng buoäc toaøn veïn veà phuï thuoäc toàn taïi raát phoå bieán trong CSDL

Ví duï: Vôùi r, s laàn löôït laø moät quan heä cuûa Dathang, Khach ta coù raøng buoäc toaøn veïn sau

R2: r[MAKH]  s[MAKH]



R2

Theâm

Söûa

Xoùa

r

+

+

-

s

-

+

+

3Raøng buoäc toaøn veïn veà mieàn giaù trò


Raøng buoäc toaøn veïn coù lieân quan ñeán mieàn giaù trò cuûa caùc thuoäc tính trong moät quan heä. Raøng buoäc naøy thöôøng gaëp. Moät soá heä quaûn trò CSDL ñaõ töï ñoäng kieåm tra moät soá raøng buoäc loaïi naøy.

Ví duï: Vôùi r laø moät quan heä cuûa Hoadon ta coù raøng buoäc toaøn veïn sau

R3:  t  r

t.TRIGIAHD > 0

Cuoái 


R3

Theâm

Söûa

Xoùa

r

+

+

-

4Raøng buoäc toaøn veïn lieân thuoäc tính


Raøng buoäc toaøn veïn lieân thuoäc tính laø moái lieân heä giöõa caùc thuoäc tính trong moät löôïc ñoà quan heä.

Ví duï: Vôùi r laø moät quan heä cuûa Hoadon ta coù raøng buoäc toaøn veïn sau

R4:  t  r

t.NGAYLAP <= t.NGAYXUAT

Cuoái 


R4

Theâm

Söûa

Xoùa

r

+

+

-

5Raøng buoäc toaøn veïn lieân thuoäc tính lieân quan heä


Raøng buoäc loaïi naøy laø moái lieân heä giöõa caùc thuoäc tính trong nhieàu löôïc ñoà quan heä.

Ví duï: Vôùi r, s laàn löôït laø quan heä cuûa Dathang, Hoadon ta coù raøng buoäc toaøn veïn sau

R5:  t1  r, t2  s

Neáu t1.SODH = t2.SODH thì

t1.NGAYDH <= t2.NGAYXUAT



Cuoái 

R5

Theâm

Söûa

Xoùa

r

+

+

+

s

+

+

+



6Raøng buoäc toaøn veïn veà thuoäc tính toång hôïp


Raøng buoäc toaøn veïn veà thuoäc tính toång hôïp ñöôïc xaùc ñònh trong tröôøng hôïp moãi thuoäc tính A cuûa moät löôïc ñoà quan heä Q ñöôïc tính toaùn giaù trò töø caùc thuoäc tính cuûa caùc löôïc ñoà quan heä khaùc.


tải về 1.89 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   5   6   7   8   9   10   11   12   ...   20




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương