Khảo sát, biểu mẫu thu thập được Tham khảo các khảo sát thực tế và thu được các thông tin như Mã nhân viên, Địa chỉ, Mức lương, Chức vụ, Các thuộc tính của hóa đơn, .... Sản phẩm Quan ao
Trang 1
Họ và tên sinh viên Mã sinh viên
Trang 2
1
VI VIL
Tổng quan về đề tài 0-5 0 TT HH H101 2121 12t 2n nga 2 Mô tả về hệ thống, các nghiệp vụ cơ bản - 0 nh nh HH ng Ha ye 2 Khảo sát, biểu mẫu thu thập được -. 5 SE HH HH HH2 H2n ng rre 2 Phân tích yêu cầu để xác định các chức năng, quy mô của bài toán 2
Xác định mô hình thực thể liên kết (ER) 2 S2 TỰ H2 t1 H2 tre 2
Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ (RMI) 4 Cách chuyền đối, chuyển đối các kiểu thực thể, mối liên kết sac: 4 M6 hhitth quan he 5 b1.) 00v 0.47) 1 4 5 Rang buộc toàn vẹn có bối cảnh là một quan hệ 2-5 2S HE grrrec 5 Rang buộc toàn vẹn có bối cảnh là nhiều quan hệ 52 5s SE 2 xe 6 Bảng tầm ảnh hưởng tổng hợp 5 25c S T1 TỰ t1 2121 gà 7 Cấu trúc chỉ tiết các bảng và lược đồ quan hệ - 5 Ss nH Hye 7 Cấu trúc chỉ tiết các bảng 2-5 TT HH1 HH H212 121g rere 7 Lược đồ quan hệ 2 TS TH HH TH HH2 H121 uag 10 lê) )ArVÁÝÁ 10
Chuẩn hóa cơ sở dữ liệu 55 SE 2E 1t 5 11 2110 n t1 gu 14
Page | 1
Trang 3L 1
2 3
II 1
Tổng quan về đề tài Mô tá về hệ thống, các nghiệp vụ cơ bản Hệ thống CSDL xây dựng để quản lý việc bán quần áo của một cửa hàng bán quân áo
CSDL gồm các thực thế: Khách hàng, Hóa đơn, Sản phẩm (Quân áo), Nha kho, Nhân viên, Chức vụ
Khảo sát, biểu mẫu thu thập được Tham khảo các khảo sát thực tế và thu được các thông tin như Mã nhân viên, Địa chỉ, Mức lương, Chức vụ, Các thuộc tính của hóa đơn,
Phân tích yêu cầu đề xác định các chức năng, quy mô của bài toán CSDL cần có đầy đủ thông tin chính xác, rõ ràng và có đủ các chức năng của một CSDL, cơ bản
Phải thực hiện một CSDL dạng vừa đủ, có thế truy xuất và tìm kiếm thông tin của một nhân viên được quản lý trong cửa hàng, có thê truy xuất và tìm kiếm thông tin sản phẩm, thông tin khách hàng
Quy mô: Một cửa hàng bán quân áo
Xác định mô hình thực thể liên kết (ER)
Các kiểu thực thé:
Tên kiêu thực thê Các thuộc tính Thuộc tính khóa
Nhân viên - - Mã nhân viên - - Mã nhân viên
- Họ tên
- Giới tính
- Ngày sinh - Ngày vào làm việc
- _ Số điện thoại
- Diachi - Luong
Kho chứa hàng - Mã nhà kho - Mã nhà kho
- Tên kho chứa
Trang 4
Sản phẩm (Quan ao) Mã sản phâm Kích cỡ
Giá nhập hàng Số lượng nhập Giá bản
Số lượng tồn
Tên sản pham Màu sắc
Xuất xứ (tên nhà sản
xuất) Trạng thái
Mã sản phâm
Hóa đơn Mã hóa đơn
Ngày lập hóa đơn Ngày khách hàng
chi tra Ngày giao hang Ngày khách nhận hàng
Tổng tiền thanh toán
2 Mô hình ER: - Mối liên kết giữa các kiểu thực thể:
Một khách hàng có thê có một hoặc nhiều hóa đơn Nhiều hóa đơn thanh toán đo một nhân viên quản ly Một nhân viên chỉ có 1 chức vụ (vị tri)
Một nhà kho chứa nhiều loại quan áo Một hóa đơn có nhiêu loại quân áo Một loại quân áo có thê thuộc nhiêu hóa đơn
Trang 5Sơ đồ thê hiện môi liên kết giữa các kiêu thực thê - So dé thu thê liên kết:
asc A") ÍpghoHang)
- _ Liên kết I-I: khoá của bảng bên I bất kì trở thành một thuộc tính kết
nối (khóa ngoại) ở bảng bên kia
- Liên kết l-n: khóa của bảng bên l trở thành thuộc tính kết nối/ khóa ngoại của bảng bên nhiễu
- _ Liên kết n-n: phải có thêm l bảng trung gian, bảng trung gian này sẽ chứa 2 thuộc tính khóa của 2 bảng và cả 2 thuộc tính này sẽ trở thành khóa chính cho bảng trung gian, ngoài ra bảng trung gian sẽ có thêm một số thuộc tính khác của mối liên kết
Page | 4
Trang 62 Mô hình quan hệ
MauSac TenSanPham TenNSX
e© - RB-I/Nhân viên (RBTV miền giá trị)
Nội dung: Giới tính của nhân viên là giới tính sinh học chi co nam (1)
và nữ (0)
Yn € NhanVien (n.GioiTinh{0,1}) -_ Bối cảnh: Nhân viên
- Bang tam ảnh hưởng:
Trang 7Vn € HoaDon (n.NgayGiaoHang <= n.NgayNhanHang) - Boi canh: Hoa don
- Bang tâm ảnh hưởng:
2 Ràng buộc toàn vẹn có bối cảnh là nhiều quan hệ
© - RB-5/Hóa đơn, Hóa đơn chỉ tiết (RBTV thuộc tính tổng hợp)
- Nội dung: Tổng số tiền thanh toán của 1 hóa đơn phải bằng tông trị giá của các sản phâm
Vn © HoaDon,
n.TongTien = Xn e HoaDonChrit A miDHoaDen = niDHopon(m.GIaBan *
m.SoLuongBan) Bối cảnh: Hóa đơn, Hóa đơn chỉ tiết -_ Bảng tầm ảnh hưởng:
¢ RB-7/Quan áo, Hóa đơn chỉ tiết (RBTV liên thuộc tính, liên quan hệ)
Nội dung: Số tiền bán ra của 1 sản phẩm phải lớn hơn số tiền nhập hàng của sản phẩm đó
Vt € HoaDonChiTiet, du € SanPham (u.IDSanPham = t.IDSanPham A t.GIaBanHang >= u.GIiaNhapHang) Bồi cảnh: Quần áo, Hóa đơn chỉ tiết
Page | 6
Trang 8-_ Bảng tầm ảnh hưởng:
¢ RB-8/Quan do, Nhà kho (RBTV liên bộ, liên quan hệ)
Nội dung: Mỗi I loại quân áo phải thuộc ít nhật một nhà kho Yu © SanPham (4 t 6 KhoHang (t.IDKhoHang = u.IDKhoHang) - Đối cảnh: Quan áo, Nhà kho
- Bang tâm ảnh hưởng:
-_ Bảng tầm ảnh hưởng:
BILL_
DETAIL
ES
WARE HOUSE
Bảng tầm ảnh hưởng tông hợp Cấu trúc chỉ tiết các bảng và lược đồ quan hệ 1 Cấu trúc chỉ tiết các bảng
rong chu IDNhan Vien NvarChar 10 PK No HoTen NvarChar 30 No
Page | 7
Trang 9
SDT NvarChar 15 DiaChi Nvarchar 50 Gioi Tinh Bit
NegaySinh DateTime Ngay VaoLam DateTime Luong INT IDChuc Vu NvarChar 10 FK Trang Thai Bit
Bang NhanVien (Nhan Vién) Bang KhoHang (Kho Hang)
rong chu IDKhoHang NvarChar 10 PK No TenKhoHan NvarChar 30 No DiaChi NvarChar 50
SDT NvarChar 15 Trang Thai Bit
Bang SanPham (San Pham)
rong chu IDSanPham NvarChar 10 PK No IDKhoHang NvarChar 10 FK No GiaNhapHang INT
SoLuongNhap INT
GiaBanHang INT KichCo NvarChar 5 SoLuongTon INT
MauSac NvarChar 10 TenSanPham NvarChar 30 No TenNSX NvarChar 20
Trang Thai Bit
Page | 8
Trang 10Bảng HoaDonChiTiet (Hóa Don Chỉ Tiết)
rong chu IDHoaDon NvarChar 10 PK/FK No IDSanPham NvarChar 10 PK/FK No TenSanPham Nvarchar 30 No GiaBan INT
SoLuongBan INT DonGia INT Bang ChucVu (Chire Vu)
rong chu IDChuc Vu NvarChar 10 PK No TenChucVu NvarChar 30 No Trang Thai Bit
Bảng HoaDon (Hóa Đơn)
Tên trường Kiéu D Kho Nul Gh
ộ rộng 1 chủ IDHoaDon NvarCha 10 PK No
r IDNhanVien NvarCha 10 FK No
r IDKhachHang NvarCha 10 FK No
r NgayTaoHoaDo DateTim
e NgayChiTra DateTim
€ NgayGIaoHang DateTim
e NgayNhanHang DateTim
€ Tong Tien INT Trang Thai Bit
Bang KhachHang (Khach Hang)
ộ rộng 1 chú IDKhachHang NvarCha 10 PK No
Page | 9
Trang 11
TenKhachHan Nvarchar 30
GioiTinh Bit NgaySinh DateTim
SDT Nvarchar 15 DiaChi NvarCha 50
TrangThai Mi | DtoaDon 9 IDNhanVien SoLuongTon IDNhniien IDChucVu
- IDKhachHang HoTen
ặ NgaylaoHoaDon B_e| semm
9 IDKhoHang NgayGiaoHang NoayvaoLam TenKhoHang NgayNhanHang SDT DiaChi Tan DiaChi
KhachHana
9 lDKhachHang TenkhachHang,
NgaySinh
SDT DiaChi TrangThai
VI Cau lénh truy van
e 1, Lay ra thong tin danh sách nhân viên nữ - - Đại số quan hệ:
T Trownanvien, TDChucVu, HoTen, GioiTinh, NgaySinh, NgayVaoLam, SDT, DiaChi, Luong, TrangThai
(Gcioitinn = 0 (Nhan Vien))
Page | 10
Trang 12© 2, Tăng thêm 203% lương cho nhân viên làm việc trên 2 năm - _ Đại số quan hệ:
NhanVien — Ï DNhavien, HoTen, SDT, DiaChi, GioiTinh, NgaySinh, NgayVaoLam, Luong * 1.2, IDChucVu, TrangThai (OGETDATE Ó- Ngay VaoLam >= 2 & Trang Thai = i(NhanVien))
- SQL: UPDATE NhanVien SET Luong = Luong * 1.2
3 Quan jean nam 0
From NhanVien 4 Chânváynữ 8
EH Meow JE Messages IDNhanVien IDChuc/u HaTen GioiTinh - NgaySinh NgzyVaoLam 1 NV00] C/001 — NguễnVănA 1992-05-10 00:00:00.000 2020-01-01 00:00:00.000 0987654321 HoàngMai-HaNôi 18000000 1 2 NV002 cvoo2 TrầnThiB 1995-09-20 00:00:00.000 2019-02-02 00:00:00000 0123456789 CauGidy-HaNoi 14400000 1 3 — NV003 C/003 LêVănC 1990-01-05 00:00:00.000 2021-02-1500:0000000 0912345878 LonaBién-HaNéi 21600000 1 4 NV005 C/0U5 TrnhVănE 1 1991-06-20 00:00:00.000 2020-07-01 00:00:00000 0888888888 BaÐinh-HàNô 20400000 1
© 3 Đưa ra tên sản phẩm và số lượng tồn của những mặt hàng - - Đại số quan hệ:
TTisanPham, TenSanPham, SoLuongTon( 9 anPham)
- SQL: Select IDSanPham, TenSanPham, SoLuongTon From SanPham
e 4 Đưa ra thông tín của những khách hàng đã mua hàng ngày
Where CONVERT (date, HoaDon.NgayTaoHoaDon) = '2023-05-13'
Trang 13Select count (DISTINCT IDKhachHang) as TongSoKhachHang From HoaDon
Where NgayTaoHoaDon >= ‘2023-01-01’ AND NgayTaoHoaDon <= ‘2023-12-31’ ¢ 6 Dua ra ma san pham, tén san phẩm, tên NSX có đơn gid >
1.500.000 - Dai số quan hệ
qi — II IDSanPham, DonGia (Opencia> 1.500.000 (HoaDonChiTiet))
TT rsanPham, TenSanPham, TenNSX, DonGia(Qu * SanPham)
- SQL: SELECT sp.IDSanPham, sp TenSanPham, sp TenNSX, hdc.DonGia FROM SanPham sp INNER JOIN HoaDonChiTiet hde ON sp.IDSanPham = hdc.IDSanPham
3 Chan vay ni Zara 1600000 + Ao kKhoac nam Adidas 24200000
e 7, Đưa ra các mã khách hàng chưa từng quay lại mua hàng kế từ
01/01/2023
- - Đại số quan hệ:
Ï ibkbaehHang (KhachHang) - TTixhachtang (ONgayTaoHoaDon >= 01/01/2023 (HoaDon))
- SQL:
FROM KhachHang LEFT JOIN HoaDon ON 9 "KHO3
KhachHang.IDKhachHang = HoaDon.IDKhachHang WHERE HoaDon.IDHoaDon IS NULL OR HoaDon.NgayTaoHoaDon < '2023-01-01'
s« 8, Lay ra SỐ quần áo chưa từng được bản - - Đại số quan hệ:
_IDSanPham | TenSanPham SoLuongTon
FROM SanPham sp) LEFT JOIN ¡ 'spạg ¡ Giàythế thao nam 12
HoaDonChiTiet hdct ON sp.IDSanPham = hdct.IDSanPham
WHERE hdct.IDHoaDon IS NULL «09, Lấy ra danh sách các mặt hàng và số lượng đã bản ra
- - Đại số quan hệ:
Page | 12
Trang 14fsumotuongbany (HoaDonChiTiet)))
- SQL:
Ss ELEC T IDS anPham, TenS anPham, IDSanPham | TenSanPham SoLuongDaBan
SUM(SoLuongBan) as SoLuongDaBan' |1 sP001 'Áokhoácnam 7
HoaDonChiTiet ct ON sp.IDSanPham = 1 | Ì Áokhoácnam 1000000 ct.IDSanPham lễ wd
GROUP BY sp.IDSanPham, sp TenSanPham ORDER BY GiaBanMax DESC
e 11 Tinh doanh thu ban hang hang ngay
- Dai so quan hé:
((NgayTaoHoaDon, Doanh Thu) (NgayTaoHoaDon ƒ SUM(TongTien) (HoaDon))
- SQL: Select NgayTaoHoaDon, SUM(TongTien) _Doanh Thu _ NgayTaoHoaDon as “Doanh Thu: 1 | 3200000 j 2022-01-01 00:00:00.000
¬ 2 2500000 2023-03-18 00:00:00.000 From HoaDon 3 1500000 2023-04-15 00:00:00.000
4 3000000 2023-05-13 00:00:00.000
Group By NgayTaoHoaDon e 12 Dwa ra tên mặt hàng có số lượng bản ra nhiều nhất (sửa ảnh)
- Dai số quan hệ
qi — (D(DSanPham, TongSoLuongBan (DSanPham ƒ SUM(SoLuongBan) (HoaDonChiTiet))
TTrosanpham, TenSanPham, TongSolnongBan (f MAX(TongSoluongBan) (qi * SanPham))
- SQL: SELECT TOP 1 With Ties IDSanPham, TenSanPham, SUM(SoLuongBan) AS TongSoLuongBan — ma.“ ng —
FROM HoaDonChiTiet poem —
1 |Áokhoácnam | 7
GROUP BY TenSanPham 2 — Áothunnữ 7 ORDER BY TongSoLuongBan DESC
Page | 13
Trang 15e 13 Lay ra thong tin cia những nhân viên đã lập hóa đơn vào ngày 01/01/2022
- _ Đại số quan hệ:
qi — | Lrowhanvien( ONgayTaoHoaDon-01/01/2022( HoaDon))
TT aonnanvien, HoTen, SDT) (qi * NhanVien)
- SQL
Select nv.IDNhan Vien, nv.HoTen, "52s" lst messages
nv.SDT IDNhanVien HoTen SDT
1 jNV001 ¡ NguyễnVănA 0987654321
From NhanVien nv INNER JOIN HoaDon z2 Nvoo2 Tran ThiB 0123456789
hd ON nv.IDNhanVien = hd IDNhanVien Where hd.NgayTaoHoaDon = '2022/01/01’
® 14 Tim hóa đơn đã mua trên Í sản phẩm do “Adidas” là nhà sản xuất - - Đại số quan hệ:
ql CC Ï Íibsanpbam (Ơreasx = -Aadas' (SanPham))
Ï I(bHoapos, SOLUONG (o SOLUONG >= 1 (@ TDHoaDon, SOLUONG (tp HoaDon com (IDSanPham) (ql *
HoaDonChiTiet)))))
- SQL: Select ct IDHoaDon, Count(ct.IDSanPham) AS ‘SOLUONG’
- SQL: SELECT TOP 1 With Ties MONTH(NgayTaoHoaDon) as Thang, SUM(TongTien) as DoanhSoBanHang = ~
FROM HoaDon Thang : omeoatios
WHERE YEAR(NgayTaoHoaDon) = 2023 GROUP BY MONTH(NgayTaoHoaDon), YEAR(NgayTaoHoaDon) ORDER BY DoanhSoBanHang DESC;
VIL Chuẩn hóa cơ sở dữ liệu
« - Bảng NhanVien (Nhân Viên)
Page | 14
Trang 16NhanVien = {ID NhanVien, ID ChucVu, HoTen, SDT, DiaChi, GioiTinh, Luong, NegaySinh, NgayVaoLam, Trang Thai}
F = {ID NhanVien — HoTen, ID NhanVien — ID ChucVu, ID NhanVien —> SDT, ID NhanVien — GioiTinh, ID NhanVien — DiaChi, ID NhanVien — NegaySinh, ID NhanVien ~ NgayVaoLam, ID NhanVien — Luong, ID NhanVien — Trang Thai} Ta có:
- Mọi thuộc tính đều là đơn trị - Mọi thuộc tính không khóa đều phụ thuộc hàm day đủ vào khóa chính - Mọi thuộc tính không khóa đều không phụ thuộc hàm hàm bắc cầu vào khóa
chính => Bảng NhanVien ở dạng chuẩn 3NF
« Bang ChucVu (Chirc Vu) ChucVu = {ID ChucVu, TenChucVu, TrangThai} F = {ID ChucVu > TenChucVu, ID ChucVu — TrangThai} Ta co:
- Mọi thuộc tinh đều là đơn trị
- Mọi thuộc tính không khóa đều phụ thuộc hàm day đủ vào khóa chính - Mọi thuộc tính không khóa đều không phụ thuộc hàm hàm bắc cầu vào khóa
chính => Bang ChucVu ở đạng chuẩn 3NF
« Bang KhoHang (Kho Hang) KhoHang = {IDKhoHang, TenKhoHang, DiaChi, SDT, Trang Than} F = {IDKhoHang — TenKhoHang, IDKhoHang — DiaChi, IDKhoHang — SDT, IDKhoHang —> TrangThat}
Ta có:
- Mọi thuộc tính đều là đơn trị - Mọi thuộc tính không khóa đều phụ thuộc hàm day đủ vào khóa chính - Mọi thuộc tính không khóa đều không phụ thuộc hàm hàm bắc cầu vào khóa
chính => Bảng KhoHang ở dạng chuẩn 3NF
« - Bảng SanPham (Sản Phẩm) SanPham = {IDSanPham, GiaNhapHang, SoLuongNhap, GiaBanHang, KichCo, SoLuongTon, MauSac, TenSanPham, TenNSX, Trang Thai}
F = {IDSanPham — GiaNhapHang, IDSanPham — SoLuongNhap, IDSanPham — GiaBanHang, IDSanPham — KichCo, IDSanPham — SoLuongTon, IDSanPham — MauSac, IDSanPham — TenSanPham, IDSanPham -› TenNSX, IDSanPham — Trang Thai}
Page | 15