a) Quan hệ của liên kết trong cơ sở dữ liệu quản lý cửa hàng bán gạch ngói ốp lát đạt chuẩn 3NF có thể là:
- Một cửa hàng có thể có nhiều nhân viên.
- Một cửa hàng có thể có nhiều sản phẩm.
- Một nhân viên có thể phụ trách nhiều hoá đơn.
- Một hoá đơn có thể có nhiều sản phẩm.
- Một hoá đơn có thể có nhiều phương thức thanh toán.
b) Sơ đồ thực thể liên kết đạt chuẩn 3NF cho cơ sở dữ liệu quản lý cửa hàng bán gạch ngói ốp lát có thể được thiết kế như sau:
- Bảng "Cửa hàng" với các thuộc tính: Mã cửa hàng (PK), Địa chỉ cửa hàng.
- Bảng "Nhân viên" với các thuộc tính: Mã nhân viên (PK), Tên nhân viên, Mã cửa hàng (FK).
- Bảng "Sản phẩm" với các thuộc tính: Mã sản phẩm (PK), Tên sản phẩm, Mã nhóm sản phẩm (FK).
- Bảng "Nhóm sản phẩm" với các thuộc tính: Mã nhóm sản phẩm (PK), Tên nhóm sản phẩm.
- Bảng "Khách hàng" với các thuộc tính: Mã khách hàng (PK), Tên khách hàng, Địa chỉ khách hàng.
- Bảng "Hoá đơn" với các thuộc tính: Mã hoá đơn (PK), Mã nhân viên (FK), Mã khách hàng (FK), Ngày lập hoá đơn.
- Bảng "Chi tiết hoá đơn" với các thuộc tính: Mã hoá đơn (FK), Mã sản phẩm (FK), Số lượng, Đơn giá.
- Bảng "Phương thức thanh toán" với các thuộc tính: Mã phương thức thanh toán (PK), Tên phương thức thanh toán.
c) Mã tạo bảng cho sơ đồ trên có thể được viết như sau:
CREATE TABLE CuaHang (
MaCuaHang INT PRIMARY KEY,
DiaChiCuaHang VARCHAR(255)
);
CREATE TABLE NhanVien (
MaNhanVien INT PRIMARY KEY,
TenNhanVien VARCHAR(255),
MaCuaHang INT,
FOREIGN KEY (MaCuaHang) REFERENCES CuaHang(MaCuaHang)
);
CREATE TABLE SanPham (
MaSanPham INT PRIMARY KEY,
TenSanPham VARCHAR(255),
MaNhomSanPham INT,
FOREIGN KEY (MaNhomSanPham) REFERENCES NhomSanPham(MaNhomSanPham)
);
CREATE TABLE NhomSanPham (
MaNhomSanPham INT PRIMARY KEY,
TenNhomSanPham VARCHAR(255)
);
CREATE TABLE KhachHang (
MaKhachHang INT PRIMARY KEY,
TenKhachHang VARCHAR(255),
DiaChiKhachHang VARCHAR(255)
);
CREATE TABLE HoaDon (
MaHoaDon INT PRIMARY KEY,
MaNhanVien INT,
MaKhachHang INT,
NgayLapHoaDon DATE,
FOREIGN KEY (MaNhanVien) REFERENCES NhanVien(MaNhanVien),
FOREIGN KEY (MaKhachHang) REFERENCES KhachHang(MaKhachHang)
);
CREATE TABLE ChiTietHoaDon (
MaHoaDon INT,
MaSanPham INT,
SoLuong INT,
DonGia FLOAT,
FOREIGN KEY (MaHoaDon) REFERENCES HoaDon(MaHoaDon),
FOREIGN KEY (MaSanPham) REFERENCES SanPham(MaSanPham)
);
CREATE TABLE PhuongThucThanhToan (
MaPhuongThucThanhToan INT PRIMARY KEY,
TenPhuongThucThanhToan VARCHAR(255)
);