Giáo trình Nhập môn Kỹ nghệ phần mềm (Phần 2): Chương 4 - Thiết kế Dữ liệu

Giáo trình Kỹ nghệ phần mềm P2, Chương 4: Thiết kế dữ liệu. Hướng dẫn tổng quan cách tổ chức lưu trữ, sơ đồ logic và các phương pháp thiết kế.

Chuyên ngành

Kỹ Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

Giáo trình

2011

79
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khái Niệm Cơ Bản Về Thiết Kế Dữ Liệu

Thiết kế dữ liệu là quá trình quan trọng trong kỹ nghệ phần mềm, giúp tổ chức và quản lý thông tin hiệu quả. Nó xác định cấu trúc, mối quan hệ và cách lưu trữ dữ liệu trong hệ thống. Thiết kế dữ liệu tốt đảm bảo tính nhất quán, bảo mật và hiệu suất ứng dụng. Đây là nền tảng để xây dựng các hệ thống thông tin mạnh mẽ và bền vững.

1.1. Tầm Quan Trọng Của Thiết Kế Dữ Liệu

Thiết kế dữ liệu ảnh hưởng trực tiếp đến chất lượng và hiệu năng phần mềm. Một thiết kế tốt giảm dự phòng dữ liệu, tăng tốc độ truy vấn và đơn giản hóa bảo trì hệ thống. Nó cung cấp cơ sở vững chắc cho phát triển ứng dụng thành công.

II. Các Bước Thiết Kế Cơ Sở Dữ Liệu Quan Hệ

Quá trình thiết kế cơ sở dữ liệu gồm ba giai đoạn chính: thiết kế khái niệm, thiết kế logic và thiết kế vật lý. Mỗi giai đoạn có mục tiêu cụ thể, từ xác định yêu cầu đến tối ưu hóa hiệu suất. Các bước này đảm bảo rằng cơ sở dữ liệu đáp ứng nhu cầu kinh doanh và kỹ thuật.

2.1. Thiết Kế Khái Niệm Và Mô Hình Entity Relationship

Thiết kế khái niệm sử dụng mô hình Entity-Relationship (ER) để biểu diễn các thực thể và mối liên hệ. Nó giúp xác định các đối tượng chính, thuộc tính và quan hệ giữa chúng mà không phụ thuộc vào công nghệ cụ thể.

III. Chuẩn Hóa Dữ Liệu Và Các Dạng Bình Thường

Chuẩn hóa dữ liệu là kỹ thuật loại bỏ dự phòng và phụ thuộc dữ liệu không mong muốn. Quá trình này áp dụng các dạng bình thường (Normal Forms) từ 1NF đến 3NF hoặc cao hơn. Chuẩn hóa tốt giảm lỗi dữ liệu, tiết kiệm không gian lưu trữ và cải thiện tính toàn vẹn dữ liệu.

3.1. Các Dạng Bình Thường Chính 1NF 2NF 3NF

Dạng bình thường thứ nhất (1NF) loại bỏ nhóm lặp lại. Dạng thứ hai (2NF) loại bỏ phụ thuộc hàm một phần. Dạng thứ ba (3NF) loại bỏ phụ thuộc bắc cầu, đảm bảo dữ liệu được tổ chức tối ưu.

IV. Công Cụ Và Thực Hành Thiết Kế Dữ Liệu

Hiện nay có nhiều công cụ hỗ trợ thiết kế dữ liệu như MySQL Workbench, ERDPlus, Lucidchart và Enterprise Architect. Các công cụ này giúp dễ dàng tạo sơ đồ ER, kiểm chứng mô hình và tạo mã SQL. Thực hành tốt bao gồm lên kế hoạch kỹ lưỡng, kiểm thử và tối ưu hóa liên tục.

4.1. Công Cụ Phổ Biến Và Best Practices

MySQL Workbench và ERDPlus là lựa chọn tốt cho người mới. Các best practices bao gồm: đặt tên rõ ràng, tài liệu hóa đầy đủ, sử dụng khóa chính và khóa ngoại, thường xuyên kiểm thử và tối ưu truy vấn theo thời gian.

22/12/2025

