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

Tài liệu ôn thi cao học - thạc sĩ khoa học máy tính, hệ thống thông tin trường ĐH KHTN TP.HCM: p4

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 (418.55 KB, 45 trang )

Ràng buộc toàn vẹn

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

Khái niệm RBTV (Integrety Constraints)
(Integrety
RBTV là một điều kiện bất biến được định nghĩa trên một hay nhiều
quan hệ khác nhau mà mọi thể hiện của quan hệ đều phải thỏa ở bất kỳ
thời điểm nào
Ví dụ
Mức lương của một người nhân viên khơng được vượt q 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)

RBTV 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
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’

3/20/2008

Ơn thi Cao học 2008

2

1



Vai trị và Đặc trưng của RBTV
Vai trị
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 qn của dữ liệu
Bảo đảm CSDL ln biểu diễn đúng ngữ nghĩa thực tế

Các đặc trưng của RBTV
Bối cảnh
Nội dung
Bảng tầm ảnh hưởng

3/20/2008

Ôn thi Cao học 2008

3

Bối cảnh của một RBTV
Bối cảnh
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
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 nhân viên vào một phòng ban
Bổ nhiệm trưởng phịng cho một phịng ban


Bối cảnh: NHANVIEN, PHONGBAN

3/20/2008

Ơn thi Cao học 2008

4

2


Nội dung
Nội dung của một RBTV được phát biểu bằng
Ngôn ngữ tự nhiên
Dễ hiểu nhưng thiếu tính chặt chẽ

Ngơn ngữ hình thức
Cơ đọng, chặt chẽ nhưng đơi lúc khó hiểu
Biểu diễn thơng qua
Đại số quan hệ
Phép tính quan hệ
Mã giả (pseudo code)

3/20/2008

Ơn thi Cao học 2008

5

Nội dung (tt)

(tt)
Ví dụ (R1)
Ngơn ngữ tự nhiên
Mức lương của một người nhân viên không được vượt q 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 )))

3/20/2008

Ôn thi Cao học 2008

6

3


Nội dung (tt)
(tt)
Ví dụ (R2)
Ngơn ngữ tự nhiên
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
∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧
∃s ∈ NHANVIEN (t.MA_NQL = s.MANV ))


3/20/2008

Ôn thi Cao học 2008

7

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

3/20/2008

Ôn thi Cao học 2008

8

4


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

Tên_RB

Thêm


Xóa

Sửa

Quan hệ 1

+



+ (Thuộc tính)

Quan hệ 2



+





+




Quan hệ n


(+) Vi phạm RBTV
(−) Không vi phạm RBTV
3/20/2008

Ôn thi Cao học 2008

9

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àng buộc m


+






T

X

S

+

-

+

-

+

-

-

-

+


Quan hệ n

3/20/2008

-


+

-

Ôn thi Cao học 2008

10

5


Phân loại RBTV
RBTV trên một quan hệ
Miền giá trị
Liên bộ
Liên thuộc tính

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

3/20/2008

Ơn thi Cao học 2008

11


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

B

C

D

α

α

1

1

α

β

5

7

β

β


12

3

β

R

β

23

9

β ∈ 9 ∈ β, γ}
{α, {1..10}

Miền giá trị
Liên tục
Rời rạc

3/20/2008

Ôn thi Cao học 2008

12

6



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

+

3/20/2008

Xóa


Sửa
+
(THOIGIAN)

Ơn thi Cao học 2008

13


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’} )
hay

DOM(PHAI) = {‘Nam’, ‘Nu’}
Bảng tầm ảnh hưởng:
R4
NHANVIEN
3/20/2008

Thêm
+

Xóa

Ơn thi Cao học 2008

Sửa
+ (PHAI)
14

7



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)
3/20/2008

Ơn thi Cao học 2008

15

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
3/20/2008

Thêm
+

Xóa

Ơn thi Cao học 2008

Sửa
+ (TENPHG)
16

8


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:
Thêm

R6
PHANCONG

+

3/20/2008

Xóa


Sửa
+ (MA_VIEN, SODA)

Ơn thi Cao học 2008

17

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
3/20/2008

Thêm
+

Xóa
+
Ơn thi Cao học 2008

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

9


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ệ

A

B

C

D

α


α

1

1

α

β

5

7

β

β

12

3

β

R

β

23


9

3/20/2008

Ơn thi Cao học 2008

19

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
3/20/2008


Ôn thi Cao học 2008

20

10


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:
Thêm

R9
KHOAHOC

Xóa


+

3/20/2008

Sửa
+ (BDAU, KTHUC)


Ôn thi Cao học 2008

21

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

A

B

C

D

α

α

1

1

α

β

5


7

β

β

12

3

β

R

β

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
3/20/2008

Ơn thi Cao học 2008

22

11


Ví dụ 10
Mọi thân nhân phải có mối quan hệ gia đình với một nhân viên
trong cơng ty
Bối cảnh: THANNHAN, NHANVIEN
Biểu diễn:
hay

∀t ∈ THANNHAN ( ∃s ∈ NHANVIEN ( s.MANV = t.MA_NVIEN ))
THANNHAN.MA_NVIEN ⊆ NHANVIEN.MANV
Bảng tầm ảnh hưởng:
Thêm


Xóa

NHANVIEN



+

+ (MANV)

THANNHAN

+



+ (MA_NVIEN)

R10

3/20/2008

Sửa

Ơn thi Cao học 2008

23

RBTV - Tham chiếu (tt)
tt)

Còn gọi là phụ thuộc tồn tại
Thường có bối cảnh là hai quan hệ
Nhưng có trường hợp suy biến thành một quan hệ
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
Bối cảnh: NHANVIEN
Biểu diễn:

∀t ∈ NHANVIEN ( t.MA_NQL ≠ null ∧
∃s ∈ NHANVIEN (t.MA_NQL = s.MANV ))
Bảng tầm ảnh hưởng

R2
NHANVIEN
3/20/2008

Thêm
+

Xóa
+
Ơn thi Cao học 2008

Sửa
+ (MANV, MA_NVIEN)
24

12



RBTV - Liên bộ, liên quan hệ
bộ,
Là ràng buộc xãy ra giữa các bộ trên nhiều quan hệ khác nhau
R

A

B

C

D

α

α

1

1

α

β

5

7

β


β

12

3

β

β

23

9

S

A

B

C

α

2

7

α


4

7

β

2

3

γ

2

10

3/20/2008

Ôn thi Cao học 2008

25

Ví dụ 11
HOADON(SOHD, MAKH, NGAYHD)
CTHD(SOHD, MAHH, DGIA, SLG)
Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn
Bối cảnh: HOADON, CTHD
Biểu diễn:


∀t ∈ HOADON ( ∃s ∈ CTHD ( t.SOHD = s.SOHD ))
Bảng tầm ảnh hưởng:
Thêm

Xóa

HOADON

+

+

+ (SOHD)

CTHD

+

+

+ (SOHD)

R11

3/20/2008

Ôn thi Cao học 2008

Sửa


26

13


RBTV - Liên thuộc tính, liên quan hệ
tính,

Là ràng buộc xãy ra giữa các thuộc tính trên nhiều quan hệ khác
nhau

A

B

C

D

A

B

C

α

α

1


1

α

2

7

α

β

5

7

α

4

7

β

β

12

3


β

2

3

β

R

β

23

9

γ

2

10

3/20/2008

S

Ơn thi Cao học 2008

27


Ví dụ 12
Ngày sinh của trưởng phòng phải nhỏ hơn ngày nhận chức
Bối cảnh: NHANVIEN, PHONGBAN
Biểu diễn:

∀t ∈ PHONGBAN ( ∃s ∈ NHANVIEN (
s.MANV = t.TRPHG ∧
t.NG_NHANCHUC > s.NGSINH ))
Bảng tầm ảnh hưởng:
Thêm

Xóa

NHANVIEN





+ (NGSINH, MANV)

PHONGBAN

+



+ (NG_NHANCHUC, TRPHG)


R12

3/20/2008

Ôn thi Cao học 2008

Sửa

28

14


RBTV - Thuộc tính tổng hợp
Thuộc tính tổng hợp
Là thuộc tính có giá trị được tính tốn từ các thuộc tính khác

Khi CSDL có thuộc tính tổng hợp
RBTV bảo đảm quan hệ giữa thuộc tính tổng hợp và các thuộc tính
nguồn

3/20/2008

Ơn thi Cao học 2008

29

Ví dụ 13
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC,
SO_NV)

Số nhân viên của một phòng ban phải bằng tổng số lượng nhân
viên thuộc phịng đó
Bối cảnh: NHANVIEN, PHONGBAN
Biểu diễn:

∀t ∈ PHONGBAN (
t.SO_NV = ∑ { s ∈ NHANVIEN | s.PHG = t.MAPHG} )
Bảng tầm ảnh hưởng:
Thêm

Xóa

NHANVIEN

+

+

+ (PHG)

PHONGBAN





+ (SO_NV, MAPHG)

R13


