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

Bài giảng Chương 5 Ràng buộc toàn vẹn GV. Trần Ngân Bình

34 275 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Nội dung

Bài giảng gồm 3 nội dung chính trình bày về các kiến thức Ràng buộc toàn vẹn, cài đặt ràng buộc toàn vẹn khi tạo bảng Create table và phụ thuộc hàm. Mời các bạn cùng tham khảo. Bài giảng gồm 3 nội dung chính trình bày về các kiến thức Ràng buộc toàn vẹn, cài đặt ràng buộc toàn vẹn khi tạo bảng Create table và phụ thuộc hàm. Mời các bạn cùng tham khảo.

Trang 1

Chương 5 Ràng buộc toàn vẹn mmamxxaawwnnnnnnnnnnsaaaaaaa

GV: Trần Ngân Bình

Trang 2

4) Nội dung m hàng buộc toàn ven (RBTV)

m= Cài đặt RBTV khi tạo bang bang CREATE TABLE

= Phụ thuộc hàm

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

= Bao đóng của tập phụ thuộc ham

5= Tập phụ thuộc hàm tối tiểu

=” Tập phụ thuộc hàm rút gọn tự nhiên

Trang 3

4) Khái Niệm Rang Budc Toan Ven

= Trong một CSDL, luôn tôn tại rất nhiều mối quan hệ ràng buộc giữa các

thuộc tính, các bộ với nhau, Các mối quan hệ này là các điều kiện bất biến

mà tất cả các bộ của các quan hệ trong CSDL phải thỏa mãn ở bất cứ thời

điểm nào Các điều kiện này được gọi là ràng buộc toàn vẹn (RBTV)

m Vd: Trong CSDL “QLSV” như sau:

1 SV (MASV, HOTEN_SV, NU, SO_CMND, NGSINH, DCHI_SV, TINH, MAKHOA)

KHOA (MAKHOA, TENKHOA)

MONHOC (MAMH, TENMH, SOTIET)

KETQUA (MASV, MAMH, HK, NK, LANTHI, DIEM)

Có các ràng buộc:

mm»

`

C1 : Mỗi sinh viên có một mã số riêng biệt không trùng với bất cứ

sinh viên nào khác

=J C2 : Mỗi sinh viên phải đăng ký vào một khoa của trường

C3 : Mỗi sinh viên được thi tối đa hai lần cho 1 môn trong 1 HK

Trang 4

4) Điều kiện 8 bối cảnh RBTV 1 Điều kiện của RBTV: được biêu diễn bằng ngôn ngữ tự nhiên,

ngôn ngữ giả, đại sô quan hệ, hay phụ thuộc hàm,

Vd: Các điều kiện trên được biểu diễn như sau:

C,: Vu e€SV, Vv € SV: us>v & U.MASV <> v.MASV

C; : SV[MAKHOA] c KHOA[MAKHOA] zj C¿:V sv e KETQUA_ Card({k e KETQUA |

^ k.MASV = sv.MASV a k MAMH = sv.MAMH

A k.HK= sv.HK A k.NK = sv.NK }) <= 2

2 Bồi cảnh của một RBTV: Là những quan hệ mà RBTV đó có hiệu

lực; hay nói cách khác, đó là những quan hệ cần phải sử dụng để

kiêm tra RBTV đó

Vd: Bói cảnh của C1 là quan hé SV;

Bồi cảnh của C2 là quan hệ SV va KHOA;

Bói cảnh của C3 là quan hệ KETQUA

Trang 5

4) Bang Tầm Ảnh Hưởng

3 Bảng tầm ảnh hưởng của RBTV: Khi thực hiện một thao tác cập nhật trên bôi cảnh của một RBTV C có thé dan đến C bj vi phạm Bảng tâm ảnh hưởng cho một RBTV xác định thời điểm can kiém tra RBTV do Bảng tầm ảnh hưởng của một RBTV C, có dạng như sau:

C, Thêm | Sửa Xóa | C,: có bối cảnh là R1, R¿, , R, R, + + Dau + : can phai kiém tra C R, - - + Dấu - : không cân kiêm tra C

ocr Dấu * : Không được sửa giá trị

R,, - + - khoa chính

Vd: Bang tam anh huéng cua C,, C,, C, | C, Thém Stra Xóa

như sau: SV + - (*) -

C; Thêm Sửa Xóa = : :

Trang 6

4) Bang Tam Ảnh Hưởng Tổng Hợp

m Bảng tâm ảnh hưởng tông hợp của tất cả các RBTV:

` Các cột là các thao tác cập nhật trên từng quan hệ

