Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (498.91 KB, 27 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1></div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2></div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3></div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4></div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5></div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<b>Đặt vấn đề</b>: Trong một cơ sở dữ liệu, luôn
luôn tồn tại rất nhiều mối liên hệ, sự ràng
buộc qua lại giữa các thuộc tính, giữa các
bộ với nhau, … Các mối liên hệ, ràng buộc
này là những điều kiện bất biến mà tất cả
các bộ của những quan hệ có liên quan
trong cơ sở dữ liệu đều phải thoả mãn ở bất
kỳ thời điểm nào. Những điều kiện bất biến
đó được gọi là <b>ràng buộc toàn vẹn</b>
(Integrity Constraint).
Trong thực tế, ràng buộc toàn vẹn thường
là các qui tắc, qui phạm được áp đặt lên
trên các đối tượng của thế giới thực.
Ví dụ: Xét quan hệ nhân viên với 2 thể
hiện sau:
Qui định: Giới tính của nhân viên chỉ thuộc
1 trong 2 giá trị “Nam” hay “Nữ” là
một RBTV
II. Các đặc trưng của RBTV
III. Phân loại RBTV
MANV TENNV PHAI DIACHI
001 Nguyễn Minh Nam Dak Lak
RBTV là các quy định, điều kiện từ thực tế
được cài đặt để đảm bảo dữ liệu lưu trữ
trong CSDL phải thõa mãn những quy định
này.
Các điều kiện này phải luôn đúng sau
những thao tác (thêm, xóa, sữa) làm thay
đổi trạng thái CSDL
Mục đích của RBTV:
▪ <sub>Nhằm đảm bảo sự kết dính (coherence) </sub>
giữa các bộ phận cấu thành nên CSDL hay
nói cách khác nhằm bảo đảm tính nhất
quán của CSDL và biễu diễn đúng ngữ
nghĩa thực tế của CSDL (tính đứng đắn)
▪ Việc kiểm tra RBTV có thể tiến hành
ngay khi thực hiện một thao tác cập nhật
CSDL (thêm, xóa, sửa) hoặc có thể kiểm
tra định kỳ, đột xuất. (Tiến hành độc lập
Tầm quan trọng của RBRV:
Giúp CSDL thể hiện trung thực thế giới
thực mà CSDL đang mô tả.
<sub>Ngăn chặn nhưng thao tác gây sai trên </sub>
CSDL.
Giúp CSDL luôn đúng đắn.
Ví dụ: Ngày sinh của sinh viên phải nhỏ
hơn ngày nhập học là một RBTV
1. Nội dung của RBTV
Là điều kiện phải thỏa
Được phát biểu bằng ngôn ngữ tự nhiên hoặc 1
ngơn ngữ hình thức (phép tính quan hệ, đại số quan
hệ, mã giả,…)
<sub>Ngôn ngữ tự nhiên: dễ hiểu nhưng khơng chặt chẽ, </sub>
logic.
<sub>Ngơn ngữ hình thức: chặt chẽ, cơ động nhưng đơi lúc </sub>
khó hiểu.
Ví dụ : Một RBTV được phát biểu bằng:
<sub>Ngôn ngữ tự nhiên: giới tính nhân viên phải thuộc 1 </sub>
trong 2 phái « nam » và «nữ »
II. Các đặc trưng của RBTV
2. Bối cảnh của RBTV
Là những quan hệ mà RBTV đó có hiệu
lực hay nói cách khác đó là những quan hệ
cần phải sử dụng để kiểm tra RBTV. Bối
cảnh của RBTV có thể là một hoặc nhiều
quan hệ.
3. Tầm ảnh hưởng của RBTV
Nhằm xác định thời điểm cần phải tiến
hành kiểm tra các RBTV, cần lập bảng tầm
ảnh hưởng cho mỗi RBTV.
Tầm ảnh hưởng của RBTV được biểu diễn
bằng 1 bảng 2 chiều gọi là bảng tầm ảnh
hưởng.
<b>Bảng tầm ảnh hưởng của RBTV có dạng </b>
<b>như sau:</b>
Kí hiệu:
+ : có thể gây ra vi phạm RBTV
- : không thể gây ra vi phạm RBTV
+(A) : có thể gây ra vi phạm RBTV khi thao tác trên
thuộc tính A.
-(*) : Khơng vi phạm RBTV do thao tác không thực
hiện được.
Ví dụ: xét quan hệ nhân viên với thể hiện
sau với quy định: Giới tính nhân viên chỉ
thuộc 1 trong 2 giá trị « Nam » hoặc « Nữ »
Nếu thêm 1 dòng <sub></sub> phải thực hiện kiểm tra RBTV
Nếu xóa 1 dịng <sub></sub> khơng cần thực hiện kiểm tra
RBTV
Nếu sửa thuộc tính « PHAI » của 1 dòng<sub></sub> thực
II. Các đặc trưng của RBTV
III. Phân loại RBTV
MANV TENNV PHAI DIACHI
001 Nguyễn Minh Nam Dak Lak
<b>RBTV có miền giá trị</b>: quy định tập giá trị
mà một thuộc tính có thể nhận.
<b>Ví dụ 1: </b>
Dom(PHAI)={“Nam”, “Nữ”}
Dom(DIEM)= {0, 0.5, 1,…10}
II. Các đặc trưng của RBTV
III. Phân loại RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>
<b>Ví dụ 2: </b>Xét lược đồ quan hệ:
NHANVIEN(MANV, TENNV, PHAI,
DCHI)
Xét RBTV:
<b>Nội dung</b>:
<sub>PHAI của NHANVIEN chỉ có thể là “nam” hoặc </sub>
“nữ”.
∀<sub>n NHANVIEN: n.PHAI IN {“Nam”,”Nữ”}</sub>∈
<b>Bối cảnh</b>: Quan hệ nhân viên
<b>Tầm ảnh hưởng</b>:
II. Các đặc trưng của RBTV
III. Phân loại RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>
<b>RBTV liên bộ</b>:
<sub>Là điều kiện ràng buộc giữa các bộ trên cùng </sub>
một quan hệ
Các RBTV liên bộ thường là các ràng buộc
về khóa nội (ràng buộc về khóa chính –
Primary key).
II. Các đặc trưng của RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>
Ví dụ (liên bộ):
Xét RBTV
Nội dung:
<sub>Hai bộ khác nhau trong PHONGBAN sẽ khác </sub>
nhau tại MAPHG
∀ <sub>p1, p2 PHONGBAN: p1 ≠ p2</sub>∈
⇒ p1[MAPHG] ≠ p2[MAPHG]
Bối cảnh: quan hệ PHONGBAN
Bảng tầm ảnh hưởng:
II. Các đặc trưng của RBTV
III. Phân loại RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>
<b>RBTV liên thuộc tính: </b>
<sub>Là ràng buộc giữa các thuộc tính trong cùng một </sub>
quan hệ
II. Các đặc trưng của RBTV
III. Phân loại RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>
Ví dụ (liên thuộc tính):
Xét lược đồ quan hệ: DEAN (MADA,
TENDA, DAY_BD, DAY_KT)
Xét RBTV:
Nội dung: với mỗi đề án ngày bắt đầu dự kiến
phải nhỏ hơn ngày kết thúc
▪ ∀d DEAN, d[DAY_BEGIN] <= d[DAY_END]∈
<sub>Bối cảnh: quan hệ DEAN</sub>
<sub>Bảng tầm ảnh hưởng:</sub>
II. Các đặc trưng của RBTV
III. Phân loại RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>
<b>2.</b> <b>RBTV có bối cảnh trên </b>
<b>nhiều quan hệ </b>
<b>RBTV có giá trị thuộc tính thay đổi theo </b>
<b>thời gian:</b> RBTV liên bộ, liên quan hệ: là
điều kiện giữa các bộ trên nhiều quan hệ
khác nhau.
II. Các đặc trưng của RBTV
III. Phân loại RBTV
<b>1.</b> <b>RBTV có bối cảnh trên </b>
<b>một quan hệ</b>