Trích đoạn nội dung tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA HỆ THỐNG THÔNG TIN KINH TẾ Nguyễn Văn Huân Vũ Xuân Nam NHẬP MÔN KỸ NGHỆ PHẦN MỀM Thái Nguyên, 2011 0 Chương 4 THIẾT KẾ DỮ LIỆU 4. Tổng quan Mục tiêu chính của thiết kế dữ liệu là mô tả cách thức tổ chức lưu trữ các dữ liệu của phần mềm. Có hai dạng lưu trữ chính mà người thiết kế cần phải cân nhắc và lựa chọn. - Lưu trữ dưới dạng tập tin - Lưu trữ dưới dạng cơ sở dữ liệu Lưu trữ dưới dạng tập tin thường chỉ thích hợp với một số phần mềm đặc thù (cờ tướng, trò chơi, v.) đặc điểm chung của các phần mềm này là chú trọng rất nhiều vào xử lý, hình thức giao diện và không chú trọng nhiều đến việc lưu trữ lại các thông tin được tiếp nhận trong quá trình sử dụng phần mềm (thông thường các thông tin này được tiếp nhận và xử lý ngay).

Cách tiếp cận dùng cơ sở dữ liệu rất thông dụng và giáo trình này sẽ giới hạn trình bày chi tiết các phương pháp kỹ thuật liên quan đến việc tổ chức lưu trữ dữ liệu dùng cơ sở dữ liệu quan hệ. Giáo trình này sẽ không nhắc lại các khái niệm cơ bản về cơ sở dữ liệu và giả sử rằng người xem đã biết qua các khái niệm này. Tuy nhiên chúng ta cũng nên xem lại các bước để hình thành nên mô hình dữ liệu quan hệ trong quá trình thiết kế dữ liệu 4. Kết quả của thiết kế Cách thức tổ chức lưu trữ dữ liệu của phần mềm được mô tả thông qua 2 loại thông tin sau: Thông tin tổng quát Cung cấp góc nhìn tổng quan về các thành phần lưu trữ Danh sách các bảng dữ liệu: Việc lưu trữ cần sử dụng bao nhiêu bảng dữ liệu và đó là các bảng nào ? Danh sách các liên kết: Các bảng dữ liệu có quan hệ, có mối liên kết giữa chúng ra sao? Thông tin chi tiết: Danh sách các thuộc tính của từng thành phần: Các thông tin cần lưu trữ của thành phần ? 84 Danh sách các Miền giá trị toàn vẹn: Các qui định về tính hợp lệ của các thông tin được lưu trữ Có nhiều phương pháp, nhiều đề nghị khác nhau về việc mô tả các thông tin trên.

Giáo trình này chọn sơ đồ logic để biểu diễn các thông tin tổng quát và bảng thuộc tính. Miền giá trị để mô tả chi tiết các thành phần trong sơ đồ logic. Sơ đồ logic là sơ đồ cho phép thể hiện hệ thống các bảng dữ liệu cùng với quan hệ mối nối liên kết giữa chúng. Các ký hiệu được dùng trong sơ đồ rất đơn giản như sau: Bảng: hình chủ nhật Liên kết: (xác định duy nhất một): Mũi tên Mũi tên hình trên có ngữ nghĩa: 1 phần tử A sẽ xác định duy nhất 1 phần tử B, ngược lại 1 phần tử B có thể tương ứng với nhiều phần tử A.

Ví dụ: Với phần mềm quản lý thư viện có sơ đồ logic sau: Theo sơ đồ này việc lưu trữ các dữ liệu của phần mềm quản lý thư viện được tổ chức 3 bảng (DOCGIA, MUONSACH, SACH) vùng với 2 liên kết giữa chúng Tất nhiên sơ đồ trên chỉ là một trong các cách thức tổ chức lưu trữ dữ liệu còn nhiều cách khác có thể có. Chi tiết các cách này sẽ được trình bày trong phương pháp thiết kế cơ sở dữ liệu. Bảng thuộc tính cho phép mô tả chi tiết thành phần trong sơ đồ logic theo dạng như sau: Thành phần Ý nghĩa STT Thuộc tính Kiểu Miền giá trị Ý nghĩa Ghi chú 1 2 85 … Bảng miền giá trị cho phép mô tả các Miền giá trị giữa các thuộc tính cùng một thành phần hay nhiều thành phần khác nhau. MSố Mô tả miền giá trị Thành phần liên quan Ghi chú RB1 RB2 … Ví dụ: Ghi chú: - Bảng thuộc tính cho phép mô tả chi tiết thanh phần cần lưu trữ và sẽ được dùng trong báo cáo về thiết kế dữ liệu của phần mềm.

Tuy nhiên cách mô tả trên khá dài dòng, trong giáo trình này sẽ sử dụng một dạng trình bày cô đọng hơn theo dạng lược đồ quan hệ. Với dạng trình bày này gồm tên bảng và thuộc tính đi kèm, các thuộc tính khóa được gạch chân. Ví dụ: DOC_GIA(MDG,Hoten,Loaidg,Ngsinh, Nglapthe, Diachi) SACH(MSACH,Tensach,Theloai, NgNhap, Tacgia, Nhaxb, Namxb) MUON(MDG,MSACH,NgMuon,Ngtra) 4. Quá trình thiết kế Có 2 cách tiếp cận chính để thiết kế dữ liệu: Phương pháp trực tiếp: Từ các yêu cầu đã xác định, tạo lập trực tiếp sơ đồ logic cùng với bảng thuộc tính, bảng miền giá trị.

Các tiếp cận này rất khó thực hiện đối với sơ đồ logic phức tạp. Phương pháp gián tiếp: Từ các yêu cầu đã xác định, tạo lập mô hình quan niệm dữ liệu, và sau đó đưa vào mô hình này sẽ tạo lập sơ đồ logic, bảng thuộc tính, bảng miền giá trị. Các tiếp cận này dễ thực hiện hơn vì mô hình quan niệm dữ liệu thường đơn giản (chứa các thành phần dữ liệu bản chất nhất của phần mềm). Khái niệm chi tiết về mô hình quan niệm dữ liệu cùng với các bước cụ thể sẽ được trình bày chi tiếp trong phần sau.

86 Tương ứng với 3 yêu cầu của phần mềm, quá trình thiết kế dữ liệu bao gồm 3 bước lớn: - Thiết kế với tính đúng đắn - Thiết kế với yêu cầu chất lượng - Thiết kế với yêu cầu hệ thống Thiết kế với tính đúng đắn - Đảm bảo đầy đủ và chính xác về mặt ngữ nghĩa các thông tin liên quan đến các công việc trong yêu cầu. - Các thông tin phục vụ cho các yêu cầu chất lượng sẽ không được xét đến trong bước thiết kế này. Thiết kế với yêu cầu chất lượng - Vẫn đảm bảo tínhh đúng đắn nhưng thỏa mãn thêm các yêu cầu chất lượng khác (tiến hóa, tốc độ nhanh, lưu trữ tối ưu). - Cần chú ý bảo đảm tính đúng đắn khi cải tiến sơ đồ logic.

Thiết kế với yêu cầu hệ thống - Vẫn đảm bảo tính đúng đắn và các yêu cầu chất lượng khác nhưng thỏa mãn thêm các yêu cầu hệ thống (phân quyền, cấu hình phần cứng, môi trường phần mềm, v.v) Ví dụ: phần mềm quản lý thư viện: Với phương pháp trực tiếp sẽ cho kết qủa như sau: Sơ đồ logic: 87 Các bảng thuộc tính: DOC_GIA(MDG,MLDG,HoTen,NgaySinh,DiaChi,DienThoai) SACH(MSACH,MTG,MNXB,MLSACH,MNN,TenSach, Ngàymua, SoTrang) PHIEU_MUON(MPHM, NgayMuon) CHITIETMUON(MPHM, MSACH, NgayTra) LOAISACH(MLSACH,TenLS, GhiChu) LOAIDOCGIA(MLDG,TenLDG,GhiChu) NHAXB(MNXB,TenNXB, GhiChu) TACGIA(MTG,Ten, Ghichu) NGONNGU(MNN,Ten,Ghichu) Với phương pháp gián tiếp, ngoài kết qủa cuối cùng tương tự như phương pháp trực tiếp, còn có kết quả trung gian là mô hình quan niệm dữ liệu như sau: + Sơ đồ lớp đối tượng với 2 đối tượng chính Sách, Độc giả và 1 quan hệ Mượn giữa 2 lớp đối tượng trên + Mô hình chi tiết các thành phần trong sơ đồ lớp: Xem chi tiết ở phụ lục B Ví dụ : Xét phần mềm với 4 yêu cầu: Lập thẻ độc giả, Nhận sách, Cho mượn sách, Trả sách Thiết kế dữ liệu với tính đúng đắn Sơ đồ logic Chi tiết các bảng DOCGIA(MDG,MLDG,HoTen,NgaySinh,DiaChi,DienThoai) SACH(MSACH,MTG,MNXB,MLSACH,MNN,TenSach, Ngàymua, SoTrang) MUON_SACH(MDG,MSACH,NgMuon,NgTra,Tienphat) Thiết kế dữ liệu với tính tiến hóa Sơ đồ logic 88 Chi tiết các bảng: DOC_GIA(MDG,MLDG,HoTen,NgaySinh,DiaChi,DienThoaiNg_lapthe, Ng_hethan) SACH(MSACH,Tensach,MTL,ng_Nhap, Tacgia,NamXB, NhaXB) MUON_SACH(MDG,MSACH,NgMuon,NgTra,Tienphat THE_LOAI(MTL,Tentheloai,GhiChu) LOAI_DG(MLDG,TenLDG,GhiChu) Thiết kế với tính hiệu quả (truy xuất nhanh) Sơ đồ logic Cũng với sơ đồ logic như trên nhưng ta có các bảng thuộc tính: DOC_GIA(MDG,MLDG,HoTen,NgaySinh,DiaChi,DienThoaiNg_lapthe,Ng_ hethan, SosachMuon, TinhTrangtra) SACH(MSACH,Tensach,MTL,ng_Nhap, Tacgia,NamXB, NhaXB, TinhTrangMuon) MUON_SACH(MDG,MSACH,NgMuon,NgTra,Tienphat) THE_LOAI(MTL,Tentheloai,GhiChu) LOAI_DG(MLDG,TenLDG,GhiChu) Thiết kế dữ liệu với tính hiệu quả (lưu trữ tối ưu) Sơ đồ logic Chi tiết các bảng thuộc tính DOC_GIA(MDG,MLDG,HoTen,NgaySinh,DiaChi,DienThoaiNg_lapthe, Ng_hethan, SosachMuon, TinhTrangtra) SACH(MSACH,Tensach,MTL,ng_Nhap, Tacgia,NamXB, NhaXB, TinhTrangMuon) MUON_SACH(MDG,MSACH,NgMuon,NgTra,Tienphat) CHITIET_MUON(MMUON,MSACH,NgTra,Tienphat) THE_LOAI(MTL,Tentheloai,GhiChu) LOAI_DG(MLDG,TenLDG,GhiChu) 89 Thiết kế dữ liệu với yêu cầu phân quyền hệ thống (phân quyền) Sơ đồ logic Chi tiết các bảng DOC_GIA(MDG,MLDG,HoTen,NgaySinh,DiaChi,DienThoaiNg_lapthe,Ng_ hethan, SosachMuon, TinhTrangtra) SACH(MSACH,Tensach,MTL,ng_Nhap, Tacgia,NamXB, NhaXB, TinhTrangMuon) MUON_SACH(MDG,MSACH,NgMuon,NgTra,Tienphat) CHITIET_MUON(MMUON,MSACH,NgTra,Tienphat) THE_LOAI(MTL,Tentheloai,GhiChu) LOAI_DG(MLDG,TenLDG,GhiChu) NGUOI_DUNG(MND, HoTen, Ghichu) CHUC_NANG(MCN,Ten_Chucnang, Ghichu) QUYEN_HAN(MND,MCN) 4. Phương pháp thiết kế dữ liệu 4.1 Phương pháp trực tiếp Bước 1: - Lập sơ đồ với 1 thành phần duy nhất - Đánh giá tính đúng đắn so với các yêu cầu và chuyển sang bước 2 nếu cần thiết Bước 2: - Tách 1 số thuộc tính để tạo ra các thành phần mới - Xác định liên kết giữa các thành phần - Đánh giá tính đúng đắn so với các yêu cầu và lặp lại bước 2 nếu cần thiết Ví dụ: phần mềm quản lý thư viện Cách 1: Chỉ dùng 1 thành phần SÁCH 90 Masach, Ten, Theloai, Ngaymua, Tacgia, NhaXB, NamXB HotenDG, LoaiDG, Ngaylamthe, Ngaymuon, Ngaytra Cách 2: Dùng 2 thành phần SACH, DOCGIA Cách 2.1 : Chỉ lưu trừ lần mượn sách cuối cùng SACH MSACH, MADG, Ten, Theloai, NgayMua, TacGia, NhaXB, NamXB, Ngaymuon, NgayTra. DOCGIA MDG, HoTen, LoaiDG,Ngaylamthe, Cách 2.2: Chỉ cho phép độc giả mượn tối đa 1 quyển sách SACH MSACH, MADG, Ten, Theloai, NgayMua, TacGia, NhaXB, NamXB, Ngaymuon, NgayTra. MDG, MSACH,HoTen, LoaiDG,Ngaylamthe, Ngaymuon Cách 3: Dùng 3 thành phần SACH,DOCGIA, MUONSACH SACH MSACH, Ten, Theloai, NgayMua, TacGia, NhaXB, NamXB, Ngaymuon, NgayTra.

DOCGIA MDG, HoTen, LoaiDG,Ngaylamthe, MUONSACH Mmuon,MDG,MSACH, Ngaymuon, Ngaytra Ví dụ: Phần mềm quản lý học sinh Cách 1: Dùng 1 thành phần HOCSINH HOCSINH MAHS, HoTen, Ngaysinh, GioiTinh, Lop, Monhoc, LoaiKT, HocKy,Diem, Ngayvang, Lydo Cách 2: Dùng 3 bảng HOCSINH, KIEMTRA, DIEMDANH HOCSINH MAHS, Hoten, Ngaysinh, GioiTinh, Lop KIEMTRA MAKT,MAHS, Monhoc,LoaiKT,Hocky, Diem 91 DIEMDANH MADD,MAHS,Ngayvang, Lydo 4.2 Phương pháp gián tiếp Bước 1: - Lập sơ đồ lớp - Xác định các lớp đối tượng - Xác định quan hệ giữa các lớp đối tượng và lập sơ đồ Bước 2: - Ánh xạ từ sơ đồ lớp vào sơ đồ logic - Ánh xạ các lớp đối tượng - Ánh xạ các quan hệ giữa các lớp đối tượng Bước 3: - Hoàn chỉnh sơ đồ logic - Bổ sung các thành phần theo yêu cầu - Mô tả chi tiết các thuộc tính của các thành phần 4.1 Lập sơ đồ lớp Ví dụ: Với phần mềm quản lý thư viện 2 đối tượng chính là Độc giả, Sách và quan hệ giữa chúng là quan hệ mượn sách Với phần mềm quản lý học sinh trường phổ thông trung học 2 đối tượng chính là Học sinh, Môn học và quan hệ giữa chúng là quan hệ kiểm tra Với phần mềm xếp thời khóa biểu trường trung học phổ thông 2 đối tượng chính là Giáo Viên, Môn học và quan hệ giữa chúng là quan hệ dạy.2 Ánh xạ sơ đồ lớp Ánh xạ lớp đối tượng. Mỗi đối tượng trong sơ đồ lớp tương ứng với 1 thành phần trong sơ đồ logic 4.3 Ánh xạ quan hệ Quan hệ 1-n: Quan hệ 1-n trong sơ đồ lớp giữa 2 lớp đối tượng A,B (1 A nhiều B) tương ứng với liên kết xácđịnh duy nhất vừ A sang B trong sơ đồ logic. Quan hệ m-n: Quan hệ m-n C trong sơ đồ lớp giữa 2 lớp đối tượng A,B tương ứng với 1 thành phần C trong sơ đồ logic. Thành phần này có liên hệ xác định duy nhất A,B.4 Hoàn chỉnh sơ đồ logic 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