3.2.1.1.Chuyển mơ hình E-R sang mơ hình quan hệ.
Biểu diễn thực thể:
3.2.1 Thiết kế mơ hình logic
3.2.1.1 Chuyển mơ hình E-R sang mơ hình quan hệ
Biểu diễn thực thể
Tài khoản => DMTK (Ma_TK, Ten_TK, Cap_TK,TK_Cap_Tren) Kho => DMKHO (Ma_Kho, Ten_Kho)
Khách hàng => DMKH (Ma_KH, Ten_KH, Dien_Thoai, Dia_Chi, Ma_So_Thue, Email)
Hàng hóa => DMHH (Ma_HH, Ten_HH, Dvt)
CKTM => CKTM (Ma_HH, Ngay_HLuc, Tyle_CK, TT_CK) Biểu diễn các mối quan hệ:
Nhập <Phieu_Nhap> (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_HH, Ma_Kho, Dien_Giai, So_Luong, Don_Gia, Thanh_Tien, CTLQ, Tong_Tien,)
Xuất <Phieu_Xuat> (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_Kho, Ma_HH, So_Luong, Don_gia, Thanh_Tien, Dien_Giai, CTLQ, Tong_Tien)
Bán <HDHH> (So_HD, Ngay_HD, Ma_KH, Thue_Suat, So_Luong,
Don_gia, Thanh_Tien, TK_No_Thanh_Toan, TK_Co_Doanh_Thu, TK_Co_Thue, Tien_Thanh_Toan, Tien_Doanh_Thu, Tien_Thue, HTTT, TK_Chiet_Khau,
Tyle_CK, Tien_CK)
Giảm giá <Phieu_GiamGia> (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_HH, So_Luong, Don_Gia, Thanh_Tien)
Trả lại <Tra_Lai> (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_HH, Dien_Giai, So_Luong, Don_gia, Thanh_Tien, CTLQ, Tong_Tien,)
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.
a. Chuẩn hóa Phieu_Nhap
Phieu_Nhap có các thuộc tính lặp là Ma_HH, So_Luong, Don_Gia nên chưa thỏa mãn chuẩn 1 NF. Tách Phieu_Nhap ra làm 2 lược đồ quan hệ:
Phieu_Nhap (So_Phieu, Ngay_Phieu, Ma_KH, Ma_Kho, Dien_Giai, CTLQ, Tong_Tien)
CT_Phieu_Nhap (So_Phieu, Ma_HH, TK_No, TK_Co, So_Luong, Don_Gia, Thanh_Tien)
Thỏa mãn chuẩn 3 NF. b. Chuẩn hóa Phieu_Xuat
Phieu_Xuat (So_Phieu, Ngay_Phieu, Ma_KH, Ma_Kho, Dien_Giai, CTLQ, Tong_Tien)
CT_Phieu_Xuat (So_Phieu, Ma_HH, TK_No, TK_Co, So_Luong, Don_Gia, Thanh_Tien)
Thỏa mãn chuẩn 3 NF. c. Chuẩn hóa HDHH
HDHH có các thuộc tính trùng lặp là (Ma_HH, So_Luong, Don_Gia) nên chưa thỏa mãn chuẩn 1 NF. Tách HDHH ra làm 2 lược đồ quan hệ:
HDHH (So_HD, Ngay_HD, Ma_KH, Thue_Suat, TK_No_Thanh_Toan, TK_Co_Doanh_Thu, TK_Co_Thue, TK_Chiet_Khau, Tien_CK,
Tien_Thanh_Toan, Tien_Doanh_Thu, Tien_Thue, HTTT)
CT_Hoa_Don (So_HD, Ma_HH, So_Luong, Don_Gia, Thanh_Tien) d. Chuẩn hóa Phieu_GiamGia
Phieu_GiamGia có các thuộc tính lặp là Ma_HH, So_Luong, Don_Gia nên chưa thỏa mãn chuẩn 1 NF. Tách PhieuGiamGia ra làm 2 lược đồ quan hệ:
Giam_Gia (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Dien_Giai, CTLQ, Tong_Tien)
CT_GiamGia (So_Phieu, Ma_HH, Ten_HH, Dvt, So_Luong, Don_Gia, Thanh_Tien)
e. Chuẩn hóa Tra_Lai
Tra_Lai có các thuộc tính lặp là Ma_HH, So_Luong, Don_Gia nên chưa thỏa mãn chuẩn 1 NF. Tách Tra_Lai ra làm 2 lược đồ quan hệ:
Tra_Lai (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_Kho, Dien_Giai, CTLQ, Tong_Tien)
CT_TraLai (So_Phieu, Ma_HH, Ten_HH, So_Luong, Don_Gia, Thanh_Tien)
3.2.1.2. Mơ hình dữ liệu quan hệ