Các loại ràng buộc tồn vẹn

Một phần của tài liệu giáo trình cơ sở dữ liệu dành cho sinh viên ngành công nghệ thông tin (Trang 109 - 120)

2. Khĩa

3.2.Các loại ràng buộc tồn vẹn

Trong quá trình phân tích thiết kế CSDL, yêu cầu cần thiết là phải tìm đ ược những

TênRBTV Thêm Xĩa Sửa

R1 + - +(A)

R2 + - +(B)

… … … …

Rn - - +

BảngtầmảnhhưởngcủamộtRBTVcĩdạngsau:

RBTV tiềm ẩn trong CSDL. Việc phân loại RBTV cho phép người phân tích tìm kiếm

đầy đủ,tránh bỏsĩtnhững RBTV.Các loại RBTVđược phân thànhhaidạng chínhnhư

sau:

RBTVcĩbốicảnhlàmộtquanhệ RBTVcĩbốicảnhlànhiềuquan hệ

3.2.1. Ràngbuộctồnvẹncĩbốicảnhlàmộtquanhệ

RBTV cĩ bối cảnh là một quan hệ được chia thành ba loại: RBTV miền giá trị, RBTV

liênbộvàRBTVliênthuộctính

3.2.1.1. Ràngbuộctồnvẹnmiềngiátrị

Quyđịnhrõvềmiềngiátrịcủamộtthuộctính.

Vídụ.Thờigianphâncơngthamgiađềáncủamộtnhânviênkhơngquá40h/t uần

Bốicảnh:quan hệPHANCONG

Trang 86/109

Biểudiễn: ∀pcPHANCONG(pc.ThoiGian≤ 40)

Vídụ. Điểmcủamơnhọcphảilà thangđiểm10

Bốicảnh:quanhệKETQUA(MaMH, MaLop, MaKH,Diem) Biểudiễn: ∀kqKETQUA(kq.Diem≥0∧kq.Diem≤ 10)

RB3 Thêm Xĩa Sửa

MUONSACH + - +(NgayMuon,NgayHenTra,NgayThucTra)

RB1 Thêm Xĩa Sửa

PHANCONG + - +(ThoiGian)

RB2 Thêm Xĩa Sửa

KETQUA + - +(Diem)

3.2.1.2.

Ràngbuộctồn vẹnli ênthuộctính

Quyđịnh cácràngbuộcgiữacácthuộctínhkhácnhautrongcùngmộtquan hệ (adsbygoogle = window.adsbygoogle || []).push({});

Vídụ.Ngàytrảsáchphảilàbằnghoặcsaungàymượnsách

Bối cảnh:quan hệMUONSACH(MaSach, MaDocGia,NgayMuon, NgayHenTra,

NgayThucTra) Biểu

diễn:

msMUONSACH(ms.NgayMuonms.NgayHenTrams.NgayMuon

ms.NgayThucTra)

Quy định sự tồntại của một hoặc nhiều bộphụ thuộc vào sự tồn tạicủa m ột hoặc nhiều

bộkháctrongcùngquanhệ.

RBTVkhĩa chínhlàRBTV liênbộ

Trang 87/109

Vídụ.Mỗiđềántrong cơngtycĩmộtmãduynhấtđểphânbiệtvớicácđềánkhác Bốicảnh:quan hệDEAN

Điềukiện: ∀da1,da2DEAN:da1da2⇒(da1.MaDAda2.MaDA) Bảngtầmảnhhưởng:

Bảngtầmảnhhưởng:

3.2.1.3. Ràngbuộctồnvẹnliênbộ

RB4 Thêm Xĩa Sửa

DEAN + - +(MaDA)

RB4 Thêm Xĩa Sửa

RBTVvềsốlượngcácbộtrongmộtquanhệ.

Vídụ.Mỗisinhviêntrongmộthọckỳđượcđăngkýkhơngquá8mơnhọc Bốicảnh:quan hệDANGKY(MaSV,MaMH)

Biểu diễn:

dk1DANGKY :count(dk2∈DANGKY |dk2.MaSV =dk1.MaS

V)≤8 ,

trongđĩcount()làhàmđếmsốbộcủamộtquan hệthỏađiềukiệntrong ngoặc().

RBTVcĩbốicảnhlànhiềuquan hệđượcchiathànhnămloại: RBTVthamchiếu

RBTVliênbộ-liênquanhệ

RBTVliênthuộctính-liênquanhệ RBTVdothuộctínhtổnghợp RBTVdochutrình

3.2.2.1. RBTVthamchiếu

Quy địnhgiátrịxuất hiệncủamột tậpthuộctính trongmột quanhệphải xuất hiệntrong

một tập thuộc tính trong một quan hệ khác. RBTV này cịn được gọi là R BTV tham

chiếu,RBTVphụthuộctồntạihayRBTVkhĩangoại. Trang 88/109 (adsbygoogle = window.adsbygoogle || []).push({});

VídụRBTVtrên2quanhệ

Một nhân viên phải thuộc về một phịng trong cơng ty, nghĩa là tr ong quan hệ

Bảngtầmảnhhưởng:

Bảngtầmảnhhưởng:

3.2.2. Ràngbuộctồnvẹncĩbốicảnhlànhiềuquanhệ

RB6 Thêm Xĩa Sửa

NHANVIEN + - +(MaNV,MaNQL)

RB5 Thêm Xĩa Sửa

NHANVIEN + - +(Phong)

NHANVIEN, nếu một mã phịng (Phong) mà nhân viên trực thuộc xuất hiện, thì mã

phịng này phải xuất hiện trong quan hệ PHONGBAN, cụ thể làthuộc tính (MaPhong).

Nhưvậy:

Bốicảnh:NHANVIEN,PHONGBAN Biểu

diễn:

nvNHANVIEN((nv.Phong= NULL)∨ (∃pbPHONGBAN(nv.Phong

= pb.MaPhong)))

Ngườiquản lý(MaNQL)củamộtnhânviêncũngphải làmộtnhânviêntron g cơngty

Bốicảnh:NHANVIEN Điều

kiện:

nvNHANVIEN((nv.MaNQL= NULL)∨ (∃nv1NHANVIEN(nv.MaN

QL=nv1.MaNV)))

Giảsửr2cĩmộtkhĩangoại〈 thamchiếuđếnKtrongr1,khiđĩ: 〈(r2)⊆

K(r1)

Thêm

Khithêmmộtbột2vàor2thìphảibảođảmtồntạit1 trongr1saocho t1[K]=

t2[〈]

Bảngtầmảnhhưởng:

VídụRBTVtrên1quanhệ

Bảngtầmảnhhưởng:

Trang 89/109 (adsbygoogle = window.adsbygoogle || []).push({});

Xĩa

Giả sử xĩa t1 khỏi r1. Khi đĩ cần xử lý các bộ trong r2 tham chiếu tới t1

, nghĩa là

s = ⌠〈=t1[K](r2) . Nếu s≠∅thì

Khơngthựchiệnhànhđộngxĩadữ liệu,hoặc Xĩa dâychuyền,nghĩalàxĩatấtcảcácbộtrongs

Sửa

Trườnghợpcậpnhậtt2trongr2

Cậpnhậtt2trongr2,sửakhĩangoại〈

Tương tựnhưtrườnghợpth

êmdữl iệu

Kiểmtra t2[〈]∈ K(r1)

Trườnghợpcậpnhậtt1trongr1

Cậpnhậtt1trongr1

Tươngtựnhưtrườnghợpxĩadữliệu Kiểmtra ⌠〈=t1[K](r2 )=∅

3.2.2.2. RBTVliênbộ-liênquanhệ

Quyđịnhvềtừngnhĩmcácbộcủanhiềuquanhệbốicảnhkhácnhau.

VídụMột hĩađơnbán hàngphải cĩít nhấtmột mặthàng, nghĩalàmột chiti ếthĩa đơn

bánhàngphảicĩítnhấtmộtmặthàng. Bốicảnh:HOADON, CTIETHD

RB7 Thêm Xĩa Sửa

HOADON + - +(MaHD)

CTIETHD - + +(MaHD)

Biểudiễn: ∀hdHOADON(∃cthdCTIETHD(hd.MaHD=cthd.MaHD))

Trang 90/109

3.2.2.3. RBTVliênthuộctính-liênquanhệ

Quyđịnhvềmốiliênhệgiữacácthuộctínhtrênnhiềuquan hệbốicảnhkhác nhau.

VídụGiả sử chophép thanhtốn tiền nhiềulầnvàthanh tốnsau khimua hàng,khi đĩ ngày t h anhtố n tiềnth e o một h ĩađơn m uahàn

gphảibằnghoặcsaungàymuahàng.

Bối cảnh: HOADON(MaHD, MaKH, NgayHD,

TriGia),

THANHTOAN(MaHD,NgayTToan,LanTToan,SoTienTT oan) (adsbygoogle = window.adsbygoogle || []).push({});

Biểudiễn:

hdHOADON(∀ttTHANHTOAN(hd.MaHD=tt.MahDhd.NgayHD

tt.NgayTToan))

Bảngtầmảnhhưởng:

RB9 Thêm Xĩa Sửa

SINHVIEN + - +(MaSV,DTB)

KETQUA + + +(MaSV,Diem)

RB8 Thêm Xĩa Sửa

HOADON + - +(MaHD,NgayHD)

