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: ∀pc∈PHANCONG(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: ∀kq∈KETQUA(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ệ
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:
∀ms∈MUONSACH(ms.NgayMuon≤ ms.NgayHenTra∧ms.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,da2∈DEAN:da1≠ da2⇒(da1.MaDA≠ da2.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:
∀dk1∈DANGKY :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
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:
∀nv∈NHANVIEN((nv.Phong= NULL)∨ (∃pb∈PHONGBAN(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:
∀nv∈NHANVIEN((nv.MaNQL= NULL)∨ (∃nv1∈NHANVIEN(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
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: ∀hd∈HOADON(∃cthd∈CTIETHD(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)
Biểudiễn:
∀hd∈HOADON(∀tt∈THANHTOAN(hd.MaHD=tt.MahD⇒hd.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:
∀sv∈SINHVIEN(∃kq∈KETQUA(sv.MaSV =kq.MaSV ⇒sv.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
MaDA=MaDA DEAN Phong=Phong
Biểu diễn:
∀pc∈PHANCONG(∃nvda∈NV_DA(nvda.MaNV = pc.MaNV ∧nvda.MaDA
= pc.MaDA))
với: NV_DA←NHANVIENPhong=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 AC →E cĩthuộcF+khơng? Chobiết BD→AD 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
+ + +
+ + +
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 và chuẩn hĩa cơ 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.