● LoaiHang (MaLoaiHang, TenLoaiHang)
● GianHang (MaGianHang, TenGianHang)
● MatHang (MaHang, TenHang, SoLuong, DonViTinh, GhiChu)
● NhaCungCap (MaNhaCungCap, TenNhaCungCap, DiaChi, DienThoai, Fax)
● HangNhap (MaHangNhap, SoLuong, DonGia)
● DonHang (MaDonHang, NgayDatHang)
● NhanVien (MaNhanVien, TenNhanVien, ChucVu, TaiKhoan, MatKhau, DienThoai, GhiChu)
● HoaDon (MaHoaDon, NgayLap)
● HangBan (MaHangBan, SoLuong, DonGia)
● HoiVien (MaHoiVien, HoTenHoiVien, GioiTinh, DienThoai, DiaChi, NgayTao, DiemTichLuy)
● ChuongTrinhKhuyenMai( MaChuongTrinhKhuyenMai, NgayBatDau, NgayKetThuc,TenChuongTrinh)
● MatHangKhuyenMai(MaMatHangKhuyenMai, MaChuongTrinhKhuyenMai, GiaKhuyenMai, MaMatHang)
2. Mối quan hệ giữa các thực thể
● Một loại hàng có nhiều gian hàng, một gian hàng chỉ chứa một loại hàng.
● Một loại hàng có nhiều mặt hàng, một mặt hàng chỉ thuộc một loại hàng.
● Một mặt hàng có thể được bán trong nhiều hóa đơn bán, một hóa đơn bán có thể bán được nhiều mặt hàng.
● Một mặt hàng có thể được nhập trong nhiều hóa đơn nhập, một hóa đơn nhập có thể nhập nhiều mặt hàng.
● Một nhà cung cấp có thể cấp nhiều hóa đơn nhập, một hóa đơn nhập chỉ có thể cấp bởi một nhà cung cấp.
● Một nhân viên có thể lập nhiều hóa đơn nhập, một hóa đơn nhập chỉ có thể do một nhân viên lập nên.
● Một nhân viên có thể lập nhiều hóa đơn bán, một hóa đơn bán chỉ có thể do một nhân viên lập nên.
● Một hội viên có thể có nhiều hóa đơn bán, một hóa đơn bán chỉ có thể cấp cho một hội viên.
● Một chương trình khuyến mãi có thể có nhiều mặt hàng khuyến mãi, một mặt hàng khuyến mãi nằm trong một chương trình khuyến mãi
● Một mặt hàng có thể có nhiều mặt hàng khuyến mãi, một mặt hàng khuyến mãi chỉ chứa một mặt hàng
3. Lược đồ ERD
4. Chuyển ERD sang lược đồ quan hệ
5. Chuẩn hóa 3NF
● LoaiHang (MaLoaiHang, TenLoaiHang)
F = {Maloaihang → TenLoaiHang} → Chuẩn 3NF
● GianHang (MaGianHang, MaLoaiHang, TenGianHang)
F = {MaGianHang, MaLoaiHang → TenGianHang} → Chuẩn 3NF
● MatHang (MaHang, MaLoaiHang, MaNhaCungCap, TenHang, SoLuong, DonViTinh, GhiChu)
F = {MaHang → MaLoaiHang, MaNhaCungCap, TenHang, SoLuong, DonViTinh, GhiChu} → Chuẩn 3NF
● NhaCungCap (MaNhaCungCap, TenNhaCungCap, DiaChi, DienThoai, Fax) F = {MaNhaCungCap → TenNhaCungCap, DiaChi, DienThoai, Fax} → Chuẩn 3NF
● HangNhap (MaDonHang, MaHang, SoLuong, DonGia)
F = {MaDonHang, MaHang → SoLuong, DonGia} → Chuẩn 3NF
● DonHang (MaDonHang, MaNhanVien, MaNhaCungCap, NgayDatHang) F = {MaDonHang → MaNhanVien, MaNhaCungCap, NgayDatHang} → Chuẩn 3NF
● NhanVien (MaNhanVien, TenNhanVien, ChucVu, TaiKhoan, MatKhau, DienThoai, GhiChu)
F = {MaNhanVien → TenNhanVien, ChucVu, TaiKhoan, MatKhau, DienThoai, GhiChu} → Chuẩn 3NF
● HoaDon (MaHoaDon, MaNhanVien, MaThe, NgayLap)
F = {MaHoaDon → MaNhanVien, MaThe, NgayLap} → Chuẩn 3NF
● HangBan (MaHoaDon, MaHang, SoLuong, DonGia)
F = {MaHoaDon, MaHang → SoLuong, DonGia} → Chuẩn 3NF
HoiVien (MaHoiVien, HoTenHoiVien, GioiTinh, DienThoai, NgaySinh, NgayTao, DiemTichLuy)
F = {MaHoiVien → HoTenHoiVien, GioiTinh, DienThoai, NgaySinh, NgayTao, DiemTichLuy} → Chuẩn 3NF
● ChuongTrinhKhuyenMai( MaChuongTrinhKhuyenMai, NgayBatDau, NgayKetThuc,TenChuongTrinh)
F={ MaChuongTrinhKhuyenMai → NgayBatDau, NgayKetThuc,TenChuongTrinh} → Chuẩn 3NF
● MatHangKhuyenMai(MaMatHangKhuyenMai, MaChuongTrinhKhuyenMai, GiaKhuyenMai, MaMatHang)
F = { MaMatHangKhuyenMai → MaChuongTrinhKhuyenMai, GiaKhuyenMai, MaMatHang } → Chuẩn 3NF
6. Ràng buộc:
R1: Trong quan hệ Loại hàng, mỗi loại hàng phải có một giá trị duy nhất tại thuộc tính MaLoaiHang, để phân biệt với các loại hàng khác.
R2: Trong quan hệ Gian hàng, mỗi gian hàng phải có một giá trị duy nhất tại thuộc tính MaGianHang, để phân biệt với các gian hàng khác.
R3: Trong quan hệ Mặt hàng, mỗi mặt hàng phải có một giá trị duy nhất tại thuộc tính MaHang, để phân biệt với các mặt hàng khác.
R4: Trong quan hệ Nhà cung cấp, mỗi nhà cung cấp phải có một giá trị duy nhất tại thuộc tính MaNhaCungCap, để phân biệt với các nhà cung cấp khác.
R5: Trong quan hệ Hàng Nhập, mỗi hàng nhập phải có một giá trị duy nhất tại thuộc tính MaHang và MaDonHang, để phân biệt với các mặt hàng trong mỗi đơn hàng khác nhau.
R6: Trong quan hệ Đơn hàng, mỗi đơn hàng phải có một giá trị duy nhất tại thuộc tính MaDonHang, để phân biệt với các đơn hàng khác.
R7: Trong quan hệ Nhân viên , mỗi nhân viên phải có một giá trị duy nhất tại thuộc tính MaNhanVien, để phân biệt với các nhân viên khác.
R8: Trong quan hệ Hóa đơn, mỗi hóa đơn phải có một giá trị duy nhất tại thuộc tính MaHoaDon, để phân biệt với các hóa đơn khác.
R9: Trong quan hệ Hàng Bán, mỗi hàng bán phải có một giá trị duy nhất tại thuộc tính MaHang và MaHoaDon , để phân biệt với các mặt hàng trong mỗi hóa đơn khác nhau.
R10: Trong quan hệ Hội viên , mỗi hội viên phải có một giá trị duy nhất tại thuộc tính MaHoiVien, để phân biệt với các hội viên khác.
R11: Trong quan hệ Chương trình khuyến mãi , mỗi chương trình khuyến mãi phải có một giá trị duy nhất tại thuộc tính MaChuongTrinhKhuyenMai, để phân biệt với các chương trình khuyến mãi khác.
R12: Trong quan hệ Mặt hàng khuyến mãi , mỗi mặt hàng khuyến mãi phải có một giá trị duy nhất tại thuộc tính MaMatHangKhuyenMai, để phân biệt với các mặt hàng khuyến mãi khác.
7. Cơ sở dữ liệu