Tải bản đầy đủ (.pdf) (56 trang)

Bài giảng cơ sở dữ liệu chương 6 ràng buộc toàn vẹn

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 (452.92 KB, 56 trang )

Chương 6
Ràng buộc toàn vẹn


Nội dung chi tiết

‰Khái niệm
‰Các đặc trưng của RBTV
‰Phân loại
‰Cài đặt

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

2


Khái niệm
‰RBTV (Integrety Constraints) xuất phát từ những
qui định hay điều kiện
¾ Trong thực tế
¾ Trong mô hình dữ liệu
y Các thao tác làm thay đổi dữ liệu không nên
được thực hiện một cách tùy tiện vì có thể đưa
CSDL đến một tình trạng ‘xấu’
‰RBTV là một điều kiện được định nghĩa trên một
hay nhiều quan hệ khác nhau
‰Các RBTV là những điều kiện bất biến mà mọi thể
hiện của QH đều phải thỏa ở bất kỳ thời điểm nào
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

3




Khái niệm (tt)
‰Tại sao cần phải có RBTV?
¾ Bảo đảm tính kết dính của các thành phần cấu
tạo nên CSDL
¾ Bảo đảm tính nhất quán của dữ liệu
¾ Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa
thực tế
‰Ví dụ
¾ Mức lương của một người nhân viên không được
vượt quá trưởng phòng (R1)
¾ Người quản lý trực tiếp (của một nhân viên) phải
là một nhân viên trong công ty (R2)
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

4


Nội dung chi tiết

‰Khái niệm
‰Các đặc trưng của RBTV
¾Bối cảnh
¾Nội dung
¾Bảng tầm ảnh hưởng
‰Phân loại
‰Cài đặt

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN


5


Bối cảnh
‰Bối cảnh của một RBTV
¾ Là những quan hệ có khả năng bị vi phạm RBTV
khi thực hiện các phép cập nhật
‰Ví dụ (R1)
¾ Mức lương của một người nhân viên không
được vượt quá trưởng phòng
y Các phép cập nhật
∗ Cập nhật lương cho nhân viên
∗ Thêm mới một NV vào một phòng ban
∗ Bổ nhiệm trưởng phòng cho một phòng ban
y Bối cảnh: NHANVIEN, PHONGBAN
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

6


Bối cảnh (tt)
‰Ví dụ (R2)
¾ Người quản lý trực tiếp phải là một nhân viên
trong công ty
y Các phép cập nhật
∗ Cập nhật người quản lý trực tiếp của một
nhân viên
∗ Thêm mới một nhân viên
y Bối cảnh: NHANVIEN


Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

7


Nội dung
‰Nội dung của một RBTV được phát biểu bằng
¾ Ngôn ngữ tự nhiên
y Dễ hiểu nhưng thiếu tính chặt chẽ
¾ Ngôn ngữ hình thức
y Cô đọng, chặt chẽ nhưng đôi lúc khó hiểu
y Biểu diễn thông qua
∗ Đại số quan hệ
∗ Phép tính quan hệ
∗ Mã giả (pseudo code)
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

8


Nội dung (tt)
‰Ví dụ (R1)
¾ Ngôn ngữ tự nhiên
y Mức lương của một người nhân viên không
được vượt quá trưởng phòng
¾ Ngôn ngữ hình thức
∀t ∈ NHANVIEN (
∃u ∈ PHONGBAN ( ∃v ∈ NHANVIEN (
u.TRPHG = v.MANV ∧

u.MAPHG = t.PHG ∧
t.LUONG ≤ v.LUONG )))
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

9


Nội dung (tt)
‰Ví dụ (R2)
¾ Ngôn ngữ tự nhiên
y Người quản lý trực tiếp phải là một nhân
viên trong công ty
¾ Ngôn ngữ hình thức
y
∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧

∃s ∈ NHANVIEN (t.MA_NQL = s.MANV ))

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

10


Bảng tầm ảnh hưởng

‰Bảng tầm ảnh hưởng
¾Xác định thao tác cập nhật nào cần phải
kiểm tra RBTV khi được thực hiện trên
quan hệ bối cảnh
‰Có 2 loại

¾Bảng tầm ảnh hưởng cho một RBTV
¾Bảng tầm ảnh hưởng tổng hợp
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

11


Bảng tầm ảnh hưởng một RBTV
Tên_RB Thêm

Xóa

Sửa

Quan hệ 1

+



Quan hệ 2



+






+



+ (Thuộc tính)


Quan hệ n

(+) Vi phạm RBTV ? (Kiểm tra khi cập nhật)
(−) Không vi phạm RBTV
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

12


Bảng tầm ảnh hưởng tổng hợp
Ràng buộc 1 Ràng buộc 2
T

X

S

T

X

S


Quan hệ 1

+

-

+

+

-

+

Quan hệ 2

-

+

-

Quan hệ 3

-

-

+


R. buộc m






T

X

S

+

-

+

-

+

-

-

-

+



Quan hệ n

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

-

+

-

13


Nội dung chi tiết
‰Khái niệm
‰Các đặc trưng của RBTV
‰Phân loại RBTV
Một quan hệ
y Miền giá trị
y Liên bộ
y Liên thuộc tính

Nhiều quan hệ
y
y
y
y
y


