CHƯƠNG 6: THIẾT KẾ CHI TIẾT
Trong chương này, sử dụng thơng tin thu thập và thơng qua q trình thiết kế ở chương
4 và chương 5, sinh viên bắt đầu thiết kế cơ sỡ dữ liệu. Đầu tiên, sinh viên thiết kế mơ hình thực thể - liên kết ERD, sau đó sẽ chuẩn hóa các quan hệ từ ERD thành các bảng. Từ các bảng có được, sinh viên sử dụng phần mềm Microsoft SQL Server 2016 để tạo cơ sỡ dữ liệu cho hệ thống và tiến hành tạo dữ liệu mẫu để chạy thử phần mềm. Phần mềm mà sinh viên dùng để thiết kế giao diện cũng như chương trình là Windows Form Apps thuộc ứng dụng Microsoft Visual Studio 2017.
6.1 Thiết kế cơ sở dữ liệu
6.1.1 Xác định kiểu thực thể và kiểu thuộc tính
Sinh viên tổng hợp các kiểu thực thể và thuộc tính thuộc từng thực thể thành bảng như sau:
Bảng 6.1 Danh sách các kiểu thực thể và thuộc tính của thực thể
STT 1 2 3 4 5 6
Các thuộc tính được gạch dưới trong bảng trên thể hiện thuộc tính đó là thuộc tính khóa của kiểu thực thể
6.1.2 Xác định mối liên kết giữa các thực tể và thuộc tính liên kết.
Các động từ quan trọng thể hiện các chức năng chính của hệ thống gồm có: nhập, xuất, đặt hàng, báo giá. Ứng với từng động từ là các thực thể và thuộc tính liên kết như các bảng dưới đây:
Bảng 6.2 Mối quan hệ của các thực thể với liên kết “Nhập”
Nhập cái gì Nơi nhập vật tư? Ai gửi vật tư đến để nhập? Ai nhận và nhập vật tư? Mã phiếu nhập? Ngày nhập? Số lượng nhập?
Bảng 6.3 Mối quan hệ của các thực thể với liên kết “Xuất”
Xuất cái gì Nơi xuất vật tư? Xuất vật tư cho ai? Ai xuất vật tư? Mã phiếu xuất? Ngày xuất? Số lượng xuất? Lý do xuất
Đặt hàng của ai
Ai đặt hàng? Đặt hàng cái gì Mã phiếu đặt hàng? Ngày đặt hàng? Số lượng đặt hàng
Bảng 6.5 Mối quan hệ của các thực thể với liên kết “BÁO GIÁ”
Ai gửi báo giá? Báo giá cái gì Mã phiếu báo giá Ngày báo giá? Giá được báo??
Bảng 6.6 Mối quan hệ của các thực thể với liên kết “GỒM”
Cái gì bao gồm? Cái gì được bao gồm? Tham số tương ứng
6.1.3 Sơ đồ thực thể - liên kết ERD
Sau khi liệt kê các thực thể và các quan hệ tương ứng, sinh viên sẽ thiết kế mơ hình ERD bằng cơng cụ Microsoft Visio 2016, kết quả thiết kế như hình dưới đây:
Mã TP Tên TP Định mức VT Nhân viên Mã NV SĐT NV Tên NV Tiến độ ĐẶT HÀNG Ngày đặt SL mua SP mua
Hình 6.1 Mơ hình thực thể - liên kết (Entity Relationship Model)
6.1.4 Chuyển từ mơ hình ERD sang mơ hình quan hệ.6.1.4.1 Chuyển các thực thể thành quan hệ 6.1.4.1 Chuyển các thực thể thành quan hệ
Sau khi xây dựng mơ hình ERD, sinh viên sẽ chuyển thực thể thành các quan hệ (bảng), trong đó các thuộc tính sẽ được ghi vắng tắt để tiện cho việc thiết kế cơ sở dữ liệu trong SQL Server.
KHO (Makho, Tenkho)
NCC (MaNCC, TenNCC, SĐT_NCC, Diachi)
VATTU (MaVT, TenVT, SLVT_Ton, DVT, Dongia, SLAT) THANHPHAM (MaTP, TenTP)
PHANXUONG (MaPX, TenPX)
NHANVIEN (MaNV, TenNV, SĐT_NV, Taikhoan, Matkhau, Quyen)
6.1.4.2 Chuyển các liên kết thành quan hệ
Vì các liên kết đều là loại liên kết nhiều – nhiều, nên để hình thành 1 quan hệ từ 1 liên kết, ta sẽ chuyển thuộc tính khóa của các thực thể liên quan vào liên kết kèm theo đó là các thuộc tính sẵn có của liên kết. Kết quả thu được:
PHIEUDATMUA (SPmua, Ngaymua, SLmua, MaNV, MaNCC, MaVT) BANGBAOGIA (SPbaogia, Ngaybaogia, GiaVT, MaNCC, MaNV, MaVT)
PHIEUNHAP (SPnhap, Ngaynhap, SLnhap, MaNCC, MaNV, MaVT, Makho) PHIEUXUAT (SPxuat, Ngayxuat, Ghichu, SLxuat, MaPX, MaNV, MaVT, Makho) BOM (MaTP, MaVT, Định mức VT).
Các thuộc tính được gạch chân nét đứt là thuộc tính khóa ngoại tham chiếu đến các thuộc tính khóa của quan hệ khác.
6.1.4.3 Chuẩn hóa các quan hệ tới chuẩn 3NF.
Các quan hệ được chuyển hóa từ thực thể đã đạt chuẩn 3NF nên sinh viên sẽ khơng thực hiện chuẩn hóa với các quan hệ này. Mặt khác, các quan hệ được chuyển từ các liên kết không đạt chuẩn 3NF nên sinh viên sẽ tiến hành chuẩn hóa các quan hệ này: PHIEUDATMUA, BANGBAOGIA, PHIEUNHAP, PHIEUXUAT.
Đối với quan hệ PHIEUDATMUA (SPmua, Ngaymua, SLmua, MaNV, MaNCC, MaVT), khơng có các thuộc tính đa trị nên quan hệ này đạt chuẩn 1NF. Ta lại có các phụ thuộc hàm:
SPmua, Mã VT →
SLmua (1) SPmua →
Ngaymua, MaNV, MaNCC (2)
Quan hệ PHIEUDATMUA chưa đạt chuẩn 2NF vì có phụ thuộc hàm (2).Các thuộc tính (MaNV, MaNCC) là khóa ngoại để tham chiếu đến 2 quan hệ là NHANVIEN và NCC. Vậy ta sẽ chuẩn hóa quan hệ PHIEUDATMUA thành 2 quan hệ mới là: PHIEUDATMUA (SPmua, ngaymua, MaNV, MaNCC) và VTMUA (SPmua, MaVT, SLmua). Tới đây, ta đã được 2 quan hệ đạt chuẩn 2NF và thậm chí đạt chuẩn 3NF vì khơng có thuộc tính khơng khóa phụ thuộc vào thuộc tính khơng khóa khác.
Đối với quan hệ BANGBAOGIA (SPbaogia, Ngaybaogia, GiaVT, MaNCC, MaNV, MaVT), khơng có thuộc tính đa trị nên quan hệ này đã đạt chuẩn 1NF. Ta lại có các phụ thuộc hàm:
SPbaogia, MaVT →
GiaVT (3) SPbaogia→
Ngaybaogia, MaNV, MaNCC (4)
Quan hệ BANGBAOGIA chưa đạt chuẩn 2NF vì có phụ thuộc hàm (4).Các thuộc tính (MaNV, MaNCC) là khóa ngoại để tham chiếu đến 2 quan hệ là NHANVIEN và NCC. Vậy ta sẽ chuẩn hóa quan hệ BANGBAOGIA thành 2 quan hệ mới là: BANGBAOGIA (SPbaogia, ngaybaogia, MaNV, MaNCC) và VTBAOGIA (SPbaogia, MaVT, GiaVT). Tới đây, ta đã được 2 quan hệ đạt chuẩn 2NF và thậm chí đạt chuẩn 3NF vì khơng có thuộc tính khơng khóa phụ thuộc vào thuộc tính khơng khóa khác.
Đối với quan hệ PHIEUNHAP (SPnhap, Ngaynhap, SLnhap, MaNCC, MaNV, MaVT, Makho), khơng có thuộc tính đa trị nên quan hệ này đã đạt chuẩn 1NF. Ta lại có các phụ thuộc hàm:
SPnhap, MaVT →
SLnhap (5) SPnhap→
Ngaynhap, MaNV, MaNCC, Makho (6)
Quan hệ PHIEUNHAP chưa đạt chuẩn 2NF vì có phụ thuộc hàm (4).Các thuộc tính (MaNV, MaNCC, Makho) là khóa ngoại để tham chiếu đến 3 quan hệ là NHANVIEN, NCC, KHO. Vậy ta sẽ chuẩn hóa quan hệ PHIEUNHAP thành 2 quan hệ mới là: PHIEUNHAP (SPnhap, ngaynhap, MaNV, MaNCC, Makho) và VTNHAP (SPnhap, MaVT, SLnhap). Tới đây, ta đã được 2 quan hệ đạt chuẩn 2NF và thậm chí
đạt chuẩn 3NF vì khơng có thuộc tính khơng khóa phụ thuộc vào thuộc tính khơng khóa khác.
Đối với quan hệ PHIEUXUAT (SPxuat, Ngaynhap, Ghichu, SLxuat, MaPX, MaNV, MaVT, Makho), khơng có thuộc tính đa trị nên quan hệ này đã đạt chuẩn 1NF. Ta lại có các phụ thuộc hàm:
SPxuat, MaVT →
SLxuat(7) SPxuat→
Ngayxuat, Ghichu, MaNV, MaPX, Makho (8)
Quan hệ PHIEUNHAP chưa đạt chuẩn 2NF vì có phụ thuộc hàm (8).Các thuộc tính (MaNV, MaPX, Makho) là khóa ngoại để tham chiếu đến 3 quan hệ là NHANVIEN, PHANXUONG, KHO. Vậy ta sẽ chuẩn hóa quan hệ PHIEUNHAP thành
2 quan hệ mới là: PHIEUXUAT (SPxuat, ngaynhap, MaNV, MaPX, Makho) và VTXUAT (SPxuat, MaVT, SLxuat). Tới đây, ta đã được 2 quan hệ đạt chuẩn 2NF và thậm chí đạt chuẩn 3NF vì khơng có thuộc tính khơng khóa phụ thuộc vào thuộc tính khơng khóa khác.
Tóm lại, ta thu được các quan hệ sau bước chuẩn hóa cuối cùng gồm có:
1. KHO (Makho, Tenkho).
2. NCC (MaNCC, TenNCC, SĐT_NCC, Diachi)..
3. VATTU (MaVT, TenVT, SLVT_Ton, DVT, Dongia, SLAT).
4. THANHPHAM (MaTP, TenTP).
5. PHANXUONG (MaPX, TenPX).
6. NHANVIEN (MaNV, TenNV, SĐT_NV, Taikhoan, Matkhau, Quyen).
7. PHIEUDATMUA (SPmua, ngaymua, MaNV, MaNCC).
8. VTMUA (SPmua, MaVT, SLmua).
9. BANGBAOGIA (SPbaogia, ngaybaogia, MaNV, MaNCC).
10. VTBAOGIA (SPbaogia, MaVT, GiaVT).
11. PHIEUNHAP (SPnhap, ngaynhap, MaNV, MaNCC, Makho).
12. VTNHAP (SPnhap, MaVT, SLnhap).
13. PHIEUXUAT (SPxuat, ngaynhap, MaNV, MaPX, Makho).
14. VTXUAT (SPxuat, MaVT, SLxuat).
15. BOM (MaTP, MaVT, Định mức VT).
6.1.4.4 Mơ hình quan hệ (Relational model – RD)
Sau khi tổng kết các quan hệ thu được ở cuối phần 6.1.4.3, sinh viên sẽ tiến hành thiết kế mơ hình quan hệ trong SQL server:
VATTU S LA T S LT P Te n Tp SL m u a S P b a o g ia M at kh au