3.2.2.4. RBTVdothuộctínhtổnghợp

Quyđịnhvềmốiliênhệgiữacácthuộctínhdosựcĩmặtcủathuộctínhtínht ốn.

VídụĐiểmtrungbìnhcủasinhviênbằngtrungbìnhcủacácmơnmàsinhvi êntheohọc

Bối cảnh: SINHVIEN(MaSV, HoSV, TenSV,

Khoa, DTB)

KETQUA(MaSV,MaMon,Diem) Biểudiễn:

svSINHVIEN(∃kqKETQUA(sv.MaSV =kq.MaSVsv.DTB= AVG(kq.

Diem)))

3.2.2.5. RBTVdochutrình

Trang 91/109

Xảy rakhicĩsự hiệndiện củachutrình.Đểnhậndiện chutrình,ngườitabiểu diễnl ược

Bảngtầmảnhhưởng:

Bảngtầmảnhhưởng:

Nútthểhiệnlượcđồ NHANVIEN

Nútthuộctínhkết

MaNV=MaNV

Cungnối giữa nút lượcđồ vànút thuộc

VídụMộtnhânviênchỉđượcphâncơngvàocácđềándophịngmìnhchủtrì Bốicảnh:NHANVIEN,DEAN,PHANCONG

Đồthịthểhiệnchutrìnhnhưsau:

MaNV=MaNV

PHANCONG NHANVIEN (adsbygoogle = window.adsbygoogle || []).push({});

MaDA=MaDA DEAN Phong=Phong

Biểu diễn:

pcPHANCONG(∃nvdaNV_DA(nvda.MaNV = pc.MaNVnvda.MaDA

= pc.MaDA))

với: NV_DANHANVIENPhong=MaPhong DEAN

Bảngtầmảnhhưởng:

RB10 Thêm Xĩa Sửa

Trang92/109

đồCSDLnhưsau:

NHANVIEN - + +(MaNV,Phong)

DEAN - + +(MaDA,Phong)

Bàitập1

Hãychứngminh3tínhchấtphânrã,kếthợpvàtựabắccầu.

Hãytìmhiểucáctínhchấtcủabaođĩngtậpthuộctính,phủtốithiểu

Bàitập2

Cholượcđồquan hệR(A,B,C,D,E,G)vàtậpphụthuộchàm F={A C ,A EG,B D,G E}

Tìm ABF,CGDF,AF

Bàitập3

Cholượcđồquan hệR(A,B,C,D,E,G)vàtậpphụthuộchàm F={B C,A EG,B A,G E}

Tìm ABF,CGDF,AF

Bàitập4

Cholượcđồquan hệR(A,B,C,D,E)vàtậpphụthuộchàm F={A C ,BC D,D E,E A}

Tìm ABF,BDF,DF

Bàitập5

Cholượcđồquan hệR(A,B,C,D,E)vàtậpphụthuộchàm F={B C,AC D,D G,AG E}

Chobiết ACE cĩthuộcF+khơng? Chobiết BDAD cĩthuộcF+khơng?

Trang 93/109

Vớicácbàitập7,8,9:

Tìmmộtkhĩa(theothuậttốntìm mộtkhĩa) Tìmmọikhĩa(theothuậttốn tìmmọikhĩa) Tìmphủtốithiểu

4. Bàitập (adsbygoogle = window.adsbygoogle || []).push({});

+ + +

+ + +

Bàitập7

CholượcđồquanhệR(A,B,C,D)vàtậpphụthuộchàm

F={AB CD,B C,C D}

Bàitập8

CholượcđồquanhệR {ABCDEFGHKLM}vàtậpphụthuộchàm

F={A B,C D,E F, G AHK,AH G,GLC M}

Bàitập9

CholượcđồquanhệR {ABCDEFGHKL}vàtậpphụthuộchàm

F={A B,AC D,F G,FK LEH,E FH}

Bàitập10

Với hai bài tốn tình huống là quản lý đề án và quản lý ngân hàng, ngoại tr ừ các ràng

buộc khố chính và khố ngoại, hãy tìm tất cả các RBTV theo yêu cầu: bối cảnh, biểu

diễn,tầmảnhhưởng.VớinhữngRBTVtìmđược,hãyphântheotừngloạiRBT V.

Trang 94/109

Dạng chuẩn chuẩn hĩa sở dữ liệ u

Chương này giới thiệu các dạng chuẩn, phân rã bảo tồn thơng tin, bảo tồn phụ thuộc

hàm, qua đĩ cũng trình bày cách phân rã bảo tồn bảo tồn thơng tin và bả o tồn phụ

thuộc.

Một phần của tài liệu giáo trình cơ sở dữ liệu dành cho sinh viên ngành công nghệ thông tin (Trang 109 - 120)