Trang 1 BỘ THÔNG TIN VÀ TRUYỀN THƠNGHỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNGBÁO CÁO BÀI TẬP LỚNNHẬP MÔN CƠ SỞ DỮ LIỆUXÂY DỰNG HỆ CƠ SỞ DỮ LIỆU“Quản lý cửa hàng mua bán laptop Nam Main”Nhó
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
NHẬP MÔN CƠ SỞ DỮ LIỆU XÂY DỰNG HỆ CƠ SỞ DỮ LIỆU
“Quản lý cửa hàng mua bán laptop Nam Main”
Nhóm thực hiện: 04
Nhóm môn học: 82
Giảng viên: Nguyễn Tiến Hùng
Hà Nội, tháng 11 năm 2023
Trang 3Mục Lục
I.KỊCH BẢN THẾ GIỚI THỰC:
SƠ ĐỒ MODULE CHỨC NĂNG HỆ THỐNG
SƠ ĐỒ NGỮ CẢNH HỆ THỐNG
1 Ứng dụng của hệ CSDL quản lý cửa hàng mua bán laptop Nam Main:
2 Yêu cầu dữ liệu cần lưu trữ:
3 Các thao tác trên cơ sở dữ liệu:
II LƯỢC ĐỒ E-R:
1 Mô tả lược đồ.
2 Lược đồ E-R:
III THIẾT KẾ LOGIC VÀ CHUẨN HÓA:
1 Ánh xạ lược đồ E-R sang lược đồ quan hệ.
2 Chuẩn hóa lược đồ quan hệ về dạng chuẩn 3NF.
IV TẠO BẢNG:
1 Tạo bảng đơn vị cung cấp
2 Tạo bảng khách hàng
3 Tạo bảng nhân viên
4 Tạo bảng hóa đơn nhập
5 Tạo bảng hóa đơn bán hàng
Trang 42 View lấy danh sách cho quản lý
3 View lấy danh sách cho kế toán
4 View lấy danh sách cho khách hàng
5 View lấy danh sách đơn vị cung cấp
6 View lấy bảng lương
7 View lấy danh sách thiết bị
8 View lấy danh sách hãng sản xuất
9 View lấy danh sách hóa đơn nhập
10 View lấy danh sách nhân viên tư vấn
VI CÁC TRUY VẤN:
Trang 5Quản lý cửa hàng mua bán laptop Nam
Tiền lương
Tiền thưởng
Quản lý tài chính
Dữ liệu quản lý thu chi
Lợi nhuận
Trang 6Sơ đồ module chức năng hệ thống
Trang 7Discover more from:
Trang 8Sơ đồ ngữ cảnh hệ thống
1 Ứng dụng của hệ CSDL quản lý cửa hàng mua bán laptop Nam Main:
Xây dựng hệ thống quản lý cơ sở dữ liệu phục vụ cho 1 cơ sở dịch
vụ laptop Nam Main:
- Quản lý sản phẩm và tồn kho
- Quản lý hóa đơn bán hàng
- Quản lý khách hàng và khuyến mãi
- Quản lý nhân viên và tính lương
- Quản lý tài chính và bảo hành sản phẩm
Danh sách này tóm tắt các hoạt động quản lý quan trọng trong cửa hàng mua bán laptop "Nam Main."
2 Yêu cầu dữ liệu cần lưu trữ:
● Dữ liệu quản lý khách hàng
● Dữ liệu quản lý nhân viên
● Dữ liệu quản lý hóa đơn nhập
● Dữ liệu quản lý đơn vị cung cấp
● Dữ liệu hóa đơn bán hàng
Trang 93 Các thao tác trên cơ sở dữ liệu:
- Thêm sản phẩm mới vào cơ sở dữ liệu, thêm khách hàng mới vào danh sách,tạo hóa đơn cho giao dịch mua bán
- Cập nhật giá của sản phẩm, sửa đổi thông tin khách hàng (ví dụ: thay đổi địachỉ)
- Xóa sản phẩm không còn bán nữa, loại bỏ khách hàng không sử dụng dịch
vụ nữa, hoặc xóa thông tin máy đã hết hạn bảo hành
- Truy xuất thông tin từ cơ sở dữ liệu để hiển thị danh sách sản phẩm, lịch sử mua hàng của khách hàng, hoặc tạo báo cáo về doanh số bán hàng và lợi nhuận
II Lược đồ E-R:
1 Mô tả lược đồ
Có 10 tập thực thể trong đó 1 thực thể liên kết,1 thực thể yếu, 9 thực thể mạnh
● Thực thể liên kết: Nhân viên tư vấn
● Thực thể yếu: Lương(số buổi làm)
- Hóa đơn nhập(id hóa đơn nhập, tổng tiền, ngày nhập)
- Đơn vị cung cấp(tên đơn vị cung cấp, id đơn vị cung cấp, địa chỉ, sdt)
- Thiết bị(phụ kiện, laptop)
Trang 10NamMain thì có nhiều loại hóa đơn, hóa đơn chỉ có ở NamMain
NamMain thì có nhiều nhân viên, nhân viên thì có làm
ở NamMain
Hãng sản xuất cung cấp cung cấp nhiều thiết bị, thiết
bị được cung cấp bởi 1 Hãng sản xuất
NamMain có nhiều hóa đơn bán hàng, hóa đơn bán hàng được cấp bởi NamMain
Khách hàng có thể chọn nhiều sản phẩm, sản phẩm thì được nhiều khách hàng lựa chọn
2 Lược đồ E-R:
Trang 11III Thiết kế logic và chuẩn hóa:
1 Ánh xạ lược đồ E-R sang lược đồ quan hệ
● Dữ liệu quản lý khách hàng (bảng: khach_hang)
Trang 124 Số điện thoại so_dien_thoai Char
● Dữ liệu quản lý nhân viên (bảng: nhan_vien)
1 ID nhân viên id_nhan_vien Varchar Khóa chính
2 Tên nhân viên ten_nhan_vien Nvarchar
3 Ngày sinh ngay_sinh Char
4 Số điện thoại so_dien_thoai Char
5 Địa chỉ dia_chi Nvarchar
6 Chức vụ chuc_vu Nvarchar
7 Lương cơ bản luong_co_ban Int
● Dữ liệu quản lý hóa đơn nhập thiết bị (bảng:
Trang 13tham chiếutới bảngnam_main
4 Ngày nhập ngay_nhap Char
5 Tổng tiền tong_tien Nvarchar
● Dữ liệu quản lý đơn vị cung cấp thiết bị (bảng: dvcc)ST
Trang 14tham chiếutới bảngnam_main
4 Ngày bán ngay_ban Char
5 Tổng tiền tong_tien Int
1 ID thiết bị id_thiet_bi Varchar Khóa chính
3 ID Hãng sản
xuất
id_hang_san_xuat Varchar Khóa ngoại
tham chiếutới bảnghang_san_xuat
● Dữ liệu Hãng sản xuất(bảng: hang_san_xuat)
Trang 15● Dữ liệu NamMain (bảng: Nam_main)
STT Tên dữ liệu Kí hiệu Kiểu dữ
liệu
Lưu ý
1 ID NamMain id_Nam_main Varchar Khóa chính
2 Địa chỉ dia_chi Nvarchar
3 Số điện thoại so_dien_thoai Char
● Dữ liệu Lương (bảng: luong)
STT Tên dữ liệu Kí hiệu Kiểu dữ
liệu
Lưu ý
Trang 16tới bảngnhan_vien
2 Số buổi làm so_buoi_lam Int
● Dữ liệu Nhân viên tư vấn (bảng: nhan_vien_tu_van)STT Tên dữ
2 ID Nhân
viên
id_nhan_vien Varchar Khóa ngoại tham
chiếu tới bảngnhan_vien
3 ID Thiết
bị
id_thiet_bi Varchar Khóa ngoại tham
chiếu tới bảngthiet_bi
● Nhân viên (ID_NV, TEN_NV, NGAY_SINH, SO_DIEN_THOAI, DIA_CHI, CHUC_VU, LUONG_CO_DINH, LUONG_DUOC_NHAN)
Trang 18NAM MAIN(ID_NAM_MAIN, DIA_CHI, SDT)
● Nhân viên tư vấn(ID_KHACH, ID_NV, ID_THIET_BI, ID_HD)
ID_KHACH, ID_NV, ID_THIET_BI, ID_HD -> {}
⇨ Lược đồ đạt chuẩn 3NF
2 Chuẩn hóa lược đồ quan hệ về dạng chuẩn 3NF
Mô hình lược đồ quan hệ đã đạt chuẩn 3NF
Trang 20Thêm dữ liệu vào bảng dvcc
INSERT INTO dvcc(id_dvcc, ten_dvcc, dia_chi, so_dien_thoai) VALUES ('DV0001', N'Đơn vị A', 'Nam Định', '0981236547');
INSERT INTO dvcc(id_dvcc, ten_dvcc, dia_chi, so_dien_thoai) VALUES ('DV0002', N'Đơn vị B', 'Hà Nam', '0981236548');
END;
2 Tạo bảng khách hàng
CREATE TABLE khach_hang1(
id_khach_hang VARCHAR(50) PRIMARY KEY,
Trang 21INSERT INTO khach_hang1(id_khach_hang, ten_khach_hang, dia_chi, so_dien_thoai) VALUES('KH0001', N'Nguyễn Văn A', 'Hà Nội', '0983187195');INSERT INTO khach_hang1(id_khach_hang, ten_khach_hang, dia_chi, so_dien_thoai) VALUES('KH0002', N'Nguyễn Văn B', 'Nam Định', '0891234567');
3 Tạo bảng nhân viên
CREATE TABLE nhan_vien
Thêm dữ liệu vào bảng nhan_vien
INSERT INTO nhan_vien(id_nhan_vien, ten_nhan_vien, dia_chi, so_dien_thoai, ngay_sinh, Chuc_vu, luong_co_ban) VALUES('NV0001', N'Nguyễn Văn A', 'Hà Nội', '0981234567', '01/05/2003', N'Quản Lý', 6000000);
INSERT INTO nhan_vien(id_nhan_vien, ten_nhan_vien, dia_chi, so_dien_thoai, ngay_sinh, Chuc_vu, luong_co_ban) VALUES('NV0002', N'Nguyễn Văn B', 'Hà Nội', '0981234567', '01/05/2003', N'Chốt Khách', 4000000);
4 Tạo bảng hóa đơn nhập
CREATE TABLE hoa_don_nhap
Thêm dữ liệu vào bảng hoa_don_nhap
INSERT INTO hoa_don_nhap(id_hoa_don_nhap, id_dvcc, ngay_nhap, tong_tien) VALUES('NH0001', 'DV0001', '01/08/2023', '20000000');
INSERT INTO hoa_don_nhap(id_hoa_don_nhap, id_dvcc, ngay_nhap, tong_tien) VALUES('NH0002', 'DV0002', '01/07/2023', '50000000');
5 Tạo bảng hóa đơn bán hàng
CREATE TABLE hoa_don_ban_hang
Trang 22Thêm dữ liệu vào bảng hoa_don_ban_hang
INSERT INTO hoa_don_ban_hang(id_hoa_don_ban_hang, id_khach_hang, id_hoa_don_nhap, ngay_ban, tong_tien, thoi_gian) VALUES('HD0001', 'KH0001','NH0001', '01/09/2023', 300000, 903);
INSERT INTO hoa_don_ban_hang(id_hoa_don_ban_hang, id_khach_hang, id_hoa_don_nhap, ngay_ban, tong_tien, thoi_gian) VALUES('HD0002', 'KH0002','NH0002', '02/09/2023', 400000, 1003);
Thêm dữ liệu vào bảng hang_san_xuat
INSERT INTO hang_san_xuat(id_hang_san_xuat, ten_hang_san_xuat, dia_chi, so_dien_thoai) VALUES('HSX0001', N'Hãng A', 'Hà Nội', '0981234567');INSERT INTO hang_san_xuat(id_hang_san_xuat, ten_hang_san_xuat, dia_chi, so_dien_thoai) VALUES('HSX0002', N'Hãng B', 'Hà Nam', '0981234568');
Trang 23FOREIGN KEY (id_hang_san_xuat) REFERENCES
hang_san_xuat(id_hang_san_xuat)
);
Thêm dữ liệu vào bảng thiet_bi
INSERT INTO thiet_bi(id_thiet_bi, laptop, phukien, id_hang_san_xuat) VALUES('TB0001', 1, 1, 'HSX0001');
INSERT INTO thiet_bi(id_thiet_bi, laptop, phukien, id_hang_san_xuat) VALUES('TB0002', 2, 2, 'HSX0002');
Thêm dữ liệu vào bảng Nam_main
INSERT INTO Nam_main(id_Nam_main, dia_chi, so_dien_thoai) VALUES('NM0001', 'Hà Nội', '0981234567');
Thêm dữ liệu vào bảng luong
INSERT INTO luong(id_nhan_vien, so_buoi_lam) VALUES('NV0001', 26);INSERT INTO luong(id_nhan_vien, so_buoi_lam) VALUES('NV0002', 25);
10 Tạo bảng nhân viên tư vấn
CREATE TABLE nhan_vien_tu_van
Trang 24FOREIGN KEY (id_thiet_bi) REFERENCES thiet_bi(id_thiet_bi), id_hoa_don_ban_hang VARCHAR(50),
FOREIGN KEY (id_hoa_don_ban_hang) REFERENCES
hoa_don_ban_hang(id_hoa_don_ban_hang)
);
DECLARE @id_nhan_vien VARCHAR(50);
SET @id_nhan_vien = 'NV0001';
Kiểm tra xem giá trị id_nhan_vien có tồn tại trong bảng nhan_vien không
IF EXISTS (SELECT 1 FROM nhan_vien WHERE id_nhan_vien =
@id_nhan_vien)
BEGIN
Thêm dữ liệu vào bảng nhan_vien_tu_van
INSERT INTO nhan_vien_tu_van (id_khach_hang, id_nhan_vien, id_thiet_bi, id_hoa_don_ban_hang)
VALUES ('KH0001', @id_nhan_vien, 'TB0001', 'HD0001');
V Tạo View:
1 View lấy danh sách cho nhân viên
CREATE VIEW ds_nv AS
SELECT id_nhan_vien, ten_nhan_vien, ngay_sinh,
so_dien_thoai, dia_chi, chuc_vu, luong_co_ban
FROM nhan_vien
WHERE nhan_vien.chuc_vu = 'Nhân viên';
2 View lấy danh sách cho quản lý
CREATE VIEW ds_ql AS
SELECT id_nhan_vien, ten_nhan_vien, ngay_sinh,
so_dien_thoai, dia_chi, chuc_vu, luong_co_ban
FROM nhan_vien
WHERE nhan_vien.chuc_vu = 'Quản lý';
Trang 253 View lấy danh sách cho kế toán
CREATE VIEW ds_kt AS
SELECT id_nhan_vien, ten_nhan_vien, ngay_sinh,
so_dien_thoai, dia_chi, chuc_vu, luong_co_ban
FROM nhan_vien
WHERE nhan_vien.chuc_vu = 'Kế toán';
4 View lấy danh sách cho khách hàng
6 View lấy bảng lương
CREATE VIEW bang_luong AS
SELECT id_nhan_vien, so_buoi_lam
Trang 27VI Các truy vấn: