1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cơ sở dữ liệu (Databases) - Chương 4: Ràng buộc toàn vẹn (RBTV)

70 56 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 0,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Cơ sở dữ liệu - Chương 4: Ràng buộc toàn vẹn (RBTV) cung cấp cho người học các kiến thức: Các vấn đề liên quan đến RBTV, các loại RBTV, phụ thuộc hàm, khóa. Cuối bài giảng có phần bài tập để người học có thể ôn tập và củng cố kiến thức.

Trang 1

CƠ SỞ DỮ LIỆU

( Databases )

Chương 4: Ràng buộc toàn vẹn (RBTV)

Trang 3

4.1.1 Định nghĩa RBTV

 Ràng buộc toàn vẹn ( RBTV ) là điều kiện không được

vi phạm trong CSDL RBTV còn được gọi là các quy tắc quản lý ( Rules ) được áp đặt lên các đối tượng của thế giới thực.

 Trong 1 CSDL, các RBTV được xem như 1 công cụ

để diễn đạt ngữ nghĩa của CSDL đó.

 Trong quá trình khai thác CSDL, các RBTV phải được thỏa mãn nhằm đảm bảo cho CSDL luôn ở trạng thái

an toàn và nhất quán.

Trang 4

4.1.1 Định nghĩa RBTV (tt)

Định nghĩa:

– RBTV là một quy tắc định nghĩa trên một hoặc nhiều quan

hệ do môi trường ứng dụng quy định  Đó chính là quy tắc

để đảm bảo tính nhất quán của dữ liệu – Mỗi RBTV được định nghĩa bằng 1 thuật toán trong CSDL.

Trang 5

 Các RBTV được kiểm tra ngay khi thực hiện 1 thao tác cập nhật CSDL ( Thêm, Sửa, Xóa )

 Thao tác cập nhật CSDL chỉ được xem là hợp lệ nếu

nó không vi phạm RBTV nào.

 Nếu vi phạm RBTV, hệ thống sẽ hủy bỏ thao tác cập nhật (hoặc hệ thống sẽ có 1 xử lý thích hợp nào đó)

Trang 6

4.1.1 Định nghĩa RBTV (tt)

Như vậy:

Phương pháp kiểm tra RBTV

– Kiểm tra tự động (qua khai báo của cấu trúc bảng)– Thông qua những thủ tục kiểm tra và xử lý vi phạm RBTV (do người phân tích thiết kế cài đặt)

Thời điểm kiểm tra RBTV

– Ngay sau khi thực hiện thao tác cập nhật CSDL– Kiểm tra định kỳ hoặc đột xuất

Trang 7

4.1.2 Điều kiện của RBTV

 Là sự mô tả và biểu diễn hình thức nội dung của nó

 Có thể được biểu diễn bằng:

– Ngôn ngữ tự nhiên– Thuật giải (bằng mã giả - Pseudo Code, ngôn ngữ tựa Pascal)

– Ngôn ngữ đại số tập hợp, đại số quan hệ– Các phụ thuộc hàm

Trang 8

4.1.2 Điều kiện của RBTV (tt)

Ví dụ: Cho CSDL quản lý hóa đơn bán hàng gồm các bảng:

HOADON(SoHD, SoMatHang, Tongtien) DMHANG(MaH, TenH, DvTinh)

CHITIETHD(SoHD, MaH, SL, Dongia, Thanhtien)

 R1 : Mỗi hóa đơn có 1 số hóa đơn riêng biệt, không trùng với hóa đơn khác

 R2 : Số mặt hàng bằng số bộ của của chi tiết hóa đơn có cùng

Trang 9

4.1.2 Điều kiện của RBTV (tt)

Ví dụ - Biểu diễn bằng đại số tập hợp

Trang 10

4.1.2 Điều kiện của RBTV (tt)

Ví dụ - Biểu diễn bằng đại số tập hợp (tt)

R4: CHITIETHD [MaH]  DMHANG [MaH]

hoặc biểu diễn bằng cách khác

 cthđ  CHITIETH D,  hh  DMHANG

