Biểu diễn thực thể :
TÀI KHOẢN => TÀI KHOẢN (MaTK, TenTK, CapTK, LoaiTK) KHO => KHO (MaKho, TenKho, DiaChi, TenThuKho)
NHÀ CÙNG CẤP => NHÀ CÙNG CẤP (MaNCC, TenNCC, DiaChi ) CÔNG TRÌNH => CÔNG TRÌNH (MaCT, TenCT, MoTa)
VẬT TƯ => VẬT TƯ (MaVT, TenVT, DVT )
Biểu diễn các mối quan hệ:
<TỒN> TONDAUKY (MaVT, MaKho, SL, SoTien)
<NHẬP> PHIEUNHAP (SoPhieu, NgayPhieu, MaVT, MaKho, TKNo,
TKCo, LyDo, CTLQ, TongTien, DG, SL, ThanhTien, MaNCC)
<XUẤT> PHIEUXUAT (SoPhieu, NgayPhieu, MaKho, MaVTTKNo,
TKCo, LyDo, CLTQ, TongTien, DG, SL, ThanhTien)
<KIỂM KÊ> BB KIỂM KÊ (SoBB, NgayBB, MaKho, TruongBan, UyVien1, UyVien2, MaVT, SLSoSach, SLThucTe, SLThua, SLThieu, SLPCT, SLPCK, SLMPC )
b) Chuẩn hóa mô hình quan hệ
Chuẩn hóa là quá trình chuyển một quan hệ có cấu trúc phức hợp thành các quan hệ có cấu trúc dữ liệu đơn giản hơn và vững chắc hơn.
Hiện nay có nhiều chuẩn như: Chuẩn Boyce codd, Chuẩn 4, Chuẩn 5 có thể loại bỏ các ư thừa tốt hơn chuẩn 3 .Tuy nhiên áp dụng chuẩn hóa Boyce codd, chuẩn 4 hay chuẩn 5 sẽ gây khó khăn cho người lập trình nên ở đây ta chỉ xét đến chuẩn 3NF.
Tất cả các quan hệ trên, trừ PHIẾU NHẬP, PHIẾU XUẤT, BB KIỂM KÊ đều đã ở chuẩn 3, do đó ta chỉ cần chuẩn hóa các quan hệ này :
PHIẾU NHẬP có chứa thuộc tính lặp (MaVT, DG, SL, ThanhTien) nên chưa ở 1NF, ta tách PHIEUNHAP thành 2 quan hệ:
PHIEUNHAP(SoPhieu,NgayPhieu, MaKho, MaNCC, TKNo,TKCo,
LyDo, CTLQ, TongTien)
CTPHIEUNHAP(SoPhieu, MaVT, DVT, SL, DG, ThanhTien)
Chuẩn hóa PHIEUXUAT
PHIẾU XUẤT có chứa thuộc tính lặp (MaVT, DG, SL, ThanhTien) nên chưa ở 1NF, ta tách PHIEUXUAT thành 2 quan hệ:
PHIEUXUAT(SoPhieu,NgayPhieu,MaKho,MaCT, TKNo, TKCo,
LyDo, CTLQ, TongTien)
CTPHIEUXUAT(SoPhieu, MaVT, DVT, SL, DG, ThanhTien)
Chuẩn hóa BBKIEMKE
BB KIỂM KÊ chứa thuộc tính lặp (MaVT,SLSoSach,SLThucTe, SLThua, SLThieu) nên chưa ở 1NF, tách biên bản kiểm kê thành hai quan hệ:
BBKIEMKE(SoBB, NgayBB, MaKho, TruongBan, UyVien1,
UyVien2)
CTKIEMKE(SoBB, MaVT, SLSoSach, SLThucTe, SLThua,
SLThieu, SLPCT, SLPCK, SLMPC) Các quan hệ trên đều ở chuẩn 3NF