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
Trang 1Ràng bu c toàn v n (Integrity Constraint)
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
Trang 2Gi 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.
• Ngôn ng hình th c
code)
Trang 3Ví 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.
• ∀t1, t2∈ NHANVIEN (t1 ≠ t2 ⇒ t1.MaNV ≠ t2.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
Trang 4B 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
tra RBTV
-+ Quan h k
-+
+ Quan h 1
S a Xóa
Thêm Tê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 a Xóa
Thêm RB-1
-+
-PHONGBAN
+
-+ NHANVIEN
S a Xóa
Thêm RB-2
-+ THAMGIA
S a Xóa
Thêm RB-3
-+ PHONGBAN
+
-NHANVIEN
S a Xóa
Thêm RB-4
Trang 5B ng t m nh h ng c a RBTV (2)
• 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
+
+
X T
-+ Quan h n
-+ Quan h 1
Tên RBTV 1
Ví d
+ -T RB-4
-X
-+ S
-+ THAMGIA
-+ -PHONGBAN
+ -+ -+ NHANVIEN
S X T S X T S X T
RB-3 RB-2
RB-1
Trang 6Phâ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
+
-+ NHANVIEN
S a Xóa
Thêm RB-5
Trang 7RBTV mi n giá tr (2)
̇ RB-6
∀t ∈ NHANVIEN (t.NgXepLuong < τ(t).NgXepLuong)
+
-NHANVIEN
S a Xóa
Thêm RB-6
RBTV liên thu c tính
̇ RB-7
̇ RB-8
+
-+ NHANVIEN
S a Xóa
Thêm RB-7
Trang 8RBTV 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
á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.MaNV ∧ v.MaDA = t.MaDA))
-+
-DUAN
-+
-NHANVIEN
-+ THAMGIA
S a Xóa
Thêm RB-9
Trang 9RBTV 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.
-+ THANNHAN
-+
-NHANVIEN
S a Xóa
Thêm RB-10
RBTV tham chi u (3)
̇ RB-11
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.MaGS))
S a Xóa
Thêm RB-11
Trang 10RBTV 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
sinh
t.TrPhong ∧ u.NgSinh < t.NgNhanChuc))
+
-+ PHONGBAN
+
-NHANVIEN
S a Xóa
Thêm RB-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
phòng
(v.MaNV = u.TrPhong ∧ u.MaPB = t.MaPhong ∧ v.Luong
> t.Luong)))
+
-+ NHANVIEN
S a Xóa
Thêm RB-13
Trang 11RBTV thu c tính t ng h p
̇ Thu c tính c a l c đ này đ c tính toán t các thu c tính ho c các b c a các l c đ khác.
̇ RB-14
u.MaPhong = t.MaPB}))
+
-+ PHONGBAN
+ +
+ NHANVIEN
S a Xóa
Thêm RB-14
Cài đ t RBTV v i Assertion (1)
̇ create assertion <Tên assertion> check <đi u ki n>
̇ drop assertion <Tên assertion>
̇ RB-12
• create assertion RB_12 check (not exists (
select * from PHONGBAN, NHANVIEN where TrPhong = MaNV and
Trang 12Cà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 <Tên b ng> (
<khai báo thu c tính> check <đi u ki n>, .,
check <đi u ki n>
);
̇ RB-5
• create table NHANVIEN ( ,
Luong int check (Luong >= 10000), ,
)
Trang 13Cài đ t RBTV v i Check (2)
̇ RB-7
• create table NHANVIEN ( .,
NgSinh date, NgXepLuong 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 I U KI N úng HÀNH NG
Trang 14Cài đ t RBTV v i Trigger (2)
̇ create trigger <Tên trigger>
<after | before> <insert | delete | update> on <Tên
b ng>
[for each row | for each statement]
[when < đi u ki n>]
<Các l nh SQL>;
̇ drop trigger <Tên trigger>
Cài đ t RBTV v i Trigger (3)
̇ RB-13
• create trigger RB_13 before insert or update of Luong on NHANVIEN for each row
when ( new.Luong > (select Luong
from NHANVIEN where MaNV = new.MaGSat)) ERROR(“Luong moi cao hon luong giam sat”);
Trang 15Cà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 → CREATE TRIGGER