intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Thiết kế cơ sở dữ liệu: Chương 1 - ThS. Trần Quang Hải Bằng

Chia sẻ: Gió Biển | Ngày: | Loại File: PDF | Số trang:33

115
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Thiết kế cơ sở dữ liệu - Chương 1: Các khái niệm cơ bản" cung cấp cho người đọc các kiến thức: Review về quan hệ và chuẩn hóa, thiết kế CSDL mức quan niệm, thiết kết CSDL mức logic, thiết kết CSDL mức logic. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Thiết kế cơ sở dữ liệu: Chương 1 - ThS. Trần Quang Hải Bằng

  1. 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ệ Triển khai và vận thống hành hệ thống Thiết kế hệ thống Thiết kế giao diện Thiết kế CSDL bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 2
  2. Nội dung Review về quan hệ và chuẩn hóa Thiết kế CSDL mức quan niệm Thiết kết CSDL mức logic Thiết kế CSLD mức vật lý bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 3 Review Quan hệ & Chuẩn hóa 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 4
  3. Review Quan hệ & Chuẩn hóa Quan hệ nào có cấu trúc cao? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 5 Review Quan hệ & Chuẩn hóa 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 6
  4. Review Quan hệ & Chuẩn hóa Ví dụ trước khi chuẩn hóa bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 7 Review Quan hệ & Chuẩn hóa Ví dụ sau khi chuẩn hóa bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 8
  5. Các dạng chuẩn Dạng chuẩn 1 (1NF) – Không có thuộc tính đa trị (toàn bộ thuộc tính là đơn) 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) 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) 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 9 Phụ thuộc hàm 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 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 Sự phụ thuộc hàm của B vào A ký hiệu là: A → B bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 10
  6. Chuyển về dạng chuẩn 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 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 11 Ví dụ chuyển về dạng 2NF Quan hệ EMPLOYEEE2 – EMPLOYEE2(Emp_ID, Name, Dept, Salary, Course, Date_Completed) Phụ thuộc hàm trong quan hệ này là: – Emp_ID → Name, Dept, Salary – Emp_ID, Course → Date_Completed Chuyển về dạng chuẩn 2 – EMPLOYEE1(Emp_ID, Name, Dept, Salary) – EMP_COUSE(Emp_ID, Course, Date_Completed) bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 12
  7. 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 MaSV → TenSV, Diachi 5 C 4 11 Lan X 7 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 13 Chuyển về dạng 3NF 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 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 14
  8. Ví dụ chuyển về dạng 3NF Quan hệ SALES – SALES(Customer_ID, Customer_Name, Saleperson, Region) Thỏa mãn 2NF Phụ thuộc hàm – Customer_ID → Customer_Name, Saleperson, Region – Saleperson → Region Dưa về dạng 3NF – SALES1(Customer_ID, Customer_Name, Saleperson) – SPERSON(Saleperson, Region) bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 15 Dạng chuẩn Boyce-Codd Đị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 Nhận xét – Một lược đồ quan hệ R đã ở dạng BCNF thì cũng đạt dạng chuẩn 3NF 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 đạ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. bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 16
  9. Phân rã lược đồ quan hệ 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 ? 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 ? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 17 Phân rã lược đồ quan hệ Xét quan hệ MaSV TenSV Diachi Malop Tenlop Các phụ thuộc hàm: 11 Lan X CNA1 Cử nhân A1 - MaSV→TenSV, Diachi, Malop 12 Hải Y CNA1 Cử nhân A1 - Malop → Tenlop 13 Tú Z CNA2 Cử nhân A2 Khóa của quan hệ là: MaSV 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 18
  10. Phân rã lược đồ quan hệ Thực hiện phân rã quan hệ đã cho MaSV TenSV Diachi Malop Tenlop 11 Lan X CNA1 Cử nhân A1 12 Hải Y CNA1 Cử nhân A1 13 Tú Z CNA2 Cử nhân A2 SINHVIEN MaSV TenSV Diachi Malop LOP 11 Lan X CNA1 Malop Tenlop 12 Hải Y CNA1 CNA1 Cử nhân A1 13 Tú Z CNA2 CNA2 Cử nhân A2 Cả 2 quan hệ mới đều đạt BCNF bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 19 Phân rã bảo toàn thông tin Đị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) bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 20
  11. Phân rã bảo toàn thông tin 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? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 21 Phân rã bảo toàn thông tin 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 22
  12. Phân rã bảo toàn thông tin 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? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 23 Phân rã bảo toàn thông tin Bước 1: Lập bảng khởi đầu R MaSV TenSV Diachi Malop Tenlop R1 a1 a2 a3 a4 b15 R2 b21 b22 b23 a4 a5 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) R MaSV TenSV Diachi Malop Tenlop R1 a1 a2 a3 a4 a5 R2 b21 b22 b23 a4 a5 – Vậy ρ là phân ra bảo toàn thông tin bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 24
  13. Phân rã bảo toàn thông tin 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? Giải: – Bảng khởi đầu bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 25 Phân rã bảo toàn thông tin 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 26
  14. Phân rã bảo toàn thông tin Đố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+. bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 27 Phân rã lược đồ quan hệ 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 ? 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 ? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 28
  15. Phân rã bảo toàn PTH Phân rã bảo toàn thông tin là bắt buộc 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ó Đị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 Đị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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 29 Phân rã bảo toàn PTH 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 ? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 30
  16. Phân rã bảo toàn PTH 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 31 Phân rã bảo toàn PTH 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 32
  17. Phân rã bảo toàn PTH 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? bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 33 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ệ Triển khai và vận thống hành hệ thống Thiết kế hệ thống Thiết kế giao diện Thiết kế CSDL bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 34
  18. 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ể) • Mô hình dữ liệu mức quan niệm (ERD với các thực thể và thuộc tính) • CSDL và các định nghĩa file (mã lệnh cụ thể cho từng Lựa chọn và lập kế hoạch hệ thống Triển khai và vận Phân tích hệ thống hành hệ thống Thiết kế hệ thống DBMS) • 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) bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 35 Thiết kế CSDL Thiết kế mức Thiết kế CSDL Thiết kế CSDL quan niệm mức Logic mức vật lý bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 36
  19. 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 37 Mô hình vòng đời phát triển hệ thống 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 bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 38
  20. Mô hình vòng đời phát triển hệ thống 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 Lập kế hoạch & dự Xây dựng Xây dựng thảo ngân sách Kết thúc Thử nghiệm dự án Phân phối bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 39 Mô hình vòng đời phát triển hệ thống 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ừ – Cho khách hàng sử dụng phần khách hàng mềm đã có để thu thập yêu cầu của dự án mới Tạo bản mẫu – Thích hợp với các dựa án đủ nhỏ Dùng thử/kiểm tra bản mẫu bangtqh@utc2.edu.vn Chương 1 - Khái niệm cơ bản về TKCSDL 40
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2