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

Chương 4 mô hình cơ sở dữ liệu quan hệ pot

35 354 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

Tiêu đề Chương 4 mô hình cơ sở dữ liệu quan hệ
Tác giả Trần Quốc Chiến
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Cơ sở dữ liệu
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 35
Dung lượng 347,84 KB

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

Nội dung

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 1

Chươ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 3

Có 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 4

Cty 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 6

Cá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 7

Trườ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 8

Cho 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 9

Ii 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 13

Thự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 14

i 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 15

IIi 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 17

Qui 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

Ngày đăng: 14/08/2014, 09:20

HÌNH ẢNH LIÊN QUAN

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ở - Chương 4 mô hình cơ sở dữ liệu quan hệ pot
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ở (Trang 4)
Bảng 2 và 3 là các quan hệ bậc 3 và bậc 4. Bảng 1' ch−a phải là quan hệ, vì các  giá trị trên cột thứ 3 ch−a nguyên tử - Chương 4 mô hình cơ sở dữ liệu quan hệ pot
Bảng 2 và 3 là các quan hệ bậc 3 và bậc 4. Bảng 1' ch−a phải là quan hệ, vì các giá trị trên cột thứ 3 ch−a nguyên tử (Trang 4)

TỪ KHÓA LIÊN QUAN

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

w