Tham chiếu
Liên bộ, liên quan hệ
Liên thuộc tính, liên QH
Thuộc tính tổng hợp
Chu trình

‰Cài đặt
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

14


RBTV - Miền giá trị
‰RBTV qui định các giá trị cho một thuộc tính
R

A

B

C

D

α

α

1


1

α

β

5

7

β

β

12

3

β

β

23

9

β ∈9
{α,
∈ β,

{1..10}
γ}

‰Miền giá trị
¾ Liên tục
¾ Rời rạc
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

15


Ví dụ 3
‰Thời gian tham gia đề án của một nhân viên
không quá 60 giờ
¾ Bối cảnh: PHANCONG
¾ Biểu diễn:
∀t ∈ PHANCONG ( t.THOIGIAN ≤ 60 )
¾ Bảng tầm ảnh hưởng:
R3

Thêm

PHANCONG

+

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

Xóa



Sửa
+
(THOIGIAN)
16


Ví dụ 4
‰Giới tính của nhân viên là ‘Nam’ hoặc ‘Nu’
¾ Bối cảnh: NHANVIEN
¾ Biểu diễn:
∀t ∈ NHANVIEN ( t.PHAI ∈ {‘Nam’, ‘Nu’} )
¾ Bảng tầm ảnh hưởng:
hay

DOM(PHAI) = {‘Nam’, ‘Nu’}
R4

NHANVIEN
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

Thêm

Xóa

+



Sửa

+ (PHAI)
17


RBTV - Liên bộ
‰Sự tồn tại của một hay nhiều bộ phụ thuộc vào
sự tồn tại của một hay nhiều bộ khác trong cùng
quan hệ
R

A

B

C

D

α

α

1

1

α

β


5

7

β

β

12

3

β

β

23

9

‰Trường hợp đặc biệt
¾ RB khóa chính
¾ RB duy nhất (unique)
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

18


Ví dụ 5
‰Tên phòng là duy nhất

¾ Bối cảnh: PHONGBAN
¾ Biểu diễn:
∀t1, t2 ∈ PHONGBAN (
t1≠ t2 ∧ t1.TENPHG ≠ T2.TENPHG )

¾ Bảng tầm ảnh hưởng:
R5
PHONGBAN

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

Thêm
+

Xóa


Sửa
+ (TENPHG)

19


Ví dụ 6
‰Một nhân viên được tham gia tối đa 5 đề án
¾ Bối cảnh: PHANCONG
¾ Biểu diễn:
∀t ∈ PHANCONG (
card({ s ∈ PHANCONG | s.MA_NVIEN = t.MA_NVIEN}) ≤ 5 )


¾ Bảng tầm ảnh hưởng:
R6
PHANCONG
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

Thêm
+

Xóa


Sửa
+ (MA_VIEN, SODA)
20


Ví dụ 7
‰THIDAU(NGAY, GIO, DOI, SOBAN)
‰Mỗi trận đấu là cuộc thi đấu của đúng 2 đội
¾ Bối cảnh: THIDAU
¾ Biểu diễn:
∀t ∈ THIDAU ( ∃!s ∈ THIDAU (
t ≠ s ∧ t.NGAY = s.NGAY ∧ t.GIO = s.GIO ))

¾ Bảng tầm ảnh hưởng
R7
THIDAU

Thêm
+


Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

Xóa
+

Sửa
+ (NGAY, GIO, DOI)
21


RBTV - Liên thuộc tính
‰Là ràng buộc giữa các thuộc tính trong cùng
quan hệ

R

A

B

C

D

α

α
β
β

β

1
5
12

1
7
3
9

α
β
β

Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

23

22


Ví dụ 8
‰Một nhân viên không quản lý trực tiếp chính mình
¾ Bối cảnh: NHANVIEN
¾ Biểu diễn:
∀t ∈ NHANVIEN ( t.MA_NQL ≠ t.MANV ∨ t.MA_NQL = null )

¾ Bảng tầm ảnh hưởng:
R8

NHANVIEN

Thêm


Xóa


Sửa
+ (MA_NQL)

Ở thời điểm thêm 1 bộ vào NHANVIEN, MA_NQL là null
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

23


Ví dụ 9
‰KHOAHOC(MAKH, TENKH, BDAU, KTHUC)
‰Mỗi khóa học kéo dài ít nhất 3 tháng
¾ Bối cảnh: KHOAHOC
¾ Biểu diễn:
∀t ∈ KHOAHOC ( t.KTHUC − t.BDAU ≥ 3 )

¾ Bảng tầm ảnh hưởng:
R9
KHOAHOC
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

Thêm

+

Xóa


Sửa
+ (BDAU, KTHUC)
24


RBTV - Tham chiếu
‰Giá trị xuất hiện tại các thuộc tính trong một
quan hệ nào đó phải tham chiếu đến giá trị khóa
chính của một quan hệ khác cho trước
R

A

B

C

D

α

α

1


1

α

β

5

7

β

β

12

3

β

β

23

9

S

E


F

7

1

3

2

Bắt buộc phải tồn tại trước

‰Trường hợp đặc biệt
¾ RB khóa ngoại
Cơ sở dữ liệu - Khoa CNTT - CĐ KTCN ĐN

25


×