THIẾT KẾ CƠ SỞ DỮ LIỆU ( MHT09.3)
Chương 1: Các khái niệm cơ bản
bangtqh@utc2.edu.vn
Quy trình phát triển hệ thống
Lựa chọn và lập kế hoạch hệ thống
Phân tích hệ thống
Triển khai và vận hành hệ thống
Thiết kế hệ thống
Thiết kế giao diện (cid:1) Thiết kế CSDL
2 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Nội dung
(cid:2) Review về quan hệ và chuẩn hóa (cid:2) Thiết kế CSDL mức quan niệm (cid:2) Thiết kết CSDL mức logic (cid:2) Thiết kế CSLD mức vật lý
3 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Review Quan hệ & Chuẩn hóa
(cid:2) Mô hình dữ liệu quan hệ
– Dữ liệu được trình bày như các bảng có liên quan với
nhau.
– Mỗi quan hệ là 1 bảng 2 chiều gồm các hàng và cột – Một quan hệ được là có cấu trúc cao khi:
• Sự dư thừa dữ liệu mở mức tối thiểu và cho phép người dùng nhập, chỉnh sửa và xóa các bản thi mà không làm mất đi tính nhất quán của dữ liệu
4 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Review Quan hệ & Chuẩn hóa
(cid:2) Quan hệ nào có cấu trúc cao?
5 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Review Quan hệ & Chuẩn hóa
(cid:2) Chuẩn hóa (Normalization):
– Là quy trình biến đổi những cấu trúc dữ liệu phức tạp
thành những cấu trúc dữ liệu ổn định và đơn giản
– Kết quả của quá trình chuẩn hóa là quan hệ có cấu trúc
cao
6 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Review Quan hệ & Chuẩn hóa
(cid:2) Ví dụ trước khi chuẩn hóa
7 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Review Quan hệ & Chuẩn hóa
(cid:2) Ví dụ sau khi chuẩn hóa
8 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Các dạng chuẩn (cid:2) Dạng chuẩn 1 (1NF)
– Không có thuộc tính đa trị (toàn bộ thuộc tính là đơn)
(cid:2) Dạng chuẩn 2 (2NF)
– Không có thuộc tính phụ thuộc 1 phần vào khóa chính
(mọi thuộc tính không phải khóa đều được xác định bởi thuộc tính khóa) (cid:2) Dạng chuẩn 3 (3NF)
– Không chứa thuộc tính phụ thuộc bắc cầu vào khóa (Các thuộc tính không phải là khóa chính không phụ thuộc lẫn nhau)
(cid:2) Kết quả sau dạng chuẩn 3:
– Tất cả các thuộc tính không phải là khóa đều phụ thuộc
hoàn toàn vào khóa chính
9 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phụ thuộc hàm
(cid:2) Quá trình chuẩn hóa được tiến hành dựa trên việc
phân tích các phụ thuộc hàm
(cid:2) Phục thuộc hàm (functional dependency) là một dạng quan hệ đặc trưng giữa 2 thuộc tính. Với một quan hệ cho trước, thuộc tính B được gọi là phụ thuộc hàm vào thuộc tính A nếu với mọi giá trị hợp lệ của A thì xác định duy nhất giá trị của thuộc tính B
(cid:2) Sự phụ thuộc hàm của B vào A ký hiệu là: A → B
10 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Chuyển về dạng chuẩn 2
(cid:2) Một quan hệ đã đạt 2NF nếu thỏa mãn 1 trong các
điều kiện sau: – ĐK1: Khóa chính chỉ gồm 1 thuộc tính duy nhất – ĐK2: Trong quan hệ không tồn tại thuộc tính không
phải khóa chính
– ĐK3: Mọi thuộc tính không phải khóa chính đều phụ
thuộc đầy đủ vào khóa chính
(cid:2) Chuyển quan hệ thành dạng 2NF
– Phân rã quan hệ thành các quan hệ mới sử dụng thuộc
tính có thể xác định các thuộc tính khác
– Thuộc tính xác định thuộc tính khác trở thành khóa
chính của quan hệ mới
11 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Ví dụ chuyển về dạng 2NF
(cid:2) Quan hệ EMPLOYEEE2
– EMPLOYEE2(Emp_ID, Name, Dept, Salary, Course,
Date_Completed)
(cid:2) Phụ thuộc hàm trong quan hệ này là:
– Emp_ID → Name, Dept, Salary – Emp_ID, Course → Date_Completed
(cid:2) Chuyển về dạng chuẩn 2
– EMPLOYEE1(Emp_ID, Name, Dept, Salary) – EMP_COUSE(Emp_ID, Course, Date_Completed)
12 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Ví dụ khác chuyển về 2NF
THI
SINHVIEN
Monthi
Giaovien
Monthi
MaSV
TenSV
Diachi
Diem
3
A
3
11
Lan
X
8
4
B
3
12
Ha
Y
6
4
Lan
11
X
7
5
C
MaSV → TenSV, Diachi Monthi, MaSV → TenSV, Diachi, Diem
4
12
Ha
Y
6
5
11
Lan
X
7
5
13
Tu
Z
2
KETQUATHI
Monthi
MaSV
Diem
SINHVIEN
3
11
8
MaSV
TenSV
Diachi
3
12
6
11
Lan
X
4
11
7
12
Ha
Y
4
12
6
13
Tu
Z
5
11
7
5
13
2
13 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Chuyển về dạng 3NF
(cid:2) Một quan hệ ở dạng chuẩn ba nếu nó ở dạng chuẩn 2 và không có phụ thuộc hàm nào giữa hai (hay nhiều) thuộc tính không phải khóa chính
(cid:2) Chuyển về dạng chuẩn 3:
– Phân rã quan hệ thành 2 quan hệ sử dụng thuộc tính
quyết định
14 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Ví dụ chuyển về dạng 3NF
(cid:2) Quan hệ SALES
– SALES(Customer_ID, Customer_Name, Saleperson,
Region) (cid:3) Thỏa mãn 2NF
(cid:2) Phụ thuộc hàm
– Customer_ID → Customer_Name, Saleperson, Region – Saleperson → Region
(cid:2) Dưa về dạng 3NF
– SALES1(Customer_ID, Customer_Name, Saleperson) – SPERSON(Saleperson, Region)
15 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Dạng chuẩn Boyce-Codd
(cid:2) Định nghĩa:
– Lược đồ quan hệ R với tập phụ thuộc hàm F được gọi là ở dạng chuẩn Boyce-Codd (BCNF) nếu X→A đúng trên R thì X là một siêu khóa
(cid:2) Nhận xét
– Một lược đồ quan hệ R đã ở dạng BCNF thì cũng đạt dạng
chuẩn 3NF
(cid:2) Ví dụ:
– Xét lược đồ quan hệ R(CSZ) với tập phụ thuộc hàm
F={CS→Z, Z→C}
– Áp dụng thuật toán tìm khóa sẽ có 2 khóa là SC và SZ như vậy R có mọi thuộc tính đều là thuộc tính khóa (cid:3) đạt chuẩn 3NF
– Nhưng R không đạt BCNF vì tồn tại PTH Z→C trong đó Z
không phải là 1 siêu khóa.
16 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã lược đồ quan hệ
(cid:2) Phân rã bảo toàn thông tin
– Cách kiểm tra phân rã có bảo toàn thông tin ?
(cid:2) Phân rã bảo toàn Phụ thuộc hàm
– Cách kiểm tra phân rã có bảo toàn PTH ?
17 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã lược đồ quan hệ
(cid:2) Xét quan hệ Diachi
TenSV
MaSV
Malop
Tenlop
11
Lan
X
Cử nhân A1
CNA1
Các phụ thuộc hàm: - MaSV→TenSV, Diachi, Malop - Malop → Tenlop
12
Y
Hải
Cử nhân A1
CNA1
13
Tú
Z
Cử nhân A2
CNA2
Khóa của quan hệ là: MaSV
(cid:2) Nhận xét:
– Quan hệ trên đạt 2NF – Chưa đạt 3NF vì thuộc tính Tenlop phụ thuộc bắc cầu
vào khóa
18 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã lược đồ quan hệ (cid:2) Thực hiện phân rã quan hệ đã cho
MaSV
TenSV
Diachi
Malop
Tenlop
11
Lan
X
Cử nhân A1
CNA1
12
Y
Hải
Cử nhân A1
CNA1
13
Tú
Z
Cử nhân A2
CNA2
SINHVIEN
LOP
MaSV
TenSV
Diachi
Malop
Malop
Tenlop
11
Lan
X
CNA1
Cử nhân A1
CNA1
12
Y
Hải
CNA1
Cử nhân A2
CNA2
13
Tú
Z
CNA2
Cả 2 quan hệ mới đều đạt BCNF
19 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Định nghĩa:
– Lược đồ quan hệ R (với tập PTH F) được phân rã
thành các lược đồ R1, R2,….,Rk được gọi là phân rã bảo toàn thông tin nếu với mỗi quan hệ r của R thỏa F chúng ta có:
r = πR1(r) * πR2(r)*….* πRk(r)
20 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Kiểm tra xem 1 phân rã có bảo toàn thông tin?
– Input:
• Lược đồ R với tập thuộc tính U = {A1, A2, …., An} • Tập phụ thuộc hàm F • Phân rã ρ = {R1, R2, …, Rk}
– Output:
• Khẳng định ρ là phân rã có mất mát thông tin hay không?
21 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Kiểm tra xem 1 phân rã có bảo toàn thông tin?
– Phương pháp:
• Bước 1: Lập 1 bảng n cột và k hàng. Cột j ứng với thuộc tính Aj
Hàng i ứng với lược đồ Ri. Ở vị trí (i, j) ta điền:
+ aj nếu Aj thuộc Ri + bij nếu Aj không thuộc Ri
• Bước 2: Xét lặp đi lặp lại mỗi phụ thuộc hàm f = X→ Y trong F
cho đến khi không còn sự thay đổi nào trong bảng. Ở mỗi lần xét X→Y ∈F ta tìm tất cả những hàng giống nhau ở tất cả các cột cho thuộc tính X. Nếu thấy 2 hàng như thế thì làm cho 2 hàng này giống nhau ở các cột cho thuộc tính Y. Khi làm cho 2 ký hiệu bằng nhau nếu 1 trong 2 ký hiệu là aj thì ký hiệu kia đặt lại thành aj; nếu 1 trong 2 ký hiệu là bij và bkj thì làm bằng nhau bằng ký hiện nào cũng được. Cuối cùng nếu xuất thu được 1 hàng a1, a2,…,an thì kết luận phân rã đó bảo toàn thông tin. Ngược thì thì KHÔNG BẢO TOÀN
22 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Xét ví dụ khi nãy
– R(MaSV, TenSV, Diachi, MaLop, TenLop) với tập phụ
thuộc hàm F = {f1, f2} trong đó:
f1 = MaSV → TenSV, Diachi, MaLop f2 = MaLop → Tenlop
– Phân rã ρ = {R1, R2} với
R1(MaSV, TenSV, Diachi, MaLop) R2(MaLop, Tenlop)
– Kiểm tra xem phân rã trên có bảo toàn thông tin
không?
23 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Bước 1: Lập bảng khởi đầu
MaSV TenSV Diachi Malop
Tenlop
R
R1
R2
a3 b23
a2 b22
a1 b21
a4 a4
b15 a5 (cid:2) Bước 2: lần lượt xét các phụ thuộc hàm X→Y
– Xét f1 = MaSV→TenSV, DiaChi, Malop
Rõ ràng trong 2 dòng ở bảng trên không có dòng nào giống nhau ở cột MaSV nên không làm gì – Xét f2 = MaLop→Tenlop
Ở cột Malop có 2 hàng giống nhau nên ta biến cột tên lớp thành giống nhau (ưu tiên biến thành a5)
MaSV TenSV Diachi Malop
Tenlop
R
R1
R2
a1 b21
a2 b22
a3 b23
a4 a4
a5 a5
– Vậy ρ là phân ra bảo toàn thông tin
24 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Bài tập ví dụ khác:
– Cho R = ABCDE với tập PTH F = {A→C, B→C, C→D, DE→C, CE→A}; phân rã ρ = {R1, R2 ,R3,R4,,R5} với: R1=AD; R2=AB; R3=BE; R4=CDE; R5=AE
– Kiểm tra xem ρ có phải là phân rã bảo toàn thông tin
không?
(cid:2) Giải:
– Bảng khởi đầu
25 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Giải ví dụ (tiếp) – Xét A → C – Xét B→ C
ρ LÀ PHÂN RÃ BẢO TOÀN THÔNG TIN
– Xét C→D
– Xét DE→C và CE→A không có gì thay đổi
26 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn thông tin
(cid:2) Đối với trường hợp phân rã thành 2 lược đồ thì ta có
thuật toán đơn giản hơn: Phân rã ρ= {R1(U1), R2(U2)} của R(U) không mất thông tin đối với tập PTH F nếu và chỉ nếu: – (U1 ∩ U2) → (U1 - U2) ∈ F+, hoặc – (U1 ∩ U2) → (U2 - U1) ∈ F+.
27 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã lược đồ quan hệ
(cid:2) Phân rã bảo toàn thông tin
– Cách kiểm tra phân rã có bảo toàn thông tin ?
(cid:2) Phân rã bảo toàn Phụ thuộc hàm
– Cách kiểm tra phân rã có bảo toàn PTH ?
28 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn PTH
(cid:2) Phân rã bảo toàn thông tin là bắt buộc (cid:2) Phân rã bảo toàn PTH là phân rã mà ta có thể suy ra tập PTH của quan hệ gốc từ các hình chiếu của nó
(cid:2) Định nghĩa hình chiếu của tập PTH
– Hình chiếu của tập PTH F trên một tập các thuộc tính U ký hiệu là πu(F) là tập các PTH X→Y thuộc F+ sao cho XY⊆ U
(cid:2) Định nghĩa phân rã bảo toàn PTH
– Phân rã ρ bảo toàn tập phụ thuộc hàm F nếu hợp của tập tất cả các PTH trong các hình chiếu của F trên các lược đồ con là tương đương với F
– Gọi Fi = πRi (F) và G = F1∪ F2 ∪ …..∪Fk thì G≡F
29 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn PTH
(cid:2) Ví dụ:
– Quan hệ TKB(PhongHoc, GioHoc, MonHoc).
• Mỗi môn học chi được bố trí vào 1 phòng học duy nhất
do đó ta có PTH M→P
• Mỗi môn học có thể bố trí ở những giờ khác nhau và với 1 phòng học và giờ học cụ thể thì ta biết được Môn học đó là môn gì. Vì vậy: PG → M
– Thực hiện phân rã (P,G,M) thành (G, M) và (P, M)
• Kiểm tra bảo toàn thông tin ? • Kiểm tra tính bảo toàn PTH ?
30 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn PTH
(cid:2) Ví dụ: phân rã bảo toàn PTH nhưng không bảo toàn
thông tin – R(A,B,C,D) và F = {A→B, C→D} – ρ = { R1(AB), R2(CD) } – Kiểm tra bảo toàn PTH: • F1 = πAB(F) = {A→B} • F2 = πCD(F) = {C→D} • Rõ ràng G = ∪Fi là tương đương với F nên phân rã trên
bảo toàn PTH
31 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn PTH
(cid:2) Phương pháp kiểm tra phân rã bảo toàn PTH
– Input:
• Phân rã ρ (R1, R2, …., Rk) • Tập phụ thuộc hàm F
– Output:
• Khẳng định ρ có bảo toàn PHT hay không?
– Phương pháp:
• Với mỗi PTH X→Y ∈ F
Z := X While (Có thay đổi với Z) do
Z := Z ∪ ((Z∩Ri)+ ∩ Ri) /*Bao đóng lấy ứng với F*/
Nếu Y ⊆ Z thì kết luận “X→Y ∈ G+”
• Nếu mọi PTH X→Y ∈ F đều thuộc G+ thì G≡F hay phân
rã ρ bảo toàn PTH
32 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân rã bảo toàn PTH
(cid:2) Ví dụ kiểm tra phân rã bảo toàn PTH
– R(ABCD) với tập F = {A→B, B→C, C→D, D→A} – Phân rã ρ = {AB, BC, CD} – Kiểm tra xem ρ có bảo toàn PTH không?
33 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình phát triển hệ thống
Lựa chọn và lập kế hoạch hệ thống
Phân tích hệ thống
Triển khai và vận hành hệ thống
Thiết kế hệ thống
Thiết kế giao diện (cid:1) Thiết kế CSDL
34 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình phát triển hệ thống
• Mô hình doanh nghiệp (lược đồ E-R chỉ với các thực thể) • Mô hình dữ liệu mức quan niệm (ERD với các thực thể trong dự án
cụ thể)
•
g n ừ
M ô h ì n h d ữ
l i
t h ể v à t h u ộ c t í n h )
t o h c ể h t ụ c h n ệ l ã m
Lựa chọn và lập kế hoạch hệ thống
( e
i
Phân tích hệ thống
ệ u m ứ c q u a n n ệ m
(
ị
Triển khai và vận hành hệ thống
E R D v ớ
)
i c á c t h ự c
l i f a ĩ h g n h n đ c á c à v L D S C
S M B D
•
• Mô hình dữ liệu mức logic (thể hiện các quan hệ) • Thiết kế CSDL và file mức vật lý (tổ chức file)
Thiết kế hệ thống
35 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Thiết kế CSDL
Thiết kế mức quan niệm
Thiết kế CSDL mức Logic
Thiết kế CSDL mức vật lý
36 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình thiết kế tổng thể
1. Lựa chọn môn hình vòng đời phát triển hệ thống
2. Xác định các tham số hệ thống
3. Định nghĩa các tiến trình
4. Xây dựng mô hình dữ liệu khái niệm
5. Chuẩn bị lược đồ CSDL
6. Thiết kế giao diện người dùng
37 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Mô hình vòng đời phát triển hệ thống
(cid:2) Mô hình thác nước
Phân tích
– Là mô hình cổ điển
Thiết kế
– Quá trình phát triển gồm
Lập kế hoạch và dự thảo ngân sách
7 pha như hình bên
Xây dựng hệ thống
– Tại mỗi pha được giả định có đầy đủ
Thử nghiệm
thông tin
Phân phối
– Mô hình này thích hợp với các hệ thống lớn
Kết thúc dự án
38 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Mô hình vòng đời phát triển hệ thống
(cid:2) Mô hình xoáy ốc (Spiral)
– Các pha của quá trình phát triển được lặp lại theo 1
chu kỳ là một vòng xoáy ốc
– Thích hợp với các hệ thống vừa và nhỏ
Phân tích
Thiết kế
Phân phối
Phân tích
Lập kế hoạch & dự thảo ngân sách
Thiết kế
Thử nghiệm
Khởi đầu dự án
Xây dựng
Lập kế hoạch & dự thảo ngân sách
Xây dựng
Thử nghiệm
Kết thúc dự án
Phân phối
39 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Mô hình vòng đời phát triển hệ thống
(cid:2) Mô hình làm mẫu
– Xuất phát từ một dự án phần mềm đã được xây dựng hoàn thiện, ta phát triển các dự án phần mềm có yêu cầu tương tự ở những khía cạnh nào đó
Yêu cầu từ khách hàng
Tạo bản mẫu
– Cho khách hàng sử dụng phần mềm đã có để thu thập yêu cầu của dự án mới
Dùng thử/kiểm tra bản mẫu
– Thích hợp với các dựa án đủ nhỏ
40 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình thiết kế tổng thể
1. Lựa chọn môn hình vòng đời phát triển hệ thống
2. Xác định các tham số hệ thống
3. Định nghĩa các tiến trình
4. Xây dựng mô hình dữ liệu khái niệm
5. Chuẩn bị lược đồ CSDL
6. Thiết kế giao diện người dùng
41 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xác định các tham số hệ thống
(cid:2) Ở pha này, người thiết kế cần:
– Xác định được mục tiêu của toàn bộ hệ thống – Thiết lập các tiêu chuẩn của hệ thống. Đó là các tiêu chuẩn dùng để đánh giá trong suốt quá trình thiết kế, vận hành của dự án, đánh giá sự thành công hay thất bại của dự án.
– Xác định phạm vi của hệ thống; các yêu cầu phải đạt
được của dự án.
42 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xác định tham số hệ thống (cid:2) Xác định mục tiêu của hệ thống
– Cần trả lời câu hỏi “Tại sao cần phải tự động hóa hệ
thống hiện tại?”
• Có phải để nâng cao tốc độ xử lý công việc? • Để tăng độ chính xác? để giảm chi phí? • Để cải thiện vị trí của công ty trên thị trường? để hỗ trợ
người quản lý trong việc tìm kiếm, xử lý thông tin, lập kế hoạch?, …
– Cần định lượng các mục tiêu
• Không nên đưa ra các mục tiêu chung chung • Không phải bất kỳ mục tiêu nào cũng có thể định lượng được (cid:3) xây dựng các tiêu chuẩn phù hợp để đánh giá • Các mục tiêu phải ổn định để thiết lập các tiêu chuẩn
đánh giá và sẵn sàng cho các công đoạn tiếp theo của quá trình thiết kế
43 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xác định tham số hệ thống (cid:2) Thiết lập các tiêu chuẩn của hệ thống
– Mỗi tiêu chuẩn cần tương ứng với một hoặc một số
mục tiêu
– Nếu mục tiêu nào không gắn được với một tiêu chuẩn
với nó thì xem như người thiết kế chưa hiểu đủ các yêu cầu của khách hàng
– Các tiêu chuẩn là những đích nhỏ cần đạt được cho
một mục tiêu lớn hơn
– Các tiêu chuẩn cần được định lượng rõ ràng – Khi thiết kế đạt được tiêu chuẩn thì hệ thống được xem
là hoàn thành, không cần làm thêm điều gì nữa
44 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xác định tham số hệ thống (cid:2) Xác định phạm vi của hệ thống
– Xác định các chức năng trong phạm vi dự án – Dự án phần mềm sẽ thực hiện những chức năng nhất
định không phải là mọi thứ
– Đánh giá được tỷ lệ chi phí / lợi nhuận của mỗi chức
năng(cid:3) có kế hoạch thiết kế phù hợp
45 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình thiết kế tổng thể
1. Lựa chọn môn hình vòng đời phát triển hệ thống
2. Xác định các tham số hệ thống
3. Định nghĩa các tiến trình
4. Xây dựng mô hình dữ liệu khái niệm
5. Chuẩn bị lược đồ CSDL
6. Thiết kế giao diện người dùng
46 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Định nghĩa các tiến trình
(cid:2)Tiến trình là một tập của một hoặc nhiều tác vụ (task) rời rạc cùng thực hiện một hoạt động có ý nghĩa của tổ chức.
(cid:2)Một tác vụ (task) là một hành động rời rạc, là một
bước thực hiện của tiến trình.
(cid:2)Ví dụ:
– Tiến trình “Xử lý đơn đặt hàng của khách” bao gồm các tác vụ:
trình đó.
– Tiến trình “Tìm SĐT của khách hàng” chỉ bao gồm một tác vụ là chính tiến (cid:2)Phân biệt giữa một tác vụ và một hoạt động đôi khi rất khó. Ranh giới giữa chúng không rõ ràng. Để quyết định là tác vụ hay là hoạt động phải dựa vào không gian bài toán
• Nhận đơn đặt hàng • Kiểm tra thẻ thanh toán của khách • Kiểm tra kho hàng • Giao hàng cho khách
47 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Định nghĩa các tiến trình
(cid:2) Xác định các tiến trình hiện tại của hệ thống
– Thu thập yêu cầu từ khách hàng – Định danh tác vụ
(cid:2) Phân tích các tiến trình
48 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Thu thập yêu cầu từ khách hàng
(cid:2) Khảo sát hệ thống bằng phỏng vấn KH. Mục tiêu là thu
được quy trình nghiệp vụ và các hồ sơ
(cid:2) Hướng KH tập trung vào nghiệp vụ hệ thống (cid:2) Phải có sự chuẩn bị câu hỏi trước (cid:2) Câu hỏi dạng mở, kết hợp với câu hỏi dạng đóng khi cần (cid:2) Cần chuẩn bị các thiết bị hỗ trợ: máy ghi âm, camera, … (cid:2) Sau phỏng vấn cần xác nhận lại các câu trả lời của KH (cid:2) Cần giúp khách hàng thấy được các yêu cầu hiện tại hệ thống cần đáp ứng và các yêu cầu tiềm năng trong tương lai
49 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Công việc sau khảo sát
(cid:2) Dữ liệu thu được trong khảo sát còn ở dạng thô, tản
mạn
(cid:2) Các công việc sau khảo sát:
– Xử lý sơ bộ kết quả: xem xét, hoàn thiện tài liệu:
• Phân loại, trích rút, tổng hợp (cid:3) dữ liệu đầy đủ, chính
xác, gọn gàng, dẽ kiểm tra và theo dõi
• Phát hiện chỗ thiếu để bổ xung, chỗ sai không logic để
sửa
• Xây dựng các bảng mô tả chi tiết tài liệu. • Là quá trình lặp
– Tổng hợp kết quả: tổng hợp theo xử lý & tổng hợp theo
dữ liệu
50 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Công việc sau khảo sát (tt)
(cid:2)Tổng hợp theo xử lý
– Tổng hợp theo lĩnh vực hoạt động: nhóm các hoạt động có sự gắn
kết chặt chẽ với nhau vào 1 nhóm
(cid:2)Tổng hợp theo dữ liệu
– Liệt kê được các tài liệu liên quan đến tổ chức – Sàng lọc để thu được dữ liệu đầy đủ, chính xác và gán tên gọi cho
chúng.
– Kết quả: bảng tổng hợp các hồ sơ và bảng từ điển dữ liệu
(cid:2)Hợp thức hóa kết quả khảo sát
– Hiểu và thể hiện thông tin khảo sát ở những dạng khác nhau được người sử dụng và đại diện tổ chức xác nhận là đúng đắn và đầy đủ
– Nhằm đảm bảo sự chính xác hóa của thông tin, yêu cầu của hệ
thống, đảm bảo tính pháp lý cho việc sử dụng sau
51 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Định danh các tác vụ
(cid:2) Sắp xếp thông tin thành 1 tập tác vụ (cid:2) Một tác vụ (hành động rời rạc):
– Phải có điểm bắt đầu và kết thúc được xác định rõ ràng
–
Tất cả các luật về nghiệp vụ hệ thống phải hợp lệ trước khi tác vụ bắt đầu và sau khi tác vụ hoàn tất. Tuy nhiên, có thể bị phá vỡ trong quá trình tác vụ thi hành
(cid:2) Mục tiêu là định rõ được các tác vụ trong mỗi
tiến trình
(cid:2) Ví dụ: danh sách các tác vụ xảy ra trong quá
trình bán hàng
52 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Phân tích tiến trình
(cid:2) Phân tích sự phụ thuộc giữa các tác vụ của tiến
trình
(cid:2) Phân tích sự phụ thuộc dữ liệu giữa các tác vụ
(cid:3) Sắp xếp các tác vụ theo trật tự nhất định
53 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình thiết kế tổng thể
1. Lựa chọn môn hình vòng đời phát triển hệ thống
2. Xác định các tham số hệ thống
3. Định nghĩa các tiến trình
4. Xây dựng mô hình dữ liệu khái niệm
5. Chuẩn bị lược đồ CSDL
6. Thiết kế giao diện người dùng
54 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xây dựng mô hình dữ liệu khái niệm
(cid:2) Gồm các mô tả về thực thể, thuộc tính của thực thể
và mối quan hệ giữa các thực thể
(cid:2) Sản phẩm của quá trình là sơ đồ thực thể - mối quan
hệ
(cid:2) Các bước xây dựng sơ đồ thực thể - mối quan hệ: – Liệt kê, chính xác hóa và lựa chọn thông tin cơ sở – Xác định thực thể, thuộc tính, thuộc tính định danh cho
mỗi thực thể
– Xác định mối quan hệ & các thuộc tính riêng của nó – Vẽ sơ đồ mô hình E-R và xác định bản số cho các thực
thể của mối quan hệ
– Chuẩn hóa & thu gọn sơ đồ
55 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Liệt kê,… lựa chọn thông tin cơ sở
(cid:2) Xây dựng từ điển dữ liệu gồm các hồ sơ và các thuộc tính trong
nội dung hồ sơ
(cid:2) Quy tắc: Ghi tên hồ sơ và các thuộc tính của nó ở dưới (cid:2) Không bỏ sót bất kỳ thông tin nào (cid:2) Chính xác hóa thông tin:
– Thêm từ cần thiết vào tên gọi cho các thuộc tính (cid:3) rõ nghĩa
hơn
– Hai thuộc tính khác nhau phải chỉ ra các đối tượng khác
nhau
– Duyệt từ trên xuống dưới và giữ lại các thuộc tính đảm bảo:
• Mỗi thuộc tính phải đặc trưng cho 1 lớp hồ sơ được xét • Một thuộc tính chỉ được duyệt 1 lần • Mỗi thuộc tính phải
là sơ cấp (không suy ra từ các thuộc tính
khác)
56 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xác định thực thể, thuộc tính...
(cid:2) Duyệt từ trên xuống dưới các thuộc tính đã chọn,
chưa bị loại để tìm thuộc tính “định danh”
(cid:2) Mỗi thuộc tính “định danh” sẽ có tương ứng 1 thực
thể
(cid:2) Với mỗi thực thể, tìm trong các thuộc tính còn lại để
ghi các thuộc tính thực sự của nó
(cid:2) Xét lần lượt các thực thể, chọn các thuộc tính định
danh cho nó
57 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Xác định mối quan hệ…
(cid:2) Trong các thuộc tính còn lại của bảng danh sách, tìm các
động từ (cid:3) mối quan hệ
(cid:2) Mỗi động từ, trả lời câu hỏi cho mỗi động từ: ai?, cái gì?,
ở đâu?, bằng cách nào?, như thế nào?, bao nhiêu? để tìm
các thực thể tham gia vào mối quan hệ và tìm các thuộc
tính trong danh sách là thuộc tính của mối quan hệ
(cid:2) Khi không còn tìm thấy mối quan hệ và danh sách các
thuộc tính đã hết (cid:3) kết thúc
58 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Vẽ lược đồ E-R và xác định…
(cid:2) Sử dụng các ký pháp biểu diễn thực thể, thuộc tính,
mối quan hệ
(cid:2) Vẽ theo thứ tự: thực thể, mối quan hệ, thuộc tính
(cid:2) Thuộc tính định danh đặt ở phía trên, bên trái thực
thể.
(cid:2) Xác định các bản số
59 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Chuẩn hóa và thu gọn lược đồ
(cid:2) Chuẩn hóa lược đồ nếu có thuộc tính lặp, phụ thuộc
thời gian (cid:3) thực thể, thuộc tính đơn
(cid:2) Thu gọn lược đồ khi:
– Thực thể treo (tham gia vào mối quan hệ và chỉ có 1 thuộc tính) (cid:3) loại bỏ thực thể này, đưa thuộc tính vào
thực thể liên kết với nó
– Mối quan hệ là bậc 2 và không có thuộc tính riêng (cid:3)
loại thực thể này.
60 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình thiết kế tổng thể
1. Lựa chọn môn hình vòng đời phát triển hệ thống
2. Xác định các tham số hệ thống
3. Định nghĩa các tiến trình
4. Xây dựng mô hình dữ liệu khái niệm
5. Chuẩn bị lược đồ CSDL
6. Thiết kế giao diện người dùng
61 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Chuẩn bị lược đồ CSDL (mức logic) (cid:2) Xây dựng cấu trúc vật lý của dữ liệu dưới dạng trừu tượng
(cid:2) Chuyển các yếu tố của mô hình dữ liệu quan niệm thành
các yếu tố tương ứng trong lược đồ quan hệ:
– Thực thể (cid:3) quan hệ (bảng)
– Mối quan hệ có thuộc tính (cid:3) bảng
– Chuẩn hóa các bảng về các dạng chuẩn 3NF, BCNF
– 2 thực thể liên kết kiểu N–N (cid:3) 2 bảng với hai liên kết
kiểu 1 – n
62 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Chuẩn bị lược đồ CSDL (tt)
(cid:2) Chuyển các ràng buộc của mô hình dữ liệu quan niệm thành các ràng buộc tương ứng trong lược đồ quan hệ: – Ràng buộc miền và thuộc tính (cid:3) ràng buộc ở mức
trường dữ liệu
– Ràng buộc thực thể (cid:3) ràng buộc ở mức bảng, các
ràng buộc này được thể hiện như: Bảng phải có khóa chính, các luật hợp lệ dữ liệu giữa các trường dữ liệu của bảng…
– Ràng buộc trong mô hình dữ liệu quan niệm không cài đặt được bằng các công cụ có sẵn (cid:3) được cài đặt bằng các triger.
63 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Quy trình thiết kế tổng thể
1. Lựa chọn môn hình vòng đời phát triển hệ thống
2. Xác định các tham số hệ thống
3. Định nghĩa các tiến trình
4. Xây dựng mô hình dữ liệu khái niệm
5. Chuẩn bị lược đồ CSDL
6. Thiết kế giao diện người dùng
64 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL
Bài tập ví dụ
65 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL

