Bài giảng môn Thiết kế cơ sở dữ liệu

ppt 100 trang phuongnguyen 6000
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Thiết kế cơ sở dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_mon_thiet_ke_co_so_du_lieu.ppt

Nội dung text: Bài giảng môn Thiết kế cơ sở dữ liệu

  1. BÀI GIẢNG MÔN THIẾT KẾ CƠ SỞ DỮ LIỆU
  2. BÀI 1: PHÂN TÍCH HỆ THỐNG CÓ CẤU TRÚC I. Khái niệm 1. Khái niệm về hệ thống CSDL Hệ thống CSDL của một hệ thống tin học là một tập hợp dữ liệu được tổ chức một cách chọn lọc lưu trên các thiết bị trữ tin, nhằm phục vụ đồng thời cho nhiều người, với nhiều mục đích xử lý và khai thác khác nhau.
  3. Ví dụ: Trong một công ty phần mềm: •Bộ phận quản lý tiền lương có nhu cầu lập bảng lương cho đơn vị với các thông tin ghi trên bảng lương như sau: STT, họ tên, hệ số lương, tiền lương, Chữ ký •Trong đó, Tiền lương = hệ số lương x 500000; hệ số lương được phân chia dựa trên học vị. •Bộ phận quản lý dự án có nhu cầu lập danh sách phân công nhân viên cho các dự án, với các thông tin: STT, họ tên, chuyên môn, dự án. •Trong đó, nhân viên được phân công phải có chuyên môn phù hợp với yêu cầu chuyên môn của từng dự án
  4. Môi trường CSDL CT QLTL Bảng Lương Danh mục Hệ Số Lương user1 Nhân Viên Bảng CT QLDA Phân công Danh Mục Dự Án user2 Hình ảnh về môi trường CSDL Hệ thống CSDL được xây dựng sao cho có thể phục vụ cho các mục tiêu trên của các phòng ban
  5. 2. Muïc tieâu chính coâng vieäc thieát keá CSDL ◼Laøm theá naøo chuyeån ñoåi caùc nhu caàu löu tröõ vaø khai thaùc döõ lieäu cuûa ngöôøi söû duïng thaønh moät heä thoáng CSDL hieäu quaû. Tính hiệu quả đñược thể hiện cụ thể bởi caùc tính chất : “Tính khoâng truøng lấp”; “Tính nhất quaùn dữ liệu”; “Tính dễ khai thaùc“; “Dễ kiểm tra caùc qui tắc quản lí bởi caùc raøng buộc toaøn vẹn”; “Dễ cập nhật vaø naâng cấp hệ thống”. ◼ Vôùi cuøng caùc nhu caàu löu tröõ vaø khai thaùc döõ lieäu, coù theå coù nhieàu caáu truùc CSDL khaùc nhau
  6. Ví duï: CT1: NhanVien(MaNV, HoTen, ChuyenMon, HSLg, TienLuong, ChuKy) DanhMucDuAn( MaDA, TenDuAn, ) CT2: NhanVien(MaNV, HoTen, ChuyenMon, Hocvi) DMHSLuong(Hocvi, HeSoLuong) DanhMucDuAn( MaDA, TenDuAn, ) PhanCong(MaDA, MaNV)
  7. 3. Caùc thoâng tin vaøo / ra quy trình thieát keá. Thoâng tin vaøo: (1) Yeâu caàu veà thoâng tin: Duøng CSDL cho vaán ñeà gì? Xuaát phaùt töø ngöôøi söû duïng coù nhu caàu vaø quan ñieåm nhö theá naøo. Ta caàn phaûi ghi nhaän laïi heát. ÔÛ ñaây chæ giôùi haïn ôû möùc döõ lieäu. (2) Yeâu caàu veà xöû lyù: Moãi nhoùm ngöôøi söû duïng seõ neâu ra caùc yeâu caàu xöû lyù cuûa rieâng mình; Taàn suaát xöû lyù vaø khoái löôïng döõ lieäu. (3) Ñaëc tröng kyõ thuaät cuûa heä quaûn trò CSDL caàn söû duïng ñeå caøi ñaët CSDL (4) Caáu hình thieát bò tin hoïc gì ñeå ñaùp öùng vôùi (1), (2) vaø (3) Thoâng tin ra: (1) Caáu truùc quan nieäm CSDL (2) Caáu truùc Logic CSDL (3) Caáu truùc Vaät lyù CSDL
  8. 4. Chu kyø soáng cuûa moät CSDL Moät öùng duïng tin hoïc ñöôïc trieån khai thöïc hieän traûi qua caùc giai ñoaïn: (i) Giai ñoaïn xaây döïng CSDL (a) Phaân tích caùc nhu caàu cuûa ngöôøi söû duïng (b) Thieát keá CSDL ôû möùc quan nieäm: nghóa laø xaùc ñònh noäi dung CSDL (chöùa nhöõng thoâng tin gì ?). Chæ quan taâm ôû möùc döõ lieäu (c) Thieát keá CSDL ôû möùc Logic: Chia vaán ñeà caàn xöû lyù ra thaønh nhieàu böôùc. ÔÛ ñaây chæ chuù yù ñeán caùc xöû lyù ñaët ra, nhöng chöa chuù yù ñeán phaàn meàm vaø phaàn cöùng. (d) Thieát keá CSDL ôû möùc vaät lyù: Caøi ñaët CSDL nhö theá naøo? Giaûi quyeát nhöõng vaán ñeà mang tính kyõ thuaät. Ví duï: Söû duïng phaàn meàm naøo? Vôùi caáu hình maùy ra sao?.
  9. (ii) Giai ñoaïn thöû nghieäm vaø khai thaùc: (e) Caøi ñaët vaø chaïy thöû nghieäm: Neáu coù sai soùt thì phaûi hieäu chænh laïi caáu truùc CSDL ôû caùc möùc quan nieäm; logic; vaät lyù. (f) Ñöa cho ngöôøi söû duïng khai thaùc. (g) Thích öùng CSDL theo nhöõng nhu caàu môùi: baét ñaàu töø f > g khoaûng 3 naêm. 3 naêm a b c d e f g ( i ) ( ii ) Quaù trình thieát keá laø chu trình soáng, neáu nhu caàu môùi quaù nhieàu thì caàn phaûi chuaån bò CSDL môùi ñeå thay theá CSDL cuõ.
  10. 5. Qui Trình Thieát Keá CSDL a. Giai ñoaïn phaân tích nhu caàu: i. Noäi dung: - Thu thaäp thoâng tin veà döõ lieäu vaøxöû lyù töø ngöôøi söû duïng, töø caùc taøi lieäu, chöùng töø, bieåu maãu thoáng keâ lieân quan ñeán CSDL vaø caû nhöõng taøi lieäu cuûa CSDL cuõ (Neáu coù). - Sau khi thu thaäp phaûi toång hôïp vaø phaân tích nhöõng nhu caàu ñoù. Kieåm tra xem coù nhöõng maâu thuaån giöõa caùc nhu caàu khoâng
  11. Ví duï: - Tình traïng baùn veù trong caùc chuyeán bay, chuyeán taøu ñoøi hoûi phaûi xöû lyù töùc thôøi, rieâng reõ töøng tröôøng hôïp. - Tình traïng möôïn, traû saùch cuûa ñoäc giaû thö vieän ñoøi hoûi phaûi xöû lyù rieâng reõ nhöng thôøi gian xöû lyù coù theå treã. - Tính löông cho coâng nhaân ñoøi hoûi xöû lyù chung toaøn boä vaø thôøi gian xöû lyù theo ñònh kyø giöõa thaùng hay cuoái thaùng.
  12. ii. Caùch thöïc hieän: Duøng kyõ thuaät phoûng vaán: - Tröïc tieáp -Giaùn tieáp: töï laäp ra caùc caâu hoûi treân giaáy ñeå User traû lôøi. Ñoái töôïng phoûng vaán: coù lieân quan - Ban giaùm ñoác - Caùc phoøng ban coù lieân quan
  13. b.Giai ñoaïn thieát keá quan nieäm: i. Muïc ñích: Xaùc ñònh noäi dung döõ lieäu, moái quan heä giöõa caùc döõ lieäu beân trong CSDL. Chöa caàn quan taâm caùch caøi ñaët. Phaûi xaùc ñònh ñuùng vaø ñaày ñuû döõ lieäu, loaïi boû caùc döõ lieäu thöøa.
  14. ii. Caùch thöïc hieän: Do nhu caàu khai thaùc, moãi nhoùm ngöôøi seõ coù nhöõng yeâu caàu khaùc nhau veà CSDL. Ví duï: - Ñoái vôùi ngöôøi quaûn trò kinh doanh chæ quan taâm ñeán caùc thaønh phaåm: Maõ thaønh phaåm, teân, soá löôïng toàn, ñôn giaù baùn. - Ñoái vôøi ngöôøi quaûn lyù kho: ngoaøi thoâng tin cuûa caùc thaønh phaåm, ngöôøi quaûn lyù kho coøn quan taâm ñeán caùc chöùng töø lieân quan ñeán caùc thaønh phaåm: Soá ñôït, giaù thaønh, soá löôïng.
  15. c. Giai ñoaïn thieát keá logic. i. Muïc ñích: Ñaây laø böôùc chuyeån tieáp. Ñaëc bieät caân nhaéc döïa treân nhu caàu xöû lyù, nghieân cöùu caùch söû duïng döõ lieäu thoâng qua xöû lyù Caùc thoâng tin caàn: Taàn suaát, khoái löôïng Trong giao ñoaïn thieát keá quan nieäm, döõ lieäu caàn loaïi boû nhöõng thoâng tin truøng laép. Nhöng ôû giai ñoïan thieát keá logic, caàn phaûi caân nhaéc, döïa treân hieäu quaû xöû lyù, ñeå quyeát ñònh coù hay khoâng coù caøi ñaët thoâng tin truøng laép.
  16. ii.Caùch thöïc hieän: - Choïn caáu truùc logic gaàn vôùi phaàn meàm seõ söû duïng caøi ñaët CSDL. - ÔÛ giai ñoïan naøy , ngöôøi ta thöôøng theå hieän thoâng tin theo moâ hình Quan heä.
  17. d. Giai ñoaïn thieát keá vaät lyù: i. Muïc ñích: Xaây döïng moät caáu truùc vaät lyù phuï thuoäc vaøo phaàn meàm vaø caáu hình phaàn cöùng maø ta ñaõ löïa choïn ñeå caøi ñaët CSDL. Giai ñoaïn naøy, ñôn giaûn hay phöùc taïp tuøy thuoäc vaøo ñaëc tröng kyõ thuaät cuûa phaàn meàm vaø phaàn cöùng. ii. Caùch thöïc hieän: - Choïn löïa phaàn meàm phuø hôïp vôùi ñoä phöùc taïp cuûa döï aùn - Choïn löïa caáu hình phaàn cöùng - Quyeát ñònh nhöõng vaán ñeà lieân quan ñeán An toaøn döõ lieäu vaø phuïc hoài döõ lieäu.
  18. II. Các yêu cầu đối với một hệ CSDL Một hệ cơ sở dữ liệu phải đảm bảo các yêu cầu sau: 1. Giảm thiểu dữ liệu thừa 2. Bảo đảm tính toàn vẹn của dữ liệu 3. Bảo đảm tính độc lập dữ liệu 4. Bảo vệ an toàn dữ liệu 5. Duy trì tính nhất quán của dữ liệu 6. Tạo dễ dàng khi sử dụng dữ liệu 7. Tiết kiệm không gian lưu trữ
  19. 1. Giaûm thieåu dö thöøa döõ lieäu: Döõ lieäu thöøa seõ ñöôïc giaûm thieåu nhôø nhöõng tham chieáu cheùo trong heä thoáng CSDL. Thí du: Teân vaø ñòa chæ nhaân vieân chæ caàn xuaát hieän moät laàn trong CSDL 2. Ñaûm baûo tính an toaøn döõ lieäu: Bôûi vì döõ lieäu chæ xuaát hieän moät laàn trong CSDL, chuùng ta coù theå yeân taâm raèng moïi thay ñoåi treân döõ lieäu ñeàu coù taùc duïng veø sau khi söû duïng döõ lieäu. Chaúng haïn chuùng ta caàn thay ñoåi ñòa chæ cuûa moät nhaân vieân taïi moät nôi duy nhaát trong CSDL vaø nhöõng thay ñoåi naøy seõ hieän höõu khi caàn truy vaán ñeán ñòa chæ sau naøy
  20. 3. Ñaûm baûo tính ñoäc laäp döõ lieäu: * Caáu truùc cuûa CSDL ñoøi hoûi döõ lieäu phaûi ñoäc laäp vôùi nhuõng döõ lieäu khaùc vaø ñoäc laäp vôùi phaàn meàm duøng ñeå truy xuaát döõ lieäu. Neáu chuùng ta söûa ñoåi hoaëc xoaù döõ lieäu, caùc döõ lieäu khaùc seõ khoâng bò aûnh höôûng. Ví duï: Chaúng haïn khi xoaù moät nhaân vieân thoâi vieäc khoûi CSDL seõ khoâng laøm aûnh höôûng ñeán döõ lieäu khaùc. Khi xoaù moät nhaân vieân ra khoûi taäp tin nhaân vieân, chuùng ta khoâng ñöôïc laøm maát caùc thoâng tin veà löông ñaõ traû, tieàn thueá thu nhaäp. Hôn nöõa, döõ lieäu veà phoøng laøm vieäc cuûa nhaân vieân naøy, soá ñieän thoaïi vaø vò trí coâng taùc . . .cuõng khoâng bò aûnh höôûng.
  21. 4. Baûo veä an toaøn döõ lieäu: * Heä thoáng CSDL coøn coù nhöõng heä thoáng baûo maät ñeå ñaûm baûo an toaøn döõ lieäu. Phaàn lôùn nhöõng heä thoáng CSDL ñeàu duy trì heä thoáng baûo maät cuûa rieâng chuùng. Khi döõ lieäu ñöôïc löu tröõ taäp trung, vieâc quaûn lyù döõ lieäu khaù deã daøng. * Nhöõng heä thoáng CSDL ñieån hình thöôøng coù nhöøng thuû tuïc truy xuaát rieâng. Tröôùc khi moät ngöôøi ñöôïc truy xuaát vaøo CSDL, anh ta phaûi coù moät taøi khoaûn ngöôøi duøng (user account) treân heä thoáng ñoù. Sau khi ñöôïc trao quyeàn truy xuaát chung trong CSDL, anh ta ñöôïc quaûn trò vieân CSDL (database administrator, vieát taét laø DBA) caáp quyeàn ñöôïc xem hieån thò (View) cuûa CSDL. Ngöôøi söû duïng chæ ñöôïc pheùp söû duïng moät soá maøn hình, moät soá leänh ñeå truy xuaát döõ lieäu trong moät soá taäp tin, soá maãu tin hoaëc tröôøng. ÔÛ ñaây DBA laø moät caù nhaân hay moät nhoùm chòu traùch nhieäm chính trong coâng vieäc quaûn lyù cô sôû döõ lieäu.
  22. 5. Duy trì tính nhaát quaùn cuûa döõ lieäu: Tính nhaát quaùn cuûa döõ lieäu ñöôïc duy trì trong moâi tröôøng CSDL. Teân vaø kích thöôùc döõ lieäu ñeàu ñöôïc thoáng nhaát trong moïi öùng duïng. Ví duï: Chaúng haïn, kích thöôùc cuûa tröôøng FIRST_NAME ñeàu nhö nhau trong moïi öùng duïng coù söû duïng ñeán CSDL naøy. Neáu FIRST_NAME ñöôïc khai baùo daøi 20 kí töï, CSDL seõ luoân truy xuaát noù nhö moät tröôøng daøi 20 kí töï.
  23. 6. Taïo deã daøng khi söû duïng döõ lieäu: Trong moâi tröôøng CSDL seõ deã daøng söû duïng döõ lieäu hôn. Phaàn lôùn CSDL quan heä ñeàu chöùa moät ngoân ngöõ vaán tin thaân thieän ñi keøm vôùi phaàn meâm quaûn trò CSDL. Trong nhöõng loaïi CSDL naøy, chæ caàn moät ít thôøi gian huaán luyeän, ngöôøi söû duïng deå daøng taïo caùc caâu vaán tin treân CSDL maø khoâng caàn söï can thieäp cuûa nhoùm laäp trình
  24. 7. Tieát kieäm khoâng gian löu tröõ: Roõ raøng chuùng ta phaûi loaïi boû dö thuøa, döõ lieäu seõ söõ duïng ít choå löu tröõ hôn. Thay vì teân cuûa moät nhoùm nhaân vieân phaûi hieän dieän trong 20 hoaëc 25 thì nay chæ caàn trong moät taäp tin. Tuy nhieân, bôûi vì ngöôøi söû duïng baét ñaàu quen thuoäc vôùi vieäc söû duïng vaø coù nhieàu quyeàn haïn hôn, hoï baét ñaàu söû duïng chuùng thöôøng xuyeân hôn. Vì vaäy naêng xuaát lao ñoäng seõ taêng vaø khoâng gian löu tröõ seõ giaûm nhôø hieäu suaát söû duïng CSDL.
  25. III. Các thành viên trong hệ cơ sở dữ liệu Một hệ CSDL gồm 4 hợp phần: dữ liệu, phần cứng, phần mềm và người dùng. Hệ quản trị CSDL (DBMS) Chương trình Chương trình ứng dụng ứng dụng Hình : Sơ đồ lược giản về hệ thống CSDL
  26. Dữ liệu Trong CSDL, dữ liệu có hai đặc trưng chính: ◼ Tính tích hợp: CSDL là nơi tập hợp nhiều hồ sơ, và người ta cố gắng loại bỏ đến mức tối đa các dữ liệu dư thừa. Lấy ví dụ, trong một cơ quan có danh sách nhân sự và bảng lương hàng tháng. Trong danh sách nhân sự, chúng ta có toàn bộ họ và tên cán bộ nhân viên. Trong bảng lương hàng tháng, chúng ta cũng thấy, bên cạnh các cột thông tin khác, là cột họ và tên cán bộ nhân viên. Rõ ràng, trong CSDL, không cần thiết phải lưu danh sách họ và tên cán bộ nhân viên một lần nữa. Họ và tên sẽ được lấy ra nhờ sử dụng tham chiếu. ◼ Tính chia sẻ: CSDL là nơi cho phép nhiều người dùng truy cập - tùy theo mục đích sử dụng của từng người. Hơn nữa, nhiều người dùng có thể truy cập đồng thời (chứ không phải người này phải đợi người kia truy cập xong mới đến lượt)
  27. Phần cứng Phần cứng của hệ thống CSDL gồm: ◼ Bộ nhớ ngoài: chủ yếu là đĩa từ, cụ thể hơn là đĩa cứng cùng với các bộ phận điều khiển khác như khối vào/ra, ổ đĩa, khối điều khiển, được sử dụng để lưu dữ liệu. ◼ Bộ xử lý và bộ nhớ trong dùng để chạy các phần mềm của hệ thống CSDL. Khối kêt nối gồm card mạng/modem được sử dụng để kết nối hệ thống CSDL với thế giới bên ngoài.
  28. Mạng Bộ nhớ ngoài Bộ xử lý + (Đĩa cứng) Bộ nhớ trong Hình 3: Các khối phần cứng cơ bản phục vụ hệ thống CSDL
  29. Phần mềm Đứng trung gian giữa phần vật lý (là nơi thực sự lưu dữ liệu) và người dùng của hệ thống CSDL là khối phần mềm quản trị CSDL, được gọi chung là Hệ quản trị (HQT) CSDL, trong tiếng Anh là Database Management System - DBMS. Tất cả các phép toán thực hiện trên CSDL đều phải thông qua HQT CSDL, như thêm mới hoặc hủy bỏ hồ sơ (bảng), trích xuất dữ liệu, cập nhật các hồ sơ (bảng) , Chức năng cơ bản của HQT CSDL là tạo lớp vỏ bọc phần cứng đối với người dùng - người dùng chỉ nhìn thấy CSDL thông qua các công cụ mà HQT CSDL cung cấp, chứ không cần quan tâm đến phần vật lý của CSDL.
  30. HQT CSDL Phần cứng Hình 4: Hình ảnh về tạo lớp vỏ bọc của HQT CSDL
  31. Người dùng Người dùng CSDL có thể chia thành các lớp như sau: ◼ Lớp thứ nhất: lập trình viên CSDL: là người viết chương trình ứng dụng sử dụng CSDL thông qua một ngôn ngữ nào đó, như COBOL, C++, hay PHP. Các chương trình này sử dụng các phép toán lên CSDL theo cách thông thường: thêm bớt bảng, cập nhật dữ liệu, chủ yếu sử dụng các câu lệnh SQL. Các chương trình có thể được viết theo lô các lệnh hoặc cũng có thể hoạt động trực tuyến - nghĩa là hội thoại trực tiếp với HQT CSDL. Chức năng hoạt động trực tuyến thường được sử dụng để quản trị CSDL. ◼ Lớp thứ hai: người dùng cuối sử dụng các chương trình đã lập sẵn để giao tiếp với CSDL. Các chương trình đã lập sẵn gồm các chương trình được lập bởi các lập trình viên hoặc là một phần của HQT CSDL. Phần lớn các HQT CSDL đều cung cấp nhiều tiện ích lập sẵn. Một trong các tiện ích cơ bản đó là giao diện truy vấn. Trong giao diện này, người dùng có thể đưa ra các câu lệnh SQL và phần mềm sẽ cho kết quả của các câu lệnh đó. ◼ Lớp thứ ba: quản trị CSDL (database administrator - DBA) là người làm công tác quản trị CSDL
  32. 1.Mô hình ba mức của cơ sở dữ liệu • Mô hình kiến trúc ba mức của hệ CSDL gồm: Mức trong, Mức mô hình dữ liệu (Mức quan niệm) và Mức ngoài. Giữa các mức tồn tại các ánh xạ quan niệm trong và ánh xạ quan niệm ngoài. Trung tâm của hệ thống là mức quan niệm, tức là mức mô hình dữ liệu. Ngoài ra còn có khái niệm người sử dụng, người quản trị CSDL, hệ quản trị CSDL
  33. ➢ Mô hình ngoài: Mô hình ngoài là nội dung thông tin của CSDL dưới cách nhìn của người sử dụng. Là nội dung thông tin của một phần dữ liệu tác nghiệp được một người hoặc một nhóm người quan tâm. ➢ Mô hình dữ liệu (Mô hình quan niệm): Mô hình quan niệm là cách nhìn dữ liệu một cách tổng quát của người sử dụng ➢ Mô hình trong: Mô hình trong là mô hình lưu trữ vật lý dữ liệu. Chỉ có duy nhất một và chỉ một cách biểu diễn CSDL dưới dạng cơ sở vật lý
  34. • Như vậy mô hình dữ liệu là cách nhìn toàn bộ nội dung thông tin của CSDL, sơ đồ quan niệm là định nghĩa của cách nhìn ấy. là bước đi đầu tiên, quan trọng trong việc thiết kế và cài đặt các hệ CSDL Application Programmer End User n Application End User 1 Programmer Mô hình ngoài Mô hình ngoài Sơ đồ ngoài Sơ đồ ngoài Ánh x ngoài / quan niệm Mô hình dữ liệu Hệ quản Sơ đồ quan niệm trị CSDL Ánh xạ trong Mô hình trong -mô hình vật lý Hình ảnh về kiến trúc hệ cơ sở dữ liệu
  35. Baøi taäp Khảo sát, phân tích về hệ thống quản lý thư viện. ◼Đặt vấn đề: ◼ Khoa CNTT muốn xây dựng một hệ thống quản lý thư viện. ◼ Hệ thống này chỉ phục vụ cho cán bộ và giảng viên trong khoa. ◼ Mục đích chính của hệ thống quản lý thư viện là ◼ Phục vụ bạn đọc ◼ Nhận mã sách hoặc mã tạp chí, lưu trữ và quản lý chúng, tạo ra chỉ mục cho tài liệu ◼ Theo dõi quá trình mượn trả của bạn đọc.
  36. Khảo sát hệ thống quản lý thư viện ◼ Các hoạt động chính trong quá trình khảo sát hệ thống quản lý thư viện nhằm xác định: ◼ Mối liên hệ giữa hệ thống thư viện hiện tại và các hệ thống quản lý thư viện khác. ◼ Những chức năng chính của hệ thống quản lý thư viện ◼ Những chức năng cần được nâng cấp trong hệ thống mới.
  37. Phỏng vấn ◼ Những câu hỏi phỏng vấn gồm nội dung sau: ◼ Công việc chính của hệ thống quản lý thư viện là gì? ◼ Chức năng của từng công việc ◼ Các công việc đang được thực hiện như thế nào? ◼ Ai là người chịu trách nhiệm thực hiện? ◼ Hạn chế và những khó khăn gặp phải của mỗi công việc ◼ Thư viện phục vụ ai? ◼ ◼ Báo cáo khảo sát
  38. Biểu đồ phân cấp chức năng Qu¶n lý hÖ thèng th• viÖn Xö lý thÎ Qu¶n lý b¹n ®äc Qu¶n lý tµi liÖu T×m kiÕm tµi liÖu LËp b¸o c¸o m•în/tr¶ §¨ng ký Ph©n lo¹i T×m kiÕm NhËn thÎ B¸o c¸o vÒ b¹n ®äc tµi liÖu s¸ch m•în/tr¶ tµi liÖu KiÓm tra Bæ sung T×m kiÕm B¸o c¸o vÒ KiÓm tra bé m«n s¸ch míi t¹p chÝ T/L m•în tr¶ §¨ng ký bé Bæ sung Th«ng b¸o B.c vÒ m•în m«n míi t¹p chÝ míi víi b¹n ®äc qu¸ h¹n CÊp ph¸t thÎ b¹n ®äc
  39. CHƯƠNG II: CÁC CÔNG CỤ PHÂN TÍCH VÀ THIẾT KẾ I. Các công cụ thiết kế 1. Sơ đồ dòng dữ liệu (Data Flow Diagram) Có nhiều loại sơ đồ dòng dữ liệu: • Context DFD: Sơ đồ phạm vi dòng dữ liệu. • Analysis DFD: Sơ đồ phân tích dòng dữ liệu. • Model DFD: Sơ đồ mô hình dòng dữ liệu.
  40. CÁC SƠ ĐỒ CÓ THỂ TẠO MỘT TRONG BỐN KÝ HIỆU SAU Ký hiệu kết thúc Quá trình xử lý Dòng dữ liệu Kho dữ liệu (Terminator) (Process) (data flow) (data store)
  41. Sơ đồ context được dùng để trình bày các giới hạn (phạm vi) của hệ thống mới hay hệ thống hiện có. - Ký hiệu kết thúc dùng để chỉ ra các nguồn dữ liệu nhập và dữ liệu kết xuất. - Dòng dữ liệu mô tả đường di chuyển của dữ liệu đến và đi khỏi ký hiệu kết thúc. - Tất cả dữ liệu nhập và dữ liệu kết xuất đều đi vào và đi ra khỏi quá trình xử lý, đó chính là hệ thống chúng ta đang phân tích.
  42. Báo cáo Tài liệu Phòng điều Hệ thống kế toán Ban lãnh đạo hành kế toán công ty Yêu cầu báo cáo sơ đồ phạm vi dòng dữ liệu (context DFD) cho hệ thống kế toán
  43. Sơ đồ Analysis DFD và model DFD trình bày chi tiết của hệ thống mới và hệ thống hiện có. Chúng ta không dùng ký hiệu kết thúc ở đây bởi vì chúng ta đang ở trong hệ thống. Kho dữ liệu là một vị trí lưu trữ dữ liệu giữa các quá trình xử lý, chẳng hạn như: thiết bị lưu trữ trên máy tính, các hộc tủ đựng tài liệu
  44. các tài kiệu kế toán dữ liệu sắp xếp vào sổ cái các mục nhật ký các mục sổ cái sổ cái nhật ký dữ liệu báo cáo báo cáo chuẩn bị các báo cáo yêu cầu báo cáo Sơ đồ phân tích dòng dữ liệu (Analysis DFD) cho hệ thống kế toán
  45. 2. Từ điển dữ liệu Từ điển dữ liệu dùng để ghi chép các thực thể trong hệ thống. Hay từ điển dữ liệu tập hợp các tài liệu về các thực thể dữ liệu vào kho dữ liệu để cho các quá trình xử lý sử dụng. Một từ điển dữ liệu tốt sẽ giúp chúng ta trả lời các câu hỏi đại loại như: •sử dụng thực thể nào để tạo ra báo cáo này? •việc tính tiền thưởng cuối năm sẽ sử dụng đến những thực thể nào? •khi muốn rút ngắn tiến công việc độ ta phải thay đổi gì?
  46. 3. sơ đồ thực thể: Sơ đồ thực thể trình bày các mối liên hệ thực thể dữ liệu. n 1 nhân viên phòng ban n n hạng mục công việc Dùng các hình hộp chữ nhật để biểu thị cho thực thể dữ liệu và các mũi tên biểu thị cho mối liên hệ
  47. II. Khảo sát và nắm bắt các yêu cầu.  Khảo sát hiện trạng là quá trình khám phá cách mà hệ thống đã được thiết kế và vận hành trong thực tế, làm bộc lộ các quan hệ nội tại giữa các thành phần trong hệ thống và mối liên hệ giữa hệ thống với yêu cầu. 1. Để tìm ra ưu điểm/khuyết điểm => xác định yêu cầu mới 2. Để tìm ra giải pháp khả thi cho các yêu cầu  Xác định yêu cầu cho hệ thống là một quá trình tổng hợp thông tin mang tính hệ thống và khách quan, không thể chỉ dựa vào mô tả của một vài cá nhân, vì • Mỗi cá nhân chỉ nhìn hệ thống theo một lĩnh vực chuyên môn đang phụ trách; do đó các phát biểu thường không bộc lộ được các ràng buộc tổng thể của hệ thống. • Các phát biểu của nhiều người thường có mâu thuẩn nhau do mỗi người có quan điểm khác nhau về hệ thống hiện tại.
  48. Nội dung khảo sát 1. Tìm hiểu mục đích, yêu cầu đối với hệ thống – Xác định vai trò (lợi ích) của hệ thống đối với tổ chức. 2. Tìm hiểu các quy trình giữa các thành phần trong hệ thống – Để làm bộc lộ mối quan hệ nội tại giữa các thành phần a. Công việc: quy tắc quản lý, cách làm, kết quả, chuyển giao b. Nguồn lực: mức độ, phương tiện, nhân lực, cách tổ chức bố trí 3. Tìm hiểu thông tin – dữ liệu của quy trình – Các quy định, hướng dẫn, tiêu chuẩn – Forms/Reports : có thông tin gì, khi nào cần, dùng để làm gì, 4. Hệ thống thông tin trên máy tính (CBIS) hiện có – Phạm vi, mức độ và cách nó trợ giúp users thực hiện công việc – Vai trò (roles) của các users trong hệ thống. – Phần mềm, mạng máy tính, thiết bị,
  49. Các phương pháp khảo sát truyền thống 1. Phỏng vấn cá nhân (interviews) 2. Phỏng vấn nhóm (group interviews) 3. Phiếu thăm dò (questionaires) 4. Quan sát người sử dụng (viewing) 5. Phân tích tài liệu (document analysis) Các phương pháp này thuần túy là chỉ dùng để biết về hệ thống hiện tại.
  50. 1.Phỏng vấn cá nhân (interviews) • Phỏng vấn: hẹn gặp, tiếp xúc, hỏi và ghi nhận cân trả lời. – Phỏng vấn người nhân viên: Công việc của họ, thông tin mà họ cần để làm việc, cách xử lý thông tin, – Phỏng vấn người quản lý: Xu huớng của tổ chức, các chính sách đang và sẽ áp dụng, mong muốn thay đổi, những ý kiến nhận xét về hệ thống hiện tại, • Ưu điểm – Có cơ hội hỏi thêm về những gì vừa mới biết • Khuyết điểm – Có thể có mâu thuẩn ý kiến riêng giữa các cá nhân – Tốn nhiều thời gian nếu cần phỏng vấn nhiều người
  51. 2.Phỏng vấn nhóm (group interviews) • Phỏng vấn nhóm: Đặt câu hỏi chung cho nhiều người chủ chốt cùng một lúc trong cuộc họp, hội thảo. • Ưu điểm – Ít tốn thời gian hơn phỏng vấn cá nhân – Gia tăng sự trao đổi về các “phát hiện mới” giữa những người tham gia => có cơ hội hiểu biết sâu hơn. – Hạn chế bớt sự mâu thuẩn ý kiến cá nhân • Khuyết điểm: khó thu xếp cho cuộc phỏng vấn – Do có khoảng cách kiến thức chuyên môn giữa nhiều người tham gia phỏng vấn – Khó sắp xếp thời gian và địa điểm họp cho nhiều người cùng một lúc
  52. 3.Phiếu thăm dò (questionaires) • Gửi phiếu có ghi câu hỏi phỏng vấn đến nhiều người, sau đó phân tích/thống kê kết quả trả lời từ các phiếu đã quay về. Câu hỏi phải hết sức rõ ràng, dể hiểu và dể trả lời để người được phỏng vấn không bị nhầm lẫn. • Ưu điểm – Rẻ hơn các loại phỏng vấn – Thống kê trên số lượng lớn phiếu quay về có thể nhận được thông tin tương đối khách quan. • Khuyết điểm – Không có cơ hội để hỏi thêm ! – Không chắc chắn ai là tác giả !! – Số phiếu quay về có thể quá ít.
  53. So sánh Interviews và Questionaires Tính chất Interviews Questionaires Giàu thông tin Cao T.bình - Thấp Thời gian Có thể rất lâu Thấp – T.bình Chi phí Có thể cao vừa phải Tìm hiểu sâu thêm Tốt Giới hạn Độ tin cậy Cao. Đã biết rõ Không cao. Không xác người được phỏng định được tác giả. vấn. Mức độ cộng tác Người được phỏng Không rõ các cam vấn cùng tham gia kết giải quyết vấn đề và cam kết thực hiện Người tham dự Số lượng giới hạn, Số lượng lớn, đáp ứng đáp ứng tốt không tốt.
  54. 4. Quan sát người nhân viên • Để biết họ thường làm gì, và xử lý công việc ra sao; đồng thời để đánh giá mức độ hiệu quả của các quy trình và các phương tiện hổ trợ cho người nhân viên làm việc. • Ưu điểm – Kiểm chứng được những gì đã biết. – Biết được cường độ của từng công việc trong thực tế • Khuyết điểm – Sự quan sát có thể không khách quan, do người nhân viên sẽ thay đổi thói quen nếu biết mình đang bị quan sát. – Tốn nhiều thời gian ngồi quan sát.
  55. 5. Thu thập tài liệu • Thu thập, đọc và tìm hiểu các tài liệu văn bản mô tả về hệ thống như hồ sơ thiết kế, các biểu mẫu nhập liệu, các báo cáo, các quy trình vận hành khai thác, • Ưu điểm: – Có nhiều thông tin chi tiết, chính xác. – Dể dàng khái quát/hệ thống hóa được toàn bộ hệ thống • Khuyết điểm: – Tài liệu có thể bị lạc hậu so với thực tế
  56. Các phương pháp khảo sát hiện đại 1. Làm mẫu thử (Prototyping) 2. Joint Application Design (JAD) 3. Tái cấu trúc tiến trình ( Business Process Reengineering) • Khác với phương pháp truyền thống, phương pháp hiện đại sử dụng nhiều loại nguồn lực trợ giúp (ngoài người được phỏng vấn) để định nghĩa hệ thống mới ngay trong khi đang khảo sát.
  57. 1. Làm mẫu thử (prototyping) • Tìm hiểu sơ lược yêu cầu ban đầu, chuyển yêu cầu này thành ‘demo’ cho người sử dụng kiễm tra để hiệu chỉnh lại. Qua nhiều chu kỳ kiễm tra – hiệu chỉnh, bản demo (thể hiện yêu cầu+giải pháp của hệ thống mới) được hoàn chỉnh dần từ tổng quát đến chi tiết. • Ưu điểm – Phân tích viên hiểu được cặn kẽ yêu cầu chi tiết từ User – User biết được hệ thống mới sẽ hoạt động như thế nào • Khuyết điểm – Không thể diễn tả xử lý hệ thống (là những gì người sử dụng không nhìn thấy được, do tính tổng quát của nó) – Khó thống nhất quan điểm sử dụng từ nhiều users
  58. 2. Joint Application Design (JAD) • Là một chuổi các cuộc họp chuyên sâu có sử dụng các phương tiện “demo” như CASE tools, và có  người sử dụng,  người quản lý và  người phát triển hệ thống cùng tham gia để đặc tả hoặc xem xét tuờng tận các yêu cầu cho hệ thống. 1. Người sử dụng là người đưa ra yêu cầu về các chuyển giao sau khi thiết kế. 2. Người quản lý là người nêu ra bài toán và quyết định có chấp nhận phương án không. 3. Người phát triển hệ thống là người đưa ra phương án giải quyết bài toán. • Ưu điểm: prototyping + phỏng vấn nhóm • Khuyết điểm: khá tốn kém vì nhân lực+thời gian dài
  59. 3. Tái cấu trúc các tiến trình kinh doanh • BPR: Thay vì “cải tiến” hệ thống cho phù hợp với mô hình tổ chức và các quy tắc quản lý hiện tại, phương pháp này hướng việc khảo sát vào việc tận dụng ưu thế của các loại nguồn lực bên trong và bên ngoài để tái thiết lại hệ thống. – Thay đổi mô hình và nghiệp vụ để ứng dụng CNTT – Phá bỏ các nguyên tắc lạc hậu trì trệ đang tồn tại – Quan điểm: "Nếu một tổ chức được xây dựng lại từ đầu, thì nó cần phải hoạt động như thế nào?" • Ưu điểm: tạo ra thành tựu lớn nhưng có nhiều rủi ro. • Ví dụ: Nhà sách “Amazon.com” bán sách điện tử thay cho các quyển sách giấy không có chi phí lưu kho, không có quầy giao dịch và trưng bày, mở rộng kinh doanh, nhưng phải đối mặt với vấn đề “copy rights” của sách điện tử.
  60. Đánh giá sơ lược sau khảo sát 1. Kết luận sơ lược sau khi khảo sát – Tần suất, cường độ công việc cao ở đâu, khi nào – Có bị nghẽn cổ chai ? – Có xung khắc thông tin ? – Hiệu quả xử lý các báo cáo 2. Nhận định sơ lược về cơ hội và thách thức để khắc phục, cải tiến hoặc cải cách để định hướng tập trung phân tích 1. Từ nội bộ của tổ chức: nguồn lực, kế hoạch, chiến lược 2. Môi trường bên ngoài: quy định của chính phủ và phương pháp,công nghệ mới trên thế giới
  61. III. Sơ đồ dữ liệu (DFD- Data Flow Diagram) 1.Mục đích Cho ta biết các phần tử cấu thành của hệ thống xét theo hoạt động chức năng, nhìn từ trên xuống theo mức độ chi tiết khác nhau. Các chức năng liên kết với nhau ntn và hoạt động thực tiễn ra làm sao. .Định nghĩa Sơ đồ luồng dữ liệu là một công cụ mô tả dòng thông tin nghiệp vụ nối kết giữa các chức năng trong một phạm vi được xét.
  62. Lược đồ dòng dữ liệu - Data Flow Diagram  DFD là lược đồ sử dụng 4 ký hiệu cùng với các quy tắc vẽ để diễn tả các dòng dữ liệu di chuyển trong hệ thống. Process : Là một hành động hoặc một hệ thống con xử lý trên dữ liệu (biến đổi, lưu trữ hoặc phân phối dữ liệu). Data store : Là bộ phận dùng để lưu trữ dữ liệu, như tập tin, hồ sơ, CSDL, Source/Sink : Là thành phần phát sinh dữ liệu (source) cho hệ thống, hoặc tiêu thụ dữ liệu (sink) từ hệ thống. Data Data flow : dòng dữ liệu cơ bản của lược đồ, chỉ ra 1 nội dung dữ liệu (không đổi) được gởi từ đâu và đi đến đâu.  Quy ước • Dùng Động từ để đặt tên cho Process • Dùng Danh từ để đặt tên Data store, Source, Sink và Data flow
  63. 2.Các thành phần của DFD ◼ Kho dữ liệu: mô tả các dữ liệu được lưu giữ trên một vật mang tin nào đó trong một thời gian nhất định để cho một hoặc nhiều tiến trình hoặc tác nhân có thể truy cập đến nó, ký hiệu là hình chữ nhật tròn góc hoặc 2 gạch song song. Ví dụ: Kho dữ liệu “Hồ sơ cán bộ”, “vật tư”
  64. ◼ Quá trình (Process): ký hiệu bằng vòng trong, tượng trưng cho chức năng hệ thống phải thực hiện thay đổi thông tin đầu vào để tạo thông tin mới ◼ Dòng dữ liệu (Flow):ký hiệu bằng đường mũi tên chỉ hướng ra của thông tin, liên kết các quá trình, tượng trưng cho thông tin yêu cầu vào và thông tin biến đổi ra
  65. ◼ Tác nhân trong, tác nhân ngoài: là một người, một nhóm người hay một tổ chức ở bên trong hay ngoài lĩnh vực nghiên cứu, nhưng có quan hệ thông tin với phạm vi nghiên cứu. Biểu diễn: . Tác nhân ngoài biểu diễn bằng hình chữ nhật có dán nhãn . Tác nhân trong biểu diễn bằng hình chữ nhật hở một phía và trên có ghi nhãn
  66. 3. Một số lưu ý khi vẽ DFD ◼ Về ô xử lý: ❖ Phải chuyển ô xử lý chỉ có một dòng dữ liệu đi ra thành tác nhân cung cấp dữ liệu. ❖ Phải chuyển ô xử lý chỉ có một dòng dữ liệu đi vào thành tác nhân nhận dữ liệu. ❖ Dùng động từ để đặt tên cho ô xử lý.
  67. ◼ Về kho dữ liệu: ❖ Dòng dữ liệu không thể là cầu nối giữa hai kho dữ liệu ❖ Dòng dữ liệu không thể là cầu nối giữ tác nhân và kho dữ liệu. ❖ Dùng danh từ để đặt tên cho kho dữ liệu.
  68. ◼ Về tác nhân: ❖ Dòng dữ liệu không thể là cầu nối giữa hai tác nhân ❖ Dùng danh từ để đặt tên cho tác nhân.
  69. ◼ Về dòng dữ liệu: ❖ Dòng dữ liệu không thể là cầu nối của một xữ lý. ❖ Dòng dữ liệu vào kho dữ liệu mang ý nghĩa cập nhật (thêm, sữa, xóa) ❖ Dòng dữ liệu ra khỏi kho dữ liệu mang ý nghĩa tham khảo. ❖ Dùng danh từ để đặt tên cho dòng dữ liệu.
  70. ◼ Các ký hiệu lặp lại: ❖ Để tránh các dòng giao nhau. ❖ Trên sơ đồ DFD ta có thể lặp lại các tác nhân, các kho dữ liệu ❖ Các phần tử lặp lại này được đánh dấu bằng cách vẽ thêm đường kẻ đôi dọc cho kho dữ liệu và đường kẻ chéo cho tác nhân .
  71. IV. TỪ ĐIỂN DỮ LIỆU (DATA DICTIONARY) Nhằm làm rõ hơn các khái niệm của vấn đề, người ta phải xây dựng từ điển dữ liệu để giải thích thêm ý nghĩa của các tập thực thể và thuộc tính.
  72. Ví dụ: Tập thực thể MẶT HÀNG mã hàng MẶT HÀNG mô tả đơn giá thuế xuất
  73. Sẽ có từ điển dữ liệu như sau: Thực thể MẶT HÀNG Tên khác Hàng, sản phẩm, hàng hóa. Mô tả Hàng là những thứ được mua với số lượng khác nhau từ các nhà cung ứng, được lưu trữ trong kho và bán cho khách hàng.
  74. Thuộc tính Mã hàng: Là một số dùng để phân biệt mặt hàng này với mặt hàng kia. Giá trị có dạng 0001>9999 Mô tả : Mô tả mặt hàng gồm qui tắc và hình dáng. Loại ký tự chuỗi gồm 100 ký tự. Có thể có giá trị rỗng. Đơn giá: Đơn giá hiện tại của mặt hàng. Có loại dữ liệu số với 2 số thập phân, có giá trị từ 10 đến 50, mặt nhiên là 0. Thuế xuất: Tỷ suất thuế bán của mặt hàng được ghi dưới dạng phần trăm. Có loại dữ liệu số, có giá trị từ 0 đến 99. Giá trị mặt nhiên 0.
  75. Thuoäc tính caàn ñeà caäp caùc noäi dung sau: - Giaûi thích ngöõ nghóa. - Xaùc ñònh kieåu döõ lieäu. - Xaùc ñònh mieàn giaù trò - Xaùc ñònh giaù trò maëc nhieân - Cho pheùp ñeå roãng khoâng - Xaùc ñònh caùc raøng buoäc khaùc
  76. V. Đặc tả tiến trình (process Specification) • Phương pháp mô tả chi tiết của một chức năng, hay tiến trình được gọi là phương pháp đặc tả tiến trình(process Specification). • Đặc tả tiến trình phải ngắn gọn, chính xác và chỉ ra được tất cả các hoạt động logic diễn ra trong tiến trình, cùng với tiến trình thực hiện chúng. Một bản đặc tả tiến trình gồm 2 phần: phần đầu đề và phần thân mô tả.
  77. ◼ Phần đầu đề gồm tên chức năng, các dữ liệu vào và dữ liệu ra. ◼ Phần thân của bản đặc tả tiến trình mô tả chi tiết của tiến trình để xử lý dữ liệu vào thành dữ liệu ra. Nếu có nhiều hoạt động, phần mô tả này phải thể hiện được thứ tự thực hiện, hoặc các trường hợp thực hiện các hoạt động tương ứng.
  78. Một số công cụ thường dùng để đặc tả tiến trình là phương trìh toán học, ngôn ngữ có cấu trúc, sơ đồ khối và bảng quyết đinh. *Phương pháp dùng bảng Ví dụ: xét tiến trình xử lý phiếu yêu cầu của bạn đọc 1.Tên tiến trình: Xử lý phiếu yêu cầu của bạn đọc +Dữ liệu vào : -Số thẻ bạn đọc, -Phiếu yêu cầu -Bản ghi bạn dọc -Sổ theo dõi mượn trả -tài liệu +Dữ liệu ra: -Phiếu yêu cầu đã được xử lý -Thông báo cho bạn đọc
  79. 2.Mô tả tiến trình
  80. *Phương pháp dùng ngôn ngữ có cấu trúc(giả mã) • Trong các phương pháp phân tích và thiết kế hệ thống, người ta thường dùng ngôn ngữ có cấu trúc để mô tả chi tiết của tiến trình. Ngôn ngữ có cấu trúc không phải là ngôn ngữ tự nhiên thông thường mà thường là ngôn ngũ lập trình,như giả Pascal Sử dụng các giả ngôn ngữ này có thể tránh được các ràng buộc chặt chẽ của các ngôn ngữ khác mà không gây ra sự hiểu lầm,vẫn diễn đạt được đầy đủ các hoạt động mà không bị rườm rà.Thông thường trong ngôn ngữ có cấu trúc được sử dụng để mô tả tiến trình, phải loại bỏ các lượng từ,các câu phức hợp, các cách diễn đạt tình.
  81. Trong ngôn ngữ chỉ còn lại các thành phần: - Động từ được dùng ở dạng mệnh lệnh - Câu đơn giản thuộc loại điều khiển hay khẳng định - Thuật ngữ được định nghĩa trong từ điển dữ liệu - Một số lượng hạn chế các từ logic - Và các cấu trúc cơ bản của ngôn ngữ là lặp và rẽ nhánh Như vậy một ngôn ngữ có cấu trúc dùng để mô tả tiến trình có nhiều đặc điểm quan trọng của ngôn ngữ lập trình, nhưng không chịu sự ràng buộc chặt chẽ của ngôn ngữ lập trình nên dễ hiểu, gần với ngôn ngữ tự nhiên và có cấu trúc tương đối tự do.
  82. Ví dụ: 1.Tiến trình: In phiếu đòi sách đối với bạn đọc có sách quá hạn + Dữ liệu vào: -Số thẻ bạn đọc -Dữ liệu mượn trả -Ngày hiện thời +Dữ liệu ra: -Phiếu đòi và danh sách tài liệu mượn quá hạn với từng bạn đọc.
  83. 2.Mô tả: Với mỗi bạn đọc trong danh sách a)K=số thẻ bạn đọc b)Danh sách quá hạn (K):=0 c)Vói mỗi tài liệu = Sổ mượn (K) +M:=Số hiệu tài liệu +Nếu M.Ngày trả<Ngàyhiện thời Thì Thêm M vào Danh sách quá hạn (K); d)Nếu Danh sách quá hạn (K) = 0Thì -In phiếu đòi -In Danh sách quá hạn(K)
  84. *Phương pháp dùng sơ đồ khối Sơ đồ khối là loại biểu đồ diễn tả giải thuật quen thuộc và ưa dùng khi mới làm quen với việc viết chương trình. Sơ đồ khối là một công cụ dễ sử dụng và đơn giản, tuy nhiên khi lập trình nâng cao hoặc giải quyết những bài toán phức tạp và cồng kềnh thì sơ đồ khối lại bộc lộ khá nhiều nhược điểm. Trong sơ đồ, bên cạnh các đường có hướng chỉ hướng điều khiển,có hai loại nút: nút hành động, tức là thực hiện một thao tác nào đó,và nút kiểm tra điều kiện.
  85. Ví dụ: Sơ đồ khối đặc tả tiến trình “In phiếu đòi sách quá hạn”
  86. VI. Sơ đồ liên kết các thực thể (ERD – Entity Relationship Diagram) 1. Mục đích: ◼ DFD chỉ ra làm thế nào, ở đâu và khi nào dữ liệu được xử lý, nhưng không chỉ ra định nghĩa, cấu trúc và các quan hệ của dữ liệu. ◼ Entity Relationship Diagram (ERD) là lược đồ thể hiện cấu trúc trừu tượng hóa của dữ liệu trong tổ chức, dựa trên khái niệm thực thể (entity) và quan hệ (relationship) giữa các thực thể, để nhằm thể hiện nội dung, ý nghĩa của dữ liệu trong hệ thống.
  87. 2. Các thành phần của ERD Ba phần chính của ERD là: thực thể, thuộc tính, và các mối quan hệ giữa các thành phần đó
  88. Thực thể (Entity)  Nhân viên, Sinh viên, Môn học, là các thực thể, là một khái niệm tổng quát hóa cho một nhóm các đối tượng (thể hiện, entity instance) trong thế giới thực có chung một số đặc điểm (thuộc tính). Vd: môn “PTTK”, môn “CSDL” là các thể hiện của thực thể MônHọc. 1. Thực thể xác thực mô tả các đối tượng tồn tại thực sự trong thế giới thực: Xe đạp, xe hơi, nhà, quyển sách, 2. Thực thể chức năng mô tả mục đích, chức năng, hoặc nhiệm vụ của con người, thiết bị hoặc tổ chức: Sinh viên, nhân viên, khách hàng, nhà kho, 3. Thực thể sự kiện mô tả các sự kiện hoặc biến cố: biên nhận, biên bản họp, kỳ thi, 4. Thực thể quan hệ mô tả các quan hệ giữa các đối tượng: Quản lý, đăng ký, hợp đồng,
  89. Thực thể (Entity)  Attribute (thuộc tính) là đặc điểm chung của các đối tượng trong thực thể. Vd: MãNV, Tên, Địachỉ, KỹNăng là các thuộc tính được quan tâm khi nghĩ về thực thể NhânViên.  Khóa là 1 hoặc kết hợp nhiều thuộc tính để phân biệt các đối tượng trong thực thể với nhau. Vd: MãNV là 1 thuộc tính dùng để phân biệt các nhân viên trong tập thực thể NhânViên. Nếu biết MãNV của 1 nhân viên, ta sẽ tìm được tên của nhân viên, địa chỉ và kỹ năng của nhân viên đó, dựa trên dữ liệu của thực thể NhânViên.  Yêu cầu đối với khóa của thực thể: 1. Không thay đổi giá trị khi thể hiện tương ứng còn tồn tại 2. Là thuộc tính không rỗng (Not Null) 3. Không chứa thuộc tính có cấu trúc. Mã vật tư dạng "kho,loại" là thuộc tính có cấu trúc (không nguyên tố).
  90. Các ký hiệu dùng trong ERD Entity Attribute Key Multivalue attribute Ví dụ: một nhân viên có 1 mã nhân viên dùng để phân biệt. Cơ quan chỉ quan tâm quản lý tên nhân viên, địa chỉ nhà riêng, và các kỹ năng của từng nhân viên. Thực thể nhân viên được diển tả như sau: Emp_Name Emp_Address Emp_ID Emp_Skill EMPLOYEE
  91. Thuộc tính đa trị (Multivalue Attribute) là một thuộc tính có nhiều giá trị được sử dụng đồng thời để mô tả cho một thể hiện của thực thể • Vd: thuộc tính “Skill” của 1 nhân viên. Một nhân viên thường có nhiều kỹ năng, skill sẽ có nhiều giá trị khác nhau EMP_ID EMP_Name EMP_Skill 0210-67 Susan Language 0210-67 Susan Interpersonal Emp_Name Emp_Address Emp_ID Emp_Skills EMPLOYEE
  92. Quan hệ  Là mối liên kết giữa một hoặc nhiều thực thể để chỉ ra sự liên kết về nội dung (và ý nghĩa) giữa các thực thể trong mối liên kết. Ví dụ: “Mỗi SINH VIÊN đăng ký nhiều MÔN HỌC”. Sự liên kết nội dung giữa thực thể Sinh viên và thực thể Môn học là việc đăng ký môn để học của mỗi sinh viên.  Cardinality: là số thể hiện của thực thể B có thể (hoặc phải) liên kết với mỗi thể hiện của thực thể A. Vd: một sinh viên phải đăng ký học ít nhất là 1 môn, và nhiều nhất là 6 môn trong một học kỳ. Mandatory 1 Optional 0 - 1 n n Mandatory Many Optional 0 - Many
  93. Số quan hệ (Cardinality) Mỗi thể hiện của A có đúng 1 thể hiện R A B tương ứng ở B theo quan hệ R1 1 (cardinality = [1,1]). Mỗi thể hiện của A chỉ có 1 thể hiện tương ứng ở B, hoặc không có thể hiện R2 A B tương ứng theo quan hệ R2 (cardinality = [0,1]). Mỗi thể hiện của A có ít nhất là 1 và tối N A R3 B đa là N thể hiện tương ứng ở B theo quan hệ R3 (cardinality = [1,N]). Mỗi thể hiện của A có tối đa là N thể N hiện tương ứng ở B, hoặc không có thể A R4 B hiện tương ứng theo quan hệ R4 (cardinality = [0,N]).
  94. Relationship Có 3 loại quan hệ cơ bản giữa các thực thể: Unary relationship: liên kết trên 1 thực thể Binary relationship: liên kết 2 thực thể Ternary relationship: liên kết 3 thực thể
  95. Binary Relationship EMPLOYEE Has a NAME CARD One to One (1:1) “Một nhân viên phải có (duy nhất) 1 bảng tên.” PRODUCT Contains PRODUCT LINE One to Many (1:N) “Một dây chuyền sản phẩm phải chứa 1 hoặc nhiều sản phẩm. Một sản phẩm phải thuộc 1 dây chuyền sản xuất.” STUDENT Registers COURSE Many to Many (M:N) “Một sinh viên phải đăng ký 1 hoặc nhiều môn học. Một môn học có thể có nhiều sinh viên đăng ký, hoặc không có sinh viên đăng ký”
  96. Unary Relationship Is PERSON Married EMPLOYEE Manages to One to One One to Many “Một người chỉ được kết “Một nhân viên có thể quản hôn với một người khác” lý nhiều nhân viên” “1 Item có thể có nhiều thành phần, mỗi thành phần cũng là 1 Has ITEM Components Item có thể được sử dụng trong nhiều component khác” Many to Many
  97. Ternary Relationship GOODS VENDOR Sell CUSTOMER “Một nhà cung cấp có thể bán nhiều mặt hàng cho nhiều khách hàng; khách hàng có thể mua hàng từ nhiều nhà cung cấp khác nhau ”
  98. Associative Entity (thực thể liên kết) Là thực thể liên kết các thể hiện của một hoặc nhiều thực thể khác và có thêm các thuộc tính riêng trên liên kết giữa các thực thể PART VENDOR SHIPMENT WAREHOUSE Shipment ID Quantity
  99. Thiết lập lược đồ ERD 1. Định nghĩa các thực thể, dựa trên vai trò, ý nghĩa của thực thể đối với hệ thống. Nên chọn danh từ để dùng làm tên cho thực thể, vd: MONHOC, SINHVIEN, KHOA, 2. Định nghĩa các quan hệ giữa các thực thể. Tên của các quan hệ thường được diễn tả bằng động từ để chỉ các hành động, sự kiện liên kết các thể hiện trong các thực thể có quan hệ nhau. 3. Xác định các thuộc tính của thực thể và quan hệ. Thuộc tính của thực thể (hoặc quan hệ) là những đặc tính mà tất cả các thể hiện của thực thể (hoặc quan hệ) đều có. Thêm thuộc tính để tăng tính mô tả, hoặc để có thê dữ liệu phân biệt các thể hiện. Bỏ bớt thuộc tính nếu chúng dư thừa hoặc không liên quan đến vai trò, ý nghĩa của thực thể trong hệ thống. 4. Xác định cardinality cho mỗi quan hệ.
  100. Biểu đồ thực thể liên kết S¸ch M· s¸ch Lo¹i tµi liÖu T¹p chÝ_Tiªu ®Ò M· T¹p chÝ_Tiªu ®Ò Tªn s¸ch M· lo¹i Tªn t¹p chÝ KÝch cì Tªn lo¹i N¨m xuÊt b¶n Thêi gian xuÊt b¶n Nhµ xuÊt b¶n Nhµ xuÊt b¶n Gi¸ Chuyªn ngµnh M· ng«n ng÷ T¸c gi¶ M· chuyªn ngµnh M· chuyªn ngµnh M· ng«n ng÷ Tªn chuyªn ngµnh M· lo¹i s¸ch M· chuyªn ngµnh Chó thÝch M· lo¹i s¸ch Ng«n ng÷ Chó thÝch M· ng«n ng÷ Tªn ng«n ng÷ Chó thÝch T¹p chÝ_Chi tiÕt M· T¹p chÝ_Tiªu ®Ò M· T¹p chÝ_Chi tiÕt B¹n ®äc ThÎ M•în/Tr¶ TËp Kú xuÊt b¶n M· b¹n ®äc M· b¹n ®äc Sè l•îng Tªn b¹n ®äc M· s¸ch/t¹p chÝ M· bé m«n Ngµy m•în §Þa chØ Ngµy tr¶ Ngµy sinh Chó thÝch Ghi chó Bé m«n M· bé m«n Tªn bé m«n