I. Quá trình thiết kế CSDL
Viết chương trình quản lý Điểm của sinh viên khoa CNTT
Thế giới thực
Tập hợp và Phân tích yêu cầu
CHƯƠNG II:
Các yêu cầu về chức năng Các yêu cầu về dữ liệu
Phân tích chức năng
Thiết kế quan niệm
Các đặc tả chức năng Xác định các đối tượng được lưu trữ
MÔ HÌNH THỰC THỂ LIÊN KẾT
Thiết kế mức logic
Thiết kế chương trình ứng dụng
Chuyển đổi thông tin để lưu trong máy
Thiết kế mức vật lý
Cài đặt vào máy tính
Chương trình ứng dụng
19/2/16 19/2/16
19/2/16
1" 1"
3"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
II. Mô hình thực thể - liên kết
! Quá trình làm việc để có một CSDL
Thiết kế E/R
Ý tưởng
Lược đồ quan hệ
HQT CSDL quan hệ
" Là một mô hình mô tả súc tích về các yêu cầu dữ liệu của người dùng. Được dùng để xác định các đối tượng được quản lý của hệ thống
# dùng để thiết kế CSDL ở mức quan niệm
" Mô hình bao gồm các mô tả chi tiết của:
- Xác định đối
CSDL
tượng cần quản lý
$ Tập thực thể (Entity Sets) $ Thuộc tính (Attributes) $ Mối quan hệ (Relationship) và các ràng buộc
Chuyển đổi các thông tin cần quản lý để có thể lưu trữ vào máy tính
- Xác định thông tin cần quản lý của đối tượng
19/2/16
4"
5"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
1. Thực thể
Ví dụ
! Bài toán: (cid:2)Quản lý đề án công ty(cid:3)
" Thực thể là một (cid:2)vật(cid:3) (cụ thể hay trừu tượng) trong thế giới thực cần quản lý, có sự tồn tại độc lập và có thể phân biệt với các đối tượng khác
% Một nhân viên là một thực thể
" Tập hợp các thực thể giống nhau tạo thành 1 tập thực thể
- Kiểu thực thể
% Một đề án là một thực thể
" Thực thể có thể xác định theo nguyên tắc
$ Thực thể cụ thể: cảm nhận được bằng giác quan
! Tập hợp các nhân viên là kiểu thực thể NHÂN VIÊN
Ví dụ: Ôtô, Sinh viên, Nhân viên, …
% Một phòng ban là một thực thể
$ Thực thể trừu tượng: không cảm nhận được bằng giác quan nhưng nhận biết được bằng nhận thức Ví dụ: Môn học, Dự án, Phòng ban, …
! Tập hợp các đề án là kiểu thực thể ĐỀ ÁN
19/2/16
7"
6"
! Tập hợp các phòng ban là kiểu thực thể PHÒNG BAN Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
Phân loại thực thể
! Ví dụ:
" Thực thể mạnh: Là kiểu thực thể có thể tồn tại độc lập
với các kiểu thực thể khác
NHÂN VIÊN
$ Ký hiệu: hình chữ nhật nét đơn chứa tên thực thể
" Thực thể yếu: Là kiểu thực thể mà sự tồn tại của nó phụ
Có
thuộc vào một kiểu thực thể khác. $ Kí hiệu: hình chữ nhật nét đôi $ Nó luôn được biểu diễn cùng với kiểu thực thể mà nó phụ thuộc (gọi là kiểu thực thế sở hữu), kiểu liên kết là kiểu định danh
CON
NHÂN VIÊN
NGƯỜI PHỤ THUỘC
19/2/16
9"
8"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
2. Thuộc tính
a. Thuộc tính đơn và phức hợp
! Thuộc tính đơn (hay nguyên tử): là thuộc tính không
thể chia nhỏ thành các phần riêng biệt nhỏ hơn. % Ví dụ: Masv, Giới tính, Điểm, Tuổi, …
! Là những đặc tính riêng biệt dùng để mô tả thông tin của từng thực thể % Giá trị của thuộc tính nhận những giá trị kiểu xác định: Kiểu chuỗi, Kiểu số nguyên, Kiểu số thực, ngày xâu
MaNV
Hoten
! Ví dụ: thực thể NHANVIEN gồm - xâu kí tự
…..
! Thuộc tính phức hợp: là thuộc tính có thể phân chia được thành các thành phần nhỏ hơn, để biểu diễn các thuộc tính cơ bản hơn với các ý nghĩa độc lập. % VD: Ngaysinh & Ngay, Thang, Nam
Ngaysinh
NHANVIEN
- xâu kí tự
MaNV
Ngay
% Họ tên % Tuổi – số nguyên % Địa chỉ % …
Hoten
…..
! Ký hiệu: hình elip nét đơn gắn với thực thể
Than g
Ngaysinh
Tên thuộc tính
NHANVIEN
Nam
19/2/16
19/2/16
10"
12"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
c. Thuộc tính lưu trữ và suy dẫn
b. Thuộc tính đơn trị và đa trị
! Thuộc tính đơn trị: là thuộc tính chỉ có thể nhận một
! Thuộc tính lưu trữ: là thuộc tính mà giá trị của nó phải được nhập vào khi cài đặt cơ sở dữ liệu # phải nhập vào từ bàn phím
giá trị duy nhất cho một thực thể cụ thể % VD: Ho_ten, Ngày_sinh, …
! Thuộc tính đa trị: là thuộc tính có thể nhận một hoặc một vài giá trị cho một thực thể # nhận nhiều giá trị đồng thời % Kí hiệu: bằng một vòng elip kép (elip nét đôi) % VD: Điện_thoại, Kỹ_năng, …
! Thuộc tính suy dẫn: là thuộc tính mà giá trị của nó có thể được suy ra từ giá trị của các thuộc tính khác liên quan theo một nguyên tắc nào đó # không phải nhập, được tính qua các thuộc tính khác % Kí hiệu: bằng một hình elip có nét đứt. % VD: Tuổi, Tổng_tiền, Năm_công_tác
Điện thoại
Tuổi
19/2/16
19/2/16
13"
14"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
d. Thuộc tính khóa (định danh)
*Gợi ý để lựa chọn thuộc tính khóa
! Định danh (khoá) là tập thuộc tính có giá trị duy nhất giúp phân biệt thực thể này và thực thể khác. # Các thuộc tính tham gia vào định danh gọi là thuộc tính định danh hay thuộc tính khoá.
! Giá trị của nó không bị thay đổi theo thời gian ! Giá trị của nó không được phép bỏ trống ! Tránh sử dụng những thuộc tính mà giá trị của nó thể hiện thông tin, hay cấu trúc của nó thể hiện sự phân loại, vị trí…
! Nên chọn những thuộc tính đơn làm định danh thay
! Mỗi thực thể mạnh tồn tại thuộc tính khóa ! Khóa phức hợp: là nhiều thuộc tính kết hợp với nhau tạo thành một khóa # tổ hợp các giá trị của các thuộc tính phải khác nhau đối với mỗi thực thể
vì sử dụng kết hợp một số thuộc tính
! Ký hiệu: hình elip và một đường gạch chân dưới thuộc tính đó.
% VD: Mã SV, Mã môn học, ….
Masv
19/2/16
19/2/16
15"
16"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
Ví dụ thực thể và thuộc tính
3. Mối liên kết - quan hệ
! Là sự liên kết giữa 2 hay nhiều tập thực thể với nhau, thể hiện mối ràng buộc giữa các thực thể ! Ví dụ: giữa NHANVIEN và PHONGBAN có
Họ
Tên
Mã NV
Họ Tên
Ngày sinh
HSL
Bằng Cấp
Lương
% Một nhân viên thuộc một phòng ban nào đó % Một phòng ban có một nhân viên làm trưởng phòng ! Ký hiệu: hình thoi nối trực tiếp thực thể, với tên liên kết chứa phía trong % Tên liên kết là động từ
Tên kiểu liên kết
NHÂN VIÊN
! Ví dụ:
NHANVIEN
PHONGBAN
Thuộc
19/2/16
18"
17"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
Thuộc tính liên kết
a. Các kiểu liên kết
! Kiểu liên kết 1 – 1 (một-một): một thực thể kiểu A
% Thuộc tính liên kết để mô tả các thông tin chỉ có
khi có mối liên kết giữa các thực thể % Ký hiệu: Hình elip gắn liền với liên kết
liên kết với một thực thể kiểu B và ngược lại % Ký hiệu: thêm số 1 ở hai đầu thực thể % Ví dụ:
1
1
% Ví Dụ: Nhân viên làm việc cho dự án thì phải lưu trữ
số giờ làm
THE ATM KHACHHANG CÓ
Làm việc cho
! Kiểu liên kết 1 – N (một-nhiều): 1 thực thể kiểu A liên kết với nhiều thực thể kiểu B; 1 thực thể kiểu B chỉ liên kết duy nhất với 1 thực thể kiểu A. % Ký hiệu: thêm số 1 ở đầu phía một, thêm n ở đầu
NHANVIEN
DỰ ÁN
phía nhiều
% Ví dụ:
Số giờ làm
1
N
19/2/16
19/2/16
19"
20"
HOCSINH LOP CÓ Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
b. Bậc của liên kết
! Kiểu liên kết M – N (nhiều-nhiều): 1 thực thể kiểu A liên kết
! Bậc của liên kết: là số kiểu thực thể tham gia vào liên
kết.
1
! Phân loại:
với một hay nhiều thực thể kiểu B và ngược lại % Ký hiệu: thêm ký hiệu m và n ở hai đầu liên kết % Ví dụ:
Liên kết đệ quy
marry
1
M
N
PERSON HOCSINH LỚP ĐK CÓ
SUBJECT
! Cách biểu diễn khác:
N
DEPARTMENT(cid:1) 1 1
works_for(cid:1)
manages
teac h
M
M
1
n
TEACHER
CLASS
EMPLOYEE
Hours
Liên kết bậc 2
Liên kết bậc 3
19/2/16
19/2/16
21"
22"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
c. Lực lượng tham gia liên kết
d. Ràng buộc tham gia liên kết
! Thể hiện số lượng các thực thể của mỗi kiểu thực thể tham
gia vào liên kết.
! Thể hiện cách thức yêu cầu của liên kết. ! Có hai loại:
! Ký hiệu: Thêm (min, max) vào mối liên kết
% Min: số lượng thực thể nhỏ nhất tham gia liên kết % Max: số lượng thực thể lớn nhất tham gia liên kết
! Ví dụ:
% Bắt buộc: Nếu mỗi thực thế của kiểu thực thể A khi tham gia vào liên kết đều phải được kết nối với một hoặc một số thực thể của kiểu thực thể B. % Tuỳ chọn: Khi một thực thể của kiểu thực thể A có thể có hoặc không có một thực thể nào của B cùng tham gia vào liên kết với A
n 1 GIÁO VIÊN KHOA Thuộc (1,n) (1,1) 1 (1,12)
Quảnlý n (1,1) LỚP
Liên kết ràng buộc tuỳ chọn
Liên kết một ràng buộc bắt buộc
19/2/16
19/2/16
23"
24"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
Ví dụ mô hình thực thể - Quản lý đề án
4. Mô hình E/R
NGSINH
HSL
TENPHG
MaPhg
DIADIEM
HOTENNV
1
n
Lam_viec
NHANVIEN
PHONGBAN
MaN V
! Là mô hình (đồ thị) biểu diễn mối liên kết – ràng buộc giữa tập các thực thể của bài toán, mô hình gồm các thành phần sau: % Đỉnh:
1
m
Tên tập thực thể
Tập thực thể
Lương
Tên thuộc tính
Thuộc tính
Tên quan hệ
Phu_trach
Quan hệ
DDIEM_DA
n
% Cạnh là đường nối giữa:
n
Phan_cong
DEAN
TENDA
MaDA
25"
26"
! Tập thực thể và thuộc tính ! Mối quan hệ và tập thực thể Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
*Thể hiện của lược đồ E/R
III. Thiết kế CSDL
1. Liệt kê, chính xác hóa và lựa chọn thông tin. 2. Xác định các kiểu thực thể và thuộc tính của nó,
! Một CSDL được mô tả bởi lược đồ E/R sẽ chứa đựng những dữ liệu cụ thể gọi là thể hiện CSDL % Mỗi tập thực thể sẽ có tập hợp hữu hạn các thực thể
! Giả sử tập thực thể NHANVIEN có các thực thể như NV1, NV2, … NVn
% Xác định thuộc tính khóa. % Xác định thuộc tính đa trị % Xác định thuộc tính suy dẫn
% Mỗi thực thể sẽ có 1 giá trị cụ thể tại mỗi thuộc tính ! NV1 có TENNV=(cid:2)Tung(cid:3), NGSINH=(cid:2)08/12/1955(cid:3), PHAI=(cid:2)(cid:1)Nam(cid:3) ! NV2 có TENNV= (cid:2)Hang(cid:3), NGSINH=(cid:2)07/19/1966(cid:3), PHAI=(cid:2)Nu(cid:3)
3. Xác định mối liên kết giữa các thực thể
% Thuộc tính của liên kết (nếu có) % Kiểu - Bậc của liên kết % Lực lượng tham gia liên kết (nếu có)
! Chú ý: % Không lưu trữ lược đồ E/R trong CSDL # Khái niệm trừu tượng % Lược đồ E/R chỉ giúp ta thiết kế CSDL trước khi chuyển các quan hệ và dữ liệu xuống mức vật lý
4. Vẽ sơ đồ mô hình ER 5. Chuẩn hóa và rút gọn sơ đồ (nếu cần)
19/2/16
19/2/16
27"
28"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
Qui tắc thiết kế
Ví dụ (cid:2)Bài toán Quản lý đề án công ty(cid:3)
! Chính xác ! Tránh trùng lắp ! Dễ hiểu ! Chọn đúng mối quan hệ ! Chọn đúng kiểu thực thể
! Công ty được chia thành các phòng ban. Mỗi PB có một tên, một mã số duy nhất. Một PB có thể có nhiều địa điểm. ! Mỗi PB thực hiện một số dự án. Một DA có tên, một mã số duy nhất, một địa điểm thực hiện và thời gian bắt đầu thực hiện DA. ! Với mỗi NV trong công ty, lưu giữ lại thông tin: Họ tên, Mã số, địa chỉ, hệ số lương, lương (được tính dựa vào hệ số lương và mức lương cơ bản hiện tại), giới tính, ngày sinh, ngoại ngữ (mỗi nhân viên có thể biết nhiều ngoại ngữ). Một NV chỉ làm việc cho một PB nhưng có thể làm việc trên nhiều DA do nhiều PB khác nhau kiểm soát – thực hiện. Trong một PB chỉ cho phép tối đa 10 NV dưới quyền quản lý của PB đó. Chúng ta cần lưu giữ lại số giờ làm việc của mỗi nhân viên trên một dự án nào đó. ! Mỗi NV có những người thân kèm theo. Những người này được hưởng bảo hiểm theo NV . Với mỗi người thân của NV, lưu giữ Họ tên, giới tính, ngày sinh, và quan hệ với NV.
19/2/16
19/2/16
29"
30"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
Các bước thực hiện
*Vẽ Biểu đồ - Sơ đồ ER
Họ đệm
Tên
1. Xác định các kiểu thực thể
% Danh từ chung mô tả đối tượng
Lương
Tên
Mã số
Địa điểm
Địa chỉ
Ngày sinh Giới tính HSL
Họ tên
2. Xác định các thuộc tính và phân loại từng thuộc
Mã số
n
1
NHÂN VIÊN
PHÒNG BAN
tính
Ngoại ngữ
m
1
1
(1,1)
(1,10)
% Danh từ mô tả thông tin đối tượng tương ứng
Làm việc cho
3. Xác định các liên kết và kiểu liên kết
Thẻ BH
n
n
n
Số giờ
% Động từ có ràng buộc – liên kết hai thực thể 4. Xác định số lượng thực thể tham gia liên kết
DỰ ÁN
THÂN NHÂN
T/g bắt đầu
% Con số đi kèm với thực thể
Tên
Mã số
Địa điểm
5. Vẽ hình mô hình ER
Tên
Ngày sinh
Giới tính Quan hệ
19/2/16
19/2/16
31"
32"
Kiểm soát Có Làm việc
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập
V. Mô hình thực thể liên kết mở rộng
! EER – Enhanced Entity Realationship Model ! EER là mô hình bao gồm tất cả các khái niệm của mô hình ER ngoài ra còn có thêm các khái niệm như lớp, kiểu liên kết cha/ lớp con, tính thừa kế, chuyên biệt, tổng quát, phạm trù ! SV tự nghiên cứu
BÀI TẬP VỀ NHÀ
19/2/16
19/2/16
34"
44"
Chủ động – Tích cực Học tập Chủ động – Tích cực Học tập