lOMoARcPSD| 45734214
TRƯỜNG ĐẠI HỌC THUỶ LỢI
Bộ môn: Cơ sở dữ liệu
BÁO CÁO BÀI TẬP LỚN Đề tài: Quản lý
bán hàng quán trà sữa
Nhóm sinh viên thực hiện:
Nông Lan Anh – MSV: 2351060417
Phạm Thị Huyền Linh – MSV: 2351060460
Giảng viên hướng dẫn: TS.Trần Hồng Diệp
Hà Nội, Ngày 10 Tháng 10 Năm 2024
KHOA CÔNG NGHỆ THÔNG TIN
lOMoARcPSD| 45734214
MỤC LỤC
LỜI NÓI ĐẦU ........................................................................................3
I. THIẾT KẾ MÔ HÌNH THỰC THỂ - LIÊN KẾT ...........................4
II. XÁC ĐỊNH KIỂU THUỘC TÍNH VÀ KHOÁ ...............................4
III. THÀNH LẬP CƠ SỞ DỮ LIỆU BAN ĐẦU ..................................6
IV. THIẾT KẾ MÔ HÌNH QUAN HỆ ..................................................7
Mối quan hệ (Relationships) ...............................................................8
V. PHỤ THUỘC HÀM ..........................................................................9
VI. CHUẨN HOÁ DỮ LIỆU ............................................................... 10
VII. KHAI THÁC, TRUY VẤN DỮ LIỆU ......................................... 12
a) Đại số quan hệ .................................................................................. 13
b) Truy vấn SQL ................................................................................... 14
KẾT LUẬN ........................................................................................... 16
lOMoARcPSD| 45734214
LỜI NÓI ĐẦU
Trong những năm gần đây, mô hình kinh doanh trà sữa đã trở nên
phổ biến và thu hút được sự quan tâm của đông đảo tiêu dùng, đặc biệt
là giới trẻ. Tuy nhiên, đi kèm với sự phát triển nhanh chóng là những
công thức hoàn thiện trong công việc quản lý bán hàng, kiểm soát
nguyên vật liệu và theo dõi tình hình kinh doanh. Để đảm bảo hoạt động
hiệu quả và tăng cường khả năng cạnh tranh, các loại nước ngọt và trà
sữa cần áp dụng công nghệ và hệ thống quản lý hiện đại trong quy trình
vận hành.
Trên cơ sở đó, nhóm chúng em lựa chọn chủ đề tài năng "Quản
bán hàng quán trà sữa" xây dựng một hệ thống cơ sở dữ liệu giúp quản
lý toàn bộ hoạt động kinh doanh của quán trà sữa một cách khoa học và
hiệu quả. Hệ thống này không chỉ giúp theo dõi các giao dịch bán hàng,
quản lý kho nguyên liệu mà còn hỗ trợ phân tích doanh thu và xu hướng
tiêu dùng, từ đó góp phần nâng cao chất lượng dịch vụ và hiệu suất kinh
doanh.
Bài báo cáo này sẽ tập trung vào việc phân tích, thiết kế và xây
dựng cơ sở dữ liệu cho quán trà sữa, với mục tiêu mang lại một giải pháp
quản lý toàn diện và dễ dàng áp dụng.
lOMoARcPSD| 45734214
I. THIẾT KẾ MÔ HÌNH THỰC THỂ - LIÊN KẾT
Các thực thể
1. Khách hàng
2. Đặt hàng
3. Chi tiết đơn
4. Sản phẩm
5. Nhân viên
6. Thanh toán
7. Hoá đơn
8. Quản lí kho
II. XÁC ĐỊNH KIỂU THUỘC TÍNH VÀ KH
1. Khách hàng
Kiểu thuộc tính
Diễn giải
Khoá
Mã KH
Mã khách hàng
Khoá
Tên KH
Tên khách hàng
Sđt
Số điện thoại
Email
Email
Đ/c
Địa chỉ khách hàng
2. Đặt hàng
Kiểu thuộc tính
Diễn giải
Khoá
Mã ĐH
Mã đơn hàng
Khoá
Ngày đặt
Ngày đặt hàng
Tổng tiền
Tổng tiền
Trạng thái
Trạng thái đơn
Mã KH
Mã khách hàng đặt đơn
3. Chi tiết đơn
Diễn giải
Khoá
Mã chi tiết đơn
Khoá
Mã đặt hàng
Mã sản phẩm
Số lượng bán
lOMoARcPSD| 45734214
Giá sản phẩm bán
Thành tiền
4. Sản phẩm
Kiểu thuộc tính
Diễn giải
Khoá
Mã SP
Mã sản phẩm
Khoá
Tên SP
Tên sản phẩm
Giá
Giá bán
Phân loại
Phân loại sản phẩm
5. Nhân viên
Kiểu thuộc tính
Diễn giải
Khoá
Mã NV
Mã nhân viên
Khoá
Tên NV
Tên nhân viên
Sđt
Số điện thoại
Email
Email
6. Thanh toán
Kiểu thuộc tính
Diễn giải
Khoá
TT
Mã thanh toán
Khoá
Ngày TT
Ngày thanh toán
Số tiền
Số tiền thanh toán
PTTT
Phương thức thanh toán
7. Hoá đơn
Kiểu thuộc tính
Diễn giải
Khoá
Mã HĐ
Mã hoá đơn
Khoá
Ngày HĐ
Ngày hoá đơn
Mã ĐH
Mã đơn hàng
Số lượng
Số lượng
Đơn giá TT
Đơn giá thanh toán
8. Quản lý kho
Kiểu thuộc tính
Diễn giải
Khoá
Mã SP
Mã sản phẩm
Khoá
Số lượng tồn
Số lượng tồn
lOMoARcPSD| 45734214
Ngày CN
Ngày cập nhật
III. THÀNH LẬP CƠ SỞ DỮ LIỆU BAN ĐẦU
1. Mô hình TT – LK (ER/EA)
lOMoARcPSD| 45734214
IV. THIẾT KẾ MÔ HÌNH QUAN HỆ
- Khách hàng (Mã KH, Tên KH, SĐT, Email, Đ/c)
lOMoARcPSD| 45734214
- Đặt hàng (Mã ĐH, Ngày đặt, Mã KH, Tổng tiền, Trạng thái)
- Chi tiết đơn (Mã CTĐ, Mã ĐH, *Mã SP, *Số lượng, *Giá, *Thành tiền)
- Sản phẩm (Mã SP, Tên SP, Giá, Phân loại)
- Nhân viên (Mã NV, Tên NV, SĐT, Email)
- Thanh toán (Mã TT, Ngày TT, Số tiền, PTTT)
- Hóa đơn ( Mã H Đ , Ngày HĐ, Mã ĐH, *Số lượng, *Đơn giá TT)
- Quản lí kho (Mã SP, *Số lượng tồn, *Ngày cập nhật)
Mối quan hệ (Relationships)
1. Một khách hàng (KHACHHANG) có thể có nhiều đơn đặt hàng
(DATHANG)
Mối quan hệ: KHACHHANG (1) → DATHANG (N)
2. Một đơn đặt hàng (DATHANG) có thể có nhiều chi tiết đơn
(CHITIETDON)
Mối quan hệ: DATHANG (1) → CHITIETDON (N)
3. Một sản phẩm (SANPHAM) có thể xuất hiện trong nhiều chi tiết đơn
(CHITIETDON)
Mối quan hệ: CHITIETDON (1) → SANPHAM (N)
4. Một sản phẩm (SANPHAM) chỉ có thể lưu thông tin trong một quản lí kho
(QUANLYKHO)
Mối quan hệ: SANPHAM (1) → QUANLYKHO (1)
5. Một đơn đặt hàng (DATHANG) có thể có một hoá đơn (HOADON) tương
ứng
Mối quan hệ: DATHANG (1) → HOADON (1)
6. Một nhân viên (NHANVIEN) có thể xử lí nhiều đơn đặt hàng
(DATHANG):
Mối quan hệ: NHANVIEN (1) → DATHANG (N)
7. Một đơn đặt hàng (DATHANG) có thể liên quan đến mt hoặc nhiều cách
thanh toán (THANHTOAN)
Mối quan hệ: DATHANG (1) → THANHTOAN (N)
8. Một nhân viên (NHANVIEN) có thể xử lí nhiều giao dịch thanh toán
lOMoARcPSD| 45734214
(THANHTOAN)
Mối quan hệ; NHANVIEN (1) → THANHTOAN (N)
V. PHỤ THUỘC HÀM
Khách hàng (Mã KH, Tên KH, SĐT, Email,
Đ/c) Phụ thuộc hàm:
o Mã KH → Tên KH, Đ/c, SĐT, Email o SĐT
→ Mã KH, Tên KH, Đ/c, Email o Email → Mã KH, Tên KH,
Đ/c, SĐT Đặt hàng (Mã ĐH, Ngày đặt, Mã KH, Tổng tiền,
Trạng thái) Phụ thuộc hàm:
o Mã ĐH → Ngày đặt, Mã KH, Tổng tiền ,
Trạng thái
Chi tiết đơn (Mã CTĐ, Mã ĐH, Mã SP, S
lượng, Giá, Thành tiền) Phụ thuộc hàm:
o Mã HĐ, Mã SP → Số lượng bán, Giá
Sản phẩm (Mã SP, Tên SP, Giá, Phân loại)
Phụ thuộc hàm:
o Mã SPTên SP, Giá, Phân loại
Nhân viên (Mã NV, Tên NV, SĐT, Email)
Phụ thuộc hàm:
o Mã NV → Tên NV, SĐT, Email o SĐT →
Mã NV, Tên NV, Email o Email → Mã NV, Tên NV, SĐT
Thanh toán (Mã TT, Ngày TT, Số tiền, PTTT)
Phụ thuộc hàm:
o TT → Ngày TT, Số tiền, PTTT Hóa đơn
(Mã HĐ, Ngày HĐ, Mã ĐH, Số lượng, Đơn giá TT) Phụ
thuộc hàm:
o Mã HĐ → Ngày HĐ, Mã ĐH
Quản lí kho (Mã SP, Số lượng tồn, Ngày cập
nhật) Phụ thuộc hàm:
o Mã SP → Số lượng tồn, Ngày cập nhật
lOMoARcPSD| 45734214
VI. CHUẨN HOÁ DỮ LIỆU
Chuẩn 1NF (First Normal Form)
Tất cả các thuộc tính trong bảng đều là đơn trị
Không có tập hợp hoặc danh sách giá trị trong bất kỳ ô nào của bảng.
Kiểm tra các bảng:
Khách hàng (KHACHHANG): Các thuộc tính MaKH, TenKH,
DiachiKH, SĐT, Email là đơn trị.
Đặt hàng (DATHANG): Các thuộc tính MaĐH, Ngaydat, MaKH,
TongTien, TrangThai là đơn trị
Chi tiết đơn (CHITIETDON): Các thuộc tính MaCTĐ, MaDH, MaSP,
SLBan, GiaBan, ThanhTien là đơn trị.
Sản phẩm (SANPHAM): Các thuộc tính MaSP, TenSP, PhanLoai, Gia
là đơn trị.
Nhân viên (NHANVIEN): Các thuộc tính MaNV, TenNV, SĐT, Email
là đơn trị.
Thanh toán (THANHTOAN): Các thuộc tính MaTT, NgayTT, SoTien,
PTTT là đơn trị.
Hóa đơn (HOADON): Các thuộc tính MaHĐ, NgayHĐ, MaDH là đơn
trị.
Quản lý kho (QUANLYKHO): Các thuộc tính MaSP, SLTon, NCN là
đơn trị.
Tất cả các bảng trong mô hình đều đạt chuẩn 1NF vì mọi thuộc tính đều là đơn
trị.
Chuẩn 2NF (Second Normal Form)
Bảng đó thỏa mãn chuẩn 1NF.
Mọi thuộc tính không phải khóa đều phụ thuộc hoàn toàn vào toàn bộ
khóa chính (nếu khóa chính là khóa ghép).
lOMoARcPSD| 45734214
Kiểm tra các bảng:
Khách hàng (KHACHHANG): MaKH là khóa chính, các thuộc tính
khác (TenKH, DiachiKH, SĐT, Email) đều phụ thuộc hoàn toàn vào
MaKH.
Đặt hàng (DATHANG): MaĐH là khóa chính, các thuộc tính
NgayDat,
MaKH, TongTien, TrangThai phụ thuộc hoàn toàn vào MaĐH
Chi tiết đơn (CHITIETDON): Đây là bảng có khóa ghép (MaCTĐ,
MaSP, MaDH). Các thuộc tính SoLuong và GiaBan phụ thuộc hoàn
toàn vào cả ba thành phần của khóa ghép
Sản phẩm (SANPHAM): MaSP là khóa chính, các thuộc tính khác
(TenSP, GiaBan, PhanLoai) đều phụ thuộc hoàn toàn vào MaSP.
Nhân viên (NHANVIEN): MaNV là khóa chính, các thuộc tính
TenNV, SĐT, Email đều phụ thuộc hoàn toàn vào MaNV.
Thanh toán (TT): MaTT là khóa chính, các thuộc tính khác (NgayTT,
SoTien, PTTT) đều phụ thuộc hoàn toàn vào MaTT.
Hóa đơn (HOADON): MaHĐ là khóa chính, các thuộc tính NgayHĐ,
MaKH phụ thuộc hoàn toàn vào MaHĐ.
Quản lý kho (QUANLYKHO): MaSP là khóa chính, các thuộc tính
SLTon, NCN phụ thuộc hoàn toàn vào MaSP.
Tất cả các bảng trong mô hình đều đạt chuẩn 2NF vì không có thuộc tính nào
chỉ phụ thuộc vào một phần của khóa ghép.
Chuẩn 3NF (Third Normal Form)
Bảng đó thỏa mãn chuẩn 2NF.
Không có phụ thuộc bắc cầu, tức là mọi thuộc tính không phải khóa
chỉ phụ thuộc trực tiếp vào khóa chính mà không phụ thuộc vào bất kỳ
thuộc tính không phải khóa nào khác.
Kiểm tra các bảng:
lOMoARcPSD| 45734214
Khách hàng (KHACHHANG): Không có phụ thuộc bắc cầu. Các
thuộc tính TenKH, DiachiKH, SĐT, Email đều chỉ phụ thuộc vào
MaKH Đặt hàng (DATHANG): Không có phụ thuộc bắc cầu.
NgayDat, MaKH,
TongTien đều phụ thuộc trực tiếp vào MaĐH
Chi tiết đơn (CHITIETDON): Không có phụ thuộc bắc cầu. SLBan và
GiaBan phụ thuộc vào khóa ghép (MaHĐ, MaSP), không phụ thuộc
vào thuộc tính không phải khóa nào khác.
Sản phẩm (SANPHAM): Không có phụ thuộc bắc cầu. Các thuộc tính
TenSP và PhanLoai đều chỉ phụ thuộc vào MaSP
Nhân viên (NHANVIEN): Không có phụ thuộc bắc cầu. TenNV, SĐT,
Email đều chỉ phụ thuộc vào MaNV.
Mã thanh toán (TT): Không có phụ thuộc bắc cầu. Các thuộc tính
NgayTT, SoTien, PTTT đều chỉ phụ thuộc vào MaTT.
Hóa đơn (HOADON): Không có phụ thuộc bắc cầu. NgayHĐ
MaKH đều phụ thuộc trực tiếp vào MaHĐ.
Quản lý kho (QUANLYKHO): Không có phụ thuộc bắc cầu. SLTon và
NCN đều phụ thuộc trực tiếp vào MaSP.
Tất cả các bảng trong mô hình đều đạt Chuẩn 3NF vì không có phụ thuộc bắc
cầu giữa các thuộc tính không phải khóa.
VII. KHAI THÁC, TRUY VẤN DỮ LIỆU
- KHACHHANG (MaKH, TenKH, DiachiKH)
- DATHANG (MaĐH, NgayDat, MaKH, TongTien, TrangThai)
- CHITIETHOADON (MaHĐ, MaKH, SLBan, Gia)
- SANPHAM (MaSP, TenSP, PhanLoai)
- NHANVIEN (MaNV, TenNV, SĐT, Email)
- THANHTOAN (MaTT, NgayTT, SoTien, PTTT)
- HOADON (MaHĐ, NgayHĐ, MaKH)
lOMoARcPSD| 45734214
- QUANLYKHO (MaSP, SLTon, NCN)
a) Đại số quan hệ
1. Đưa ra danh sách địa chỉ khách hàng π Diachi
(KHACHHANG)
2. Đưa ra tên sản phẩm và số lượng tồn của sản phẩm π TenSP,
SLTon
(SANPHAM)
3. Đưa ra thông tin của các sản phẩm có số lượng tồn >100:
σ SLTon>100 (QUANLIKHO)
4. Chi tiết đơn của khách hàng có mã "KH01" σ MaKH = 'KH01'
(CHITIETDON)
5. Liệt kê thông tin các khách hàng có tổng tiền đặt hàng
(TongTien) lớn hơn 1 triệu
σ TongTien > 1000000 (DATHANG KHACHHANG)
6. Các đơn hàng được đặt trong tháng 10 năm 2024 σ NgayDat
>= '2024-10-01' NgayDat <= '2024-10-31' (DATHANG)
7. Liệt kê thông tin sản phẩm đã được bán với số lượng lớn hơn
10 σ SLBan > 10 (CHITIETDON SANPHAM)
8. Liệt kê tên các sản phẩm và phân loai của chúng có trong kho π
TenSP, PhanLoai (SANPHAM QUANLYKHO)
9. Liệt kê tất cả các đơn hàng được đặt bởi khách hàng có tên
"Nguyễn Văn A" π MaĐH, NgayDat, TongTien (σ TenKH =
'Nguyễn Văn A'
(KHACHHANG DATHANG))
10.Chi tiết các sản phẩm có trong hóa đơn có mã "HĐ01"
σ MaHĐ = 'HĐ01' (CHITIETDON SANPHAM)
11.Tìm các hóa đơn được lập trong ngày "2024-10-
12" σ NgayHĐ = '2024-10-12' (HOADON)
12.Liệt kê các khách hàng có địa chỉ tại "Hồ Chí
Minh". σ DiachiKH = 'Hồ Chí Minh'
(KHACHHANG)
lOMoARcPSD| 45734214
13.Tìm tất cả các sản phẩm có trong kho nhưng chưa được
bán π MaSP (QUANLYKHO) - π MaSP
(CHITIETDON)
14.Tìm tất cả thanh toán có phương thức là “Tiền
mặt” σ PTTT = ”Tien Mat”
(THANHTOAN)
15.Liệt kê thông tin của các đơn hàng có tổng tiền lớn hơn 2 triệu và được đặt
trong năm 2024 σ TongTien > 2000000 NgayDat >= '2024-01-01'
NgayDat <= '202412-31' (DATHANG)
b) Truy vấn SQL
1. Xóa khách hàng có mã "KH02"
DELETE FROM KHACHHANG
WHERE MaKH = 'KH02';
2. Cập nhật địa chỉ của khách hàng có mã "KH01" ở Hồ Chí Minh
UPDATE KHACHHANG
SET DiachiKH = 'Hồ Chí Minh'
WHERE MaKH = 'KH01';
3. Xóa hóa đơn có mã "HĐ05" DELETE FROM HOADON
WHERE MaHĐ = 'HĐ05';
4. Thông tin của sản phẩm có tên "Trà Sữa Trân Châu"
SELECT *
FROM SANPHAM
WHERE TenSP = 'Trà Sữa Trân Châu';
5. Cập nhật giá bán của sản phẩm "SP01" trong bảng CHITIETDON
UPDATE CHITIETDON
SET GiaBan = 48000
WHERE MaSP = 'SP01';
6. Thêm thông tin nhân viên mới vào bảng NHANVIEN INSERT INTO
NHANVIEN (MaNV, TenNV, SĐT, Email)
lOMoARcPSD| 45734214
VALUES ('NV01', 'Nguyễn Văn A', '0987654321',
'a.nguyen@gmail.com');
7. Xóa sản phẩm có mã "SP05" khỏi bảng SANPHAM
DELETE FROM SANPHAM
WHERE MaSP = 'SP05';
8. Cập nhật tổng tiền của đơn hàng "ĐH01"
UPDATE DATHANG
SET TongTien = 1200000
WHERE MaĐH = 'ĐH01';
9. Tất cả thông tin về nhân viên có số điện thoại "0901234567"
SELECT *
FROM NHANVIEN
WHERE SĐT = '0901234567';
10. Tất cả các đơn hàng có tổng tiền lớn hơn 2 triệu
SELECT *
FROM DATHANG
WHERE TongTien > 2000000;
11. Cập nhật tên của khách hàng có mã "KH01"
UPDATE KHACHHANG
SET TenKH = 'Trần Văn B'
WHERE MaKH = 'KH01';
12. Lấy các thanh toán có số tiền lớn hơn 10 triệu
SELECT *
FROM THANHTOAN
WHERE SoTien > 10000000;
13. Cập nhật mô tả sản phẩm "SP02"
UPDATE SANPHAM
SET PhanLoai = 'Trà sữa vị matcha, topping trân châu trắng'
WHERE MaSP = 'SP02';
14. Thêm thông tin khách hàng mới
lOMoARcPSD| 45734214
INSERT INTO KHACHHANG (MaKH, TenKH, DiachiKH)
VALUES ('KH04', 'Lê Thị C', 'Đà Nẵng');
15. Cập nhật tổng tiền cho hóa đơn "HĐ02"
UPDATE HOADON
SET TongTien = 1800000
WHERE MaHĐ = 'HĐ02';
KẾT LUẬN
Để hoàn thành được bài tập lớn trên chúng em vô cùng cảm ơn những
kiến thức về môn cơ sở dữ liệu do cô Trần Hồng Diệp giảng dạy, chúng
em rất mong chờ và biết ơn trước những góp ý nhận xét của cô để rút
kinh nghiệm cho những dự án về sau. Chúng em xin chân thành cảm ơn!

