GIỚI THIỆU: Mô hình thực thể là mô hình ban đầu để từ đó người ta biến đổi nó thành mô hình dữ liệu; Nó cho phép mô tả sơ đồ ý niệm của thế giới thực mà không quan tâm đến hiệu quả hoặc
Trang 1CƠ SỞ DỮ LiỆU
Giảng viên : ThS Lưu Nguyễn Kỳ Thư
Học viện công nghệ bưu chính viễn thông
Khoa công nghệ thông tin 2
Trang 2NỘI DUNG MÔN HỌC
➢ MỤC TIÊU MÔN HỌC
➢ CHƯƠNG 1:
➢ MÔ HÌNH THỰC THỂ MỐI LIÊN KẾT
(MỨC QUAN NIỆM)
➢ CHƯƠNG 2: PHỤ THUỘC HÀM
➢ CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC LOGIC
➢ CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC VẬT LÝ
Trang 3Chương 1 MÔ HÌNH THỰC THỂ
MỐI LIÊN KẾT
I GIỚI THIỆU: Mô hình thực thể là mô hình
ban đầu để từ đó người ta biến đổi nó thành mô hình dữ liệu; Nó cho phép mô tả sơ đồ ý
niệm của thế giới thực mà không quan tâm
đến hiệu quả hoặc thiết kế CSDL vật lý
ERD (Entity Relationship Diagram ) sau này sẽ được biến đổi thành mô hình quan hệ.
Mô hình ERD gồm có 2 thành phần: thực thể và
liên kết.
Trang 4THỰC THỂ
Thực thể là một sự vật hay sự việc mà ta có thể phân biệt được, nó tồn tại trong 1 thế giới khách quan mà ta có thể liên kết thực thể
này với 1 thực thể khác
Thực thể có thể là 1 thực thể cụ thể (Sinh
viên) hoặc trừu tượng (Môn học)
Trang 5TẬP THỰC THỂ
Tập thực thể là 1 tập bao gồm những thực thể giống nhau
Trang 6MỐI LIÊN KẾT
Một mối liên kết giữa các tập thực thể là 1 danh sách có thứ tự của các tập thực thể.
Ví dụ: Mối liên kết giữa thực thể Sinhvien và thực thể Lop
Trang 7SƠ ĐỒ THỰC THỂ MỐI
LIÊN KẾT (ERD)
ERD thể hiện mối liên kết giữa các thực thể Lưu ý: Nếu 1 tập thực thể chỉ có 1 thuộc tính thì ta nên gọi tên tập thực thể bằng tên
thuộc tính và tập thực thể đó được ghi trong vòng tròn.
Trang 8Tập thực thểThuộäc tínhThuộäc tính dẫn xuấtMối liên kết
Mối liên kết n-nliên kết có hướng
Để biểu diễn sơ đồ thực thể mối liên kết, ta có các ký hiệu sau:
Trang 9TÍNH HÀM CỦA MỐI LIÊN KẾT
▪ Mối liên kết 1 – 1 ( one-to-one)
▪ Mối liên kết 1 – n ( one-to-many)
▪ Mối liên kết n – n ( many-to-many)
Trang 10Ví dụ về ERD của siêu thị
Một siêu thị có nhiều nhân viên Thông tin về nhân viên: MANV, TênNV, Luong Mỗi nhân viên làm việc ở 1 bộ phận, 1 bộ phận có thể có nhiều nhân viên Thông tin về bộ phận: MaBP và tênBP Trong các nhân viên có người làm quản lý, một người chỉ quản lý tối đa 1 bộ phận, và 1 bộ phận chỉ có 1 người quản lý.
Ở 1 bộ phận có nhiều mặt hàng , nhưng 1 mặt hàng chỉ được đặt ở 1 bộ phận mà thôi Thông tin về mặt hàng: MSMH, TenMH 1 mặt hàng do nhiều người cung cấp bán, 1 người cung cấp c ĩ thể cung cấp nhiều mặt hàng, mỗi mặt hàng sẽ cĩ giá kh ác nhau Thông tin về người cung cấp: MaNCC,TenCC, Diachi.
Siêu thị có nhiều khách hàng Thông tin về khách hàng: MAKH, TenKH, Diachi Mỗi khách hàng có nhiều đơn đặt hàng nhưng 1 đơn đặt hàng thì chỉ có 1 khách hàng mà thôi Thông tin về đơn đặt hàng: SoHieuDDH, NgayDH Mỗi đơn đặt hàng bao gồm nhiều mặt hàng với mỗi măït hàng có 1 số lượng mua và đơn giá.
Trang 11Nhân viên Làm việc Bộ phận
NgQLy
Bày bán Mặt hàng
Qlý CT ĐĐH Ccấpisa
Giá NccSlượng
Đơn đặt hàng Có
Khách hàng
Trang 12CHUYỂN ĐỔI ERD SANG BẢNG
Trang 13CHUYỂN ĐỔI ERD SANG
DonDatHang(SoHieu, Ngay, MAKH )
CungCap( MaMH, MANCC , Gia)
CTDDH ( SoHieu, MaMH , SoLuong, Dongia)
Sau đó , ta tổ hợp các quan hệ có cùng khóa chính lại với nhau:
Bophan + NguoiQLy → Bophan(MaBP, TenBP, MANVQL )
Trang 14MHDLQH SAU KHI TỔ
HỢP
Nhanvien(MANV,Tennv, luong, MaBP )
Bophan(MaBP, TenBP, MANVQL)
NguoiCC(MANCC,TenCC, Diachi)
MatHang(MaMH , TenMH, MaBP )
KhachHang(MAKH,TenKH, Diachi)
DonDatHang(SoHieu, Ngay, MAKH )
CungCap( MaMH, MANCC , Gia)
CTDDH ( SoHieu, MaMH , SoLuong, Dongia)
Trang 15CHƯƠNG 2 PHỤ THUỘC HÀM
Định nghĩa : Cho R(U) là 1 lược đồ quan hệ với U = {A1, A2, …, An} là tập thuộc tính
- r là 1 thể hiện của quan hệ R(U)
- X, Y là tập con của U
Ta nói X->Y là phụ thuộc hàm trên R(U) nếu t1, t2 r mà t1[X]=t2[X] thì t1[Y]=t2[Y]
Trang 16PHỤ THUỘC HÀM ĐẦY ĐỦ
Ta nói X->Y là PTH đầy đủ trên R(U) nếu
không tồn tại X’ X sao cho X’->Y
Mệnh đề:
▪ X-> Y là phụ thuộc hàm trên r nếu và chỉ nếu
X là siêu khóa của r[XY]
▪ X-> Y là phụ thuộc hàm đầy đủ trên r nếu và chỉ nếu X là khóa của r[XY]
Trang 17HỆ LUẬT DẪN ARMSTRONG
Cho R(U) là 1 lược đồ quan hệ với U = {A1, A2, …,
An} là tập thuộc tính
Xét X, Y, Z, W là tập con của U.
1 Luật phản xạ: Y X => X-> Y
2 Luật thêm vào: X->Y và Z W => XW->YZ
X->Y thì XZ -> YZ (tăng trưởng)
3 Luật bắc cầu: X->Y và Y->Z => X->Z
4 Luật tựa bắc cầu: X->Y và WY->Z => XW->Z
5 Luật phân rã : X->Y và Z Y => X->Z
6 Luật hợp : X->Y và X->Z => X->YZ
Trang 18Ví dụ: Cho quan hệ R (A,B,C) và tập phụ
thuộc hàm F = { AB->C, C-> A}.
Dựa vào hệ luật dẫn ArmStrong, Hãy chứng
minh: BC->ABC
Trang 19F = { AB->C, C-> A} Chứng minh BC->ABC
➢Ta có C-> A ( giả thiết)
➢BC -> BA ( luật tăng trưởng)
➢BC -> ABC ( luật tăng trưởng)
Trang 202.2.1 Định nghĩa PTH suy dẫn:
Cho tập các PTH F X,Y U Ta nói:
f : X->Y là PTH suy dẫn từ F nếu nó được suy từ F bằng các luật dẫn của hệ tiên đề ArmStrong.
-Ký hiệu : F |= f
➢ Tập F + = { f/ F |= f} được gọi là bao đóng của F
2.2.2 Mệnh đề: Cho tập các PTH F, ta có:
a F F +
b f là hệ quả của F F |= f f F +
2.2 BAO ĐÓNG
Trang 21Bao đóng của tập thuộc tính
Cho lược đồ quan hệ Q với tập PTH F
Trang 22Cho lược đồ quan hệ Q ( A B C D E G) với:
F = { AE-> C, CG -> A , BD -> G, GA->E}Chứng minh : BDC -> Q+ F+
Trang 23KHÓA CỦA QUAN HỆ
XÁC ĐỊNH KHÓA
B1 Tìm các nút gốc X= {vế trái } - {vế phải} + {các thuộc tính khơng cĩ trong các PTH} B2 Tính bao đóng của các nút gốc X
Nếu X F + = U thì X là khóa Ngược lại X = X U Y với Y U Quay lại bước 2
Trang 24Ví dụ: Cho Q( A B C D E H)
F ={AB->C, CD -> E, EC->A, CD-> H , H->B}Tìm 1 khóa của Q
Bài làm:
B1 Nút gốc= {vế trái } - {vế phải}
= {A B C D E H} – {C E A H B }
= { D }Gọi X = { D }B2.Vì XF+ = { D } nên ta chọn X = X U {C}
= { C D }
Vì XF+ = { C D }F+ = {C D E A H B } = Q+
nên {CD} là khóa
Trang 25PHỦ CỦA TẬP PHỤ THUỘC HÀM
Định nghĩa: Cho 2 tập PTH F và G
a)Ta nói F suy ra G ký hiệu là F |=G nếu G + F +
b)Ta nói F tương đương G ký hiệu là F G nếu F |=G và G |=F
Cho tập PTH F Xét tập PTH G, nếu G |=F thì ta nói
G là 1 phủ của F
Trang 26PHỦ TỐI THIỂU CỦA TẬP PHỤ THUỘC HÀM
Một tập PTH F được gọi là tối thiểu nếu:
▪ f F, f có dạng X->A, A chỉ có 1 thuộc tính
▪ Không tồn tại f:X->A và Z X sao cho:
F F – {X->A} U {Z->A}
▪ Không tồn tại f: X->A để F F – {X->A}
Trang 27CHƯƠNG 3 THIẾT KẾ CƠ SỞ
DỮ LIỆU MỨC LOGIC
I MỤC TIÊU CHÍNH
II DẠNG CHUẨN
III CẤU TRÚC CƠ SỞ DỮ LIỆU TƯƠNG ĐƯƠNG
IV HAI CÁCH TIẾP CẬN ĐỂ THIẾT KẾ
CƠ SỞ DỮ LIỆU
Trang 28MỤC ĐÍCH
Thiết kế cơ sở dữ liệu sao cho đạt tối thiểu DC3 để đảm bảo không dư thừa dữ liệu
Trang 29DẠNG CHUẨN
Thế nào là một quan hệ được chuẩn hóa: Mụcđích của dạng chuẩn nhằm loại bỏ dư thừa dữliệu mà các phụ thuộc hàm có thể gây ra tronglược đồ cơ sở dữ liệu và những bất thường xảy
ra khi thao tác lên dữ liệu
Trang 30Dạng chuẩn 1: 1NF (Normal Form)
Một quan hệ R được xem ở dạng chuẩn 1 nếu và chỉ nếu tất cả các thuộc tính trong
R đều chứa các giá trị nguyên tố (giá trị không tách ra được nữa).
Ví dụ : R không đạt DC1
Trang 31300 200 400 200 100 100
P2
300 400
P4 P5
200 300 400
Trang 32DẠNG CHUẨN 2
Một quan hệ R được xem ở dạng chuẩn 2 nếu và chỉ nếu R đạt DC1 và các thuộc tính không khóa phụ thuộc hàm đầy đủ vào khóa chính
S#
P#
City Status Qty
Xét quan hệ R(S#, P#, City, Status, Qty)
Các PTH : S# -> City, Status
City ->Status S#, P# -> R +
Trang 33Ta nhận thấy rằng tồn tại PTH: S# -> City, Status
Do City và Status là 2 thuộc tính không khóa
không PTH đầy đủ vào khóa chính là (S#, P#).
Vì vậy, R(S#, P#, City, Status, Qty) chưa đạt DC2
Để R đạt DC2, ta tách R ra thành 2 quan hệ
con R1(S#, P#, Qty) và R2(S#, City, Status)
R (S#, P#, City, Status, Qty)
R1(S#, P#, Qty)
S#,P# -> Qty R2(S#, City, Status)S# -> City, Status
City ->Status
S# -> City, Status
Trang 34Tuy nhiên sau khi tách thì lược đồ quan hệ R1, R2 vẫn còn có nhược điểm :
-Không thể thêm 1 thành phố (R2) mới nếu chưa có người cung cấp.
- Tốn thời gian khi sửa dữ liệu, ví dụ như sửa Status của London thành 15
Trang 35DẠNG CHUẨN 3
Một quan hệ R được xem ở dạng chuẩn 3 nếu và chỉ nếu R đạt DC2 và các thuộc tính không khóa không phụ thuộc hàm bắc cầu vào khóa chính
Status
Xét quan hệ R2 (S#, City, Status) và các PTH :
S# -> City, Status City ->Status
Trang 36Ta nhận thấy rằng trong R2, tồn tại PTH City -> Status làm cho Status bị PTH bắc cầu vào khóa chính là S# Vì vậy, R2(S#, City, Status) chưa đạt DC3.
Để R2 đạt DC3, ta tách R2 ra thành 2
quan hệ con R21(S#, City) và
R22(City, Status)
Trang 37Boyce-Codd Normal Form
Một quan hệ R được xem ở dạng chuẩn
BCNF, nếu mỗi FD X -> A trên R thỏa 1
trong 2 điều kiện sau:
- A X; PTH hiển nhiên hoặc
- X là 1 siêu khóa
Trang 38DẠNG CHUẨN CỦA LƯỢC ĐỒ
CƠ SỞ DỮ LIỆU
Nếu tất cả các quan hệ của lược đồ
cơ sở dữ liệu đạt DCi thì ta nói lược đồ cơ sở dữ liệu đạt DCi .
Trang 39BÀI TẬP
Exercise 1: Trả lời ngắn gọn các câu hỏi sau:
1 Thế nào là 1 phụ thuộc hàm (functional
dependency)
2 Hãy cho 1 tập FDs trên lược đồ quan hệ
R(A,B,C,D) với khóa chính là AB sao cho R thuộc
1NF nhưng không thuộc 2NF.
3 Hãy cho 1 tập FDs trên lược đồ quan hệ
R(A,B,C,D) với khóa chính là AB sao cho R thuộc
2NF nhưng không thuộc 3NF.
4 Khảo sát lược đồ quan hệ R(A,B,C), R có FD
B->C Nếu A là 1 khóa trên R, thì R có thuộc
BCNF?
Trang 40Khảo sát quan hệ R (ABCDE) có các PTH sau: A-> B, BC-> E, và ED -> A.
1 Liệt kê tất cả khóa của R.
2 R thuộc 3NF?
3 R thuộc BCNF?
Exercise 2
Trang 41Exercise 3: Khảo sát 1 tập các quan hệ và PTH Giả
sử rằng các quan hệ có được từ phép phân rã 1 quan
hệ ( ABCDEF ) và các PTH của quan hệ được liệt kê
trong các câu hỏi (Các câu hỏi độc lập với nhau).
Trên mỗi quan hệ: (a) Hãy cho biết quan hệ thuộc
dạng chuẩn nào? (b) Nếu quan hệ chưa thuộc BCNF, phân rã nó thành 1 tập các quan hệ thuộc dạng chuẩn BCNF
1 R1 (A,C,B,D,E), A -> B, C-> D
2 R2 (A,B,F), A -> B, B -> F
3 R3 (A,D), D -> A
Trang 42PHÂN RÃ LƯỢC ĐỒ QUAN HỆ
Phân rã 1 lược đồ quan hệ R là thay thế
quan hệ đó bởi 2 (hoặc nhiều) quan hệ; Mỗi quan hệ chứa 1 tập con thuộc tính của R và quan hệ còn lại chứa các
thuộc tính còn lại của R.
Trang 43VÍ DỤ
Hourly Emps(ssn, name, lot, rating (mứclương),
hourly wages, hours worked)
Chúng ta khảo sát lược đồ quan hệ Hourly
Emps với các thuộc tính SNLRWH (W đại diện hourly wages attribute) Giả sử ta có
R-> W Điều này sẽ dẫn đến dư thừa dữ liệutrong quan hệ Hourly Emps như được minhhọa trong hình:
Trang 44Một số thông tin được lưu trữ nhiều lần, ví dụ mức lương 8 sẽ quyết định lương giờ công 10, và thông tin này lặp lại 3 lần Điều này không những làm lãng phí không gian nhớ mà còn tiềm ẩn một mối nguy về mất tính đồng nhất dữ liệu.
Trang 45CÁC HẠN CHẾ KHI LƯỢC ĐỒ CƠ
SỞ DỮ LIỆU CHƯA ĐẠT DC3
- Nếu ta cập nhật hourly wages trong bộ thứ 1
mà không cập nhật nó trên bộ thứ 2 và thứ 5 thì sẽ
vi phạm PTH
- Ta không thể thêm 1 bộ mới vào quan hệ nếu
ta không biết mức lương và và lương giờ công
- Nếu ta xóa tất cả các bộ với 1 giá trị mức
lương thì ta sẽ làm mất luôn mối liên kết R->W
Trang 46Cách giải quyết
Ta sẽ giải quyết sự dư thừa này trong
Hourly Emps bằng cách phân rã nó thành 2
quan hệ:
Hourly Emps2(ssn, name, lot, rating, hours
worked)
Wages(rating, hourly wages)
Thể hiện của 2 quan hệ này tương ứng với thể hiện của Hourly Emps được trình bày trong hình sau:
Trang 47Thể hiện của Hourly_Emps2 và Wages
Trang 48PHÂN RÃ BẢO TOÀN THÔNG TIN
Phép phân rã dùng để giới hạn tính dư thừa dữ liệu, phải đảm bảo thông tin sau khi phân rã không bị mất Phát biểu sau đây sẽ giúp ta
chứng minh R sau khi phân rã vẫn bảo toànthông tin:
Cho quan hệ R và tập PTH F trên R Phép
phân rã quan hệ R thành 2 quan hệ R1 và R2 là bảo toàn thông tin nếu và chỉ nếu F+ hoặc chứa R1 R2 -> R1 hoăïc chứa R1 R2 -> R2.
Nói cách khác, các thuộc tính chung của R1 và
R2 phải chứa khóa của R1 hoặc R2.
Trang 49Chứng minh quan hệ Hourly Emps sau khi phân rã là bảo toàn thông tin
Vì R là thuộc tính chung của 2 quan hệ sau khi phân rã, và R -> W là PTH của Wages, nên
quan hệ Hourly Emps sau khi phân rã là bảotoàn thông tin
Trang 50TÂN TỪ CỦA QUAN HỆ Contracts
Khảo sát quan hệ Contracts ( C S J D P Q V)
- C : số hiệu hợp đồng ; - S : mã nhà cung cấp
- J : mã dự án ; - D : mã phòng ban
- P : mã linh kiện ; - Q : số lượng
D S-> P 1 chính sách khác là 1 dự án khi mua 1
linh kiện chỉ dùng 1 hợp đồng: J P -> C
Trang 51PHÂN RÃ BẢO TOÀN PHỤ THUỘC HÀM
Các PTH của quan hệ Contracts là C-> CSJDPQV, JP -> C, and SD -> P Vì SD không phải là khóa, PTH
SD -> P là nguyên nhân làm Contracts vi phạm BCNF Chúng ta phân rã Contracts thành 2 quan hệ với các thuộc tính (CSJDQV) và (SDP) để giải quyết vấn đề này; Tuy nhiên, có 1 vấn đề xảy ra ở đây: Sau khi phân rã xong, thì chúng ta đã làm mất PTH JP->C.
Khuyết điểm : Bất cứ khi nào ta thêm 1 bộ vào quan hệ (CSJDQV) , ta phải kết 2 quan hệ đã phân rã lại để kiểm tra PTH JP->C Điều này sẽ chiếm khá nhiều thời gian thực thi.
Trang 52Phép chiếu của F trên X
Cho R là 1 lược đồ quan hệ đã được phân rã thành 2 quan hệ với các thuộc tính X và Y, và F là tập các PTH trên R.
Phép chiếu của F trên X (ký hiệu:F X )là tập các PTH
trong bao đóng F+ mà chỉ chứa các thuộc tính trong
X Lưu ý rằng U -> V (trong F+ ) F X chỉ khi tất cả
các thuộc tính trong U và V đều thuộc tập X.
Trang 53- Phép phân rã lược đồ quan hệ R với tập PTH
F sang 2 lược đồ có tập thuộc tính X và Y là
bảo toàn PTH nếu (F X U F Y )+ = F+
PHÂN RÃ BẢO TOÀN PHỤ THUỘC HÀM
Trang 54Ví dụ về phân rã bảo toàn phụ thuộc
Dĩ nhiên là {A->B} trong FAB, {B->C} trong FBC
Còn C->A có bị mất hay không ?
CM:
Vì F + = { A->B , B ->C , C->A, A->C, B->A, C->B}
Nên FAB= {A->B , B->A}; FBC ={B->C, C->B}
FAB U FBC = { A->B, B->A, B->C, C->B}
(FAB U FBC ) + =F + ➔ phép phân rã bảo toàn PTH
Trang 55PHÂN RÃ QUAN HỆ ĐẠT BCNF
Thuật toán để phân rã lược đồ quan hệ R
thành 1 tập các quan hệ đạt BCNF
1 Giả sử rằng R không đạt BCNF Cho X
R, A là 1 thuộc tính đơn trong R, và X->A là 1
PTH làm quan hệ không đạt Ta phân rã R thành R − A và XA.
2 Nếu R − A hay XA không đạt BCNF, ta tiếp
tục phân rã nó theo bước 1