Chương
Chương
2
2
Mô
Mô
h
h
ì
ì
nh
nh
th
th
ự
ự
c
c
th
th
ể
ể
liên
liên
k
k
ế
ế
t
t
(Entity
(Entity
-
-
Relationship)
Relationship)
Nhập môn Cơ sở dữ liệu - Khoa CNTT 2
Nộidung chi tiết
Quá trình thiếtkế CSDL
Mô hình thựcthể liên kết(ER)
Thiếtkế
Ví dụ
Mô hình thựcthể liên kếtmở rộng (EER)
Nhập môn Cơ sở dữ liệu - Khoa CNTT 3
Quá trình thiếtkế CSDL
Ý tưởng thiếtkế E/R
Lược đồ
quan hệ
HQT CSDL
quan hệ
Nhập môn Cơ sở dữ liệu - Khoa CNTT 4
Phụ thuộc
HQT cụ thể
ĐộclậpHQT
Quá trình thiếtkế CSDL (tt)
Thế giới
thực
Phân tích yêu cầu
TK quan niệm
Thiếtkế mứclogic
Thiếtkế mứcvậtlý
Các yêu cầuvề dữ liệu
Lược đồ quan niệm
Lược đồ logic
Lược đồ trong
Chương trình ứng dụng
Thiếtkế
chương trình ứng dụng
Phân tích chứcnăng
Các yêu cầuvề chứcnăng
Các đặctả chứcnăng
Nhập môn Cơ sở dữ liệu - Khoa CNTT 5
Nộidung chi tiết
Quá trình thiếtkế CSDL
Mô hình thựcthể -liênkết
- Thựcthể
- Thuộc tính
- Ràng buộctrênkiểu liên kết
- Lược đồ thựcthể - liên kết
- Thựcthể yếu
Thiếtkế
Ví dụ
Nhập môn Cơ sở dữ liệu - Khoa CNTT 6
Mô hình thựcthể - liên kết
Được dùng để thiếtkế CSDL ở mức quan niệm
Biểudiễntrừutượng
cấutrúccủaCSDL
Lược đồ thựcthể-liênkết
(Entity-Relationship Diagram)
- Tậpthựcthể (Entity Sets)
- Thuộc tính (Attributes)
- Mối quan hệ (Relationship)
Nhập môn Cơ sở dữ liệu - Khoa CNTT 7
Tậpthựcthể
Mộtthựcthể là một đốitượng củathế giớithực.
Thựcthểđượcmôtả bởimộttậpcácthuộc tính
Tậphợpcácthựcthể giống nhau tạo thành 1 tập
thựcthể
Chú ý
- Thựcthể (Entity)
- Đốitượng (Object)
- Tậpthựcthể (Entity set)
- Lớp đốitượng (Class of objects)
Cấutrúccủadữ liệu
Thao tác trên dữ liệu
Nhập môn Cơ sở dữ liệu - Khoa CNTT 8
Tậpthựcthể (tt)
Ví dụ “Quảnlýđề án công ty”
- Một nhân viên là mộtthựcthể
- Tậphợp các nhân viên là tậpthựcthể
- Một đề án là mộtthựcthể
- Tậphợpcácđề án là tậpthựcthể
- Một phòng ban là mộtthựcthể
- Tậphợp các phòng ban là tậpthựcthể
Nhập môn Cơ sở dữ liệu - Khoa CNTT 9
Thuộctính
Là tập các giá trị có thể gán cho thuộc tính đốivớimỗithực
thể riêng biệt
Miềngiátrị củathuộc tính (domain)
- Kiểuchuỗi (string)
- Kiểusố nguyên (integer)
- Kiểusố thực…
Ví dụ tậpthựcthể NHANVIEN có các thuộc tính
- Họ tên (hoten: string[20])
- Ngày sinh (ns: date)
- ĐiểmTB (DTB:float)
- …
Nhập môn Cơ sở dữ liệu - Khoa CNTT 10
Thuộctính(tínhchất)
Loạithuộc tính
- Thuộc tính đơn – không thể tách nhỏ ra được
- Thuộc tính phứchợp–cóthể tách ra thành các thành
phầnnhỏ hơn
Loạigiátrị củathuộc tính
- Đơntrị: các thuộc tính có giá trị duy nhất cho mộtthực
thể (VD: số CMND, …)
- Đatrị: các thuộctínhcómộttậpgiátrị chocùngmộtthực
thể (VD: bằng cấp, …)
- Suy diễn được(nămsinhÅÆtuổi)
Nhập môn Cơ sở dữ liệu - Khoa CNTT 11
Thuộctính(tínhchất)
Tấtcả các thựcthể nằm trong tậpthựcthể có cùng
tậpthuộctính
Mỗithựcthểđều được phân biệtbởimộtthuộctính
khóa
Mỗithuộctínhđềucómiềngiátrị tương ứng vớinó
Nhập môn Cơ sở dữ liệu - Khoa CNTT 12
Thuộctính(tínhchất)
Ví dụ tậpthựcthể NHANVIEN có các thuộc tính
- Mã NV (MaNV: integer)
- Họ tên (Hoten: string[50])
- Ngày sinh (ns:date)
- Địachỉ (diachi:string[100])
- Quê quán (quequan:string[30])
- Hệ số lương (hsluong:float)
- Hệ số phụ cấp (hsphucap:float)
- Tổng lương (tongluong:float)
Loạithuộc tính? Miềngiátrị? Và loạigiátrị củatt?
Nhập môn Cơ sở dữ liệu - Khoa CNTT 13
Mốiquanhệ
Quan hệ: Là sự liên kếtgiữa 2 hay nhiềutậpthực
thể
Ví dụ giữatậpthựcthể NHANVIEN và PHONGBAN
có các liên kết
- Một nhân viên thuộcmột phòng ban nào đó
- Một phòng ban có một nhân viên làm trưởng phòng
Tập các quan hệ: là tậphợpcácmối quan hệ giống
nhau
Nhập môn Cơ sở dữ liệu - Khoa CNTT 14
Lược đồ ER
Là đồ thị biểudiễncáctậpthựcthể, thuộctínhvà
mối quan hệ
- Đỉnh
- Cung là đường nốigiữa
y Tậpthựcthể và thuộctính
y Mối quan hệ và tậpthựcthể
Tên tậpthựcthể
Tậpthựcthể
Tên thuộctính
Thuộctính
Tên quan hệ
Quan hệ
Nhập môn Cơ sở dữ liệu - Khoa CNTT 15
Ví dụ lược đồ ER
Lam_viec
La_truong_phong
Phan_cong
DCHI
NHANVIEN
TENNV
NGSINH
PHAI
LUONG
HONV
PHONGBAN
TENPHG
Phu_trach
DEAN
TENDA
DDIEM_DA
Kiểu liên kết
Nhập môn Cơ sở dữ liệu - Khoa CNTT 16
Ví dụ lược đồ ER (tt)
Thể hiện liên kết
Nhập môn Cơ sở dữ liệu - Khoa CNTT 17
Thể hiệncủalược đồ ER
MộtCSDL đượcmôtả bởilược đồ ER sẽ chứa đựng
những dữ liệucụ thể
gọilàthể hiệnCSDL
- Mỗitậpthựcthể sẽ có tậphợphữuhạncácthựcthể
y Giả sử tậpthựcthể NHANVIEN có các thựcthể như NV
1
, NV
2
,
…NV
n
- Mỗithựcthể sẽ có 1 giá trị cụ thể tạimỗithuộc tính
y NV
1
có TENNV=“Tung”, NS=“08/12/1955”, GT=“‘Nam”
y NV
2
có TENNV= “Hang”, NS=“07/19/1966”, GT=“Nu”
Chú ý
- Không lưutrữ lược đồ ER trong CSDL
y Khái niệmtrừutượng
- Lược đồ ER chỉ giúp ta thiếtkế CSDL trướckhichuyển
các quan hệ và dữ liệuxuống mứcvậtlý
Nhập môn Cơ sở dữ liệu - Khoa CNTT 18
Ràng buộctrênkiểu liên kết
Thể hiệnCSDL cònchứacácmối quan hệ cụ thể
- Cho mối quan hệ R kếtnốin tậpthựcthể E
1
, E
2
, …, E
n
- Thể hiệncủaR làtậphữuhạn các danh sách (e
1
, e
2
, …, e
n
)
- Trong đóe
i
là các giá trịđượcchọntừ các tậpthựcthể E
i
Xét mối quan hệ
NHANVIEN PHONGBAN
Tung
Hang
Nghien cuu
Dieu hanh
Vinh Quan ly
(Tung, Nghien cuu)
(Hang, Dieu hanh)
(Vinh, Quan ly)
Lam_viec
NHANVIEN PHONGBAN
Nhập môn Cơ sở dữ liệu - Khoa CNTT 19
Ràng buộctrênkiểu liên kết(tt)
Xét mối quan hệ nhị phân R (binary relationship) giữa2 tậpthựcthể
A và B, ràng buộc liên kết bao gồm
- Một-Nhiều
- Một-Một
- Nhiều-Một
- Nhiều-Nhiều
A B
Quan_hệ
11
A B
Quan_hệ
mn
A B
Quan_hệ
n1
A B
Quan_hệ
1n
Nhập môn Cơ sở dữ liệu - Khoa CNTT 20
Ràng buộctrênkiểu liên kết(tt)
(min, max) chỉđịnh mỗithựcthể e ∈ E tham gia ít
nhấtvànhiềunhấtvàothể hiệncủaR
y (0,1) – không hoặc1
y (1,1) – duy nhất1
y (0,n) – không hoặcnhiều
y (1,n) – mộthoặc nhiều
E F
Quan_hệ
(min, max) (min, max)
Nhập môn Cơ sở dữ liệu - Khoa CNTT 21
Ràng buộctrênkiểu liên kết(tt)
Ví dụ
- Một phòng ban có nhiều nhân viên
- Một nhân viên chỉ thuộc 1 phòng ban
- Một nhân viên có thểđược phân công vào nhiều đề án
hoặc không được phân công vào đề án nào
- Một nhân viên có thể là trưởng phòng của 1 phòng ban
nào đó
NV PB
Lam_viec
(1,n)
NV PB
Lam_viec
(1,1)
NV DA
Phan_cong
(0,n)
NV PB
La_truong_phong
(0,1)
Nhập môn Cơ sở dữ liệu - Khoa CNTT 22
Ràng buộctrênkiểu liên kết(tt)
Mộtloạithựcthể có thể tham gia nhiềulầnvàomột
quan hệ vớinhiều vai trò khác nhau
NHANVIEN
Quan_ly
Duoc quan ly boi
(0,1)
(0,n)
La nguoi quan ly
Nhập môn Cơ sở dữ liệu - Khoa CNTT 23
Thuộctínhtrênmốiquanhệ
Thuộc tính trên mối quan hệ mô tả tính chấtchomối
quan hệđó
Thuộc tính này không thể gắnliềnvớinhững thực
thể tham gia vào mối quan hệ
NHANVIEN DUAN
Lam_viec
(0,n) (1,n)
THGIAN
Nhập môn Cơ sở dữ liệu - Khoa CNTT 24
Thuộctínhkhóa
Các thựcthể trong tậpthựcthể cầnphải đượcphân
biệt
Khóa K củatậpthựcthể E là một hay nhiềuthuộc
tính sao cho
- Lấy ra 2 thựcthể bấtkỳ e
1
, và e
2
trong E
- Thì e
1
và e
2
không thể có các giá trị giống nhau tạicác
thuộc tính trong K
Chú ý
- Mỗitậpthựcthể phảicó1 khóa
- Một khóa có thể có 1 hay nhiềuthuộc tính
- Có thể có nhiều khóa trong 1 tậpthựcthể, ta sẽ chọnra1
khóa làm khóa chính cho tậpthựcthểđó
Nhập môn Cơ sở dữ liệu - Khoa CNTT 25
Ví dụ thuộctínhkhóa
Lam_viec
La_truong_phong
Phan_cong
NHANVIEN
TENNV
NGSINH DCHI
GT
LUONG
HONV
PHONGBAN
TENPB
Phu_trach
DUAN
TENDA
DDIEM_DA
MANV
MAPHG
MADA