Preview text:

lOMoAR cPSD| 45734214
TRƯỜNG ĐẠI HỌC THUỶ LỢI
KHOA CÔNG NGHỆ THÔNG TIN
Bộ môn: Cơ sở dữ liệu
BÁO CÁO BÀI TẬP LỚN Đề tài: Quản lý
bán hàng quán trà sữa
Nhóm sinh viên thực hiện:
Nông Lan Anh – MSV: 2351060417
Phạm Thị Huyền Linh – MSV: 2351060460
Giảng viên hướng dẫn: TS.Trần Hồng Diệp
Hà Nội, Ngày 10 Tháng 10 Năm 2024 lOMoAR cPSD| 45734214
MỤC LỤC
LỜI NÓI ĐẦU ........................................................................................3
I. THIẾT KẾ MÔ HÌNH THỰC THỂ - LIÊN KẾT ...........................4
II. XÁC ĐỊNH KIỂU THUỘC TÍNH VÀ KHOÁ ...............................4
III. THÀNH LẬP CƠ SỞ DỮ LIỆU BAN ĐẦU ..................................6
IV. THIẾT KẾ MÔ HÌNH QUAN HỆ ..................................................7
Mối quan hệ (Relationships) ...............................................................8
V. PHỤ THUỘC HÀM ..........................................................................9
VI. CHUẨN HOÁ DỮ LIỆU ............................................................... 10
VII. KHAI THÁC, TRUY VẤN DỮ LIỆU ......................................... 12
a) Đại số quan hệ .................................................................................. 13
b) Truy vấn SQL ................................................................................... 14
KẾT LUẬN ........................................................................................... 16 lOMoAR cPSD| 45734214 LỜI NÓI ĐẦU
Trong những năm gần đây, mô hình kinh doanh trà sữa đã trở nên
phổ biến và thu hút được sự quan tâm của đông đảo tiêu dùng, đặc biệt
là giới trẻ. Tuy nhiên, đi kèm với sự phát triển nhanh chóng là những
công thức hoàn thiện trong công việc quản lý bán hàng, kiểm soát
nguyên vật liệu và theo dõi tình hình kinh doanh. Để đảm bảo hoạt động
hiệu quả và tăng cường khả năng cạnh tranh, các loại nước ngọt và trà
sữa cần áp dụng công nghệ và hệ thống quản lý hiện đại trong quy trình vận hành.
Trên cơ sở đó, nhóm chúng em lựa chọn chủ đề tài năng "Quản lý
bán hàng quán trà sữa" xây dựng một hệ thống cơ sở dữ liệu giúp quản
lý toàn bộ hoạt động kinh doanh của quán trà sữa một cách khoa học và
hiệu quả. Hệ thống này không chỉ giúp theo dõi các giao dịch bán hàng,
quản lý kho nguyên liệu mà còn hỗ trợ phân tích doanh thu và xu hướng
tiêu dùng, từ đó góp phần nâng cao chất lượng dịch vụ và hiệu suất kinh doanh.
Bài báo cáo này sẽ tập trung vào việc phân tích, thiết kế và xây
dựng cơ sở dữ liệu cho quán trà sữa, với mục tiêu mang lại một giải pháp
quản lý toàn diện và dễ dàng áp dụng. lOMoAR cPSD| 45734214
I. THIẾT KẾ MÔ HÌNH THỰC THỂ - LIÊN KẾT Các thực thể 1. Khách hàng 2. Đặt hàng 3. Chi tiết đơn 4. Sản phẩm 5. Nhân viên 6. Thanh toán 7. Hoá đơn 8. Quản lí kho
II. XÁC ĐỊNH KIỂU THUỘC TÍNH VÀ KHOÁ 1. Khách hàng Kiểu thuộc tính Diễn giải Khoá Mã KH Mã khách hàng Khoá Tên KH Tên khách hàng Sđt Số điện thoại Email Email Đ/c Địa chỉ khách hàng 2. Đặt hàng Kiểu thuộc tính Diễn giải Khoá Mã ĐH Mã đơn hàng Khoá Ngày đặt Ngày đặt hàng Tổng tiền Tổng tiền Trạng thái Trạng thái đơn Mã KH Mã khách hàng đặt đơn 3. Chi tiết đơn Kiểu thuộc tính Diễn giải Khoá Mã CTĐ Mã chi tiết đơn Khoá Mã ĐH Mã đặt hàng Mã SP Mã sản phẩm Số lượng Số lượng bán lOMoAR cPSD| 45734214 Giá bán Giá sản phẩm bán Thành tiền Thành tiền 4. Sản phẩm Kiểu thuộc tính Diễn giải Khoá Mã SP Mã sản phẩm Khoá Tên SP Tên sản phẩm Giá Giá bán Phân loại Phân loại sản phẩm 5. Nhân viên Kiểu thuộc tính Diễn giải Khoá Mã NV Mã nhân viên Khoá Tên NV Tên nhân viên Sđt Số điện thoại Email Email 6. Thanh toán Kiểu thuộc tính Diễn giải Khoá Mã TT Mã thanh toán Khoá Ngày TT Ngày thanh toán Số tiền Số tiền thanh toán PTTT Phương thức thanh toán 7. Hoá đơn Kiểu thuộc tính Diễn giải Khoá Mã HĐ Mã hoá đơn Khoá Ngày HĐ Ngày hoá đơn Mã ĐH Mã đơn hàng Số lượng Số lượng Đơn giá TT Đơn giá thanh toán 8. Quản lý kho Kiểu thuộc tính Diễn giải Khoá Mã SP Mã sản phẩm Khoá Số lượng tồn Số lượng tồn lOMoAR cPSD| 45734214 Ngày CN Ngày cập nhật
III. THÀNH LẬP CƠ SỞ DỮ LIỆU BAN ĐẦU
1. Mô hình TT – LK (ER/EA) lOMoAR cPSD| 45734214
IV. THIẾT KẾ MÔ HÌNH QUAN HỆ -
Khách hàng (Mã KH, Tên KH, SĐT, Email, Đ/c) lOMoAR cPSD| 45734214 -
Đặt hàng (Mã ĐH, Ngày đặt, Mã KH, Tổng tiền, Trạng thái) -
Chi tiết đơn (Mã CTĐ, Mã ĐH, *Mã SP, *Số lượng, *Giá, *Thành tiền) -
Sản phẩm (Mã SP, Tên SP, Giá, Phân loại) -
Nhân viên (Mã NV, Tên NV, SĐT, Email) -
Thanh toán (Mã TT, Ngày TT, Số tiền, PTTT) -
Hóa đơn ( Mã H Đ , Ngày HĐ, Mã ĐH, *Số lượng, *Đơn giá TT) -
Quản lí kho (Mã SP, *Số lượng tồn, *Ngày cập nhật)
Mối quan hệ (Relationships)
1. Một khách hàng (KHACHHANG) có thể có nhiều đơn đặt hàng (DATHANG)
Mối quan hệ: KHACHHANG (1) → DATHANG (N)
2. Một đơn đặt hàng (DATHANG) có thể có nhiều chi tiết đơn (CHITIETDON)
Mối quan hệ: DATHANG (1) → CHITIETDON (N)
3. Một sản phẩm (SANPHAM) có thể xuất hiện trong nhiều chi tiết đơn (CHITIETDON)
Mối quan hệ: CHITIETDON (1) → SANPHAM (N)
4. Một sản phẩm (SANPHAM) chỉ có thể lưu thông tin trong một quản lí kho (QUANLYKHO)
Mối quan hệ: SANPHAM (1) → QUANLYKHO (1)
5. Một đơn đặt hàng (DATHANG) có thể có một hoá đơn (HOADON) tương ứng
Mối quan hệ: DATHANG (1) → HOADON (1)
6. Một nhân viên (NHANVIEN) có thể xử lí nhiều đơn đặt hàng (DATHANG):
Mối quan hệ: NHANVIEN (1) → DATHANG (N)
7. Một đơn đặt hàng (DATHANG) có thể liên quan đến một hoặc nhiều cách thanh toán (THANHTOAN)
Mối quan hệ: DATHANG (1) → THANHTOAN (N)
8. Một nhân viên (NHANVIEN) có thể xử lí nhiều giao dịch thanh toán lOMoAR cPSD| 45734214 (THANHTOAN)
Mối quan hệ; NHANVIEN (1) → THANHTOAN (N) V. PHỤ THUỘC HÀM
Khách hàng (Mã KH, Tên KH, SĐT, Email, Đ/c) Phụ thuộc hàm:
o Mã KH → Tên KH, Đ/c, SĐT, Email o SĐT
→ Mã KH, Tên KH, Đ/c, Email o Email → Mã KH, Tên KH,
Đ/c, SĐT Đặt hàng (Mã ĐH, Ngày đặt, Mã KH, Tổng tiền,
Trạng thái) Phụ thuộc hàm:
o Mã ĐH → Ngày đặt, Mã KH, Tổng tiền , Trạng thái
Chi tiết đơn (Mã CTĐ, Mã ĐH, Mã SP, Số
lượng, Giá, Thành tiền) Phụ thuộc hàm:
o Mã HĐ, Mã SP → Số lượng bán, Giá
Sản phẩm (Mã SP, Tên SP, Giá, Phân loại) Phụ thuộc hàm:
o Mã SP → Tên SP, Giá, Phân loại
Nhân viên (Mã NV, Tên NV, SĐT, Email) Phụ thuộc hàm:
o Mã NV → Tên NV, SĐT, Email o SĐT →
Mã NV, Tên NV, Email o Email → Mã NV, Tên NV, SĐT
Thanh toán (Mã TT, Ngày TT, Số tiền, PTTT) Phụ thuộc hàm:
o Mã TT → Ngày TT, Số tiền, PTTT Hóa đơn
(Mã HĐ, Ngày HĐ, Mã ĐH, Số lượng, Đơn giá TT) Phụ thuộc hàm:
o Mã HĐ → Ngày HĐ, Mã ĐH
Quản lí kho (Mã SP, Số lượng tồn, Ngày cập nhật) Phụ thuộc hàm:
o Mã SP → Số lượng tồn, Ngày cập nhật lOMoAR cPSD| 45734214
VI. CHUẨN HOÁ DỮ LIỆU
Chuẩn 1NF (First Normal Form)
Tất cả các thuộc tính trong bảng đều là đơn trị •
Không có tập hợp hoặc danh sách giá trị trong bất kỳ ô nào của bảng.
Kiểm tra các bảng:
Khách hàng (KHACHHANG): Các thuộc tính MaKH, TenKH,
DiachiKH, SĐT, Email là đơn trị. •
Đặt hàng (DATHANG): Các thuộc tính MaĐH, Ngaydat, MaKH,
TongTien, TrangThai là đơn trị •
Chi tiết đơn (CHITIETDON): Các thuộc tính MaCTĐ, MaDH, MaSP,
SLBan, GiaBan, ThanhTien là đơn trị. •
Sản phẩm (SANPHAM): Các thuộc tính MaSP, TenSP, PhanLoai, Gia là đơn trị. •
Nhân viên (NHANVIEN): Các thuộc tính MaNV, TenNV, SĐT, Email là đơn trị. •
Thanh toán (THANHTOAN): Các thuộc tính MaTT, NgayTT, SoTien, PTTT là đơn trị. •
Hóa đơn (HOADON): Các thuộc tính MaHĐ, NgayHĐ, MaDH là đơn trị. •
Quản lý kho (QUANLYKHO): Các thuộc tính MaSP, SLTon, NCN là đơn trị.
Tất cả các bảng trong mô hình đều đạt chuẩn 1NF vì mọi thuộc tính đều là đơn trị.
Chuẩn 2NF (Second Normal Form)
Bảng đó thỏa mãn chuẩn 1NF. •
Mọi thuộc tính không phải khóa đều phụ thuộc hoàn toàn vào toàn bộ
khóa chính (nếu khóa chính là khóa ghép). lOMoAR cPSD| 45734214
Kiểm tra các bảng:
Khách hàng (KHACHHANG): MaKH là khóa chính, các thuộc tính
khác (TenKH, DiachiKH, SĐT, Email) đều phụ thuộc hoàn toàn vào MaKH. •
Đặt hàng (DATHANG): MaĐH là khóa chính, các thuộc tính NgayDat,
MaKH, TongTien, TrangThai phụ thuộc hoàn toàn vào MaĐH •
Chi tiết đơn (CHITIETDON): Đây là bảng có khóa ghép (MaCTĐ,
MaSP, MaDH). Các thuộc tính SoLuong và GiaBan phụ thuộc hoàn
toàn vào cả ba thành phần của khóa ghép •
Sản phẩm (SANPHAM): MaSP là khóa chính, các thuộc tính khác
(TenSP, GiaBan, PhanLoai) đều phụ thuộc hoàn toàn vào MaSP. •
Nhân viên (NHANVIEN): MaNV là khóa chính, các thuộc tính
TenNV, SĐT, Email đều phụ thuộc hoàn toàn vào MaNV. •
Thanh toán (TT): MaTT là khóa chính, các thuộc tính khác (NgayTT,
SoTien, PTTT) đều phụ thuộc hoàn toàn vào MaTT. •
Hóa đơn (HOADON): MaHĐ là khóa chính, các thuộc tính NgayHĐ,
MaKH phụ thuộc hoàn toàn vào MaHĐ. •
Quản lý kho (QUANLYKHO): MaSP là khóa chính, các thuộc tính
SLTon, NCN phụ thuộc hoàn toàn vào MaSP.
Tất cả các bảng trong mô hình đều đạt chuẩn 2NF vì không có thuộc tính nào
chỉ phụ thuộc vào một phần của khóa ghép.
Chuẩn 3NF (Third Normal Form)
Bảng đó thỏa mãn chuẩn 2NF. •
Không có phụ thuộc bắc cầu, tức là mọi thuộc tính không phải khóa
chỉ phụ thuộc trực tiếp vào khóa chính mà không phụ thuộc vào bất kỳ
thuộc tính không phải khóa nào khác.
Kiểm tra các bảng: lOMoAR cPSD| 45734214 •
Khách hàng (KHACHHANG): Không có phụ thuộc bắc cầu. Các
thuộc tính TenKH, DiachiKH, SĐT, Email đều chỉ phụ thuộc vào MaKH
Đặt hàng (DATHANG): Không có phụ thuộc bắc cầu. NgayDat, MaKH,
TongTien đều phụ thuộc trực tiếp vào MaĐH •
Chi tiết đơn (CHITIETDON): Không có phụ thuộc bắc cầu. SLBan và
GiaBan phụ thuộc vào khóa ghép (MaHĐ, MaSP), không phụ thuộc
vào thuộc tính không phải khóa nào khác. •
Sản phẩm (SANPHAM): Không có phụ thuộc bắc cầu. Các thuộc tính
TenSP và PhanLoai đều chỉ phụ thuộc vào MaSP •
Nhân viên (NHANVIEN): Không có phụ thuộc bắc cầu. TenNV, SĐT,
Email đều chỉ phụ thuộc vào MaNV. •
Mã thanh toán (TT): Không có phụ thuộc bắc cầu. Các thuộc tính
NgayTT, SoTien, PTTT đều chỉ phụ thuộc vào MaTT. •
Hóa đơn (HOADON): Không có phụ thuộc bắc cầu. NgayHĐ và
MaKH đều phụ thuộc trực tiếp vào MaHĐ. •
Quản lý kho (QUANLYKHO): Không có phụ thuộc bắc cầu. SLTon và
NCN đều phụ thuộc trực tiếp vào MaSP.
Tất cả các bảng trong mô hình đều đạt Chuẩn 3NF vì không có phụ thuộc bắc
cầu giữa các thuộc tính không phải khóa.
VII. KHAI THÁC, TRUY VẤN DỮ LIỆU -
KHACHHANG (MaKH, TenKH, DiachiKH) -
DATHANG (MaĐH, NgayDat, MaKH, TongTien, TrangThai) -
CHITIETHOADON (MaHĐ, MaKH, SLBan, Gia) -
SANPHAM (MaSP, TenSP, PhanLoai) -
NHANVIEN (MaNV, TenNV, SĐT, Email) -
THANHTOAN (MaTT, NgayTT, SoTien, PTTT) - HOADON (MaHĐ, NgayHĐ, MaKH) lOMoAR cPSD| 45734214 - QUANLYKHO (MaSP, SLTon, NCN)
a) Đại số quan hệ
1. Đưa ra danh sách địa chỉ khách hàng π Diachi (KHACHHANG)
2. Đưa ra tên sản phẩm và số lượng tồn của sản phẩm π TenSP, SLTon (SANPHAM)
3. Đưa ra thông tin của các sản phẩm có số lượng tồn >100:
σ SLTon>100 (QUANLIKHO)
4. Chi tiết đơn của khách hàng có mã "KH01" σ MaKH = 'KH01' (CHITIETDON)
5. Liệt kê thông tin các khách hàng có tổng tiền đặt hàng
(TongTien) lớn hơn 1 triệu
σ TongTien > 1000000 (DATHANG KHACHHANG)
6. Các đơn hàng được đặt trong tháng 10 năm 2024 σ NgayDat
>= '2024-10-01' ∧ NgayDat <= '2024-10-31' (DATHANG)
7. Liệt kê thông tin sản phẩm đã được bán với số lượng lớn hơn
10 σ SLBan > 10 (CHITIETDON SANPHAM)
8. Liệt kê tên các sản phẩm và phân loai của chúng có trong kho π
TenSP, PhanLoai (SANPHAM QUANLYKHO)
9. Liệt kê tất cả các đơn hàng được đặt bởi khách hàng có tên
"Nguyễn Văn A" π MaĐH, NgayDat, TongTien (σ TenKH = 'Nguyễn Văn A'
(KHACHHANG DATHANG))
10.Chi tiết các sản phẩm có trong hóa đơn có mã "HĐ01"
σ MaHĐ = 'HĐ01' (CHITIETDON SANPHAM)
11.Tìm các hóa đơn được lập trong ngày "2024-10-
12" σ NgayHĐ = '2024-10-12' (HOADON)
12.Liệt kê các khách hàng có địa chỉ tại "Hồ Chí
Minh". σ DiachiKH = 'Hồ Chí Minh' (KHACHHANG) lOMoAR cPSD| 45734214
13.Tìm tất cả các sản phẩm có trong kho nhưng chưa được
bán π MaSP (QUANLYKHO) - π MaSP (CHITIETDON)
14.Tìm tất cả thanh toán có phương thức là “Tiền
mặt” σ PTTT = ”Tien Mat” (THANHTOAN)
15.Liệt kê thông tin của các đơn hàng có tổng tiền lớn hơn 2 triệu và được đặt
trong năm 2024 σ TongTien > 2000000 ∧ NgayDat >= '2024-01-01' ∧
NgayDat <= '202412-31' (DATHANG)
b) Truy vấn SQL
1. Xóa khách hàng có mã "KH02" DELETE FROM KHACHHANG WHERE MaKH = 'KH02';
2. Cập nhật địa chỉ của khách hàng có mã "KH01" ở Hồ Chí Minh UPDATE KHACHHANG
SET DiachiKH = 'Hồ Chí Minh' WHERE MaKH = 'KH01';
3. Xóa hóa đơn có mã "HĐ05" DELETE FROM HOADON WHERE MaHĐ = 'HĐ05';
4. Thông tin của sản phẩm có tên "Trà Sữa Trân Châu" SELECT * FROM SANPHAM
WHERE TenSP = 'Trà Sữa Trân Châu';
5. Cập nhật giá bán của sản phẩm "SP01" trong bảng CHITIETDON UPDATE CHITIETDON SET GiaBan = 48000 WHERE MaSP = 'SP01';
6. Thêm thông tin nhân viên mới vào bảng NHANVIEN INSERT INTO
NHANVIEN (MaNV, TenNV, SĐT, Email) lOMoAR cPSD| 45734214
VALUES ('NV01', 'Nguyễn Văn A', '0987654321', 'a.nguyen@gmail.com');
7. Xóa sản phẩm có mã "SP05" khỏi bảng SANPHAM DELETE FROM SANPHAM WHERE MaSP = 'SP05';
8. Cập nhật tổng tiền của đơn hàng "ĐH01" UPDATE DATHANG SET TongTien = 1200000 WHERE MaĐH = 'ĐH01';
9. Tất cả thông tin về nhân viên có số điện thoại "0901234567" SELECT * FROM NHANVIEN WHERE SĐT = '0901234567';
10. Tất cả các đơn hàng có tổng tiền lớn hơn 2 triệu SELECT * FROM DATHANG WHERE TongTien > 2000000;
11. Cập nhật tên của khách hàng có mã "KH01" UPDATE KHACHHANG SET TenKH = 'Trần Văn B' WHERE MaKH = 'KH01';
12. Lấy các thanh toán có số tiền lớn hơn 10 triệu SELECT * FROM THANHTOAN WHERE SoTien > 10000000;
13. Cập nhật mô tả sản phẩm "SP02" UPDATE SANPHAM
SET PhanLoai = 'Trà sữa vị matcha, topping trân châu trắng' WHERE MaSP = 'SP02';
14. Thêm thông tin khách hàng mới lOMoAR cPSD| 45734214
INSERT INTO KHACHHANG (MaKH, TenKH, DiachiKH)
VALUES ('KH04', 'Lê Thị C', 'Đà Nẵng');
15. Cập nhật tổng tiền cho hóa đơn "HĐ02" UPDATE HOADON SET TongTien = 1800000 WHERE MaHĐ = 'HĐ02'; KẾT LUẬN
Để hoàn thành được bài tập lớn trên chúng em vô cùng cảm ơn những
kiến thức về môn cơ sở dữ liệu do cô Trần Hồng Diệp giảng dạy, chúng
em rất mong chờ và biết ơn trước những góp ý nhận xét của cô để rút
kinh nghiệm cho những dự án về sau. Chúng em xin chân thành cảm ơn!