sao cho: cthđ.MaH=hh.MaH

Trang 11

– R1: có bối cảnh là 1 quan hệ HOADON

CHITIEHD

– R4: có bối cảnh là 2 quan hệ CHITIETHD và DMHANG

Trang 12

4.1.4 Tầm ảnh hưởng của RBTV

 Một RBTV có thể liên quan đến một số quan hệ, chi khi có thao tác cập nhật (Thêm, Sửa, Xóa) mới xuất hiện nguy cơ vi phạm RBTV  Cần phải xác định rõ khi nào dẫn đến việc kiểm tra RBTV

 Trong quá trình phân tích, thiết kế một CSDL, người phân tích phải lập bảng xác định tầm ảnh hưởng cho mỗi RBTV  nhằm xác định khi nào phải tiến hành kiểm tra các RBTV đó

Trang 13

4.1.4 Tầm ảnh hưởng của RBTV (tt)

 Bảng xác định tầm ảnh hưởng

– Gồm 4 cột:

• Cột 1: Tên các bảng (quan hệ) có liên quan đến RBTV

• Cột 2, 3, 4: Ứng với các thao tác Thêm/Sửa/Xóa 1 bộ

– Đánh dấu (+) tại ô mà RBTV có nguy cơ bị vi phạm Có thể ghi thêm các thuộc tính nào nếu được cập nhật mới

sẽ dẫn đến vi phạm RBTV bằng cách liệt kê chúng dưới dấu (+)

– Đánh dấu (-) tại ô không có nguy cơ bị vi phạm

– Đánh dấu (- (*) ) nếu không bị vi phạm vì không được phép sửa đổi

Trang 16

4.1.4 Tầm ảnh hưởng của RBTV (tt)

 Bảng tầm ảnh hưởng tổng hợp của R1, R2, R3, R4

RBTV Thêm Sửa Xóa Thêm Sửa Xóa Thêm Sửa Xóa

(MaH) - (*) - - - (*) +

Trang 17

– Xử lý: Đưa ra phương án xử lý khi RBTV bị vi phạm

Có thể từ chối hoặc tiếp tục cho hiệu chỉnh dữ liệu

 Thông thường có 2 giải pháp:

– (1) Đưa ra thông báo và yêu cầu sửa chữa dữ liệu chophù hợp với RBTV TB này phải đầy đủ và dễ hiểu vớingười dùng  giải pháp này phù hợp cho việc xử lýthời gian thực

– (2) Từ chối thao tác cập nhật  giải pháp này phù hợpvới việc xử lý theo lô

Trang 18

– RBTV có tính chu trình

Trang 19

4.2.1 RBTV về miền trị

 Rất phổ biến trong các CSDL quan hệ

 Mỗi thuộc tính không chỉ đặc trưng bởi kiểu giá trị mà còn bị giới hạn bởi miền giá trị trong kiểu dữ liệu đó

 Khi cập nhật (thêm/sửa/xóa) giá trị cho 1 bộ trong

quan hệ, phải kiểm tra RBTV này

 Ví dụ: DIEMTHI(MaSV, Lanthi, Diemthi)

– R1: kq  DIEMTHI thì 0  kq.Diemthi  10– R2: kq  DIEMTHI thì 0  kq.Lanthi  2

Trang 21

4.2.3 RBTV liên bộ, liên thuộc tính

 Là loại RBTV có liên quan đến nhiều bộ và có thể tới nhiều thuộc tính của các bộ giá trị trong một quan hệ

 Ví dụ:

– Mã số sinh viên không được trùng nhau

sv1, sv2  SINHVIEN thì sv1.MaSV  sv2.MaSV

– Điểm thi của sinh viên lần sau phải lớn hơn lần trước:

kq  DIEMTHI

• Nếu kq.Lanthi = 1 thì 0 ≤ kq.Điểm ≤ 10 hoặc:

• Nếu kq.Lanthi > 1 thì ∃ kq’ ∈ DIEMTHI , sao cho kq’.Lanthi = kq.Lanthi - 1 và kq.Diem ≥ kq’.Diem

Trang 24

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

 Một thuộc tính trong quan hệ này cố mối liên hệ với một thuộc tính trong quan hệ khác

Trang 25

4.2.5 RBTV liên bộ - liên quan hệ

 Một thuộc tính của quan hệ này có mối liên hệ với các

bộ của quan hệ khác.

 Ví dụ:

– Mỗi GV phải dạy ít nhất 1 lớp– HOADON.SoMatHang = Số bộ của CHITIETHD có cùng số hóa đơn

– Mỗi phiếu mượn chỉ mượn được tối đa 3 cuốn sách

Trang 26

4.2.6 RBTV do có chu trình

 Biểu diễn cấu trúc CSDL dưới dạng đồ thị như sau: mỗi nút của đồ thị biểu diễn 1quan hệ hoặc 1 thuộc tính

– Quan hệ được biểu diễn bằng nút tròn trắng– Thuộc tính được biểu diễn bằng nút tròn đen

 Các nút được chỉ rõ bằng tên của quan hệ hoặc thuộc tính Thuộc tính thuộc một quan hệ được biểu diễn bằng 1 cung nối giữa nút tròn trắng và nút tròn đen đó

 Nếu trên đồ thị xuất hiện 1 đường kép kín thì ta nói trong lược đồ CSLD có sự hiện diện của chu trình

Trang 27

4.2.6 RBTV do có chu trình

Ví dụ

– Q1 (MaNV, MaPhong)– Q2 (MaPhong, MaDean)– Q3 (MaDean, TenDean)

Q2 Q1

Q4

Q3

MaNV

MaDean TenDean

Trang 28

– Nếu vẫn muốn giữ lại quan hệ Q4, tức là không hủy bỏchu trình, thì phải có một RBTV với thuật toán sau:Q1 I><I Q2 [MaNV, MaDean] = Q4 [MaNV, MaDean]

Trang 29

– RBTV được thể hiện bởi thuật toán sau:

Q4[MaNV, MaDean]  Q1 |><| Q2 [MaNV, MaDean]

Trang 31

nếu A’  A đều không có A’ B

Trang 32

4.3.1 Định nghĩa Phụ thuộc hàm

Ví dụ:

HOADON(SoHD, SoMatHang, Tongtien)DMHANG(MaH, TenH, DvTinh)

CHITIETHD(SoHD, MaH, SL, Dongia, Thanhtien)

 Trong quan hệ DMHANG Có các phụ thuộc hàm:

– f1: MaH  TenH – f2: MaH  DvTinh

 Trong quan hệ CHITIETHD có các phụ thuộc hàm

– f1: SoHD, MaH  SL – f2: SoHD, MaH  Dongia – f3: SoHD, MaH  Thanhtien – f4: SL, Dongia  Thanhtien

Trang 33

4.3.2 Bao đóng tập phụ thuộc hàm và hệ luật

dẫn Amstrong

Bao đóng của tập phụ thuộc hàm

– Trên lược đồ quan hệ R với tập thuộc tính U; F là tập các phụ thuộc hàm; cho X Y là một phụ thuộc hàm;

X, Y  U

– Ta nói XY được suy diễn lôgic từ F nếu R thỏa mãn các phụ thuộc hàm của F thì cũng thỏa XY Ký hiệu là: F |= XY

– Bao đóng (closure) của F (ký hiệu là F+) là tập các phụ thuộc hàm được suy diễn logic từ F

– Nếu F=F+ thì ta nói F là họ đầy đủ (Full family) của các phụ thuộc hàm

Trang 34

4.3.2 Bao đóng tập phụ thuộc hàm và hệ luật

dẫn Amstrong (tt)

Hệ luật dẫn Amstrong

– Cho quan hệ hệ R với tập thuộc tính U;

– Cho X, Y, Z, W  U

 Ba luật của tiên đề Amstrong:

1 Luật phản xạ (reflexive rule):

Trang 35

Hệ luật dẫn Amstrong

Ba hệ quả của tiên đề Amstrong:

1 Luật hợp (Union Rule)

Trang 36

Hệ luật dẫn Amstrong

Ví dụ 1:

– Cho lược đồ quan hệ R(U), U=ABCDEGH và tập các phụ thuộc hàm: F = {ABC, BD, CDE, CEGH, GA} Hãy áp dụng hệ tiên đề Amstrong tìm chuỗi suy diễn ABE

Trang 38

4.3.3 Bao đóng của tập thuộc tính

Định nghĩa:

– Bao đóng của tập thuộc tính X đối với tập các phụ thuộc hàm F (ký hiệu là XF+ hoặc X+) lầ tập các thuộc tính A có thể duy dẫn từ X nhờ tập bao đóng của các phụ thuộc hàm F+

Thuật toán tìm bao đóng của X

– Tính liên tiếp tập các tập thuộc tính X0,X1,X2, theo phương pháp sau:

– Bước 1: X0 = X

– Bước 2: lần lượt xét các phụ thuộc hàm của F

• Nếu Y  Z có Y  Xi thì Xi+1 = Xi  Z

• Loại phụ thuộc hàm Y  Z khỏi F

– Bước 3: Nếu ở bước 2 không tính được X thì X

Trang 39

4.3.3 Bao đóng của tập thuộc tính (tt)

Trang 40

4.3.3 Bao đóng của tập thuộc tính (tt)

Ví dụ2:

– Cho lược đồ quan hệ R(A,B,C,D,E,G,H) và tập phụ thuộc hàm F={B  A; DA  CE; D  H; GH  C;

AC  D} Tìm bao đóng của X = {AC} trên F

Ví dụ3: Tìm bao đóng của tập thuộc tính X = {B, D}

Trang 41

4.3.3 Bao đóng của tập thuộc tính (tt)

Ví du 4: cho lược đồ quan hệ: R(A,B,C,D,E,G)

F = { f1: A → C;

f2: A → EG;

f3: B → D;

f4: G → E } – Tìm bao đóng của X+ và Y+ của

X = {A,B}; Y = {C,G,D}

Trang 42

Sử dụng bao đóng của tập thuộc tính

Kiểm tra siêu khóa

– Nếu tập X có X + chứa tất cả các thuộc tính của quan hệ R thì X là siêu khóa

– X là khóa dự tuyển nếu không có tập con nào của X là khóa

Kiểm tra phụ thuộc hàm XY có được suy dẫn từ tập phụ thuộc hàm F cho trước ?

– Nếu XY thuộc F +  Y  X +

Kiểm tra 2 tập phụ thuộc hàm tương đương F + = G +

–  phụ thuộc hàm X  Y trong G, nếu Y  XF+ thì F phủ G và ngược lại

–  phụ thuộc hàm X  Y trong F, nếu Y  X + thì G phủ F

Trang 43

4.3.4 Phủ và tương đương

Định nghĩa

– Hai tập phụ thuộc hàm F và G trên quan hệ Q được gọi

là tương đương (ký hiệu FG) nếu F+ = G+

– FG thì F được gọi là 1 phủ của G hoặc G là một phủ của F

Thuật toán: Kiểm tra F và G có tương đương không?

– Bước 1: Với mỗi phụ thuộc hàm XY của F xác định xem XY có là thành viên của G không?

– Bước 2: Với mỗi phụ thuộc hàm XY của G xác định xem X Y có là thành viên của F không?

– Bước 3: Nếu cả 2 bước trên đều đúng thì F  G

Trang 44

a) F có tương đương với G không?

b) F có tương đương với G’={A  BCE} không?

Trang 46

Phụ thuộc hàm có vế trái dư thừa

F là tập các phụ thuộc hàm trên lược đồ quan

hệ Q.

Z  Y  F

Phụ thuộc hàm Z  Y có vế trái dư thừa nếu có A

 Z sao cho: F  F- {Z  Y}  { (Z-A)  Y}

Ví dụ 1: Q (A, B, C), F= { AB  C ; B  C}

Trang 47

Phụ thuộc hàm có vế trái dư thừa

Trang 48

Loại bỏ PTH có vế trái dư thừa

Thuật toán

– Xét lần lượt các PTH có dạng X  Y (vế trái có nhiều hơn 1 thuộc tính)

–  X’  X và X’  , Nếu X’  Y  F+ thì thay thế XY bằng X’  Y

Ví dụ:

F = {A BC, B  C, AB  D},

Xét Phụ thuộc hàm AB  D

+ Tính B+ = BC (không chứa A) nên A không dư thừa

+ Tính A+ = ABC (chứa B) nên B là dư thừa

Trang 49

Phụ thuộc hàm dư thừa

 F là tập phụ thuộc hàm không dư thừa nếu không tồn tại F’ F sao cho F’ F Ngược lại F là tập phụ thuộc hàm dư thừa.

Trang 50

Phủ tối thiểu (Minimal cover)

Tập F được gọi là tập phụ thuộc hàm tối thiểu

(hay phủ tối thiểu) nếu nó thỏa mãn đồng thời 3 điều kiện

– F là tập phụ thuộc hàm có vế trái không dư thừa– Các PTH trong F có vế phải chỉ gồm 1 thuộc tính– F là tập phụ thuộc hàm không dư thừa

Trang 51

Phủ tối thiểu (tt)

Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm

– Bước 1: Loại bỏ các phụ thuộc hàm có vế trái dư thừa

– Bước 2: Tách các phụ thuộc hàm có vế phải nhiều hơnmột thuộc tính thành các phụ thuộc hàm có vế phải mộtthuộc tính

– Bước 3: Loại bỏ các phụ thuộc hàm dư thừa

Trang 52

Phủ tối thiểu (Minimal cover)

Ví dụ1: Cho lược đồ quan hệ Q(A, B, C, D) và tập

phụ thuộc hàm F = {AB  CD, B  C, C  D} Hãy tìm phủ tối thiểu của F

– Bước 2: Tách các phụ thuộc hàm có vế phải nhiều hơn

1 thuộc tính thành các PTH có vế phải là 1 thuộc tính

• F = {B  C, B  D, C  D} = F1tt

Trang 53

Phủ tối thiểu (tt)

– Bước 3: Loại bỏ các PTH dư thừa

• Kiểm tra B  C có dư thừa không?

– Đặt G = F1tt – {B  C} = {B  D, C  D}

– Tính BG+ = BD  B  C  G +  B  C không dư thừa

• Kiểm tra B  D có dư thừa không?

– Đặt G = F1tt - {B  D} = {B  C, C  D}

– Tính BG+ = BCD  B  D  G +  B  D dư thừa

• Kiểm tra C  D có dư thừa không?

– Đặt G = F1tt - {C  D} = {B  C, B  D}

– Tính CG+ = C  C  D  G +  C  D Không dư thừa

– Kết quả: Phủ tối thiểu của tập phụ thuộc hàm là

Fc = {B  C, C  D}

Trang 55

4.4 Khóa của lược đồ quan hệ

K là một khóa của Q nếu:

• K + = Q + (Bao đóng của tập thuộc tính K = Q+)

• Không tồn tại K'  K sao cho K’+= Q+

Trang 56

4.4 Khóa (tt)

Tập thuộc tính S được gọi là siêu khóa nếu SK

Thuộc tính A được gọi là thuộc tính khóa nếu A K

với K là khóa bất kỳ của Q Ngược lại A được gọi là

thuộc tính không khóa.

 Một lược đồ quan hệ có thể có nhiều khóa và tập

thuộc tính không khóa cũng có thể bằng rỗng

Trang 57

4.4.2 Thuật toán tìm 1 khóa

Trang 58

4.4.2 Thuật toán tìm 1 khóa (tt)

Ví dụ 1: cho lược đồ quan hệ Q và tập phụ

thuộc hàm F như sau:

– Q (A,B,C,D,E) – F={ABC, AC  B, BC  DE}

– Tìm khóa K

Giải:

B1: K=Q+  K=ABCDE

B2:(K\A)+ (BCDE)+=BCDE ≠ Q+  K=ABCDE

B3:(K\B)+ (ACDE)+= ABCDE = Q+  K=ACDE

B4: (K\C)+ (ADE)+ = ADE ≠ Q+  K=ACDE

B5: (K\D)+  (ACE)+ = ACEBD=Q+  K=ACE

Trang 59

4.4.2 Thuật toán tìm 1 khóa (tt)

Trang 60

4.4.2 Thuật toán tìm 1 khóa (tt)

Thuật toán 2: Biểu diễn lược đồ quan hệ bằng đồ thị có hướng như sau:

– Mỗi đỉnh của đồ thị là 1 thuộc tính trong lược đồ quan hệ – Mỗi phụ thuộc hàm A  B được biểu diễn bằng 1 cung có hướng từ đỉnh A đến đỉnh B

• Đỉnh (thuộc tính) chỉ có mũi tên đi ra được gọi là nút gốc

• Đỉnh (thuộc tính) chỉ có mũi tên đi vào được gọi là nút lá – Khóa của lược đồ quan hệ phai bao phủ tập các nút gốc đồng thời không chứa bất kỳ nút lá nào.

– Thuật toán:

• Bước 1: Xuất phát từ tập các nút gốc (X)

• Bước 2: Tính bao đóng của tập thuộc tính X (X + )

• Bước 3: Nếu X + = U thi X là khóa Ngược lại, bổ sung 1 thuộc

Trang 61

4.4.2 Thuật toán tìm 1 khóa (tt)

Trang 62

4.4.2 Thuật toán tìm 1 khóa (tt)

 Tính D+ = 

 Do CD có mặt trong vế trái của 2 phụ thuộc hàm

(CD  H, CD  E) nên ta ghép C vào tập nút gốc và tính bao đóng

Trang 63

4.4.3 Thuật toán tìm mọi khóa

Trang 64

4.4.3 Thuật toán tìm mọi khóa (tt)

Ví dụ:

– Tìm tất cả các khóa của lược đồ quan hệ và tập phụ thuộc hàm như sau:

Trang 65

4.4.3 Thuật toán tìm mọi khóa (tt)

Thuật toán cải tiến

– Bước1 : tạo tập thuộc tính nguồn TN, tập thuộc tính trung gian TG

– Bước2 :

• Nếu TG =  thì lược đồ quan hệ chỉ có một khóa K = TN kết thúc

• Ngược lại Qua bước 3

– Bước3 : tìm tất cả các tập con Xi của tập trung gian TG

Trang 66

4.4.3 Thuật toán tìm mọi khóa (tt)

– Bước 4: tìm các siêu khóa Si bằng cách  Xi

Trang 67

4.4.3 Thuật toán tìm mọi khóa (tt)

Ví dụ 1:

– Cho lược đồ quan hệ Q(CSZ) và tập phụ thuộc hàm F={CS  Z; Z  C} Áp dụng thuật toán cải tiến, hãy tìm các khóa của Q

Giải:

– TN = {S}; TG = {C,Z}

– Gọi Xi là các tập con của tập TG:

Trang 68

4.4.3 Thuật toán tìm mọi khóa (tt)

Ví dụ 2:

– Cho quan hệ R (U), U = {A,B,C,D,G} và các phụ thuộc hàm F = {BC, CB, AGD} hãy tìm tất cả các khóa của R

Trang 70

Tổng kết chương

 Hệ luật dẫn Amstrong và hệ quả của nó

 Thuật toán tìm bao đóng của tập thuộc tính

 Thuật toán tìm phủ tối thiểu của tập phụ thuộc hàm

 Thuật toán tìm 1 khóa quan hệ.

 Thuật toán tìm tất cả các khóa của quan hệ

 Cho phụ thuộc hàm X  Y và tập Phụ thuộc hàm F, làm cách nào xác định được X  Y  F+ hay không ?

 Cho 2 tập phụ thuộc F và G, làm thế nào xác định

được F và G là tương đương?

Ngày đăng: 20/09/2020, 01:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w