Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 28

Cơ sở dữ liệu

Chương 9: Ràng buộc dữ liệu


TS. Nguyễn An Tế
ThS. Bùi Xuân Huy
Khoa Công Nghệ ThôngTin Kinh Doanh
huybx@ueh.edu.vn

(2022)
Mục tiêu

 Hiểu ý nghĩa của ràng buộc dữ liệu

 Vận dụng kỹ năng xác định các ràng buộc dữ liệu ở mức thiết
kế

2
(2022) Chương 9: Ràng buộc dữ liệu
Tài liệu tham khảo

 Tài liệu tiếng Anh

Garcia-Molina H., Ullman J. D., & Widom J., Database System: The
complete book, 2nd Edition, Prentice Hall, 2008.

Maier D., Theory of Relational Databases, 1st Edition, Computer Science


Press, 1983.

 Tài liệu tiếng Việt

Nguyễn An Tế, Nguyễn Thúy Ngọc & Nguyễn Kiều Oanh, CSDL: Nhập
môn và thực hành, NXB Khoa Học Kỹ Thuật, 2015.

3
(2022) Chương 9: Ràng buộc dữ liệu
Nội dung

1. Ý nghĩa

2. Các yếu tố của RB

3. Các loại RB

4. Kiểm tra RB

4
(2022) Chương 9: Ràng buộc dữ liệu
1. Ý nghĩa

 RB ở mức quan niệm

● phương tiện diễn đạt bổ sung ngữ nghĩa cho các sơ đồ quan
niệm

● sơ đồ quan niệm không có RB DL đi kèm  ?

 Ý nghĩa

● thể hiện ngữ nghĩa của dữ liệu

● bảo đảm tính hiệu quả trong khai thác


biểu diễn
 Hình thức thể hiện
= các khái niệm biểu diễn
• ngôn ngữ tự nhiên
của mô hình = RB
• ngôn ngữ hình thức
5
(2022) Chương 9: Ràng buộc dữ liệu
1. Ý nghĩa (tt.)

 Ràng buộc ở mức thiết kế

● ngữ nghĩa

● hiệu quả khai thác

6
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB

 3 yếu tố của RB

● điều kiện

● ngữ cảnh

● tầm ảnh hưởng

7
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

 Điều kiện: thể hiện ngữ nghĩa / bảo đảm hiệu quả khai thác

● ngôn ngữ tự nhiên (sự nhập nhằng, không rõ ràng)

● ngôn ngữ hình thức

8
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

 Ví dụ

● Lương của nhân viên thấp hơn lương của người phụ trách
e  NHANVIEN,  s  NHANVIEN: (e.manvquanly = s.manv)
 (e.luong < s.luong)

● Trưởng phòng phải làm việc tại phòng mà mình đang quản lý
d  DONVI,
e  NHANVIEN: (e.manv = d.tr_phong)  (e.madv = d.madv)

9
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

 Biểu diễn điều kiện của RB bằng đại số quan hệ

R= hay R  

R1  R2 hay R1  R2

với R, R1 và R2 là các quan hệ / biểu thức đại số quan hệ

Biễu diễn khóa K của R(S)


(R1. K = R2.K) AND (R1.R**  R2.R**) (R1 x R2) = 

10
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB

 3 yếu tố của RB

● điều kiện

● ngữ cảnh

● tầm ảnh hưởng

11
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

 Ngữ cảnh: các quan hệ mà trên đó RB được định nghĩa


NHANVIEN(manv, honv, tennv, ngaysinh, phai, luong, phutrach, madv)

DONVI(madv, tendv, tr_phong, ngay_nham_chuc)

● Lương của nhân viên thấp hơn lương của người phụ trách
 Ngữ cảnh: NHANVIEN

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
 Ngữ cảnh: NHANVIEN, DONVI

12
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB

 3 yếu tố của RB

● điều kiện

● ngữ cảnh

● tầm ảnh hưởng

13
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

Thêm Xóa Sửa

Quan hệ 1  (thuộc tính)  (thuộc tính)

Quan hệ 2  (thuộc tính)


Ngữ cảnh

Quan hệ n  (thuộc tính)

: phải kiểm tra RB


14
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

 Ví dụ

● Lương của nhân viên thấp hơn lương của người phụ trách
Thêm Xóa Sửa

NHANVIEN lương,phutrach lương,phutrach

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
Thêm Xóa Sửa

NHANVIEN manv, madv manv, madv

DONVI madv madv

15
(2022) Chương 9: Ràng buộc dữ liệu
2. Các yếu tố của RB (tt.)

 RB phải được kiểm tra sau mọi thao tác cập nhật CSDL

 Bảng tầm ảnh hưởng tổng hợp

Quan hệ 1 Quan hệ 2 Quan hệ n


T X S T X S … … … T X S
RB 1 + + + + + +
RB 2 +

RB m + + +

16
(2022) Chương 9: Ràng buộc dữ liệu
3. Các loại RB

 RB trên 1 quan hệ, 1 thuộc tính: miền giá trị

● Lương tối thiểu là 650 000


e  NHANVIEN: e.luong  650 000

● Vai trò trong một đề án


a  PHANCONG: a.vaitro  {“T”hiet_ke, “L”ap_trinh}

 Lưu ý: bảng TAH tương tự nhau

Thêm Xóa Sửa

