RÀNG BUC TOÀN VN
ThS. Dương Phi Long Email: longdp@uit.edu.vn
Chương 5:
TRƯỜNG ÐẠI HC CÔNG NGH THÔNG TIN
KHOA H THNG THÔNG TIN
Tài liu bài ging:
MÔN CƠ S D LIU
01
02
03
2
NI DUNG BÀI HC
Gii thiu
Các đặc trưng
Phân loi
3
Gii thiu
Ràng buc toàn vn
4
Gii thiu
- Các RBTV là nhng yêu cu mà tt c th hin ca quan h phi
tha.
- Nhm đảm bo:
CSDL luôn đúng v mt ng nghĩa
Tính nht quán ca d liu
- RBTV xut phát t:
Yêu cu qun lý thc tế: đim, ngày giao hàng/ngày đặt hàng,
Mô hình d liu (quan h): khóa chính, khóa ngoi
5
Các đc trưng ca
Ràng buc toàn vn
6
Các đặc trưng ca Ràng buc toàn vn
- Ni dung: phát biu bng ngôn ng hình thc (phép tính quan
h, đại s quan h, mã gi,…)
- Bi cnh: là nhng quan h có kh năng làm cho RBTV b vi
phm.
- Tm nh hưởng: là bng 2 chiu, xác đ nh các thao tác nh
hưởng (+) và thao tác không nh hưởng (-) lên các quan h
nm trong bi cnh.
7
Các đặc trưng ca Ràng buc toàn vn
- Bng Tm nh hưởng có dng:
Thêm Xóa Sa
Quan h 1 + + - (*)
Quan h
Quan h n - - + (A)
Ký hiu + Có th gây ra vi phm RBTV
Ký hiu - Không th gây ra vi phm RBTV
Ký hiu + (A) Có th gây ra vi phm RBTV khi thao tác trên thuc tính A
Ký hiu (*) Không th gây ra vi phm RBTV do thao tác không thc hin được
8
Các đặc trưng ca Ràng buc toàn vn
- Mt s quy đ nh v Bng Tm nh hưởng:
Nhng thuc tính khóa (thuc tính nm trong khóa chính ca
quan h) không được phép sa giá tr.
Thao tác thêm và xóa xét trên mt b giá tr ca quan h.
Thao tác sa xét tng thuc tính ca quan h.
Trước khi xét thao tác thc hin có th làm vi phm ràng
buc hay không thì CSDL phi tha ràng buc toàn vn trước.
9
Phân loi
Ràng buc toàn vn
1. RBTV bi cnh trên 1
quan h
2. RBTV bi cnh trên
nhiu quan h
10
Phân loi Ràng buc toàn vn
- RBTV có bi cnh trên 1 quan h
- RBTV có bi cnh trên nhiu quan h
11
1. RBTV có bi cnh trên 1 quan h
- RBTV có bi cnh trên 1 quan h
Min giá tr
Liên b
Liên thuc tính
12
1.1. RBTV min giá tr
- Quy định min giá tr ca thuc tính
- VD1: NHANVIEN (MaNV, HoTen, GT, SoDT, DChi)
Gii tính ca nhân viên ch có th Nam hoc N
Bi cnh: NHANVIEN
Ni dung: 𝑛𝑣 𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁: 𝑛𝑣. 𝐺𝑇 = 𝑁𝑎𝑚
!
𝑛𝑣. 𝐺𝑇 = ′𝑁𝑢
!
Bng tm nh hưởng:
Thêm Xóa Sa
NHANVIEN
+ - + (GT)
13
1.1. RBTV min giá tr
- VD2: KETQUA (MaHS, MaMon, HK, NamHoc, Diem)
Đim ca hc sinh trong quan h KETQUA là thang đim 10
Bi cnh: KETQUA
Ni dung: 𝑘𝑞 𝐾𝐸𝑇𝑄𝑈𝐴: 𝑘𝑞. 𝐷𝑖𝑒𝑚 0 𝑘𝑞. 𝐷𝑖𝑒𝑚 10
Bng tm nh hưởng:
Thêm Xóa Sa
KETQUA
+ -
+ (Diem)
14
1.2. RBTV Liên thuc tính
- Ràng buc gia các thuc tính khác nhau trong cùng mt quan h
- VD3: DUAN (MaDA, TenDA, DDiem_DA, MaPH, NgBD_DK, NgKT_DK)
Ngày bt đầu ca d án phi nh hơn ngày kết thúc ca d án đó
Bi cnh: DUAN
Ni dung: 𝑑𝑎 𝐷𝑈𝐴𝑁: 𝑑𝑎.𝑁𝑔𝐵𝐷_𝐷𝐾 < 𝑑𝑎.𝑁𝑔𝐾𝑇_𝐷𝐾
Bng tm nh hưởng:
Thêm Xóa Sa
DUAN
+ -
+ (NgBD_DK, NgKT_DK)
15
1.2. RBTV Liên thuc tính
- VD4: NHANVIEN (MaNV, HoTen, NgVaoLam, Luong)
Nhân viên có ngày vào làm trước năm 2005 thì lương ti thiu là 15000000
Bi cnh: NHANVIEN
Ni dung: 𝑛𝑣 𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁:𝑌𝐸𝐴𝑅 𝑛𝑣.𝑁𝑔𝑉𝑎𝑜𝐿𝑎𝑚 < 2005
𝑛𝑣.𝐿𝑢𝑜𝑛𝑔 15000000
Bng tm nh hưởng:
Thêm Xóa Sa
NHANVIEN
+ -
+ (NgVaoLam, Luong)
16
1.3. RBTV Liên b
- Ràng buc gia các b giá tr khác nhau trong cùng mt quan h
- Các loi RBTV Liên b ph biến:
RBTV khóa chính
VD5: Mi d án có mt mã s để phân bit vi các d án khác
RBTV duy nht (Unique)
VD6: Tên mi phòng ban phi khác nhau
RBTV v s b có trong mt quan h
VD7: Mi d án ti đa 15 nhân viên tham gia
17
1.3. RBTV Liên b
- VD5: DUAN (MaDA, TenDA, DDiem_DA, MaPH, NgBD_DK, NgKT_DK)
Mi d án có mt d án để phân bit vi các d án khác
Bi cnh: DUAN
Ni dung: 𝑑𝑎1,𝑑𝑎2 𝐷𝑈𝐴𝑁: 𝑑𝑎1 𝑑𝑎2 (𝑑𝑎1.𝑀𝑎𝐷𝐴 𝑑𝑎2.𝑀𝑎𝐷𝐴)
Bng tm nh hưởng:
Thêm Xóa Sa
DUAN
+ -
+ (MaDA)
18
1.3. RBTV Liên b
- VD6: PHONGBAN (MaPhong, TenPhong, TrPhong, NgayNhanChuc)
Tên mi phòng ban phi khác nhau
Bi cnh: PHONGBAN
Ni dung: 𝑝𝑏1,𝑝𝑏2 𝑃𝐻𝑂𝑁𝐺𝐵𝐴𝑁:𝑝𝑏1 𝑝𝑏2
(𝑝𝑏1.𝑇𝑒𝑛𝑃ℎ𝑜𝑛𝑔 𝑝𝑏2.𝑇𝑒𝑛𝑃ℎ𝑜𝑛𝑔)
Bng tm nh hưởng:
Thêm Xóa Sa
PHONGBAN
+ -
+ (TenPhong)
19
1.3. RBTV Liên b
- VD7: PHANCONG (MaNV, MaDA, ThoiGian)
Mi d án có ti đa 15 nhân viên tham gia
Bi cnh: PHANCONG
Ni dung:
𝑝𝑐1 𝑃𝐻𝐴𝑁𝐶𝑂𝑁𝐺:𝐶𝑂𝑈𝑁𝑇
!"# %&'()*(+:!"-./0 1'2!"#./01'
𝑝𝑐2.𝑀𝑎𝑁𝑉 15
Bng tm nh hưởng:
Thêm Xóa Sa
PHANCONG
+ -
+ (MaDA)
20
1.3. RBTV Liên b
- VD8: NHANVIEN (MaNV, HoTen, HeSo, MucLuong)
Các nhân viên có cùng h s lương thì cùng mc lương
Bi cnh: NHANVIEN
Ni dung:
𝑛𝑣1,𝑛𝑣2 𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁:𝑛𝑣1.𝐻𝑒𝑆𝑜 = 𝑛𝑣2.𝐻𝑒𝑆𝑜
(𝑛𝑣1.𝑀𝑢𝑐𝐿𝑢𝑜𝑛𝑔 = 𝑛𝑣2.𝑀𝑢𝑐𝐿𝑢𝑜𝑛𝑔)
Bng tm nh hưởng:
Thêm Xóa Sa
NHANVIEN
+ -
+ (HeSo, MucLuong)

Preview text:

TRƯỜNG ÐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN
Tài liệu bài giảng:
MÔN CƠ SỞ DỮ LIỆU Chương 5: RÀNG BUỘC TOÀN VẸN
ThS. Dương Phi Long – Email: longdp@uit.edu.vn NỘI DUNG BÀI HỌC 01 Giới thiệu 02 Các đặc trưng 03 Phân loại 2 Giới thiệu Ràng buộc toàn vẹn 3 Giới thiệu
- Các RBTV là những yêu cầu mà tất cả thể hiện của quan hệ phải thỏa. - Nhằm đảm bảo:
• CSDL luôn đúng về mặt ngữ nghĩa
• Tính nhất quán của dữ liệu - RBTV xuất phát từ:
• Yêu cầu quản lý thực tế: điểm, ngày giao hàng/ngày đặt hàng, …
• Mô hình dữ liệu (quan hệ): khóa chính, khóa ngoại 4 Các đặc trưng của Ràng buộc toàn vẹn 5
Các đặc trưng của Ràng buộc toàn vẹn
- Nội dung: phát biểu bằng ngôn ngữ hình thức (phép tính quan
hệ, đại số quan hệ, mã giả,…)
- Bối cảnh: là những quan hệ có khả năng làm cho RBTV bị vi phạm.
- Tầm ảnh hưởng: là bảng 2 chiều, xác định các thao tác ảnh
hưởng (+) và thao tác không ảnh hưởng (-) lên các quan hệ nằm trong bối cảnh. 6
Các đặc trưng của Ràng buộc toàn vẹn
- Bảng Tầm ảnh hưởng có dạng: Thêm Xóa Sửa Quan hệ 1 + + - (*) Quan hệ … Quan hệ n - - + (A) Ký hiệu +
Có thể gây ra vi phạm RBTV Ký hiệu -
Không thể gây ra vi phạm RBTV Ký hiệu + (A)
Có thể gây ra vi phạm RBTV khi thao tác trên thuộc tính A Ký hiệu – (*)
Không thể gây ra vi phạm RBTV do thao tác không thực hiện được 7
Các đặc trưng của Ràng buộc toàn vẹn
- Một số quy định về Bảng Tầm ảnh hưởng:
• Những thuộc tính khóa (thuộc tính nằm trong khóa chính của
quan hệ) không được phép sửa giá trị.
• Thao tác thêm và xóa xét trên một bộ giá trị của quan hệ.
Thao tác sửa xét từng thuộc tính của quan hệ.
• Trước khi xét thao tác thực hiện có thể làm vi phạm ràng
buộc hay không thì CSDL phải thỏa ràng buộc toàn vẹn trước. 8
1. RBTV có bối cảnh trên 1 Phân loại quan hệ Ràng buộc toàn vẹn 2. RBTV có bối cảnh trên nhiều quan hệ 9
Phân loại Ràng buộc toàn vẹn
- RBTV có bối cảnh trên 1 quan hệ
- RBTV có bối cảnh trên nhiều quan hệ 10
1. RBTV có bối cảnh trên 1 quan hệ
- RBTV có bối cảnh trên 1 quan hệ • Miền giá trị • Liên bộ • Liên thuộc tính 11 1.1. RBTV miền giá trị
- Quy định miền giá trị của thuộc tính
- VD1: NHANVIEN (MaNV, HoTen, GT, SoDT, DChi)
Giới tính của nhân viên chỉ có thể Nam hoặc Nữ • Bối cảnh: NHANVIEN
• Nội dung: ∀𝑛𝑣 ∈ 𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁: 𝑛𝑣. 𝐺𝑇 = ′𝑁𝑎𝑚! ∨ 𝑛𝑣. 𝐺𝑇 = ′𝑁𝑢!
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa NHANVIEN + - + (GT) 12 1.1. RBTV miền giá trị
- VD2: KETQUA (MaHS, MaMon, HK, NamHoc, Diem)
Điểm của học sinh trong quan hệ KETQUA là thang điểm 10 • Bối cảnh: KETQUA
• Nội dung: ∀𝑘𝑞 ∈ 𝐾𝐸𝑇𝑄𝑈𝐴: 𝑘𝑞. 𝐷𝑖𝑒𝑚 ≥ 0 ∧ 𝑘𝑞. 𝐷𝑖𝑒𝑚 ≤ 10
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa KETQUA + - + (Diem) 13 1.2. RBTV Liên thuộc tính
- Ràng buộc giữa các thuộc tính khác nhau trong cùng một quan hệ
- VD3: DUAN (MaDA, TenDA, DDiem_DA, MaPH, NgBD_DK, NgKT_DK)
Ngày bắt đầu của dự án phải nhỏ hơn ngày kết thúc của dự án đó • Bối cảnh: DUAN
• Nội dung: ∀𝑑𝑎 ∈ 𝐷𝑈𝐴𝑁: 𝑑𝑎. 𝑁𝑔𝐵𝐷_𝐷𝐾 < 𝑑𝑎. 𝑁𝑔𝐾𝑇_𝐷𝐾
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa DUAN + - + (NgBD_DK, NgKT_DK) 14 1.2. RBTV Liên thuộc tính
- VD4: NHANVIEN (MaNV, HoTen, NgVaoLam, Luong)
Nhân viên có ngày vào làm trước năm 2005 thì lương tối thiểu là 15000000 • Bối cảnh: NHANVIEN
• Nội dung: ∀𝑛𝑣 ∈ 𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁: 𝑌𝐸𝐴𝑅 𝑛𝑣. 𝑁𝑔𝑉𝑎𝑜𝐿𝑎𝑚 < 2005
⟹ 𝑛𝑣. 𝐿𝑢𝑜𝑛𝑔 ≥ 15000000
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa NHANVIEN + - + (NgVaoLam, Luong) 15 1.3. RBTV Liên bộ
- Ràng buộc giữa các bộ giá trị khác nhau trong cùng một quan hệ
- Các loại RBTV Liên bộ phổ biến: • RBTV khóa chính
VD5: Mỗi dự án có một mã số để phân biệt với các dự án khác • RBTV duy nhất (Unique)
VD6: Tên mỗi phòng ban phải khác nhau
• RBTV về số bộ có trong một quan hệ
VD7: Mỗi dự án tối đa 15 nhân viên tham gia 16 1.3. RBTV Liên bộ
- VD5: DUAN (MaDA, TenDA, DDiem_DA, MaPH, NgBD_DK, NgKT_DK)
Mỗi dự án có một dự án để phân biệt với các dự án khác • Bối cảnh: DUAN
• Nội dung: ∀𝑑𝑎1, 𝑑𝑎2 ∈ 𝐷𝑈𝐴𝑁: 𝑑𝑎1 ≠ 𝑑𝑎2 ⟹ (𝑑𝑎1. 𝑀𝑎𝐷𝐴 ≠ 𝑑𝑎2. 𝑀𝑎𝐷𝐴)
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa DUAN + - + (MaDA) 17 1.3. RBTV Liên bộ
- VD6: PHONGBAN (MaPhong, TenPhong, TrPhong, NgayNhanChuc)
Tên mỗi phòng ban phải khác nhau • Bối cảnh: PHONGBAN
• Nội dung: ∀𝑝𝑏1, 𝑝𝑏2 ∈ 𝑃𝐻𝑂𝑁𝐺𝐵𝐴𝑁: 𝑝𝑏1 ≠ 𝑝𝑏2
⟹ (𝑝𝑏1. 𝑇𝑒𝑛𝑃ℎ𝑜𝑛𝑔 ≠ 𝑝𝑏2. 𝑇𝑒𝑛𝑃ℎ𝑜𝑛𝑔)
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa PHONGBAN + - + (TenPhong) 18 1.3. RBTV Liên bộ
- VD7: PHANCONG (MaNV, MaDA, ThoiGian)
Mỗi dự án có tối đa 15 nhân viên tham gia • Bối cảnh: PHANCONG • Nội dung:
∀𝑝𝑐1 ∈ 𝑃𝐻𝐴𝑁𝐶𝑂𝑁𝐺: 𝐶𝑂𝑈𝑁𝑇 !"# ∈ %&'()*(+:!"-./01'2!"#./01' 𝑝𝑐2. 𝑀𝑎𝑁𝑉 ≤ 15
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa PHANCONG + - + (MaDA) 19 1.3. RBTV Liên bộ
- VD8: NHANVIEN (MaNV, HoTen, HeSo, MucLuong)
Các nhân viên có cùng hệ số lương thì cùng mức lương • Bối cảnh: NHANVIEN • Nội dung:
∀𝑛𝑣1, 𝑛𝑣2 ∈ 𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁: 𝑛𝑣1. 𝐻𝑒𝑆𝑜 = 𝑛𝑣2. 𝐻𝑒𝑆𝑜
⟹ (𝑛𝑣1. 𝑀𝑢𝑐𝐿𝑢𝑜𝑛𝑔 = 𝑛𝑣2. 𝑀𝑢𝑐𝐿𝑢𝑜𝑛𝑔)
• Bảng tầm ảnh hưởng: Thêm Xóa Sửa NHANVIEN + - + (HeSo, MucLuong) 20