Trang 2 5Mô hình thực thểliên kết Entity-relationship modelThực thểEntityTập thực thểEntity SetKiểu thực thểEntity TypeKhoá của kiểu thực thểMối liên kết RelationshipKiểu thực thểyếuSơ
Trang 1CƠ SỞ DỮ LIỆU (DATABASE)
2
Các b ướ c c ơ b ả n trong thi ế t k ế
CSDL quan h ệ
N Ộ I DUNG
CÁC KHÁI NI Ệ M
S Ơ ĐỒ TH Ự C TH Ể LIÊN K Ế T
TH Ự C HÀNH THI Ế T K Ế CSDL M Ứ C KHÁI NI Ệ M (MÔ HÌNH
TH Ự C TH Ể LIÊN K Ế T)
TH Ự C HÀNH THI Ế T K Ế CSDL QUAN H Ệ
Mô hình th ự c th ể liên k ế t
Thuộc tính
Khoá
Thực thể
Mố
i liênkế
t
Mô hình quan h ệ
Các bảng (quan hệ)
Trang 2Mô hình th ự c th ể liên k ế t ( Entity-relationship model)
Th ự c th ể (Entity)
T ậ p th ự c th ể (Entity Set)
Ki ể u th ự c th ể (Entity Type)
Khoá c ủ a ki ể u th ự c th ể
M ố i liên k ế t (Relationship)
Ki ể u th ự c th ể y ế u
S ơ đồ th ự c th ể liên k ế t
6
TH Ự C TH Ể
Th ự c th ể là m ộ t s ự v ậ t t ồ n t ạ i (h ữ u hình ho ặ c tr ừ u
t ượ ng) và phân bi ệ t đượ c trong th ế gi ớ i th ự c
M ỗ i th ự c th ể có các thu ộ c tính là các tính ch ấ t mô t ả nó Các lo ạ i thu ộ c tính:
Thuộc tính nguyên tố (đơn) – thuộc tính ghép (Atomic (Simple) – Composite attribute)
Thuộc tính đơn trị – đa trị (Singled–valued and Multi–valued Attribute)
Thuộc tính lưu trữ – thuộc tính suy diễn (Stored – Derived Attribute)
Mi ề n tr ị c ủ a thu ộ c tính: là t ậ p các giá tr ị mà thu ộ c tính
c ủ a m ộ t th ự c th ể có th ể nh ậ n.
SINH VIÊN
Mã sinh viên:BK1000
(H ọ đệ m, Tên): (Nguyễn Mai, Hoa)
Ngày sinh:1/1/1980
Các s ố đ i ệ n tho ạ i:0913 222 222, 869 21 37
SINH VIÊN
Mã sinh viên:BK1001
(H ọ đệ m, Tên): (Hoàng, Lan)
Ngày sinh:12/12/1980
Các s ố đ i ệ n tho ạ i :0913 123 345, 868 24 14
Các thực thể: Sinh viên
Thuộc tính ghép
Thuộc tính đơn
Thuộc tính đa trị
KI Ể U TH Ự C TH Ể − T Ậ P TH Ự C TH Ể
Ki ể u th ự c th ể : xác đị nh m ộ t t ậ p các th ự c th ể có cùng các thu ộ c tính.
M ỗ i ki ể u th ự c th ể g ồ m có tên và các thu ộ c tính
T ậ p th ự c th ể : t ậ p t ấ t c ả các th ự c th ể thu ộ c cùng m ộ t
ki ể u th ự c th ể trong CSDL t ạ i m ộ t th ờ i đ i ể m b ấ t k ỳ Khoá c ủ a ki ể u th ự c th ể : m ộ t thu ộ c tính (có th ể là thu ộ c tính ghép) mà giá tr ị trên đ ó c ủ a các th ự c th ể phân bi ệ t
ph ả i khác nhau.
Trang 3SINH VIÊN
Mã sinh viên:BK1000
(H ọ đệ m, Tên): (Nguyễn Mai, Hoa)
Ngày sinh :1/1/1980
Các s ố đ i ệ n tho ạ i :0913 222 222, 869 21 37
SINH VIÊN
Mã sinh viên:BK1001
(H ọ đệ m, Tên):(Hoàng, Lan)
Ngày sinh:12/12/1980
Các s ố đ i ệ n tho ạ i:0913 123 345, 868 24 14
SINH VIÊN
Mã sinh viên
(H ọ đệ m, Tên)
Ngày sinh
Các s ố đ i ệ n tho ạ i
T Ậ P TH Ự C TH Ể
KI Ể U TH Ự C TH Ể
10
M Ố I LIÊN K Ế T GI Ữ A CÁC KI Ể U TH Ự C TH Ể
BK1000 BK1001 BK1002
Cơ sở dữ liệu Cấu trúc dữ liệu Toán rời rạc Mạng máy tính
r1 r2 r3
r4 r5
Tập các liên kết kiểuThigiữa thực thể Sinh viên và Môn học
M Ố I LIÊN K Ế T GI Ữ A CÁC KI Ể U TH Ự C TH Ể
M ộ t ki ể u liên k ế t R gi ữ a các ki ể u th ự c th ể E 1 , E 2 ,…, E n là
m ộ t quan h ệ toán h ọ c trên E 1 , E 2 , …, E n (là t ậ p con c ủ a
tích Đề các E 1 ××××E 2 ××××…×××× E n ) Ta nói E 1 , …, E n là các ki ể u
th ự c th ể tham gia vào ki ể u liên k ế t R
M ỗ i n–b ộ r i = (e 1 , e 2 , …, e n ), v ớ i e i là m ộ t th ự c th ể thu ộ c
ki ể u E i , là m ộ t liên k ế t thu ộ c ki ể u liên k ế t R, mô t ả s ự k ế t
h ợ p gi ữ a n th ự c th ể e 1 , e 2 , …, e n
T ậ p các liên k ế t r thu ộ c ki ể u liên k ế t R t ạ o nên m ộ t t ậ p
liên k ế t (c ũ ng có tên là R)
Liên k ế t nh ị nguyên: 1–1, 1–N (N–1), M–N
M ộ t ki ể u liên k ế t R c ũ ng có th ể có các thu ộ c tính
V ớ i liên k ế t 1–1, thu ộ c tính c ủ a m ố i liên k ế t có th ể đư a
v ề thành thu ộ c tính c ủ a m ộ t trong hai ki ể u th ự c th ể
tham gia
V ớ i liên k ế t 1–N, thu ộ c tính c ủ a m ố i liên k ế t có th ể đư a
v ề thành thu ộ c tính c ủ a ki ể u th ự c th ể tham gia bên –N
c ủ a liên k ế t
Trang 4Ràng bu ộ c v ề s ự tham gia m ố i liên k ế t
Xét ki ể u liên k ế t R gi ữ a hai ki ể u th ự c th ể E1, E2
N ế u m ỗ i th ự c th ể trong t ậ p th ự c th ể thu ộ c ki ể u E1 đề u
ph ả i tham gia vào ít nh ấ t m ộ t liên k ế t thu ộ c ki ể u liên k ế t
R thì s ự tham gia c ủ a E1 trong R đượ c g ọ i là tham gia
toàn b ộ (total participation)
N ế u ch ỉ m ộ t s ố th ự c th ể thu ộ c ki ể u E1 có tham gia vào
m ố i liên k ế t R thì s ự tham gia c ủ a E1 trong R g ọ i là tham
gia b ộ ph ậ n (partial participation)
14
KI Ể U TH Ự C TH Ể Y Ế U
Không có thu ộ c tính khoá c ủ a chính mình (Ng ượ c l ạ i là
ki ể u th ự c th ể m ạ nh).
Các th ự c th ể thu ộ c ki ể u th ự c th ể y ế u đượ c xác đị nh b ở i
m ố i liên h ệ v ớ i các th ự c th ể nh ấ t đị nh c ủ a ki ể u th ự c th ể
khác ( đượ c g ọ i là ki ể u th ự c th ể ch ủ ).
Khoá b ộ ph ậ n (Partial key): t ậ p các thu ộ c tính dùng để
phân bi ệ t các th ự c th ể y ế u mà có liên quan đế n cùng
m ộ t th ự c th ể ch ủ Liên k ế t nh ậ n di ệ n (identifying relationship): gi ữ a ki ể u
th ự c th ể y ế u và ch ủ c ủ a nó
S ơ đồ th ự c th ể liên k ế t (ER Diagrams)
Thực thể
Thực thể yếu
Mối liên kết
Mối liên kết nhận diện
Thuộc tính
S ơ đồ th ự c th ể liên k ế t (ER Diagrams)
Thuộc tính khoá
Thuộc tính đa trị
Thuộc tính ghép
Thuộc tính suy diễn
Trang 5VÍ D Ụ
Xét CSDL COMPANY nh ư sau:
– Công ty g ồ m các đơ n v ị M ỗ i đơ n v ị có m ộ t mã s ố duy nh ấ t, m ộ t tên
duy nh ấ t, m ộ t nhân viên qu ả n lý (ngày b ắ t đầ u qu ả n lý c ủ a nhân
viên này c ũ ng đượ c l ư u tr ữ ) M ộ t đơ n v ị có th ể có nhi ề u đị a đ i ể m.
– M ỗ i đơ n v ị đ i ề u hành m ộ t s ố d ự án M ỗ i d ự án có m ộ t mã s ố duy
nh ấ t, m ộ t tên duy nh ấ t, m ộ t đị a đ i ể m.
– Thông tin v ề nhân viên: h ọ tên, mã s ố , đị a ch ỉ , l ươ ng, gi ớ i tính, ngày
sinh M ỗ i nhân viên ch ỉ thu ộ c m ộ t đơ n v ị nh ư ng có th ể làm vi ệ c
trong nhi ề u d ự án (có th ể là d ự án do đơ n v ị khác qu ả n lý) C ầ n l ư u
tr ữ s ố gi ờ làm vi ệ c (trong m ộ t tu ầ n) c ủ a nhân viên đ ó trên m ộ t d ự
án M ỗ i nhân viên có m ộ t ng ườ i giám sát tr ự c ti ế p.
– M ỗ i nhân viên có m ộ t s ố ng ườ i ph ụ thu ộ c (vì lý do b ả o hi ể m) Thông
tin v ề ng ườ i ph ụ thu ộ c bao g ồ m: h ọ tên, gi ớ i tính, ngày sinh, và m ố i
quan h ệ v ớ i nhân viên.
18
ÁNH X Ạ MÔ HÌNH TH Ự C TH Ể LIÊN K Ế T
SANG MÔ HÌNH D Ữ LI Ệ U QUAN H Ệ
Bước 1: Vớ i m ỗ i ki ể u th ự c th ể m ạ nh E:
T ạ o m ộ t quan h ệ S gồm tất cả các thuộc tính của E (thuộc tính
ghép được phân tách thành các thành phần đơn lẻ)
Khoá chính của S: Chọn một trong các thuộc tính khoá của E
Nếu khoá được chọn là thuộc tính ghép thì tập tất cả các thuộc tính
đơn tạo nên thuộc tính ghép đó sẽ tạo thành khoá chính của S.
Quan hệ:
EMPLOYEE(ENO, FNAME, MINIT, LNAME, SEX, BDATE, ADDRESS, SALARY)
Bước 2 Với mỗi kiểuthực thểyếu Wcó thực thểchủlà E:
Tạ o m ộ t quan h ệ S gồm tất cả các thuộc tính đơn và các thành phần đơn lẻ của thuộc tính ghép trong W
Bổ sung thêm các thuộc tính khoá của E vào S, tạo thành khoá ngoại lai của S Khoá chính của S gồm khoá chính của E kết hợp với khoá bộ phận của thực thể yếu
Quan hệ:
DEPENDENT(EN0, NAME, SEX, BDATE, RELATIONSHIP)
Trang 6Bước 3 Vớ i m ỗ i R là ki ể u liên k ế t nh ị nguyên 1–1 gi ữ a
hai ki ể u th ự c th ể E1, E2:
Với hai quan h ệ S và T tương ứng với E1 và E2 :
Chọn một trong hai quan hệ, chẳng hạn là S, và bổ sung thêm
khoá chính của T làm khoá ngoại lai của S (tốt nhất chọn S là quan
hệ tương ứng với kiểu thực thể có sự tham gia toàn bộ trong liên
kết R)
Thêm vào S tất cả các thuộc tính đơn và các thành phần đơn lẻ
của thuộc tính ghép của kiểu liên kết R (làm thuộc tính của S).
22
Khi sự tham gia của cả hai kiểu thực thể trong mối liên kết R đều là toàn bộ thì có thể tạo một quan hệ mới bằng cách ghép hai quan
hệ S, T và các thuộc tính của kiểu liên kết R
Quan hệ DEPARTMENT(DNO, DNAME, LOCATION, MGR _ NO,
MGR_STARTDATE )
B ướ c 4 Với mỗi R là kiểuliên kết nhịnguyên 1–N giữa hai
kiểu thực thểE1, E2:
V ớ i hai quan h ệ S (t ươ ng ứ ng v ớ i ki ể u th ự c th ể E1) và T (t ươ ng
ứ ng v ớ i E2):
B ổ sung thêm khoá chính c ủ a S vào làm khóa ngo ạ i lai c ủ a T.
Thêm các thu ộ c tính đơ n (ho ặ c các thành ph ầ n đơ n l ẻ c ủ a
thu ộ c tính ghép) c ủ a m ố i liên k ế t R vào làm thu ộ c tính c ủ a T.
Quan h EMPLOYEE(FNAME, MINIT, LNAME, ENO , SEX, BDATE,
ADDRESS, SALARY, DNO )
Trang 7B ướ c 5 Với mỗi R làkiểu liên kết M – N, tạo một quan hệS
mớiđể biểu diễn R Thêm vào S khoá chính của các kiểu
thực thểtham gia mối liên kết R, làm khoá ngoại lai, kết hợp
các thuộc tính này sẽcho khoá chính của S Thêm các thuộc
tínhđơn (hoặc các thành phầnđơn lẻcủa thuộc tính ghép)
của kiểu liên kết R vào tập thuộc tính của S.
Khi chỉ tồn tại ít thểhiện của kiểu liên kết R, đểtránh có
giá trịNULL trên thuộc tính khoá ngoại lai, nên ánh xạmối
liên kết 1–1 hoặc 1–N tương tựnhưvới mối liên kết M–N
26
Quan hệ
WORKS_ON ( ENO, PNO , HOURS)
B ướ c 6 Với mỗi thuộc tínhđa trị Acuảquan hệT:
T ạ o quan h ệ m ớ i S g ồ m m ộ t thu ộ c tính t ươ ng ứ ng v ớ i A, c ộ ng
thêm thu ộ c tính khoá chính K c ủ a T
Quan h ệ S có khoá ngo ạ i lai là K và khoá chính là {A, K}.
Quan hệ DEPARTMENT(DNO, DNAME, LOCATION, MGR _ NO, MGR_STARTDATE )
Quan hệ DEPARTMENT(DNO, DNAME, MGR _ NO, MGR_STARTDATE )
DEP-_LOCATIONS ( DNO, DLOCATION )
Thuộc tính đa trị
B ướ c 7 Với mỗi R là kiểu liên kết n–nguyên, n > 2, tạo một quan hệ mới S tương ứng cho R Khoá chính của các quan
hệtương ứng với các kiểu thực thể tham gia liên kết R sẽlà
khoá ngoại lai của S Bổ sung thêm các thuộc tính đơn
(hoặc các thành phần đơn lẻ của thuộc tính ghép) của kiểu liên kết R làm thuộc tính của S Thông thường, kết hợp tất
cả các khoá ngoại lai tham chiếu đến các quan hệ tương
ứng với các kiểu thực thểtham gia mối liên kết R sẽ tạo nên
khoá chính của S Nếu phía bên kiểu thực thể E nào đó
tham gia trong R là 1 thì khoá chính của S sẽ không bao
gồm thuộc tính khoá ngoại lai tham chiếu đến quan hệ
tươngứng với thực thểE
Trang 8K ế t qu ả ánh x ạ mô hình th ự c th ể liên k ế t sang mô hình quan h ệ cho CSDL COMPANY là:
ADDRESS, SALARY, SUPER_NO, DNO )
RELATIONSHIP).