Quan hệ LUONG LUONG

17
(2022) Chương 9: Ràng buộc dữ liệu
3. Các loại RB (tt.)

 RB trên 1 quan hệ: liên thuộc tính (trên cùng 1 bộ)

● Thời hạn giao hàng


c  DAT_HANG: c.ngaydh + 7 ≤ c.ngaygiaodk

Thêm Xóa Sửa

DAT_HANG ngaydh, ngaydh,


ngaygiaodk
ngaygiaodk

Lưu ý: bảng TAH tương tự nhau

18
(2022) Chương 9: Ràng buộc dữ liệu
3. Các loại RB (tt.)

 RB trên 1 quan hệ: liên bộ (điều kiện giữa các bộ)

● Tối đa 10 người tham gia trong một đề án


a  PHANCONG: card( { t  PHANCONG | t.mada = a.mada } ) ≤ 10

 Lưu ý: bảng TAH KHÔNG PHẢI LÚC NÀO CŨNG tương tự


nhau Thêm Xóa Sửa

PHANCONG +mada +mada

● Tối thiểu 10 người tham gia trong một đề án


a  PHANCONG: card( { t  PHANCONG | t.mada = a.mada } ) >= 10

19
(2022) Chương 9: Ràng buộc dữ liệu
3. Các loại RB (tt.)
 RB trên 1 quan hệ: liên bộ (điều kiện giữa các bộ)

 Lưu ý: bảng TAH KHÔNG PHẢI LÚC NÀO CŨNG giống nhau

● Tối thiểu 10 người tham gia trong một đề án


a  PHANCONG: card( { t  PHANCONG | t.mada = a.mada } ) >= 10

Thêm Xóa Sửa

PHANCONG ? ? ?

 Trường hợp đặc biệt: KHÓA CHÍNH

20
(2022) Chương 9: Ràng buộc dữ liệu
3. Các loại RB (tt.)

 RB trên NHIỀU quan hệ: giữa những bộ của các quan hệ

● Mỗi phòng có ít nhất 1 nhân viên


d  DONVI, e  NHANVIEN: e.madv = d.madv

Thêm Xóa Sửa

NHANVIEN ? ? ?

DONVI ? ? ?

 Trường hợp đặc biệt: khóa ngoại

21
(2022) Chương 9: Ràng buộc dữ liệu
3. Các loại RB (tt.)

 RB trên NHIỀU qhệ: giữa những th.tính của các bộ liên quan

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
d  DONVI, e  NHANVIEN: (e.manv = d.tr_phong)  (e.madv = d.madv)
NHANVIEN manv honv tennv ... madv

333445555 Ly Nam ... Kth


Bộ 987987987 Tran Hung ... Kth
liên quan
... ... ... ... ...

DONVI madv tendv tr_phong

Mkt Marketing 83244665


Kth Ky thuat 987987987
... ... ...

22
(2022) Chương 9: Ràng buộc dữ liệu
4. Kiểm tra RB

 Bảo đảm ngữ nghĩa và tính nhất quán

● Khai báo cấu trúc: PRIMARY KEY, FOREIGN KEY, CHECK


CONSTRAINT, …

● Trigger

● Transaction

23
(2022) Chương 9: Ràng buộc dữ liệu
4. Kiểm tra RB (tt.)

 Trigger: hành động (Action – A) được tự động thực hiện khi 1


biến cố (Event – E) xảy ra và khi 1 điều kiện (Condition – C)
được thỏa mãn
thêm,
biến cố sửa,
(trước / sau) xóa

giá trị cũ Thực hiện


True
và Điều kiện hành động
giá trị mới
False

END

24
(2022) Chương 9: Ràng buộc dữ liệu
4. Kiểm tra RB (tt.)

NHANVIEN(manv, honv, tennv, ngaysinh, phai, luong, phutrach, madv)

DONVI(madv, tendv, tr_phong, ngay_nhamchuc)

 Ví dụ: Trưởng phòng phảI làm việc tại phòng mà mình đang
quản lý

● có thể dùng trigger ?

● transaction

25
(2022) Chương 9: Ràng buộc dữ liệu
4. Kiểm tra RB (tt.)

 Transaction: đơn vị xử lý (chuỗi thao tác)

● hoàn tất (COMMIT): mọi thao tác đều được thực hiện khi tất cả
các RB không bị vi phạm

● không hoàn tất (ROLLBACK): mọi thao tác đều bị hủy bỏ


(CSDL trở về trạng thái ban đầu)

 Khóa chốt (lock) dữ liệu

● lock(A): ngăn cấm transactions khác cập nhật A (bộ/quan hệ)


 chỉ được đọc

● unlock(A): mở khóa A  transactions khác có thể cập nhật

26
(2022) Chương 9: Ràng buộc dữ liệu
4. Kiểm tra RB (tt.)

 Đặc trưng của transaction (ACID)

● Atomicity: mọi thao tác hoặc hoàn tất hoặc bị hủy bỏ

● Coherence: CSDL từ trạng thái nhất quán  nhất quán

● Isolation: transactions khác không thấy các thay đổi trung gian

● Durability: kết quả của transaction là bền vững

27
(2022) Chương 9: Ràng buộc dữ liệu
Thảo luận

28
(2022) Chương 9: Ràng buộc dữ liệu

You might also like