Tải bản đầy đủ (.pdf) (41 trang)

Bài giảng Nhập môn Cơ sở dữ liệu - Chương 2 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (359.86 KB, 41 trang )

Chương
Chương
2
2


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

×