Ràng buộc toàn vẹn cơ sở dữ liệu

15 367 0
Ràng buộc toàn vẹn cơ sở dữ liệu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Ràng buc toàn vn 1 Ràng buc toàn vn (Integrity Constraint) Chng 6 Ni dung trình bày ̇ Gii thiu ̇ Các yu t ca RBTV ̇ Phân loi RBTV ̇ Cài đt RBTV Ràng buc toàn vn 2 Gii thiu ̇ RBTV •Các điu kin mi trng thái ca quan h đu phi tha  bt k thi đim nào. •Xut phát t các qui tc qun lý đc áp đt lên các đi tng trong th gii thc. ̇ Mc đích ca RBTV • m bo tính nht quán ca d liu. -Ngi giám sát phi là mt nhân viên trong công ty. -D án phi đc điu phi bi mt phòng trong công ty. • m bo ng ngha thc t ca CSDL. - Ngày nhn chc > Ngày sinh. -Lng nhân viên < Lng trng phòng. ̇ RBTV có 3 yu t •Ni dung. •Bi cnh. •Bng tm nh hng. Ni dung ca RBTV ̇ c phát biu bng • Ngôn ng t nhiên. - n gin, d hiu. • Ngôn ng hình thc - i s quan h, phép tính quan h, mã gi (pseudo code). -Cós toán hc, đôi lúc khó hiu. Ràng buc toàn vn 3 Ví d ̇ RB-1 •Mi nhân viên có mt mã s riêng bit dùng đ phân bit vi các nhân viên khác. • ∀t 1 , t 2 ∈ NHANVIEN (t 1 ≠ t 2 ⇒ t 1 .MaNV ≠ t 2 .MaNV) ̇ RB-2 •Mi nhân viên phi làm vic trong mt phòng ban. • NHANVIEN[MaPhong] ⊆ PHONGBAN[MaPB] ̇ RB-3 •Mi nhân viên ch đc phép tham gia không quá 3 d án. • ∀s ∈ THAMGIA (card({t | t ∈ THAMGIA ∧ t.MaNV = s.MaNV}) ≤ 3) ̇ RB-4 •Mi phòng ban phi có ít nht mt nhân viên • ∀s ∈ PHONGBAN (∃t ∈ NHANVIEN (t.MaPhong = s.MaPB)) Bi cnh ca RBTV ̇ Là nhng quan h mà RBTV có hiu lc. ̇ Bi cnh có th là mt quan h hoc nhiu quan h. ̇ Ví d •RB-1 có bi cnh là NHANVIEN. •RB-2, RB-4 có bi cnh là NHANVIEN, PHONGBAN. •RB-3 có bi cnh là THAMGIA. Ràng buc toàn vn 4 Bng tm nh hng ca RBTV (1) ̇ RBTV có th b vi phm khi thc hin các thao tác cp nht trên bi cnh • Thêm •Xóa •Sa ̇ Bng tm nh hng dùng đ xác đnh thi đim cn kim tra RBTV. +Quan h k -++Quan h 1 SaXóaThêmTên RBTV + : cn phi kim tra RBTV - : không cn kim tra RBTV Các quan h bi cnh Ví d +NHANVIEN SaXóaThêmRB-1 -+-PHONGBAN +-+NHANVIEN SaXóaThêmRB-2 +THAMGIA SaXóaThêmRB-3 +PHONGBAN + NHANVIEN SaXóaThêmRB-4 Ràng buc toàn vn 5 Bng tm nh hng ca RBTV (2) ̇ Bng tm nh hng tng hp •Xây dng trên c s bng tm nh hng ca các RBTV. •  xác đnh thi đim kim tra RBTV khi mt thao tác cp nht trên mt quan h nào đó đc thc hin. + T Tên RBTV r - X + + SSXT -+Quan h n +Quan h 1 Tên RBTV 1 Ví d + - T RB-4 - - X - + S +THAMGIA -+-PHONGBAN +-+ +NHANVIEN SXTSXTSXT RB-3RB-2RB-1 Ràng buc toàn vn 6 Phân loi RBTV ̇ Phân loi theo bi cnh •Bi cnh là mt quan h. •Bi cnh là nhiu quan h. ̇ Mc đích • Giúp ngi thit k phát hin các RBTV ca mt CSDL. ̇ RBTV có bi cnh là mt quan h • RBTV min giá tr. • RBTV liên thuc tính. • RBTV liên b. ̇ RBTV có bi cnh là nhiu quan h • RBTV tham chiu. • RBTV liên thuc tính - liên quan h • RBTV liên b - liên quan h. • RBTV thuc tính tng hp. RBTV min giá tr (1) ̇ RB-5 •Lng ca nhân viên không thp hn 10.000. • ∀t ∈ NHANVIEN (t.Luong ≥ 10.000) +-+NHANVIEN SaXóaThêmRB-5 Ràng buc toàn vn 7 RBTV min giá tr (2) ̇ RB-6 •Gi s quan h NHANVIEN có thêm thuc tính ngày xp lng. Khi mc lng thay đi, thì giá tr ca ngày xp lng phi luôn tng. • τ : NHANVIEN → NHANVIEN ∀t ∈ NHANVIEN (t.NgXepLuong < τ(t).NgXepLuong) + NHANVIEN SaXóaThêmRB-6 RBTV liên thuc tính ̇ RB-7 • Ngày xp lng phi ln hn ngày sinh ca nhân viên. • ∀t ∈ NHANVIEN (t.NgSinh < t.NgXepLuong) ̇ RB-8 •Mt nhân viên không đc giám sát chính mình. • ∀t ∈ NHANVIEN (t.MaGSat ≠ t.MaNV) +-+NHANVIEN SaXóaThêmRB-7 +-+NHANVIEN SaXóaThêmRB-8 Ràng buc toàn vn 8 RBTV liên b ̇ S tn ti ca b này ph thuc vào b khác. •Trng hp đc bit là ràng buc khóa chính. ̇ RB-1 và RB-3. RBTV tham chiu (1) ̇ RB-9 •Ch có nhân viên ca công ty mi đc tham gia vào d án ca công ty. -S tn ti ca mt b t ∈ THAMGIA ph thuc vào s tn ti ca mt b u ∈ NHANVIEN và mt b v ∈ DUAN. • ∀t ∈ THAMGIA (∃u ∈ NHANVIEN, ∃v ∈ DUAN (u.MaNV = t.MaNV ∧ v.MaDA = t.MaDA)) -+-DUAN -+-NHANVIEN +THAMGIA SaXóaThêmRB-9 Ràng buc toàn vn 9 RBTV tham chiu (2) ̇ RB-10 •Mi thân nhân phi có mi quan h h hàng vi nhân viên ca công ty. -S tn ti ca b mt t ∈ THANNHAN ph thuc vào s tn ti ca mt b u ∈ NHANVIEN. • ∀t ∈ THANNHAN (∃u ∈ NHANVIEN (u.MaNV = t.MaNV)) +THANNHAN -+-NHANVIEN SaXóaThêmRB-10 RBTV tham chiu (3) ̇ RB-11 •Ngi giám sát trc tip (nu có) phi là mt nhân viên trong công ty. -S tn ti ca b mt t ∈ NHANVIEN ph thuc vào s tn ti ca mt b u ∈ NHANVIEN. • ∀t ∈ NHANVIEN (t ≠ null ∧∃u ∈ NHANVIEN (u.MaNV = t.MaGS)) ̇ Nhn xét • RBTV tham chiu có th có bi cnh là mt quan h. +++NHANVIEN SaXóaThêmRB-11 Ràng buc toàn vn 10 RBTV liên thuc tính - liên quan h ̇ Mi liên h gia các thuc tính trong nhiu lc đ quan h. ̇ RB-12 •Ngày nhn chc ca trng phòng phi ln hn ngày sinh. • ∀t ∈ PHONGBAN (∃u ∈ NHANVIEN (u.MaNV = t.TrPhong ∧ u.NgSinh < t.NgNhanChuc)) +-+PHONGBAN + NHANVIEN SaXóaThêmRB-12 RBTV liên b - liên quan h ̇ Mi liên h gia các b trên nhiu lc đ quan h. ̇ RB-4 . ̇ RB-13 •Lng ca nhân viên không đc cao hn lng trng phòng. • ∀t ∈ NHANVIEN (∃u ∈ PHONGBAN (∃v ∈ NHANVIEN (v.MaNV = u.TrPhong ∧ u.MaPB = t.MaPhong ∧ v.Luong > t.Luong))) +-+PHONGBAN +-+NHANVIEN SaXóaThêmRB-13 [...]... NgSinh > NgNhanChuc)); Ràng bu c toàn v n 11 Cài t RBTV v i Assertion (2) ̇ RB-3 • create assertion ( check (not exists ( select MaNV from THAMGIA group by MaNV having count(*) > 3)); Cài t RBTV v i Check (1) ̇ create table ( check < i u ki n>, , check < i u ki n> ); ̇ RB-5 • create table NHANVIEN ( , Luong int check (Luong >= 10000), , ) Ràng bu c toàn v n 12 Cài t RBTV... new.Luong > (select Luong from NHANVIEN where MaNV = new.MaGSat)) ERROR(“Luong moi cao hon luong giam sat”); Ràng bu c toàn v n 14 Cài t RBTV trên SQL Server ̇ SQL Server 2000 • Không h tr Assertion • H tr Check và Trigger ̇ Trigger trên SQL 2000 • Xem Help Book Online - Transact SQL Ràng bu c toàn v n CREATE TRIGGER 15 ... date, , check (NgSinh < NgXepLuong) ); Cài t RBTV v i Trigger (1) ̇ T p h p các l nh t ng th c hi n khi x y ra các s ki n nào ó ̇ Mô hình ECA (S ki n - i u ki n - Hành ng) S KI N -Thêm -Xóa -S a Ràng bu c toàn v n I U KI N Xác nh trên các b c và m i úng HÀNH NG T p h p các l nh 13 Cài t RBTV v i Trigger (2) ̇ create trigger on [for . Ràng buc toàn vn 1 Ràng buc toàn vn (Integrity Constraint) Chng 6 Ni dung trình bày ̇ Gii thiu ̇ Các yu t ca RBTV ̇ Phân loi RBTV ̇ Cài đt RBTV Ràng buc toàn vn 2 Gii. t.MaNV) +-+NHANVIEN SaXóaThêmRB-7 +-+NHANVIEN SaXóaThêmRB-8 Ràng buc toàn vn 8 RBTV liên b ̇ S tn ti ca b này ph thuc vào b khác. •Trng hp đc bit là ràng buc khóa chính. ̇ RB-1 và RB-3. RBTV. là NHANVIEN. •RB-2, RB-4 có bi cnh là NHANVIEN, PHONGBAN. •RB-3 có bi cnh là THAMGIA. Ràng buc toàn vn 4 Bng tm nh hng ca RBTV (1) ̇ RBTV có th b vi phm khi thc hin các thao

Ngày đăng: 23/10/2014, 21:03

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan