27
www.elarion.com CƠ SỞ DỮ LiỆU LARION_TDT@internship_03 Never stop improving quality Phần 4: Ràng buộc toàn vẹn

Phan4

Embed Size (px)

Citation preview

Page 1: Phan4

www.elarion.com

CƠ SỞ DỮ LiỆU

LARION_TDT@internship_03

Never stop improving quality

Phần 4: Ràng buộc toàn vẹn

Page 2: Phan4

Khái niệm về RBTV

• Khái niệm:

Ràng buộc toàn vẹn (RBTV) là một qui tắc định nghĩa trên một hay nhiều quan hệ do môi trường ứng dụng qui định.

RBTV là qui tắc để đảm bảo tính nhất quán của dữ liệu trong CSDL.

Mỗi RBTV được định nghĩa bằng một thuật toán bên trong CSDL.

VD: Mỗi lớp học có 1 mã số duy nhất để phân biệt với các lớp học khác.

LOPHOC

MALOP TENLOP

08TH1D Tin học khóa 2008

08TA1D Trung Anh khóa 2008

08TA1D Trung Anh khóa 2009

Không được trùng MALOP

Page 3: Phan4

Kiểm tra RBTV

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

Hệ quản trị CSDL có các cơ chế tự động kiểm tra các RBTV về miền giá trị của Khóa nội,khóa ngoại, NOT NULL qua khai báo 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 những người phân tích và thiết kế cài đặt.

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

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 được xem là hợp lệ nếu không vi phạm ràng buộc nào.

Đối với những trường hợp vi phạm hệ thống sẽ có hướng xử lý thích hợp.

Page 4: Phan4

Các yếu tố của RBTV

• Các yếu tố của RBTV:

Điều kiện: tức là nội dung của RBTV từ đó xác định cách biểu diễn.

Bối cảnh: RBTV xảy ra trên một hay nhiều quan hệ, cụ thể là các quan hệ nào.

Tầm ảnh hưởng: khả năng tính toàn vẹn dữ liệu bị vi phạm.

Hành động: cần phải có khi phát hiện có RBTV bị vi phạm.

Page 5: Phan4

Điều kiện của RBTV (1/4)

• Đ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 Ngôn ngữ đại số tập hợp, đại số quan hệ. Các phụ thuộc hàm

VD: Cho 1 CSDl quản lý hóa đơn bán hàng gồm các bảng:

HOADON

SOHOADON SOMATHANG TONGTRIGIA

DANHMUCHANG

MAHANG TENHANG DONVI

CHITIETHOADON

SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA

Page 6: Phan4

Điều kiện của RBTV (2/4)

Ràng buộc R1: “Mỗi hóa đơn có một số hóa đơn riêng biệt không trùng với hóa đơn khác”:

Biễu diễn: ∀ hđ1, hđ2 HOADON, hđ1 ≠ hđ2∈ ⇒ hđ1.SOHOADON ≠ hđ2.SOHOADON.

Ràng buộc R2:”SOMATHANG = số bộ củaCHITIETHOADON có cùng SOHOADON

Biểu diễn: hđ H”AĐƠN thì: ∀ ∈ hđ.SOMATHANG= COUNT (cthđ ∈ CHITIETHOADON,

cthđ.SOHOADON = hđ.SOHOADON)

HOADON

SOHOADON SOMATHANG TONGTRIGIA

CHITIETHOADON

SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA

Page 7: Phan4

Điều kiện của RBTV (3/4)

Ràng buộc R3 : “Tổng các trị giá của các mặt hàng trong CHITIETHOAĐON có cùng SOHOADON phải bằng TONGTRIGIA ghi trong HOADON”:

Biểu diễn: hđ H∀ ∈ OAĐON thì: hđ.TONGTRIGIA= SUM

(CHITIETHOADON.TRIGIA) đối với các cthđ ∈CHITIETHOADON sao cho: cthđ.SOHOADON=hđ.SOHOADON

HOADON

SOHOADON SOMATHANG

TONGTRIGIA

A001 3 1.400.000

A002 1 600.000

CHITIETHOADON

SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA

A001 KTS035 2 500.000 1.000.000

A001 MG047 1 400.000 400.000

A002 LCD022 1 600.000 600.000

Page 8: Phan4

Điều kiện của RBTV (4/4)

Ràng buộc R4: “Mỗi bộ của CHITIETHOADON phải có MAHANG thuộc về DANHMUCHANG”:

Biểu diễn: CHITIETHOADON [MAHANG] ⊆ DMHANG [MAHANG]

∀ cthđ ∈ CHITIETHOADON, hh ∃ ∈ DANHMUCHANG, sao cho cthđ.MAHANG=hh.MAHANG

DANHMUCHANG

MAHANG TENHANG DONVI

KTS035 Máy ảnh KTS Canon cái

LCD022 Tivi LCD SamSung cái

CHITIETHOADON

SOHOADON MAHANG SOLUONGDAT DONGIA TRIGIA

A001 KTS035 2 500.000 1.000.000

A002 LCD022 1 600.000 600.000

Page 9: Phan4

Bối cảnh của RBTV

• Bối cảnh của RBTV:

Trong ví dụ trên bối cảnh của các ràng Trong ví dụ trên, bối cảnh của các ràng buộc toàn vẹn như sau:

R1 :chỉ là một quanhệ HOADON. R2 : 2 quan hệ HOADON và CHITIETHOADON. R3 : 2 quan hệ HOADON và CHITIETHOADON. R4 : 2 quan hệ CHITIETHOADON và DANHMUCHANG.

Page 10: Phan4

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

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

Một RBTV có thể liên quan đến một số quan hệ, và chỉ khi có thao tác cập nhật (Thêm, Sửa, Xóa) mới có nguy cơ dẫn đến vi phạm RBTV.

Cần xác định rõ thao tác nào dẫn đến việc cần xác định rõ thao tác nào dẫn đến việc cần phải kiểm tra RBTV.

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

Page 11: Phan4

Bảng tầm ảnh hưởng (1/3)

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

Bảng tầm ảnh hưởng gồm 4 cột :cột 1 chứa tên các bảng liên quan tới RBTV; 3 cột tiếp theo là thao tácThêm/ Sửa / Xóa1 bộ giá trị.

Nếu RBTV có nguy cơ bị vi phạm thì tại ô đó người ta đánh dấu bằng dấu cộng (+).

Có thể chỉ rõ thêm các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm RBTV bằng cách liệt kê chúng dưới dấu (+).

Nếu RBTV không có nguy cơ bị vi phạm kh icập nhật CSDL thì đánh dấu trừ (-).

Nếu không bị vi phạm vì không được phép sửa đổi thì ký hiệu là trừ với dấu sao ( -(*) ).

VD: <Xem trang sau>

Page 12: Phan4

Bảng tầm ảnh hưởng (2/3)

Bảng tầm ảnh hưởng của R1,R2,R3,R4:R1

Quan hệ Thêm Sửa Xóa

HOADON + (SOHOADON) - (*) -

R2

Quan hệ Thêm Sửa Xóa

HOADON + +(SOMATHANG) -

CHITIETHOADON + - +

R3

Quan hệ Thêm Sửa Xóa

HOADON + +(TONGTRIGIA) -

CHITIETHOADON + +(TRIGIA) +

R4

Quan hệ Thêm Sửa Xóa

CHITIETHOADON + (MAHANG) - (*) -

DANHMUCHANG - - (*) +

Page 13: Phan4

Bảng tầm ảnh hưởng (3/3)

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

QH HOADON CHITIETHOADON DANHMUCHANG

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

R1 + - (*) -

R2 + + - + - +

R3 + + - + + +

R4 + - (*) - - - (*) +

Page 14: Phan4

Hành động khi vi phạm RBTV

• Hành động khi RBTV bị vi phạm

Hành động (phản ứng) gồm 2 phần:

Thông báo: thông báo cho người dùng biết dữ liệu vi phạm RBTV nào và cần sửa lại như thế nào.

Xử lý: Đưa ra phương án xử lý khi RBTV bị vi phạm, có thể từ chối thao tác hoặc tiếp tục cho hiệu chỉnh dữ liệu.

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

Đưa ra thông báo và yêu cầu sửa chữa dữ liệu cho phù hợp với RBTV. Thông báo phải đầy đủ và tạo được sự thân thiện với người sử dụng.Giải pháp này là phù hợp cho việc xử lý thời gian thực.

Từ chối thao tác cập nhật.Giải pháp này là phù hợp đối với việc xử lý theo lô (Batch processing).

Page 15: Phan4

Phân loại ràng buộc toàn vẹn

• RBTV có bối cảnh là 1 bảng:

RBTV về miền giá trị RBTV về miền giá trị.

RBTV liên thuộc tính.

RBTV liên bộ.

• RBTV có bối cảnh là nhiều bảng:

RBTV về phụ thuộc tồn tại.

RBTV liên thuộc tính – liên quan hệ.

RBTV liên bộ – liên quan hệ.

RBTV do có chu trình.

Page 16: Phan4

RBTV về miền giá trị

• RBTV về miền giá trị

Trong hầu hết các CSDL quan hệ loại RBTV này là rất phổ biến.

Mỗi thuộc tính được đặc trưng không chỉ 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 đó.

Do đó,khi thực hiện các thao tác cập nhật (thêm, xóa, sửa) cho quan hệ đều phải kiểm tra RBTV này.

VD:Trong quan hệ KetQUA-THI(MASV, MAMH, LANTHI, DIEM), do quy định mỗi sinh viên chỉ được thi 1 môn tối đa 3 lần, và điểm thi của môn học trong mọi lần thi không bị âm và không vượt quá 10.

Có 2 RBTV về miền giá trị trong quan hệ:R1: kq KQUẢ-THI thì0 ≤ kq.Lầnthi ≤ 3 ∀ ∈R2: kq KQUẢ-THI thì0 ≤ kq.Điểm ≤ 10 ∀ ∈

Page 17: Phan4

RBTV liên thuộc tính

• RBTV liên thuộc tính

Đó là loại RBTV có liên quan tới nhiều thuộc tính của một quan hệ.

Thông thường đó là các phụ thuộc tính toán, hoặc một suy diễn từ giá trị của một hay nhiều thuộc tính trong cùng một bộ giá trị.

VD: Quan hệ NHANVIEN (MANV, HOTEN, PHAI, NGAYSINH, NGAY-TD, HESOLUONG) Với quy định18 tuổi trở lên mới được tuyển. Ta có RBTV liên thuộc tính sau:

∀ nv∈NHANVIEN/Year(nv.NGAY-TD)–Year(nv.NGAYSINH) ≥18

NHANVIEN

MANV HOTEN PHAI NGAYSINH NGAY-TD HESOLUONG

KT025 Trần Tiến 1 02/12/1978 11/05/2008 3.0

HM011 Trần Thu Hà 0 16/04/1989 12/10/2010 1.8

Page 18: Phan4

RBTV liên bộ

• RBTV liên bộ

Liên quan tới 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ụ: Qui định điểm thi phải >=0 và <= 10 và điểm thi lần sau >= lần trước:

∀ kq K∈ ETQUATHI

Nếu kq.LANTHI = 1 thì 0 ≤ kq.ĐIEM ≤ 10 hoặc:

Nếu kq.LANTHI> 1 thì kq’ K∃ ∈ ETQUATHI

Sao cho kq’.LANTHI=kq.LANTHI và kq.DIEM ≥ kq’.DIEM

KETQUATHI

MSSV LANTHI DIEM LANTHI DIEM

080095T 1 9

080173T 1 5 2 10

090051T 1 4 2 3

Status

OK

OK

NOT OK

Page 19: Phan4

RBTV về phụ thuộc tồn tại

• RBTV về phụ thuộc tồn tại:

RBTV về phụ thuộc tồn tại còn được gọi là phụ thuộcvề khóa ngoại. Đây là loại RBTV phổ biến trong các CSDL.

Bộ giá trị của quan hệ này được thêm vào một cách hợp lệ nếu tồn tại một bản ghi tương ứng của 1 quan hệ khác.

Phụ thuộc tồn tại xảy ra nếu có một trong hai trường hợp sau:

Có sự hiệndiệncủa khóa ngoại.

Có sự lồng khóa giữa các quan hệ. VD: mỗi lớp phải thuộc một khoa

LOP

MALOP TENLOP

08TH1D Tin học khóa 2008

08TA1D Anh văn khóa 2008

DANHSACHLOP-KHOA

MALOP TENKHOA

08TH1D Công nghệ thông tin

08TA1D Ngoại ngữ

Page 20: Phan4

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

• RBTV liên thuộc tính – liên quan hệ:

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

Ví dụ: Ngày giao hàng phải sau ngày đặt

HOADON.NGAYGIAO >= DATHANG.NGAYDATDATHANG

MADON-DH MAHANG SOLUONG NGAYDAT NGUOIDAT

DH033 TV017 1 20/09/2010 Nguyễn Văn Minh

DH034 MG005 1 20/09/2010 Nguyễn Văn Minh

DH035 DT012 1 21/09/2010 Trịnh Bảo Chi

HOADON

MAHOADON MADON-DH NGAYGIAO MAHANG SOLUONG THANHTIEN

HD053 DH033 26/09/2010 TV017 1 3.950.000

HD053 DH034 26/09/2010 MG005 1 3.500.000

HD054 DH035 27/09/2010 DT012 1 1.100.00

Page 21: Phan4

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

• 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 1 quan hệ khác.

Ví dụ: Mỗi phiếu mượn chỉ được mượn tối đa 3 quyển sách.

PHIEUMUON

MAPM SOLUONG NGAYMUON TENNGUOIMUON

PM032 3 22/06/2010 Lê Văn Linh

PM033 1 22/06/2010 Lý Minh Hà

CHITIET-PHIEUMUON

MAPM TENSACH NXB

PM032 Giáo trình Mỹ học Giáo dục

PM032 Không gia đình Văn học

PM032 Cánh đồng bất tận Hôi nhà văn

PM033 Cơ sở tin học Giáo dục

Page 22: Phan4

RBTV do có chu trình (1/5)

• 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ễn1 quan hệ hoặc1 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ởi một nút tròn đen nhỏ hơn.

Các nút đượcchỉ 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ởi một cung nối giữa nút tròn trắng và nút tròn đen đó.

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

Sự hiện diện này làm nảy sinh một vấn đề mới: Xác định khả năng đảm bảo tính nhất quán của dữ liệu, đó là một RBTV, do sự hiện diện của chu trình.

Page 23: Phan4

RBTV do có chu trình (2/5)

• Ví dụ:

Q1 (Mã-nhân-viên, Mã-phòng)

Q2 (Mã-phòng, Mã-đề-án)

Q3 (Mã-đề-án, Tên-đề-án)

Q4 (Mã-đề-án, Mã-nhân-viên)

Page 24: Phan4

RBTV do có chu trình (3/5)

• Giả thiết 1: Với tân từ sau:

Mỗi nhân viên được phân công vào tất cả các đề án do phòng đó phụ trách.

2 con đường mang ý nghĩagiống nhau. Đường dài hơn Q1 kết nối với Q2 (ký hiệu là Q1 I><I Q2) ? con đường ngắn hơn Q4 khi cùng xác định 1 đề án mà 1 nhân viên tham gia vào. Đây là một chu trình giả.

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 [Mã-nhân-viên, Mã-đề-án] = Q4 [Mã-nhân-viên, Mã-đề-án]

Page 25: Phan4

RBTV do có chu trình (4/5)

• Giả thiết 2: Với tân từ sau:

Mỗi nhân viên được phân công vào một số đề án do phòng đó phụ trách.

Con đường ngắn Q4 phụ thuộc vào con đường dài Q1 I><I Q2, vì 1 nhân viên có thể không tham gia vào tất cả các đề án do phòng mình phụ trách. Chu trình trên mang ý nghĩa thực sự.

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

Q4 [Mã-nhân-viên.Mã-đề-án] ? Q1 I><I Q2 [Mã-nhân-viên. Mã-đề-án]

Page 26: Phan4

RBTV do có chu trình (5/5)

• Giả thiết 3: Với tân từ sau:

Mỗi nhân viên được phân công vào những đề án bất kỳ.

2 con đường hoàn toàn độclập nhau, không liên quan gì tới nhau, mang ý nghĩa hoàn toàn khác nhau.

Do đó không có RBTV.

Page 27: Phan4

Tài liệu tham khảo

• Giáo trình CSDL, ThS Lê Thị Ngọc Thảo - ĐH Tôn Đức Thắng.