Bài giảng Cơ sở dữ liệu - Chương 6: Rà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

pdf15 trang | Chuyên mục: Hệ Quản Trị Cơ Sở Dữ Liệu | Chia sẻ: dkS00TYs | Lượt xem: 3108 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Cơ sở dữ liệu - Chương 6: Ràng buộc toàn vẹn (Integrity Constraint), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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.
• ∀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.
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
+
...
+
S SXT
-+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
Ràng buộc toàn vẹn 11
RBTV 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
• Giả sử PHONGBAN có thêm thuộc tính lưu số nhân viên 
của phòng. Khi đó số nhân viên của phòng phải bằng 
tổng số nhân viên thuộc phòng đó.
• ∀t ∈PHONGBAN (t.SoNV = card({u | u ∈ NHANVIEN ∧
u.MaPhong = t.MaPB}))
+-+PHONGBAN
+++NHANVIEN
SửaXóaThêmRB-14
Cài đặt RBTV với Assertion (1)
ƒ create assertion check 
ƒ drop assertion 
ƒ RB-12
• create assertion RB_12
check (not exists (
select *
from PHONGBAN, NHANVIEN
where TrPhong = MaNV and
NgSinh > NgNhanChuc));
Ràng buộc toàn vẹn 12
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 ,
 ...,
 check 
);
ƒ RB-5
• create table NHANVIEN (
...,
Luong int check (Luong >= 10000),
..., 
)
Ràng buộc toàn vẹn 13
Cà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 HÀNH ĐỘNGĐIỀU KIỆN
Đúng
-Thêm
-Xóa
-Sửa
Tập hợp các lệnhXác định trên 
các bộ củ và mới
Ràng buộc toàn vẹn 14
Cài đặt RBTV với Trigger (2)
ƒ create trigger 
 on <Tên 
bảng>
[for each row | for each statement]
[when ]
;
ƒ drop 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”);
Ràng buộc toàn vẹn 15
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 → CREATE TRIGGER.

File đính kèm:

  • pdfBài giảng Cơ sở dữ liệu - Chương 6 Ràng buộc toàn vẹn (Integrity Constraint).pdf