3/20/2008

Ơn thi Cao học 2008

Sửa

30

15


RBTV – Chu trình
Lược đồ CSDL có thể được biểu diễn bằng đồ thị
Đỉnh
Quan hệ

Tên quan hệ

Thuộc tính

Tên thuộc tính

Cạnh
Đường nối một đỉnh quan hệ với một đỉnh thuộc tính trong lược đồ CSDL

Tên thuộc tính

Tên quan hệ

Chu trình

Đồ thị xuất hiện đường đi khép kín ~ Lược đồ CSDL có chu trình

3/20/2008

Ơn thi Cao học 2008

31

Ví dụ 14
Nhân viên chỉ được phân cơng vào các đề án do phịng ban của
mình phụ trách
PHG=PHONG

NHANVIEN

MANV=MA_NVIEN

MANV, MADA

MA_NVIEN, SODA

DEAN

SODA=MADA

PHANCONG

3/20/2008

Ơn thi Cao học 2008


32

16


Ví dụ 14 (tt)
(tt)
Nhân viên chỉ được phân cơng vào các đề án do phịng ban của
mình phụ trách
Bối cảnh: NHANVIEN, DEAN, PHANCONG
Biểu diễn:

NVDA ← NHANVIEN

PHG=PHONG

DEAN

∀t ∈ PHANCONG ( ∃s ∈ NVDA (
t.MA_NVIEN = s.MANV ∧ t.MADA = s.SODA ))
Bảng tầm ảnh hưởng:
R14
NHANVIEN

Thêm


Xóa



DEAN





+ (MADA,PHONG)

+



+ (MA_NVIEN,SODA)

PHANCONG
3/20/2008

Ơn thi Cao học 2008

Sửa
+ (MANV,PHG)

33

Phụ thuộc hàm
Phụ thuộc hàm
Suy dẫn từ phụ thuộc hàm
Luật dẫn
Bao đóng


17


Phụ thuộc hàm
Phụ thuộc hàm (PTH) trên quan hệ R biểu diễn mối liên hệ giữa các tập
thuộc tính trong R

A’s

B’s

t1
Ký hiệu A → B
t2
Nếu

Thì

3/20/2008

Ơn thi Cao học 2008

35

Định nghĩa
PTH được phát biểu dựa trên
Ngữ nghĩa của môi trường ứng dụng
Qui tắc


Cho quan hệ R(A, B, C)
A ≠ ∅, B ≠ ∅
Một thể hiện r của R thỏa PTH A→B nếu

∀ t1, t2∈ r,

t1[A] = t2[A]

⇒ t1[B] = t2[B]

Mỗi giá trị tại A xác định duy nhất một giá trị tại B

3/20/2008

Ôn thi Cao học 2008

36

18


Ví dụ
Xét lược đờ quan hệ
Phim(Tênphim, Nămsx, Thờilượng, Loạiphim, Xưởngsx, Diễnviên)

Và thể hiện
Tênphim

Nămsx


Thờilượng

Loạiphim

Xưởngsx

Diễnviên

Star Wars

1977

124

color

Fox

Star Wars

1977

124

color

Fox

Carrie Fisher
Mark Hamill


Star Wars

1977

124

color

Fox

Harrison Ford

Mighty Ducks

1991

104

color

Disney

Emilio Esteves

Wayne’s World

1992

95


color

Paramount

Dana Carvey

Wayne’s World

1992

95

color

Paramount

Mike Meyers

Tênphim Nămsx → Thờilượng

Tênphim Nămsx → Diễnviên

Tênphim Nămsx → Loại
Không là phụ thuộc hàm

Tênphim Nămsx → Xưởngsx
3/20/2008

Ôn thi Cao học 2008


37

Chú ý
Xét thể hiện r1
Tênphim

Nămsx

Thờilượng

Loạiphim

Xưởngsx

Star Wars

1977

124

color

Fox

Diễnviên
Carrie Fisher

Star Wars


1977

124

color

Fox

Mark Hamill

Star Wars

1977

124

color

Fox

Tênphim → Ford
Harrison Loại

Mighty Ducks

1991

104

color


Disney

Emilio Esteves

Wayne’s World

1992

95

color

Paramount

Dana Carvey

Wayne’s World

1992

95

color

Paramount

Mike Meyers

3/20/2008


Ôn thi Cao học 2008

38

19


Chú ý (tt)
Xét thể hiện r2
Tênphim

Nămsx

Thờilượng

Loạiphim

Xưởngsx

Diễnviên

Star Wars

1977

124

color


Fox

Carrie Fisher

