- Phát triển luồng dữ liệu mức 0
3.1 Phân tích hệ thống
3.1.4 Chuyển mơ hình ER sang mơ hình quan hệ
Sơ đồ cấu trúc dữ liệu
HàngHóa: #Mahh, TênHàngHóa,
ĐịaBàn: #Mađb, TênĐịaBàn, NgườiPhụTrách Kho: #Makho, TênKho
NhânViên: #Manv, TênNhânViên, ChứcVụ
KháchHàng: #Mãkh, TênKháchHàng, Địachỉ…., Mãđb, NgườiPhụTrách
Biểu diễn các mối quan hệ
<BáoGiá>
=> BảngBáoGiá (Số, NgàyLập, NgàyÁpDụng, HàngHóa, GiáCả)
<ĐặtHàng>
=> HợpĐồng (Số, NgàyLập, BênA, ĐịaChỉA, SốĐiệnThoạiA, MãSốThuếA, TàiKhoảnA, NgânHàngA, BênB, ĐịaChỉB, SốĐiệnThoạiB, HàngHóa, SốLượng, ĐơnGiá, ThànhTiền)
<Bán>
=> HóaĐơn (Số, NgàyLập, KháchHàng, HợpĐồng, ĐịaChỉ, ĐịaBàn, DạngKháchHàng, HìnhThứcThanhTốn, DiễnGiải, HàngHóa, ĐơnVịTính, SốLượng, ĐơnGiá, ThànhTiền, ThuêSuất, Thuế, TổngTiền)
<Xuất>
=> PhiếuXuấtKho (Số, NgàyLập, KháchHàng, ĐịaChỉ, NgườiNhậnHàng, XuấtTạiKho, HợpĐồng, ChứngTừCơSở, HàngHóa, ĐơnVịTính, SốLượng, ĐơnGiá, ThànhTiền)
<Thu>
=> PhiếuThu (Số, NgàyLập, TênNgườiThanhTốn, ĐịaChỉ, LýDo, SốTiền, ChứngTừCơSở, TKNợ, TKCó)
=> PhiếuChi (Số, NgàyLập, TênNgườiNhận, ĐịaChỉ, LýDo, SốTiền, ChứngTừCơSở, TKNợ, TKCó)
<TrảLại>
=> PhiếuNhậpHàngTrảLại (Số, NgàyLập, KháchHàng, ĐịaChỉ, HợpĐồng, ChứngTừCơSở, NhậpLạiKho, HàngHóa, ĐơnVịTính, SốLượng, ĐơnGiá, ThànhTiền)
Chuẩn hóa
Chuẩn hóa là q 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 đơn giản hơn và bền vững hơn. Chuẩn hóa dữ liệu có thể xem như một q trình phân tích các lược đồ quan hệ cho trước dựa trên các phụ thuộc hàm và các khóa chính của chúng để đạt đến các tính chất mong muốn như: cực tiểu sự dư thừa và cực tiểu các phép cập nhật bất thường.
Hiện nay đã có nhiều dạng chuẩn có thể loại bỏ dư thừa rất tốt như chuẩn 4, chuẩn 5, Boyce – Codd, nhưng các chuẩn này lại gây khó khăn cho người lập trình nên ta chỉ xét đến dạng chuẩn 3.
Chuẩn hoá PhiếuXuất
PhiếuXuấtKho chứa thuộc tính lặp (HàngHóa, SốLượng, ĐơnGiá, ThànhTiền) nên chưa ở 1NF, tách phiếu xuất thành hai quan hệ.
PhiếuXuấtKho (Số, NgàyLập, KháchHàng, ĐịaChỉ, NgườiNhậnHàng, XuấtTạiKho, HợpĐồng, ChứngTừCơSở)
DịngPhiếuXuấtKho (Số, HàngHóa, ĐơnGiá, ĐơnVịTính, SốLượng, ThànhTiền)
Chuẩn hố PhiếuNhậpHàngTrảLại
PhiếuNhậpHàngTrảLại chứa thuộc tính lặp (HàngHóa, SốLượng, ĐơnGiá, ThànhTiền) nên chưa ở 1 NF, tách phiếu thành 2 quan hệ:
PhiếuNhậpHàngTrảLại (Số, NgàyLập, KháchHàng, ĐịaChỉ, HợpĐồng, ChứngTừCơSở, NhậpLạiKho)
DịngPhiếuNhậpHàngTrảLại (Số, HàngHóa, SốLượng, ĐơnVịTính, ĐơnGiá, ThànhTiền)
Chuẩn hố PhiếuThu
PhiếuThu chứa thuộc tính lặp (ChứngTừCơSở, SốTiền) nên chưa ở 1NF, tách phiếu thành 2 quan hệ
PhiếuThu (Số, NgàyLập, TênNgườiThanhTốn, ĐịaChỉ, LýDo, TKNợ, TKCó)
DịngPhiếuThu (Số, ChứngTừCơSở, SốTiền)
Chuẩn hố PhiếuChi
PhiếuThu chứa thuộc tính lặp (ChứngTừCơSở, SốTiền) nên chưa ở 1NF, tách phiếu thành 2 quan hệ:
PhiếuChi (Số, NgàyLập, TênNgườiNhận, ĐịaChỉ, LýDo, TKNợ, TKCó)
DịngPhiềuChi (Số, ChứngTừCơSở, SốTiền)
Chuẩn hố HóaĐơn
HóaĐơn chứa thuộc tính lặp (HàngHóa, SốLượng, ĐơnGiá, ThànhTiền, ThuếSuất, Thuế, TổngTiền) nên chưa ở 1NF, tách phiếu nhập thành hai quan hệ.
HóaĐơn (Số, NgàyLập, KháchHàng, HợpĐồng, ĐịaChỉ, ĐịaBàn, DạngKháchHàng, HìnhThứcThanhTốn, DiễnGiải)
DịngHóaĐơn (Số, HàngHóa, ĐơnVịTính, SốLượng, ĐơnGiá, ThànhTiền, ThuếSuất, Thuế, TổngTiền)
Chuẩn hoá HợpĐồng
HợpĐồng chứa thuộc tính lặp (HàngHóa, SốLượng, ĐơnGiá, ThànhTiền) nên chưa ở 1NF, tách phiếu nhập thành hai quan hệ.
HợpĐồng (Số, NgàyLập, BênA, ĐịaChỉA, SốĐiệnThoạiA, MãSốThuếA, TàiKhoảnA, NgânHàngA, BênB, ĐịaChỉB, SốĐiệnThoạiB)