= Cac dong là các RBTV

m Vd: Từ các bảng tâm ảnh hưởng trên, ta có bảng tam anh

hưởng tông hợp như sau: SV KHOA KETQUA T S xX T S xX T S X C, ¬ ¬ C, + + - - - + C, + - -

= Dựa vào bảng tầm ảnh hưởng tổng hợp này, chúng ta sẽ dễ

dàng xác định cân phải tiên hành kiêm tra các RBTV nào khi người sử dụng thực hiện một thao tác cập nhật

Trang 7

4) Phan Loai cac RBTV

m Cac RBTV co thé dug phân loại theo ý nghĩa như đã giới thiệu trong chương 2:

= Toàn vẹn thực thể

Toàn vẹn tham chiếu 5= Toàn vẹn miền giá trị

5= Toàn vẹn về logic (hay RB khác)

= Tuy nhiên, ta cũng có thể phân chia các RBTV theo phạm vi áp dụng của nó:

= RBTV trén một quan hệ

= RBTV liên quan hệ

Trang 8

4) Phan Loai cac RBTV (1)

= Loại RBTV 1: là những RBTV có bối cảnh là một quan hệ:

1 RBTV về miền trị: liên quan đến miền giá trị của một thuộc tính Vd: NGSINH < date() 0 < DIEM < 10 0 < SOTIET <= 180 2 RBTTV liên thuộc tính: là mồi liên hệ giữa các thuộc tính trong cùng một lược đỗ quan hệ -= Vd: CSDL “QLBH như sau:

KHACH (MAKH, TENKH, DCHI_KH, DTHOAL KH, CONGNO) DATHANG (SO_DDH, MAHH, SL_DAT, NGAY_DH, MAKH) HOADON (SO_HD, NGAY_HD, SO_DDH, NGAYXUAT, TRIGIA) PHIEUTHU(SO_PT, MAKH, NGAYTHU, SOTIEN)

CT_HD ( SO_HD, MAHH, GIA_BAN, SL)

© Trong quan hé HOADON cé rang buéc: “hang héa chỉ được xuất

sau khi lập hóa don’ :

v hd e HOADON, hd.NGAY_ XUAT > hd.NGAY_ HD

Trang 9

4) Phan Loai cac RBTV (2)

3 RBTV lién bo: la sự ràng buộc giữa các bộ bên trong một quan hệ, trong đó phô biên là RBTV vê khóa nội

Vd:- MASV là duy nhất trong QH SV (MASV Ia khéa cla QH SV)

- Mỗi sinh viên được thi tối đa 2 lần cho một môn

= RBTV về khóa nội là một RBTV liên bộ rất phổ biến, chúng

thường được biểu diễn bằng các phụ thuộc hàm, và thường được

các hệ quản trị CSDL hỗ trợ tự động kiểm tra

ø= Loại RBTV 2: Là các RBTV có bối cảnh gồm nhiều quan

hệ:

1.Ề RBTV về phụ thuộc tồn tại (RBTV về khóa ngoài):

= Vd: Néu 3 kq e KETQUA, kq.MASV =’01’

Thì phải 3 s € SV: sv.MASV ='01’

Trang 10

4) Phan Loai cac RBTV (2) 2 RBTV liên thuộc tính, liên quan hệ: là mối liên hệ giữa các

thuộc tính của nhiễu quan hệ khác nhau

Vd: Giữa hai quan hệ DATHANG và HOADON của CSDL “QLBH”, có ràng buộc như sau:

Nếu 7hd e HOADON, dh e DATHANG, hd.SO_DDH = dh.SO_DDH

thì dh.NGAY_DH <= hd NGAY_HD

3 RBTV lién bo, lien quan he: RBTV loai nay co tác dụng trên

từng nhóm các bộ của nhiêu quan hệ khác nhau (thường là hai

quan hệ)

= Vd: Gita hai quan hệ HOADON và CT_HD, Có ràng buộc: “Mỗi hóa đơn phải có ít nhât một mặt hàng”

Nếu 3 hd e HOADON

Thì phải 1 cthd e CT_HD: cthd.SO_ HD = hd.SO_HD

Trang 11

4) Phan Loai cac RBTV (4)

4 RBTV vé thu6c tinh tong hop: RBTV nay duoc xac định trong

trường hop médt thudc tinh A cua mét quan hé R được tính toán từ

các thuộc tính của các quan hệ khác

