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.
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:
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) Tác giả
Sách Độc giả
Loại độc giả
Chi tiết mượn Phiếu mượn
Loại Sách
Nhà Xuất bản
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
DOC_GIA
SACH MUON_SACH
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)
DOC_GIA MUON_SACH SACH
LOAI_DG CHITIET_MUON THE_LOAI
DOC_GIA MUON_SACH SACH
CHITIET_MUON(MMUON,MSACH,NgTra,Tienphat) THE_LOAI(MTL,Tentheloai,GhiChu)
LOAI_DG(MLDG,TenLDG,GhiChu)
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)