Tập con H các thuộc tính của R gọi là khoá ngoại của R tham chiếu đến lược đồ Q, nếu Q có khoá K gồm các thuộc tính có thể dưới tên khác của H thoả mãn: Với mọi quan hệ r và q là các
Trang 1Chương 4 mô hình cơ sở dữ liệu quan hệ
Mô hình dữ liệu quan hệ (relational model) do E.F Codd (công ty IBM) đề
xuất năm 1970, và được Codd và các nhà nghiên cứu khác tiếp tục phát triển Đây
là mô hình được cài đặt nhiều nhất hiện nay
Mô hình dữ liệu quan hệ biểu diễn dữ liệu dưới dạng bảng hay quan hệ Mô
hình quan hệ được xây dựng trên nền tảng Đại số quan hệ, vì thế nó có cơ sở toán học vững chắc
Mô hình dữ liệu quan hệ có ba thành phần cơ bản sau:
1) Cấu trúc dữ liệu Dữ liệu được tổ chức dạng bảng (quan hệ)
2) Thao tác dữ liệu Các phép tính mạnh (ngôn ngữ truy vấn SQL) được sử
dụng để thao tác xử lý dữ liệu dạng quan hệ
3) Toàn vẹn dữ liệu Các chức năng tiện ích đảm bảo các qui tắc ràng buộc
Quan hệ là tập con của tích đề-các của một hoặc nhiều miền Quan hệ có thể
có hữu hạn hoặc vô hạn số phần tử Trong giáo trình này ta giả thiết rằng quan hệ
có hữu hạn phần tử
Trang 2◊ Ví dụ:
Cho D1 = {0,1}, D2 = {a,b,c} Tập r = {(0,a),(1,b),(1,c)}⊂ D1 ì D2, vậy r là
quan hệ trên D1 và D2
Ta nói quan hệ r có bậc n nếu r là tập con của tích đề-các của n miền
Mỗi phần tử của quan hệ gọi là bộ (tuple) hay bản ghi (record) Mỗi bộ của
quan hệ bậc n, còn gọi là nưbộ, có n thành phần Mỗi thành phần của bộ là nguyên tố, có nghĩa không thể phân tách được thành các thành phần nhỏ hơn
Để trực quan ta có thể coi quan hệ như một bảng (table) trong đó mỗi hàng là
một bộ (bản ghi) và mỗi cột ứng với một thành phần
Mỗi cột của quan hệ được gán một tên gọi là thuộc tính
Tập hợp tất cả các tên thuộc tính của một quan hệ gọi là lược đồ quan hệ
Lưu ý rằng một quan hệ chỉ có một lược đồ quan hệ, nhưng có thể nhiều quan
Như vậy quan hệ r có các thuộc tính D1 và D2 và có ba bản ghi (0,a), (1,b) và
(1,c) Lược đồ quan hệ của r là {D1, D2} hoặc (D1, D2)
• Các tính chất của quan hệ
- Các giá trị trên cột phải cùng một miền giá trị và đơn trị:
Giá trị trên giao của cột và hàng đơn trị, không chấp nhận nhiều giá trị
- Mỗi hàng là duy nhất:
Không cho phép hai hàng hoàn toàn giống nhau
Chúng ta thống nhất sử dụng các ký hiệu sau
Quan hệ r có các thuộc tính A1, A2, , An được ký hiệu là
r(A1, A2, , An)
Trang 3Có thể dùng ký hiệu, chẳng hạn R, để chỉ một l−ợc đồ quan hệ với các thuộc tính A1, A2, , An nh− sau
R = (A1, A2, , An)
Cho r là quan hệ với l−ợc đồ quan hệ R=(A1, A2, , An), t là một bộ của r, S
là tập con các thuộc tính của R, S ⊂ R
Khi đó t(S) ký hiệu bộ các thành phần của t ứng với các thuộc tính trong tập
S Nếu A là một thuộc tính thì t(A) chính là giá trị thành phần của t ứng với thuộc
Trang 4Cty Công nghệ phẩm 21 Phan Chu Trinh Sữa 6500
Cty Công nghệ phẩm 21 Phan Chu Trinh Đường 5000
Cty Công nghệ phẩm 21 Phan Chu Trinh Cà phê 20500
Cty Thực phẩm 40 Nguyễn Huệ Đường 6500
Cty Thực phẩm 40 Nguyễn Huệ Bột mì 5000
Cty Thực phẩm 40 Nguyễn Huệ Bia 4000
Cty Lương thực 16 Lý Thường Kiệt Gạo 3000
Cty Lương thực 16 Lý Thường Kiệt Sữa 7000
Cty Lương thực 16 Lý Thường Kiệt Bột mì 4500
Bảng 1, bảng 2 và bảng 3 tạo nên một cơ sở dữ liệu quan hệ Ta đặt tên cơ sở dữ liệu quan hệ này là KháchưHàng gồm 3 quan hệ cùng các lược đồ quan
hệ như sau:
CUNGUNG(Ten, DiaChi, Hang, DonGia)
KHACH(Ten, DiaChi, SoDu)
HOPDONG(SoHD, TenKH, Hang, SoLuong)
• Lưu ý: Cùng một lược đồ cơ sở dữ liệu quan hệ áp dụng nhiều lần có thể có
nhiều cơ sở dữ liệu quan hệ khác nhau Chẳng hạn, nếu áp dụng lược đồ cơ sở dữ liệu quan hệ KháchưHàng trên cho TP.Hà nội ta sẽ có cơ sở dữ liệu quan hệ khác
◊ Ví dụ
Đây là ví dụ sẽ dùng làm cơ sở dữ liệu mẫu để mô hình hoá một công ty Các thực thể được mô hình hoá là:
- Các nhân viên, ký hiệu EMP, viết tắt từ employee
- Các dự án, ký hiệu PROJ, viết tắt từ project
Trang 5Đối với mỗi nhân viên chúng ta muốn theo dõi các thông tin sau:
- Mã số nhân viên, ký hiệu ENO, viết tắt từ employee number
- Tên nhân viên, ký hiệu ENAME, viết tắt từ employee name
- Chức danh, ký hiệu TITLE
- Lương, ký hiệu SAL, viết tắt từ salary
- Mã số dự án, ký hiệu PNO, viết tắt từ project number
- Nhiệm vụ dự án, ký hiệu RESP, viết tắt từ responsibility
- Thời gian làm việc trong dự án, ký hiệu DUR, viết tắt từ duration
Tương tự với mỗi dự án ta cần biết:
- Mã số dự án, ký hiệu PNO, viết tắt từ project number
- Tên dự án, ký hiệu PNAME, viết tắt từ project name
- Kinh phí dự án, ký hiệu BUDGET
Các lược đồ quan hệ (relation scheme) cho cơ sở dữ liệu này có thể định nghĩa như sau:
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
Lược đồ của EMP có 7 thuộc tính (attribute): ENO, ENAME, TITLE, SAL, PNO, RESP, DUR
Lược đồ của PROJ có 3 thuộc tính PNO, PNAME, BUDGET
Giá trị của ENO lấy tự miền chứa các mã số nhân viên, giả sử là D1 , Giá trị của ENAME lấy tự miền chứa các tên nhân viên hợp lệ, giả sử là D2 ,
Chú ý rằng mỗi thuộc tính của mỗi quan hệ không nhất thiết phải lấy từ các miền khác nhau
Đây là một thể hiện cơ sở dữ liệu mẫu của chúng ta gồm hai bảng như sau:
EMP
E1 J.Doe Elect.Eng 40000 P1 Manager 12
E2 M.Smith Syst.Anal 34000 P1 Analyst 24
E2 M.Smith Syst.Anal 34000 P2 Analyst 6
E3 A.Lee Mech.Eng 27000 P3 Consultant 10
E3 A.Lee Mech.Eng 27000 P4 Engineer 48
E4 J.Miller Programmer 24000 P2 Programmer 18
E5 B.Casey Syst.Anal 34000 P2 Manager 24
E6 L.Chu Elect.Eng 40000 P4 Manager 48
E7 R.David Mech.Eng 27000 P3 Engineer 36
E8 J.Jones Syst.Anal 34000 P3 Manager 40
Trang 6Các cột của bảng tương ứng các thuộc tính của quan hệ Các thông tin nhập theo hàng tương ứng với các bộ hay bản ghi Dòng trên cùng biểu diễn lược đồ quan hệ của bảng
Một giá trị của thuộc tính, chẳng hạn lương của nhân viên, thời gian tham gia
dự án, tại thời điểm nào đó có thể chưa được xác định Khi đó có nhiều cách diễn giải khác nhau như “chưa được biết” hay “chưa áp dụng được” “Giá trị đặc
biệt” thường được gọi là null Giá trị null phải khác các giá trị trong miền thuộc
tính, và cũng cần phân bịêt nó với giá trị zero (với thuộc tính kiểu số) hay giá trị rỗng (với thuộc tính kiểu ký tự)
5 Khoá
a) Siêu khoá
Cho lược đồ quan hệ R=(A1, A2, , An) và tập con S ⊂ R Tập S gọi là siêu
khoá (superkey) của lược đồ R nếu các thuộc tính của S xác định duy nhất các bộ
của mỗi quan hệ của lược đồ R, tức là mọi quan hệ r của lược đồ R phải thoả
mãn:
∀ t1, t2 ∈ r: t1 ≠ t2 ⇒ ∃ A∈ S: t1(A) ≠ t2(A) (t1(S) ≠ t2(S))
Lưu ý rằng theo định nghĩa mỗi bộ là duy nhất nên đối với mỗi lược đồ quan
hệ, tập hợp tất cả thuộc tính là siêu khoá Siêu khoá là cơ sở để phân biệt hai bộ khác nhau trong một quan hệ Một lược đồ có thể có nhiều siêu khoá Tính chất của siêu khoá là quy luật được xác định trong quá trình phân tích thiết kế cơ sở dữ liệu
◊ Ghi chú
(1) Tập tất cả thuộc tính R là siêu khoá (tầm thường)
(2) S ⊂ T ⊂ R & S là siêu khoá ⇒ T là siêu khoá
◊ Ví dụ Trong cơ sở dữ liệu quan hệ KháchưHàng
- Lược đồ CUNGUNG(Ten, DiaChi, Hang, DonGia) có các siêu khoá:
S1 = { Ten, DiaChi, Hang, DonGia }
S2 = { Ten, DiaChi, Hang }
- Lược đồ HOPDONG có các siêu khoá:
S1 = {SoHD, TenKH, Hang}
S2 = {SoHD, TenKH, SoLuong}
S3 = {SoHD, TenKH}
S4 = {SoHD}
b) Khoá
Tập K các thuộc tính của lược đồ R là khoá (key) nếu K là siêu khoá cực tiểu,
tức là mọi tập con thực sự của K không phải là siêu khoá
Trang 7Trường hợp đặc biệt, nếu K là siêu khóa có một thuộc tính thì K là khóa
Các thuộc tính thuộc khoá nào đó gọi là thuộc tính khoá hay thuộc tính
nguyên tố
Thuộc tính không phải thuộc tính khoá gọi là thuộc tính không khoá
Mỗi quan hệ có ít nhất một khoá Trường hợp có nhiều khoá thì gọi các khoá
đó là khoá dự tuyển (candidate key), trong đó có một khoá là khoá chính
(primary key)
Trong lược đồ quan hệ các thuộc tính khoá chính sẽ được gạch dưới
◊ Ví dụ: Xét cơ sở dữ liệu KHACH-HANG
CUNGUNG(Ten, DiaChi, Hang, DonGia)
KHACH(Ten, DiaChi, SoDu)
HOPDONG(SoHD, TenKH, Hang, SoLuong)
◊ Ví dụ: Xét cơ sở dữ liệu EMP-PROJ
- Lược đồ PROJ có khoá là {PNO}
- Lược đồ EMP có khoá là {ENO, PNO}
Như vậy, để chỉ các thuộc tính khoá chính, các lược đồ trên sẽ được viết lại như sau:
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
◊ Ví dụ: Xét quan hệ
NHANVIEN(Manv, HoTen, NgaySinh, NoiSinh, CMND)
ở đây Manv (mã số nhân viên) và CMND (số chứng minh nhân dân) đều có thể là khoá Nếu ta chọn Manv làm khoá chính, thì CMND sẽ là khoá dự tuyển Trong trường hợp này ta viết lại lược đồ trên như sau:
NHANVIEN(Manv, HoTen, NgaySinh, NoiSinh, CMND)
c) Khoá ngoại
Trang 8Cho lược đồ R và lược đồ Q Tập con H các thuộc tính của R gọi là khoá
ngoại của R tham chiếu đến lược đồ Q, nếu Q có khoá K gồm các thuộc tính (có
thể dưới tên khác) của H thoả mãn:
Với mọi quan hệ r và q là các quan hệ của một cơ sở dữ liệu ứng với lược đồ R
- Trong cơ sở dữ liệu EMP-PROJ, lược đồ EMP có khoá ngoại PNO tham
chiếu đến khoá PNO của lược đồ PROJ
- Trong cơ sở dữ liệu KHACH-HANG, lược đồ HOPDONG có khoá ngoại
Tenkh tham chiếu đến khoá Ten của lược đồ KHACH
Trang 9Ii chuyển sơ đồ thực thể-quan hệ thành quan hệ
Phần này sẽ trình bày phương pháp chuyển sơ dồ thực thể quan hệ thành các quan hệ Công việc này có hai bước: biểu diễn thực thể và biểu diễn quan hệ
1 Biểu diễn thực thể
Mỗi kiểu thực thể trong sơ đồ thực thể quan hệ được chuyển thành quan hệ Khoá chính của thực thể trở thành khoá chính của quan hệ tương ứng Các thuộc tính không khoá của thực thể trở thành các thuộc tính không khoá của quan hệ
◊ Ví dụ
Kiểu thực thể KHACHHANG của Công ty đồ gỗ
được biến đổi thành quan hệ KHACHHANG có lược đồ
KHACHHANG(Makh, Ten, DiaChi, HoaHong)
2 Biểu diễn quan hệ
Thủ tục chuyển đổi quan hệ giữa các thực thể thành bảng quan hệ phụ thuộc vào bậc quan hệ (một ngôi, hai ngôi, ba ngôi) và lực lượng quan hệ
a Quan hệ hai ngôi 1ưn
Quan hệ hai ngôi 1ưn R
được biểu diễn bằng cách thêm thuộc tính khoá của thực thể E1 vào quan hệ biểu diễn thực thể E2 như là khoá ngoại của E2 tham chiếu đến E1
KHACH HANG maKH
HOA HONG
Trang 10◊ Ví dụ: Xét quan hệ 1ưn giữa KHACHHANG và HOPDONG của Công ty đồ gỗ
Thực thể KHACHHANG có lược đồ quan hệ
KHACHHANG(Makh, Ten, DiaChi, HoaHong)
với khoá chính là Makh Thêm thuộc tính Makh vào quan hệ biểu diễn thực thể HOPDONG ta nhận được quan hệ HOPDONG với lược đồ sau
HOPDONG(MaHD, NgayHD, NgayGH, Makh)
trong đó Makh là khoá ngoại tham chiếu đến KHACHHANG
Ta thấy rằng quan hệ 1ư1
là trường hợp riêng của quan hệ 1ưn Vì vậy ta có thêm khoá chính của E1 vào E2như là khoá ngoại, hoặc khoá chính của E2 vào E1 như là khoá ngoại
b Quan hệ hai ngôi nưn
Quan hệ hai ngôi nưn R
KHACH HANG maKH
Trang 11đ−ợc biểu diễn bằng quan hệ riêng Q Quan hệ Q có khoá chính là tổ hợp các khoá của E1 và E2 và các thuộc tính khoá khác (nếu cần), và các thuộc tính không khoá khác (nếu có) sinh ra bởi quan hệ R
◊ Ví dụ: Xét quan hệ n−n <Yêu cầu > giữa HOPDONG và SANPHAM của
Công ty đồ gỗ
Kiểu thực thể HOPDONG có l−ợc đồ quan hệ
HOPDONG(MaHD, NgayHD, NgayGH, Makh)
với khoá chính là MaHD
Kiểu thực thể SANPHAM có l−ợc đồ quan hệ
SANPHAM(MaSP, TenSP, Su_dung, Loai_go, Don_gia, So_luong)
với khoá chính là MaSP
Quan hệ <Yêu cầu> đ−ợc biểu diễn bằng quan hệ YEUCAU với l−ợc đồ
YEUCAU(MaHD, MaSP, SoLuong)
trong đó (MaHD, MaSP) là khoá chính, MaHD là khoá ngoại tham chiếu đến
HOPDONG, và MaSP là khoá ngoại tham chiếu đến SANPHAM
◊ Ví dụ: Xét quan hệ n−n <Thi> giữa SINHVIEN và MONHOC nh− sau:
hop dong
maHD
NGAY HOP DONG
NGAY GIAO HANG
maSP TEN SAN PHAM
Trang 12
Thực thể SINHVIEN chuyển thành quan hệ
SINHVIEN(Masv, HoTen, NgaySinh)
Thực thể MONHOC chuyển thành quan hệ
MONHOC(Mamh, Tenmh, SoTiet)
Quan hệ <Thi> đ−ợc biểu diễn bằng quan hệ THI với l−ợc đồ
THI(MaSV, MaMH, LanThi, Diem)
trong đó (MaSV, MaMH, LanThi) là khoá chính, MaSV là khoá ngoại tham chiếu
đến SINHVIEN, và MaMH là khoá ngoại tham chiếu đến MONHOC
maSV
HOTEN
Thi LANTHI
HoTen
NgaySinh
Trang 13Thực thể NHANVIEN và quan hệ 1ưn <Thủ Trưởng> sẽ được biểu diễn bằng quan hệ NHANVIEN với lược đồ
NHANVIEN(MaNV, HoTen, NgaySinh, MaTT)
trong đó MaTT (mã thủ trưởng) là MaNV (mã nhân viên) của thủ trưởng của nhân viên tương ứng
• Cho quan hệ một ngôi nưn R giữa các thực thể của kiểu thực thể E với khoá K
Khi đó ta biểu diễn thực thể E bằng quan hệ với các thuộc tính của thực thể E (trong đó có khoá K) Quan hệ đơn ngôi R được biểu diễn bằng quan hệ với khoá chính K, và khoá ngoại đệ qui tham chiếu đến quan hệ biểu diễn thực thể E
◊ Ví dụ: Xét quan hệ nưn <Gồm có> giữa các chi tiết
Thực thể được biểu diễn bằng quan hệ CHITIET với lược đồ
CHITIET(MaCT, TenCT, DonGia) Quan hệ đơn ngôi <Gồm có> được biểu diễn bằng quan hệ GOMCO với lược
đồ
GOMCO(MaCT, MaCTBP, SoLuong)
trong đó MaCTBP mã của chi tiết bộ phận MaCT là khoá ngoại tham chiếu đến MaCT trong chính quan hệ CHITIET MaCTBP là khoá ngoại đệ qui tham chiếu
đến MaCT trong chính quan hệ CHITIET
d Quan hệ trong ISA
Mô hình dữ liệu quan hệ không hỗ trợ trực tiếp quan hệ kiểu thực thể dưới Tuy nhiên ta có thể áp dụng các chiến lược sau để biểu diễn quan hệ trong ISA:
TenCT
DonGia
SoLuong
Trang 14i Tạo các quan hệ riêng biệt cho lớp thực thể trên và mỗi lớp thực thể
dưới của nó
ii Quan hệ của lớp thực thể trên chỉ gồm có các thuộc tính chung cho tất
cả các lớp thực thể dưới
iii Mỗi quan hệ lớp thực thể dưới chỉ chứa thuộc tính khoá chính và các
thuộc tính riêng của lớp đó
iv Các khoá chính của quan hệ thực thể trên và của mỗi quan hệ thực thể
dưới có cùng một miền giá trị
◊ Ví dụ: Sơ đồ sau biểu diễn quan hệ trong ISA giữa thực thể trên NHANVIEN
và các thực thể dưới THOIVU, BIENCHE, HOPDONG
Theo chiến lược trên, ta sử dụng các quan hệ sau để biểu diễn các thực thể cùng các quan hệ ISA:
- Thực thể trên NHANVIEN:
NHANVIEN(MANV, HOTEN, DIACHI, NGAYLV)
- Các thực thể dưới:
THOIVU(MANV, LUONG_GIO)
BIENCHE(MANV, LUONG_NAM)
HOPDONG(MANV, LUONG_NGAY)
trong đó MANV của THOIVU, BIENCHE và HOPDONG là khoá chính đồng thời là khoá ngoại tham chiếu đến MANV của NHANVIEN
Trang 15IIi qui tắc toàn vẹn
Qui tắc toàn vẹn (integrity rule) là các ràng buộc đảm bảo trạng thái nhất quán
của cơ sở dữ liệu Chúng thường được diễn tả như là các ràng buộc Ràng buộc toàn vẹn (integrity constraint) có thể thuộc loại cấu trúc hay hành vi
Ràng buộc cấu trúc (structural constraint) thừa kế từ mô hình dữ liệu, theo
nghĩa chúng giữ thông tin về các mối liên hệ dữ liệu không thể mô hình hoá tiếp
được
Ràng buộc hành vi (behavioral constraint) cho phép duy trì ngữ nghĩa các ứng
dụng Các loại phụ thuộc dữ liệu xét ở phần sau thuộc loại ràng buộc hành vi Trong phần này chúng ta chỉ đề cập các ràng buộc cấu trúc
Có các loại qui tắc toàn vẹn sau: Toàn vẹn thực thể (Entity integrity), Miền giá trị (Domains), Toàn vẹn tham chiếu (Referential integrity), Thao tác bẫy
(Triggering operations)
1 Toàn vẹn thực thể
Qui tắc toàn vẹn thực thể yêu cầu mỗi bảng quan hệ (thực thể) phải có khoá
chính, các thuộc tính khoá phải có giá trị duy nhất và khác null Qui tắc này
không cho phép hai bản ghi trùng khoá
◊ Ví dụ: Xét cơ sở dữ liệu KHACH-HANG
CUNGUNG(Ten, DiaChi, Hang, DonGia)
KHACH(Ten, DiaChi, SoDu)
HOPDONG(SoHD, TenKH, Hang, SoLuong)
Qui tắc toàn vẹn thực thể ràng buộc:
- Trong quan hệ KHACH thuộc tính khoá Ten không thể nhận giá trị null
và có giá trị không trùng nhau
- Trong quan hệ CUNGUNG cặp thuộc tính khoá (Ten, Hang) không thể
nhận giá trị null và có giá trị không trùng nhau
- Trong quan hệ HOPDONG thuộc tính khoá SoHD không thể nhận giá trị null và có giá trị không trùng nhau
◊ Ví dụ: Xét cơ sở dữ liệu
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
Qui tắc toàn vẹn thực thể ràng buộc:
- Trong lược đồ PROJ thuộc tính khoá PNO không thể nhận giá trị null và
có giá trị không trùng nhau
Trang 16- Trong lược đồ EMP cặp thuộc tính khoá (EMP, PNO) không thể nhận giá
trị null và có giá trị không trùng nhau
2 Miền giá trị
Đây là loại ràng buộc lên các giá trị hợp lệ của thuộc tính Miền giá trị là tập
hợp tất cả các loại dữ liệu và phạm vi giá trị được thuộc tính thừa nhận Định nghĩa miền giá trị xác định các tham số đặc trưng của thuộc tính: ý nghĩa
(meaning), kiểu dữ liệu (data type), độ dài (length), khuôn dạng (format), phạm
vi (range), giá trị cho phép (allowable values), tính duy nhất (uniqueness), chấp nhận giá trị null (null support)
◊ Ví dụ: Xét quan hệ
KHACH(Ten, DiaChi, SoDu)
Các thuộc tính Ten và SoDu có miền giá trị như sau
Null support : Non-null Null
3 Toàn vẹn tham chiếu
Toàn vẹn tham chiếu là ràng buộc đảm bảo tính hợp lệ của sự tham chiếu của
một đối tượng trong cơ sở dữ liệu (gọi là đối tượng tham chiếu) đến đối tượng khác (gọi là đối tượng được tham chiếu) trong cơ sở dữ liệu đó Các thuộc tính tương ứng gọi thuộc tính cặp ghép của ràng buộc tham chiếu
◊ Ví dụ: Xét các quan hệ
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
Với mỗi bộ e ∈ EMP phải tồn tại bộ p∈ PROJ sao cho
e(PNO) = p(PNO)
Thuộc tính PNO của quan hệ EMP là khoá ngoại tham chiếu đến khoá chính PNO của quan hệ PROJ: EMP.PNO→PROJ.PNO
Quan hệ EMP là quan hệ tham chiếu và quan hệ PROJ là quan hệ được tham
chiếu, với cặp ghép: (EMP.PNO, PROJ.PNO)
Trang 17Qui tắc toàn vẹn tham chiếu được xét đến trong khi cập nhật quan hệ tham chiếu hoặc quan hệ được tham chiếu Ta xét các qui tắc con sau
• Qui tắc chèn: Không thể chèn hàng mới vào quan hệ tham chiếu nếu quan hệ
được tham chiếu chưa có dữ liệu cặp ghép tương ứng
◊ Ví dụ: Xét các quan hệ EMP và PROJ Giả sử ta muốn chèn bản ghi
e = (E1, J.Doe, Elect.Eng., 40000, P5, Manager, 20)
trong đó P5 là dự án Elect.Commerce (thương mại điện tử) với kinh phí 500000 USD
Khi đó, nếu quan hệ PROJ chưa có bản ghi
p = (P5, Elect.Commerce, 500000)
thì qui tắc chèn đảm bảo không thể chèn bản ghi e vào quan hệ EMP được
Muốn chèn bản ghi e vào quan hệ EMP, trước hết ta phải chèn bản ghi p vào
ENO ENAME TITLE SAL PNO RESP DUR
E1 J.Doe Elect.Eng 40000 P1 Manager 12
E2 M.Smith Syst.Anal 34000 P1 Analyst 24
E2 M.Smith Syst.Anal 34000 P2 Analyst 6
Tuy nhiên, qui tắc toàn vẹn tham chiếu cho phép các phương án lựa chọn sau:
1) Restrict: Không cho xoá
2) Nullify: Gán giá trị null cho thuộc tính cặp ghép của các bản ghi của quan
hệ tham chiếu tham chiếu đến bản ghi bị xoá
3) Cascade: Xoá tất cả các bản ghi của quan hệ tham chiếu tham chiếu đến
bản ghi bị xoá
4 Thao tác bẫy