MỤC LỤC
1
PHÂN CÔNG KẾ HOẠCH THỰC HIỆN
HỌ VÀ TÊN
THỜI GIAN
THỰC HIỆN
CÔNG VIỆC
Xây dưng mô hình cơ
sở dữ liệu quan hệ,
Chuẩn hóa cơ sở dữ
liệu
17/03/2018 –
22/03/2018
Trần Mạnh Hùng
Phát biểu bài toán,
Xây dụng mô hình
thực thể
01/03/2018 –
06/03/2018
Phạm Quang Huy
Xác định các ràng
buộc của bài toán
06/03/2018 –
13/03/2018
Trần Bá Phúc
Xác định dữ liệu thực
mô tả bài toán, Khai
thái CSDL dưới dạng
các biểu thức đại số
quan hệ
14/03/2018 –
17/03/2018
Nguyễn Văn Bảo
GHI CHÚ
1. Phát biểu bài toán:
Mỗi khách hàng đến mua được lưu trữ thông tin : Mã khách hàng, họ tên, ngày
sinh, số điện thoại, tổng giá trị mua hàng (là tổng giá trị các hóa đơn khác hàng
đã mua). Mỗi khách hàng được phân biệt nhau qua mã khách hàng.
Cửa hàng có các nhân viên thực hiện công việc, thông tin của nhân viên gồm :
Mã nhân viên, tên nhân viên, ngày sinh, điện thoại, hệ số lương, lương. Mỗi
nhân viên được phân biệt nhau qua mã nhân viên. Mỗi nhân viên có thể sử
dụng nhiều số điện thoại.
Mặt hàng của công ty gồm các thông tin : mã mặt hàng, tên mặt hàng, thời gian
bảo hành, giá. Mặt hàng của siêu thị sẽ được cung cấp bởi nhà cung cấp. Mỗi
nhà cung cấp sẽ được phân biệt với nhau bằng mã nhà cung cấp. Nhà cung cấp
2
sẽ có các thông tin gồm: Tên nhà cung cấp, địa chỉ, số điện thoại, sản phẩm
cung cấp. Siêu thị có thể bán nhiều mặt hàng từ nhiều nhà cung cấp.
Khi khách hàng đến mua hàng sẽ có hóa đơn, thông tin của hóa đơn gồm : mã
hóa đơn, mã mặt hàng, tổng giá trị của hóa đơn, ngày lập hóa đơn, tên nhân viên
lập, tên khách hàng đã mua hàng. Trong mỗi hóa đơn sẽ có nhiều mặt hàng khác
nhau và được ghi rõ số lượng mà khách mua trong hóa đơn đó.
2. Xây dụng mô hình thực thể
2.1 Xác định thực thể và thuộc tính
KHÁCH HÀNG : Mã khách hàng, Tên khách hàng, ngày sinh khách hàng, Số
điện thoại khách hàng, Giới tính khách hàng, Tổng giá trị mua
-Mã KH : khóa
-Tổng giá trị mua hàng : Suy dẫn
NHÂN VIÊN: Mã nhân viên, Tên nhân viên, Số điện thoại nhân viên, ngày sinh
nhân viên, Hệ số lương, Lương
-Mã nhân viên: Khóa
-Số điện thoại nhân viên : Đa trị
-Lương : Suy dẫn
MẶT HÀNG: Mã mặt hàng, Tên mặt hàng, Thời gian bảo hành, Giá
-Mã mặt hàng : Khóa
HÓA ĐƠN: Mã hóa đơn, Mã mặt hàng, Tên khách hàng, Tên nhân viên, Tổng
giá trị, Ngày lập
-Mã hóa đơn: Khóa
3
-Tổng giá trị: Suy dẫn
NHÀ CUNG CẤP: Mã nhà cung cấp, Tên nhà cung cấp, Địa chỉ nhà cung cấp,
Số điện thoại nhà cung cấp, Tên sản phẩm cung cấp
-Mã nhà cung cấp : Khóa
2.2 Xác định các liên kết giữa các thực thể
Khách hàng ---- Có ---- Hóa đơn
(1-N)
Nhân viên ---- Lập ---- Hóa đơn
(1-N)
Nhà Cung cấp--- Cung cấp ---- Mặt hàng (1-N)
Mặt hàng ----- Có ----- Hóa đơn (Số lượng) (M-N)
4
2.3 Vẽ được lược đồ ER
5
3. Xây dưng mô hình cơ sở dữ liệu quan hệ
*Áp dụng quy tắc với thực thể mạnh
(1): tblKHACHHANG (sMaKH, sTenKH, dNSKH, sSĐTKH)
(2): tblNHANVIEN (sMaNV, sTenNV, dNSNV, fHSL)
(3): tblHOADON (sMaHD, sMaMH, sTenKH, sTenNV, dNgayLap)
(4): tblMATHANG (sMaMH, sTenMH, iTGBH, fGia)
(5): tblNHACC (sMaNCC, sTenNCC, sĐCNCC, sSĐTNCC)
*Áp dụng quy tắc với thuộc tính đa trị
(6): tblNV_SDT (sMaNV, sSĐTNV)
*Áp dung quy tắc với liên kết nhiều - nhiều
(7): tblMH_HD (sMaHD, sMaMH, iSoLuong)
*Áp dụng quy tắc với liên kết 1-Nhiều (Nhiều-1)
(3)’: tblHOADON (sMaHD, sTenMH, sTenKH, TenNV, dNgayLap, sMaNV)
(3)’’:
tblHOADON
(sMaHD,
sMaMH,
sTenKH,
TenNV,
dNgayLap,
sMaNV,sMaKH )
(4)’: tblMATHANG(sMaMH, sTenMH, iTGBH, fGia, sMaNCC)
=>Vậy cơ sở dữ liệu cuối cùng của bài toán là:
(1): tblKHACHHANG (sMaKH, sTenKH, dNSKH, sSĐTKH)
(2): tblNHANVIEN (sMaNV, sTenNV, dNSNV, fHSL)
(3)’’:
tblHOADON
(sMaHD,
sMaMH,
sMaNV,sMaKH)
6
sTenKH,
TenNV,
dNgayLap,
(4)’: tblMATHANG(sMaMH, sTenMH, iTGBH, fGia, sMaNCC)
(5): tblNHACC (sMaNCC, sTenNCC, sĐCNCC, sSĐTNCC)
(6): tblNV_SDT (sMaNV, sSĐTNV)
(7): tblMH_HD (sMaHD, sMaMH, iSoLuong)
4. Xác định các ràng buộc của bài toán
“Giới tính của khách hàng chỉ nhận giá trị “Nam” hoặc “Nữ”
Bối cảnh: KHACHHANG
Bảng tầm ảnh hưởng:
KHACHHANG
Thêm
Xóa
Sửa
+
-
+(GioiTinh)
Thêm
Xóa
Sửa
+(MaNV)
-
-*(MaNV)
“Mỗi nhân viên có một mã duy nhất”
Bối cảnh: NHANVIEN
Bảng tầm ảnh hưởng:
NHANVIEN
“Mỗi khách hàng có một mã duy nhất”
Bối cảnh: KHACHHANG
Bảng tầm ảnh hưởng:
7
KHACHHANG
Thêm
Xóa
Sửa
+(MaKH)
-
-*(MaKH)
Thêm
Xóa
Sửa
+(MaHD)
-
+*(MaHD)
“Mỗi hóa đơn chỉ có một mã duy nhất”
Bối cảnh: HOADON
Bảng tầm ảnh hưởng:
HOADON
“Lương của nhân viên chỉ có tăng chứ không có giảm”
Bối cảnh: NHANVIEN
Bảng tầm ảnh hưởng:
NHANVIEN
Thêm
Xóa
Sửa
-
-
+(Luong)
5. Chuẩn hóa cơ sở dữ liệu
(1): KHACHHANG (MaKH, TenKH, NSKH, SĐTKH)
F= { MaKH-> TenKH, NSKH, SĐTKH }
(2): NHANVIEN (MaNV, TenNV, NSNV, HSL)
F= { MaNV-> TenNV, NSNV}
(3): HOADON (MaHD, MaNV, MaKH, MaMH, NgayLap)
F= { MaHD-> MaNV, MaKH, MaMH, NgayLap }
8
(3.1): NHANVIEN_HD (MaNV, TenNV)
F= { MaNV-> TenNV }
(3.2): KHACHHANG_HD(MaKH, TenKH)
F= { MaMH-> TenKH}
(4):MATHANG(MaMH, TenMH, TGBH, Gia, MaNCC)
F= { MaMH-> TenMH, TGBH, Gia, MaNCC }
(5): NHACC (MaNCC, TenNCC, ĐCNCC, SĐTNCC)
F= { MaNCC-> TenNCC, ĐCNCC, SĐTNCC }
(6): NV_SĐT(MaNV, SĐTNV)
F= { MaNV-> SDTNV }
(7): MH_HD (MaHD, MaMH, SoLuong)
F= { MaHD, MaMH-> SoLuong }
9
6. Xác định dữ liệu thực mô tả bài toán
10
11
12
7. Khai thái CSDL dưới dạng các biểu thức đại số quan hệ
*Khai thác từ 1 bảng
- Tìm danh sách tên các nhân viên bán hàng.
πTenNV (NHANVIEN)
13
- Tìm tên mặt hàng, mã mặt hàng có giá nhỏ hơn 20 triệu
πTenMH, MaMH(Ϭgia<20000000)(MATHANG)
- Cho biết mã các nhà cung cấp, tên các nhà cung cấp, số điện thoại các nhà
cung cấp có địa chỉ ở Japan
πMaNCC, TenNCC,SDTNCC (ϬDCNCC= “Japan”)(NHACC)
-Cho biết tên mặt hàng, giá có thời gian bảo hành 24 tháng
πTenMH, Gia(Ϭ
TGBH=24
)(MATHANG)
14
-Cho biết tên khách hàng, ngày sinh có số điện thoại 01663223501
πTenKH, NSKH, SĐTKH(Ϭ
SDT=01663223501
)(KHACHHANG)
*Khai thác dữ liệu từ 2 bảng:
-Tìm tên của khách hàng, số điện thoại khách hàng mua Iphone X:
πTenKH, SĐTKH(Ϭ
TenMH=”Iphone X”
)(KHACHHANG*HOADON*MATHANG)
-Tìm tên nhà cung cấp, địa chỉ nhà cung cấp, số điện thoại sản phẩm có thời
gian bảo hành 24 tháng
πTen NCC, ĐCNCC, SĐTNCC(Ϭ
TGBH=”24”
)(NCC*MATHANG)
-Tìm tên nhân viên, mã nhân viên, ngày sinh nhân viên lập hóa đơn cho sản
phẩm Lumia 990
πTenNV, MaNV, NSNV(Ϭ
TenMH=”Lumia 990”
)(NHANVIEN*HOADON*MATHANG)
15
-Tìm tên khách hàng, số điện thoại khách hàng mua điện thoại của nhà cung cấp
Samsung
πTenKH, SĐTKH(Ϭ
TenNCC=”Samsung”
)(KHACHHANG*HOADON*NCC*MATHANG)
-Tìm tên nhà cung cấp, địa chỉ, số điện thoại nhà cung cấp sản phẩm lớn hơn
20000000đ
πTenNCC, ĐCNCC, SĐTNCC(Ϭ
Gia>2000000đ
)(NCC*MATHANG)
*Tính toán dữ liệu từ một bảng
-Đếm số khách hàng đã mua hàng tại của hàng
MaHĐ
ℑ
COUNT(MAKH)
(HOADON)
-Đếm số nhân viên làm việc tại siêu thị
MaNV
ℑ
COUNT(MANV)
(NHANVIEN)
16
-Tính tuổi nhân viên tại cửa hàng tại cửa hàng
TenNV, SĐTNV, NSNV, 2018-year(NSNV)(NHANVIEN)
-Đếm số lượng mặt hàng đã bán
MaMH
ℑ
COUNT(SOLUONG)
(MATHANG_HD)
-Đếm số nhà cung cấp đã cung cấp mặt hàng cho công ty
MaNCC
ℑ
COUNT(MANCC)
(NCC)
*Tính toán dữ liệu từ 2 bảng
-Cho biết HSL lớn nhất của nhân viên bán Iphone X.
Quan hệ: HOADON,NHANVIEN.
Thuộc tính: MaHD.
ℑ
MAX(HSL)
(
Ϭ
TenMH
= “Iphone X”) (HOADON*NHANVIEN)
17
-Cho biết số hóa đơn mỗi nhân viên ghi
Quan hệ: NHANVIEN, HOADON.
Thuộc tính: MaNV, MaHĐ.
MaNV
ℑ
COUNT(MaHĐ)
(HOADON*NHANVIEN)
-Cho biết số hóa đơn bán được của mỗi sản phẩm
Quan hệ: NHANVIEN, MATHANG.
Thuộc tính: TenMH, MaHĐ.
TenMH
ℑ
COUNT(MaHĐ)
(HOADON*MATHANG)
-Cho biết số mặt hàng hãng Apple cung cấp
Quan hệ: MATHANG, NCC
18
Thuộc tính: TenNCC, MaMH.
(
Ϭ
TenNCC
= “Apple”)
ℑ
COUNT(MaMH)
(NCC*MATHANG)
-Cho biết số lần mua hàng của khách hàng Nguyễn Văn Bảo
Quan hệ: HPADON, KHACHHANG
Thuộc tính: TenKH, MaHĐ.
(
Ϭ
TenKH
= “Nguyễn Văn Bảo”)
ℑ
COUNT(MaHĐ)
19
(HOADON*KHACHHANG)