CHƯƠNG I : PHÂN TÍCH CƠ SỞ DỮ LIỆU QUẢN LÝ BÁN H%NG Cho các quan hệ sau: Quan hệ NCC lưu trữ thông tin: Mã nhà cung cấp, Tên nhà cung cấp, Địa chỉ, số điện thoại NCC MaNCC, TenNCC, Diac
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ĐỀ T%I:
THIẾT KẾ CƠ SỞ DỮ LIỆU QUẢN LÝ BÁN H%NG
Ngành : CÔNG NGHỆ THÔNG TINLớp : D17H18B
Khóa : 2022 – 2023
Trang 2PHIẾU CHẤM ĐIỂM ST
Trang 3LỜI NÓI ĐẦU
Trên thực tế không có sự thành công nào là không gán liền với sự hỗ trợ, sự giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp từ người khác Trong suốtthời gian từ khi bắt đầu học tập, chúng em đã nhận được rất nhiều sự quan tâm, giúp đỡ thầy cô, gia đình và bạn bè
Chúng em xin trân thành cảm ơn cô, đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như các buổi nói chuyện, thảo luận về môn học Trong thời gian được học tập và thực hành dưới sự hướng dân của thầy cô, em
không nhưung thu được rất nhiều kiến thức bổ ích, mà còn được truyền sự say mê
và thích thú với bộ môn “Hệ quản trị cơ sở dữ liệu” Nếu không có những lời
hướng dẫn, dạy bảo của thầy cô thì chúng em nghĩ đồ án này của chúng em rất khóthể hoàn thành được
Mặc dù đã rất cô giắng hòa thiện đồ án với tất của sự nỗ lực, tuy
nhiên, do bước đầu để đi vào thực tế, tìm hiểu và xây dựng đồ án trong thời gian có
chắn không thể tránh khỏi những thiếu sót Chúng em rất mong được sự quan tâm, thông cảm và nhưung đóng góp quý báu của các thầy cô và các bạn để đồ án ngày càng hoàn thiện hơn
Sau cùng, chúng em xin kính chúc các thầy các cô trong khoa Công Nghệ Thông Tin dồi dào sức khỏe, niềm tin để thực hiện sứ mệnh cao đẹocủa mình là truyền đạt kiến thức cho thế hệ mai sau
Trang 4MỤC LỤC
CHƯƠNG I : THIẾT KẾ CƠ SỞ DỮ LIỆU
QUẢN LÝ BÁN H%NG 5
1 TẠO CƠ SỞ DỮ LIỆU 5
2 TRUY VẤN 6
3 TRIGGER V% STORE PROCEDURE 7
CHƯƠNG 2: TẠO CƠ SỞ DỮ LIỆU QUẢN LÝ BÁN H%NG 8
PHẦN 1 TẠO CƠ SỞ DỮ LIỆU 8
1.1 Tạo csdl 9
1.2 Database diagram 10
1.3 Nhập dữ liệu cho bảng 12
2 TRUY VẤN 12
2.1 Truy vấn 15
2.2 View 16
2.3 Rule và Default 17
3 TRIGGER V% STORE PROCEDURE 18
3.1 Thủ tục 19
3.2 Trigger 20
CHƯƠNG 3: KẾT LUẬN 21
1.1 KẾT QUẢ ĐẠT ĐƯỢC 21
1.2 HƯỚNG PHÁT TRIỂN 21
Trang 5CHƯƠNG I : PHÂN TÍCH CƠ SỞ DỮ LIỆU
QUẢN LÝ BÁN H%NG
Cho các quan hệ sau:
Quan hệ NCC lưu trữ thông tin: Mã nhà cung cấp, Tên nhà cung cấp, Địa chỉ, số điện thoại
NCC (MaNCC, TenNCC, Diachi, Sodienthoai)
Quan hệ HANGHOA lưu trữ thông tin: Mã hàng, Tên hàng, Đơn vị
tính, Số lượng hàng trong kho.
HANGHOA (Mahang, Tenhang, Donvitinh, Soluong, MaCC)
Quan hệ KHACHHANG lưu trữ thông tin: Mã khách hàng, Tên khách hàng, Địachỉ, Số điện thoại.
KHACHHANG (MaKH, Tenkh, Diachi, Sodienthoai)
Quan hệ HOADON lưu trữ thông tin: Mã hóa đơn, Mã khách hàng, Ngày lập hóa
đơn, Tiền bán, Tiền giảm giá, Tiền thanh toán.
HOADON (MaHD, MaKH, NgayHD, Tienban, Giamgia, Thanhtoan) Quan hệ CTHOADOn lưu trữ thông tin: Mã hóa đơn, Mã hàng, Số
lượng hàng bán, Đơn giá.
CTHOADON (MaHD, Mahang, Soluong, Dongia)
Sử dụng ngôn ngữ SQL thực hiện các công việc sau:
1 TẠO CƠ SỞ DỮ LIỆU
1.1 Tạo csdl
1.2 Database diagram
1.3 Nhập dữ liệu cho bảng
Trang 62 TRUY VẤN
2.1 Truy vấn
- Hiển thị thông tin các nhà cung cấp có địa chỉ ở Hà nội
- Hiển thị thông tin các khách hàng đã mua hàng tại cửa hàng
- Hiển thị thông tin các nhà cung cấp chưa cung cấp hàng cho cửa hàng
- Hiển thị thông tin các mặt hàng do nhà cung cấp có tên Samsung cung cấp.
- Hiển thị thông tin các mặt hàng có số lượng hàng trong kho
- Hiển thị thông tin các mặt hàng có đơn vị tính là Thùng
- Hiển thị thông tin hóa đơn được lập trong ngày 19/4/2023
2.2 View
- Tạo View lưu thông tin khách hàng có địa chỉ ở Hà Nam
- Tạo View lưu thông tin những hóa đơn có số tiền bán lớn nhất.
- Tạo View lưu thông tin những mặt hàng có nhiều lượt khách mua nhất
Trang 73 TRIGGER V% STORE PROCEDURE
Biết công thức được tính như sau: Tienban=sum(soluong*dongia)
- Tạo trigger tính tiền thanh toán mỗi khi sửa thông tin cột giảm giá Biết công
thức được tính như sau: Thanhtoan=Tienban-Tienban*giamgia
- Tạo trigger kiểm tra ngày hóa đơn trong bảng hóa đơn phải nhỏ hơn hoặc bằng ngày hiện tại khi thêm dữ liệu vào bảng
Trang 8CHƯƠNG 2: TẠO CƠ SỞ DỮ LIỆU QUẢN LÝ BÁN H%NG
PHẦN 1 TẠO CƠ SỞ DỮ LIỆU
Sau khi tạo CSDL, bạn cần tạo các bảng NCC, HANGHOA,
KHACHHANG, HOADON và CTHOADON bằng cách sử dụng các câu lệnh tạo bảng tương ứng:
NCC (MaNCC, TenNCC, Diachi, Sodienthoai)
Quan hệ NCC lưu trữ thông tin: Mã nhà cung cấp, Tên nhà cung cấp, Địa chỉ, số điện thoại
HANGHOA (Mahang, Tenhang, Donvitinh, Soluong, MaCC)
Quan hệ HANGHOA lưu trữ thông tin: Mã hàng, Tên hàng, Đơn vị tính, Số lượng hàng trong kho
CREATE TABLE HANGHOA
Trang 9KHACHHANG (MaKH, Tenkh, Diachi, Sodienthoai)
Quan hệ KHACHHANG lưu trữ thông tin: Mã khách hàng, Tên khách hàng,Địachỉ, Số điện thoại
CREATE TABLE KHACHHANG
CREATE TABLE HOADON
CTHOADON (MaHD, Mahang, Soluong, Dongia)
Quan hệ CTHOADOn lưu trữ thông tin: Mã hóa đơn, Mã hàng, Số lượng hàng bán, Đơn giá
CREATE TABLE CTHOADON
PRIMARY KEY (MaHD Mahang, ),
FOREIGN KEY (MaHD ) REFERENCES HOADON(MaHD),
Trang 10FOREIGN KEY (Mahang ) REFERENCES
Trang 11INSERT INTO KHACHHANG MaKH Tenkh Diachi , , ,
VALUES ( , 'Khách hàng A', 'Đ a ch A'ị ỉ , '0123456789'),( ,2 'Khách hàng B', 'Đ a ch B'ị ỉ , '0123456789'),
INSERT INTO CTHOADON MaHD Mahang Soluong Dongia, , , )
Trang 12- Hiển thị thông tin các nhà cung cấp có địa chỉ ở Hà nội
SELECT FROM NCC WHERE Diachi = 'Hà n i'ộ ;
- Hiển thị thông tin các khách hàng đã mua hàng tại cửa hàng
Trang 13SELECT DISTINCT KHACHHANG.MaKH Tenkh Diachi , , ,
INNER JOIN HOADON ON KHACHHANG MaKH HOADON MaKH = ;
- Hiển thị thông tin các nhà cung cấp chưa cung cấp hàng cho cửa hàng
SELECT DISTINCT NCC.MaNCC TenNCC Diachi , , ,
LEFT JOIN HANGHOA ON NCC MaNCC HANGHOA MaCC =
WHERE HANGHOA.MaCC IS NULL;
- Hiển thị thông tin các mặt hàng do nhà cung cấp có tên Samsung cung cấp.
SELECT FROM HANGHOA
WHERE MaCC IN SELECT MaNCC FROM NCC WHERE TenNCC
LIKE '%Samsung%');
- Hiển thị thông tin các mặt hàng có số lượng hàng trong kho nhiều nhất
SELECT FROM HANGHOA WHERE Soluong = (SELECT
Trang 14- Hiển thị thông tin khách hàng mua hàng với số lần nhiều nhất tại cửa hàng
SELECT MaKH, Tenkh Diachi Sodienthoai , , , COUNT(*)
INNER JOIN HOADON ON KHACHHANG MaKH HOADON MaKH =
GROUP BY MaKH, Tenkh Diachi Sodienthoai, ,
ORDER BY SoLanMua DESC
- Hiển thị thông tin các mặt hàng được bán với số lượng ít nhất tại cửa hàng.
SELECT FROM HANGHOA WHERE Soluong = (SELECT
- Hiển thị thông tin các khách hàng có địa chỉ ở Hà Nội đã mua hàng tại cửa hàng
SELECT DISTINCT KHACHHANG.MaKH Tenkh Diachi , , ,
INNER JOIN HOADON ON KHACHHANG MaKH HOADON MaKH =
WHERE Diachi = 'Hà N i'ộ ;
Trang 15- Hiển thị thông tin các mặt hàng có đơn vị tính là Thùng
SELECT FROM HANGHOA WHERE Donvitinh = 'thung';
- Hiển thị thông tin hóa đơn được lập trong ngày 19/4/2023
SELECT FROM HOADON WHERE NgayHD = '2023-04-19';
2.2 View
- Tạo View lưu thông tin khách hàng có địa chỉ ở Hà Nam
CREATE VIEW KHHANAM AS
SELECT FROM KHACHHANG WHERE Diachi = 'Hà Nam';
- Tạo View lưu thông tin những hóa đơn có số tiền bán lớn nhất.
CREATE VIEW HOADONMAX AS
SELECT MaHD, MaKH NgayHD Tienban Giamgia , , , ,
WHERE Tienban = (SELECT MAX(Tienban ) FROM HOADON);
Trang 16- Tạo View lưu thông tin những mặt hàng có nhiều lượt khách mua nhất
CREATE VIEW HANGHOAMAX AS
SELECT Mahang, Tenhang Donvitinh , , SUM(Soluong ) ASTongSoLuong
INNER JOIN CTHOADON ON HANGHOA Mahang =
GROUP BY Mahang, Tenhang Donvitinh,
HAVING SUM(Soluong ) = SELECT MAX(TongSoLuong ) FROM
ALTER TABLE HANGHOA
ALTER COLUMN Soluong SET DEFAULT 0;
Trang 17- Tạo bổ sung ràng buộc Rule cho cột soluong trong bảng Cthoadon chỉ nhận giá trị
từ 1 đến 20
ALTER TABLE CTHOADON
ADD CONSTRAINT CHK_Soluong CHECK (Soluong >= 1 AND
Trang 18PHẦN 3 TRIGGER V% STORE PROCEDURE
3.1 Thủ tục
- Tạo thủ tục hiển thị thông tin của khách hàng khi biết mã khách hàng.
CREATE PROCEDURE sp_GetCustomerInfoByCode
WHERE MaKH @customer_code = END
- Tạo thủ tục hiển thị thông tin của hóa đơn khi biết mã hóa đơn.
CREATE PROCEDURE sp_GetInvoiceInfoByCode
Trang 19Biết công thức được tính như sau: Tienban=sum(soluong*dongia)
CREATE TRIGGER tinh_tien_ban
AFTER INSERT ON CTHOADON
BEGIN
UPDATE HOADON
WHERE MaHD NEW= MaHD;
END;
- Tạo trigger tính tiền thanh toán mỗi khi sửa thông tin cột giảm giá Biết công thức được tính như sau: Thanhtoan=Tienban-
Tienban*giamgia
CREATE TRIGGER tinh_tien_thanh_toan
AFTER UPDATE OF Giamgia ON HOADON
BEGIN
END;
Trang 20- Tạo trigger kiểm tra ngày hóa đơn trong bảng hóa đơn phải nhỏ hơn hoặc bằng ngày hiện tại khi thêm dữ liệu vào bảng
CREATE TRIGGER kiem_tra_ngay_hoa_don
BEFORE INSERT ON HOADON
BEGIN
'Ngay lap hoa don khong the lon hon ngay hien tai';
END IF;
END;
Trang 21CHƯƠNG 3: KẾT LUẬN
1.1 KẾT QUẢ ĐẠT ĐƯỢC
Quá trình nghiên cứu và thực hiện cài đặt chương trình theo sự khảo sát
và yêu cầu của người dùng đã hoàn thành và đạt một số kết quả sau :
- Hiểu được nghiệp vụ của một trang tin tức
- Thông qua nghiệp vụ kết hợp với mục đích thực hiện tin học hóa,
mô tả chức năng của từng hệ thống, xây dựng hệ quản trị cơ sở sữ liệu
- Xây dựng trương trình theo kết quả thu được qua quá trình khảo sát, phân tích hệ thông và đặc thù giao diện
1.2 HƯỚNG PHÁT TRIỂN
Mặc dù đã rất cố giắng hoàn thiện đồ án với tất cả nỗ lực tuy nhiên đò án
“cơ sở dữ liệu Quản lý bán hàng” chắc chắn không thể tránh khỏi
những thiếu sót chúng em rất mong được sự quan tâm, thông cảm và
nhưng đóng góp của các thầy cô đề đồ án hoàn thiện hơn:
- Tập chung học tập và thu thập tin tức
- Tận dụng hết sức mạnh của SQL sever
- Thành thạo những kỹ năng trong công việc
Mội lần nữa, chúng em xin trân thành cảm ơn và luôn mong sự đóng góp của mọi người
Sau cùng, chúng em xin kính chúc các thầy các cô trong khoa Công Nghệ Thông Tin dồi dào sức khỏe, niềm tin để thực hiện sứ mệnh cao đẹo của mình là truyền đạt kiến thức cho thế hệ mai sau