Star Wars

1977

124

color

Fox

Mark Hamill

Star Wars

1977

124

color

Fox

Tênphim → Ford
Harrison Loại

Mighty Ducks


1991

104

color

Disney

Kingkong

1993

120

color

Paramount

Emilio Esteves
Fay Wray

Kingkong

1993

120

Black/white


Paramount

Robert Amstrong

PTH phải được định nghĩa trên lược đồ quan hệ
Thỏa với mọi thể hiện của quan hệ
3/20/2008

Ơn thi Cao học 2008

39

Một sớ khái niệm
PTH hiển nhiên

X → Y là PTH hiển nhiên

⇔ Y⊆X

PTH đầy đủ
Định nghĩa sau

3/20/2008

Ôn thi Cao học 2008

40

20



Luật dẫn Armstrong
Luật phản hồi

(FD1)

∀Y ⊆ X, X→ Y

Luật cộng

(FD2)

Nếu X → Y và Z ⊆ W
Thì XW → YZ

Luật bắc cầu

(FD3)

3/20/2008

Nếu X → Y và Y → Z
Thì X → Z
Ôn thi Cao học 2008

41

Luật dẫn khác
Luật bắc cầu giả


(FD4)

Nếu X → Y và Y, W → Z
Thì X, W → Z

Luật hội

(FD5)

Nếu X → Y và X → Z
Thì X → Y, Z

Luật phân rã

(FD6)

Nếu X → Y và Z ⊆ Y
Thì X → Z

3/20/2008

Ơn thi Cao học 2008

42

21


Bao đóng của F
Cho F là tập các PTH định nghĩa trên R

Cho F là tập các PTH định nghĩa trên R
Nếu có 1 PTH f khác cũng được thỏa với mọi thể hiện của R
Thì ta gọi f là hệ quả của F

Tập hợp các PTH hệ quả từ F được gọi là bao đóng của F
Ký hiệu F+

F ⊆ F+

3/20/2008

Ơn thi Cao học 2008

43

Ví dụ
Xét lược đờ R(A,B,C) thỏa tập PTH

F = { f1: A → B
f2: B → C }
Ta có thể suy diễn R cịn thỏa PTH

f3: A → C

3/20/2008

Ôn thi Cao học 2008

44


22


Tìm bao đóng của F+
F+=F
repeat
for each PTH f ⊆ F+
Áp dụng các luật dẫn Amstrong đeể suy dẫn ra tập luật
suy dẫn {f’}
F + = F + ∪{f’}
until F + khơng tăng trưởng nữa

3/20/2008

Ơn thi Cao học 2008

45

Ví dụ
Xét lược đồ R(A, B, C, G, H, I)
Và PTH F định nghĩa trên R

F = { f1: A → B
f2: A → C
f3: CG → H
f4: CG → I
f5: B → H
}
Tìm được nhiều PTH trong F+


3/20/2008

Ơn thi Cao học 2008

46

23


Ví dụ
A → B, B → H

:

A→H

CG → H, CG → I :

CG → HI

A → C, CG → I

AG → I

:

3/20/2008

Ơn thi Cao học 2008


47

Nhận xét
Bài tốn thực tế
Cho một PTH f: X → Y
Xác định f có thuộc bao đóng F+ hay khơng

Giải quyết
Tìm bao đóng F+
Kiểm tra f có nằm trong F+ khơng

Tìm bao đóng F+ có hiệu quả ???
Chuyển sang bài toán thành viên
Ta chỉ cần tìm bao đóng của tập thuộc tính X dựa trên F
Kiểm tra Y có thuộc bao đóng của X hay khơng

3/20/2008

Ơn thi Cao học 2008

48

24


Bao đóng của tập thuộc tính X
Ký hiệu X+F
Định nghĩa

X+F


= { Y | X → Y được suy dẫn từ F }

Là tập hợp những VP của các PTH có VT là X nằm trong F
X+F dùng để xem f có được suy dẫn từ F hay khơng?

Ta thấy

X ⊆ X+F
X ⊆ R+
3/20/2008

Ơn thi Cao học 2008

49

Tìm bao đóng của X
B1.

B2.

X+F = X

Lặp {

Tìm các PTH trong F
có VT là các thuộc tính nằm trong X+F
có VP khơng nằm trong X+F

Nếu (có f : U → V thuộc F) và (U ⊆ X+F)

Thì X+F = X+F ∪ V
} cho đến khi (X+F = R+) hoặc
(khơng cịn thay đổi được nữa)
3/20/2008

Ơn thi Cao học 2008

50

25


×