Vd 1: Trị giá của hóa đơn bằng tổng các GIABAN * SL của các mặt hàng trong hóa đơn đó:

hd.TRIGIA => (cthd.GIABAN * cthd SL) cthd.SO_HD = hd.SO_HD

=| Vd 2: Sô tiên công nợ của một khách hàng A sẽ băng hiệu số giữa tổng gia tri cua các hóa đơn bán cho khách

hang A và tổng số tiền thu của khách hàng đó:

V kh e KHACH: kh.CONGNO = >hd.TRIGIA - >ptSOTIEN

hd € Hy, pt < P,,,

voi H,, =(HOADON * DATHANG) (MAKH = kh.MAKH) P,, = PHIEUTHU (MAKH = kh.MAKH)

Trang 12

4) Phan Loai cac RBTV (5)

5 RBTV do có chu trình trong đồ thị biéu diễn của lược đồ

CSDL: Một lược đô CSDL có thể được biễu diễn bằng một đô thị vô hướng Trong đô thị này, ta có 2 loại nút: nút thuộc tính và nút

quan hệ Một cung vô hướng trong đô thị nồi 1 nút thuộc tinh A

với một nút quan hệ R khi A thuộc H

Trang 13

4) Phan Loai cac RBTV (6)

= Trong hinh ve trên, chúng ta nhận thấy đồ thị biểu diễn có chứa một chu trình gồm 3 quan hệ DATHANG, HOADON, CT_ HD Như vậy, CSDL sẽ phải có một RBTV thuộc 1 trong 3 trường ‘hop Sau:

Một hóa đơn thực hiện cho một don dat hang chi giao những mặt hàng mà khách yêu câu và phải gồm đây đủ tất cả những mặt hàng có trong đơn đặt hàng đó

5> Một hóa đơn thực hiện cho một đơn dặt hàng chỉ giao những mặt hàng mà khách yêu cầu và có thể không giao đây đủ tất cả các những mặt hàng có trong đơn đặt hàng đó

5 Một hóa đơn thực hiện cho một đơn đặt hàng có thể gồm tùy ý các

mặt hàng dù có hay không trong đơn đặt hàng của khách

Trang 14

4) Cai Dat RBTV

m= Hầu hết các HQTCSDL đều cung cấp công cụ dé cai dat RBTV

trên các bảng dữ liệu

= Toàn vẹn thực thể: PRIMARY KEY, UNIQUE KEY

= Toan ven tham chiéu: FOREIGN KEY

= Toan ven mién gia tri: CHECK, RULE, DEFAULT VALUE

= Toan ven vé logic (hay RB khac): TRIGGER

= Việc cài đặt các RBTV có thê thực hiện:

= Trong khi tao bang: CREATE TABLE

= Sau khi tao bang: ALTER TABLE

Trang 15

Ế 3 cnEATE TABLE - Ràng Buộc Trên Cột

m CREATE TABLE <tén_bang> (

{ <tên_cột> {<kiéu> | <tén_mién_tri>}

[NOT NULL] [PRIMARY KEY | UNIQUE ]

[ DEFAULT <tri_ma&c_dinh>] [ CHECK (<diéu_kién>)] [ REFERENCES <tén bang cha>

[(<ds tên các cột của khóa chính trong bảng cha>)] [MATCH { FULL] PARTIAL | SIMPLE } ]

Trang 16

4) Ví dụ Tạo Bảng có RB Trên Cột m CREATE TABLE NhaxB (

MaNXB char(4) NOT NULL CONSTRAINT PK_NXB PRIMARY KEY CHECK (MaNXB IN ('1389"', '0736', '0877', '1622', '1756')

OR MaNXB LIKE '99[0-9][0-9]'), TenNXB varchar(40) NULL,

ThPho varchar(20) NULL,

QGia varchar(30) NULL DEFAULT(‘VietNam') _ ) m CREATE TABLE NhanVien(

MaNV char(9) PRIMARY KEY

CHECK (MaNV LIKE ‘[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]‘) , TenNV varchar(30) NOT NULL,

Trang 17

+ @REATE TABLE — Rang Buéc Trén Bang

=m CREATE TABLE <tén_bang> (

{<tên cột> {<kiéu> | <tén_mién_tri>} [ |] }

[, PRIMARY KEY (<danh_sách_ cột>) ]

{ [LUNIQUE (<danh sách cột>)| [ ] } { [, FOREIGN KEY (<ds_c6t_khéa_ngoai>)

REFERENCES <tén_bang_cha> [(khéa_tng_vién)],

[MATCH { FULL] PARTIAL | SIMPLE } ]

Trang 18

4) Vi du Tao Bang co RB Trén Bang

m CREATE TABLE Sach_TacGia (

MaTG char(11) REFERENCES TacGia(MaTG) NOT NULL,

MaSach char(6) NOT NULL, ThuTulG smallint NOT NULL,

PRIMARY KEY (MaTG, MaSach),

UNIQUE (MaSach, ThuTuTG), /Khóa ứng viên FOREIGN KEY (MaSach)

REFERENCES Sach(MaSach) ON DELETE RESTRICT

Trang 19

4) Thiét Lap Toan Ven Sau Khi Tao Bang

= ALTER TABLE <tén_bang>

[ADD [COLUMN] <tén_cdt> {<kiéu | <mién_tri>} [NOT NULL] [ PRIMARY KEY | UNIQUE]

[DEFAULT <m&ac_dinh>] [CHECK (<diéu_kién>)] ] | [DROP [COLUMN] <tén_cét> [RESTRICT | CASCADE] ] | [ALTER [COLUMN] <tén_cdt>

{SET DEFAULT <mac_dinh> | DROP DEFAULT} ] | [ADD [CONSTRAINT [tén_RB] ] <dinh_nghia_RB>]

| [DROP CONSTRAINT tén_RB [ RESTRICT | CASCADE] ]

Trang 20

4) Ví Dụ Thêm RB Trên Bang

= ALTER TABLE NhanVien

ADD CONSTRAINT FK_MaSep FOREIGN KEY (MaSep)

REFERENCES NhanVien(MaNV) = ALTER TABLE NhanVien

ALTER COLUMN NgayVao DROP DEFAULT m ALTER TABLE NhanVien

DROP CONSTRAINT FK MaSep = ALTER TABLE NhanVien

ADD COLUMN Mobile char(15) UNIQUE

Trang 21

4) Kiém Tra Rang Buéc Bang Trigger m Lénh Tao Trigger cua SQL Server 2000

CREATE TRIGGER fén_trigger ON { fable | view }

[ WITH ENCRYPTION ]

{

{{ FOR | AFTER | INSTEAD OF }

{[INSERT ][, ][UPDATE ][, 1[DELETE] } AS

<Câu lệnh SQL> [ 1]

Trang 22

4) Vi Du Trigger

= Khi một nhân viên bị xóa khỏi bảng NhanVien các thông tin của NV đó được ghi vào một bảng khác có cùng lược đô quan hệ:

Cựu NV (viét trong SQL Server 2000)

CREATE TRIGGER Xoa_NV ON NhanVien

AFTER DELETE

AS

INSERT INTO Cuu_NV

Trang 23

4) Bai Tap

m Xay dyng bảng mô tả CSDL mức vật lý cho CSDL ban hang voi

đây đủ tât cả các ràng buộc toàn vẹn có thê có

m Viết tất cả các câu lệnh dé cai dat CSDL nay

Trang 24

@ Phụ thuộc hàm

Phụ thuộc hàm: là một công cụ đề biểu diễn một số RBTV

Định nghĩa: Cho tập thuộc tính U; X,Y là tập con của U

Ta gọi X —› Y là PTH nếu với mỗi cặp bộ u,v thuộc RBTV,

ta có: uUX=v.X thì u.Y =v.Y

Ví dụ:

Trong quan hệ SV( MASV, HOTEN,NGSINH, .)

Có ràng buộc: không có hai sinh viên trùng MASV

MASV — HOTEN

Trong quan hệ NCC(TEN_NGC, TEN_HG, GIA, DCHI_NCC)

Có ràng buộc: với mỗi cặp giá trị (TEN_NCC, TEN_HG) ta có một GIÁ duy nhật

TEN_NÓCC, TEN_HG —› GIA

Hay, mỗi NCC chỉ có một địa chỉ duy nhất,

TEN_NCC -› DCHI_NCC

Trang 25

4) Tính Chất của Phụ thuộc hàm

F1: tính phản xạ : Nếu X 5Y thì X — Y

F2: tính bắc cầu: Nếu X —› Y., Y — Z thì X —› Z

F3: tính mở rộng hai về: Nếu X > Y thi XZ > YZ

F4: tính twa bac cau : Néu X > Y, YZ > W thi XZ > W

FS: tinh phan xa chat : X > X

F6: Mỏ rộng về trái, thu hẹp về phải:

Trang 26

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

= Dinh nghĩa Lược Đồ Quan Hệ:

LDQH là một bộ đôi ơ = <U,F>

với UU: là tập thuộc tính, F : là tập các PTH trên U

= Định nghĩa Bao Đóng:

Cho mot LDQH a = <U,F>, trong do:U = {A,,A,, ,A,},

F={L oR |L,,R, CU,i=1 m}, va tap thudc tinh X CU Bao đóng của tập X đồi với tập PTH F, ky hiéu: X*- hay X*

X'={AcU|X—A)

= Bồ đề: Cho các tập thuộc tính X,Y,Z c U Khi đó,

X->YZ ©®X->Y AX->Z

Trang 27

4) Bao đóng của tập thuộc tính m Các tính chát của bao đóng:

1 Tinh phan xa X' 3X

2 Tinh don digu X CY => X* c Y*

Trang 28

Ế ` mnuạt Toán Tìm Bao Đóng của tập thuộc tính

Trang 29

` Tnuạt Toán Tìm Bao Đóng của tập thuộc tính

Trang 30

4) Bài Tập Tìm Bao Đóng Tập Thuộc Tính

Trang 31

4) Bao dong cua tap cac PTH (1) = Dinh nghia: Cho tap PTH F trén tap thuộc tinh U

Bao đóng của F, kí hiệu F+ là tập nhỏ nhất các phụ

thuộc hàm trên U thoả 2 tính chất sau:

o FTF

5= Khi áp dụng các tính chất F1, F2, F3 ( của phụ thuộc hàm) cho F*thi ta khong thu dugc PTH moi nào ngoài F7

Trang 32

4) Bao đóng của tập cac PTH (2)

m Trên lí thuyết, ta hoàn toàn có thế xác định được 1 thủ tục tính bao

dong F* Nhưng dù tap thudc tinh U va tap PTH F là hữu hạn, thì bai toan tim F* van khó thực hiện vi tập L U và F trong thực tế rất lớn Do đó, có thé dan đến sự bùng nô tổ hợp

= Thay vào đó người ta thường xét bài toán khác : “Kiểm tra 1 phụ thuộc hàm f có thuộc F* hay không?" > “Bài Toan Thanh Vien” = Để giải bài toán thành viên, người ta dựa vào tinh chat:

X>YeF ` ®YcXx"

ø Ví dụ:

F={ABC, BD, CD—-E, BE > GA}

Hãy xác định f : AE —› DGC có thê suy dẫn từ f hay không ? Hay f: AE — DGC c F* hay không 2?

Ta co: (AE)* = AEBCDG > DGC

Vậy, kết luận: AE DGC e F:

Trang 33

4) Tập phụ thuộc hàm tối tiêu (1)

= Hai tập phụ thuộc hàm tương đương: Hai tap phụ thuộc hàm F và G được gọi là tương đương nêu F* = G* Khi đó, ta nói F phủ G hay G phủ F Kí hiệu: F = G

ø Định nghĩa tập phụ thuộc hàm tối tiêu: Tập F được gọi là tập phụ thuộc hàm tối tiêu nếu:

5 Về phải của các phụ thuộc hàm trong F chỉ chứa một thuộc tính

5= Không tôn tại phụ thuộc hàm thừa Một phụ thuộc hàm là thừa khi:

F -t‡X>A} tương đương với F

®(F -X>A)” chứa X-—›A

OAc XE KoA)

- Không tôn tại các thuộc tính thừa ở về trái Một thuộc tính ở về trái là thừa khi:

Với ZcX, (F -{X—> A}) U {Z—>A} tương đương với F © Với ZcX, {ZA} e Ft hayAe Z*

thi tap thudc tinh (X - Z) là thừa

Trang 34

4) Tập phụ thuộc hàm tối tiêu (2)

= Cách chuyên tập pth F về tập pth tối tiểu:

=° Bước 1: Đưa các PTH về dạng chỉ có 1 thuộc tính ở về phải

=> F,

= Buc 2: Loai bo cac pth thtra trong F, => F,

=' Bước 3: Loại bỏ các thuộc tính thừa ở về trái các pth của F;

= Vi du: F={ ABC ACD >B

CoA D— EG

CG > BD BC >D BE>C CE AG}

Tìm phủ tối tiêu của F

EI Định lý: Mọi tập phụ thuộc hàm F đều có một tập phụ thuộc hàm

tôi tiêu G tương đương

Ngày đăng: 15/05/2017, 15:09

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w