Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 150 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
150
Dung lượng
4,31 MB
Nội dung
BỘ TÀI CHÍNH TRƯỜNG ĐẠI HỌC TÀI CHÍNH – MARKETING KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN MÔN HỌC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đề tài: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART Giảng viên hướng dẫn: ThS Nguyễn Thị Minh Hương Sinh viên thực 1: Lương Thúy Hòa MSSV: 1921006696 Sinh viên thực 2: Nguyễn Võ Quốc Huy MSSV: 1921006708 Lớp học phần: 2111112005505 TP HCM, tháng 12 năm 2021 BỘ TÀI CHÍNH TRƯỜNG ĐẠI HỌC TÀI CHÍNH – MARKETING KHOA CƠNG NGHỆ THƠNG TIN BÁO CÁO ĐỒ ÁN MÔN HỌC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đề tài: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART Giảng viên hướng dẫn: ThS Nguyễn Thị Minh Hương Sinh viên thực 1: Lương Thúy Hòa MSSV: 1921006696 Sinh viên thực 2: Nguyễn Võ Quốc Huy MSSV: 1921006708 Lớp học phần: 2111112005505 TP HCM, tháng 12 năm 2021 NHẬN XÉT CỦA GIẢNG VIÊN - Điểm số: - Điểm chữ: TP Hồ Chí Minh, Ngày … tháng 12 năm 2021 Giảng viên (Kí ghi rõ họ tên) Nguyễn Thị Minh Hương i LỜI CẢM ƠN Đầu tiên, cho em gởi lời cảm ơn đến thầy cô, người mang đến cho em đề tài này, hội để thân em nói riêng bạn sinh viên khoa Công Nghệ Thông Tin nói chung có dịp vận dụng kiến thức học trường vào thực tiễn Em xin chân thành cảm ơn giúp đỡ thầy cô trường Đại Học Tài Chính Marketing Nhất thầy khoa Công Nghệ Thông Tin Cho em gởi lời cảm ơn đến cô Nguyễn Thị Minh Hương người tận tính giúp đỡ, hướng dẫn cách thực đề tài em để em hoàn thành đề tài Và gởi lời cảm ơn đến bạn nhiệt huyết giúp đỡ, nhận xét, đóng góp ý kiến cho thời gian thực đề tài Mặc dù cố gắng tìm tịi học hỏi thiếu xót điều khơng thể tránh khỏi, mong nhận xét góp ý thầy bạn bè Một lần xin cảm ơn thầy cô bạn bè ! Sinh viên thực Lương Thúy Hòa - Nguyễn Võ Quốc Huy ii DANH MỤC TỪ VIẾT TẮT IIS Internet Information Server RDBMS Relational Database Management System CSDL Cơ sở liệu iii DANH MỤC THUẬT NGỮ ANH – VIỆT Stored Procedure Thủ tục Function Hàm Trigger Ràng buộc User Người dùng Database Cơ sở liệu Very Large Database Environment Môi trường sở liệu lớn E-Commerce Server Thương mại điện tử Relational Database Management System Cơ sở liệu quan hệ iv DANH MỤC BẢNG Trang Bảng 3.1: Bảng thực thể thuộc tính .16 Bảng 3.2: Bảng ràng buộc toàn vẹn miền giá trị 22 Bảng 3.3: Bảng ràng buộc toàn vẹn liên bộ, liên thuộc tính 23 Bảng 3.4: Ràng buộc toàn vẹn phụ thuộc tồn .23 Bảng 3.5: Ràng buộc toàn vẹn liên thuộc tính – liên quan hệ 24 Bảng 3.6: Bảng ràng buộc toàn vẹn liên - liên quan hệ .24 Bảng 3.7: Bảng chức vụ 25 Bảng 3.8: Bảng nhân viên 25 Bảng 3.9: Bảng khách hàng 26 Bảng 3.10: Bảng nhà cung cấp .27 Bảng 3.11: Bảng loại hàng 27 Bảng 3.12: Bảng mặt hàng 27 Bảng 3.13: Bảng phiếu nhập 28 Bảng 3.14: Bảng phiếu xuất 29 Bảng 3.15: Bảng hóa đơn 29 Bảng 3.16: Bảng phiếu kiểm kê 30 Bảng 3.17: Bảng chi tiết phiếu nhập .30 Bảng 3.18: Bảng chi tiết phiếu xuất 31 Bảng 3.19: Bảng chi tiết hóa đơn 31 v DANH MỤC HÌNH ẢNH Trang Hình 3.1: Quan hệ Nhân viên Chức vụ .18 Hình 3.2: Quan hệ Nhân viên Phiếu nhập 18 Hình 3.3: Quan hệ Nhân viên Phiếu xuất 18 Hình 3.4: Quan hệ Nhân viên Hóa đơn .18 Hình 3.5: Quan hệ Nhân viên Phiếu kiểm kê 19 Hình 3.6: Quan hệ Khách hàng Hóa đơn 19 Hình 3.7: Quan hệ Mặt hàng Phiếu Nhập 19 Hình 3.8: Quan hệ Mặt hàng Phiếu xuất 19 Hình 3.9: Quan hệ Mặt hàng Hóa đơn 20 Hình 3.10: Quan hệ Mặt hàng Phiếu kiểm kê 20 Hình 3.11: Quan hệ Mặt hàng Loại hàng 20 Hình 3.12: Quan hệ Nhà cung cấp Mặt hàng 20 Hình 3.13: ERD – Entity Relationship Diagram 21 Hình 3.14: Dữ liệu bảng nhân viên .32 Hình 3.15: Dữ liệu bảng nhân viên .33 Hình 3.16: Dữ liệu bảng khách hàng 33 Hình 3.17: Dữ liệu bảng nhà cung cấp 34 Hình 3.18: Dữ liệu bảng loại hàng .34 Hình 3.19: Dữ liệu bảng mặt hàng .35 Hình 3.20: Dư liệu bảng phiếu nhập .35 Hình 3.21: Dữ liệu bảng phiếu xuất 36 vi Hình 3.22: Dữ liệu bảng hố đơn 36 Hình 3.23: Dữ liệu bảng phiếu kiểm kê 37 Hình 3.24: Dữ liệu bảng chi tiết phiếu nhập 37 Hình 3.25: Dữ liệu bảng chi tiết phiếu xuất 38 Hình 3.26: Dữ liệu bảng chi tiết hố đơn 38 Hình 3.27: Dữ liệu bảng chi tiết phiếu kiểm kê 39 Hình 3.28: Lược đồ sở liệu 39 Hình 4.1: Kết ví dụ Create .41 Hình 4.2: Kết ví dụ Create .42 Hình 4.3: Kết ví dụ Create .42 Hình 4.4: Kết ví dụ Alter .43 Hình 4.5: Kết ví dụ Alter .43 Hình 4.6: Kết ví dụ Alter .44 Hình 4.7: Kết ví dụ Drop .44 Hình 4.8: Kết ví dụ Drop .44 Hình 4.9: Kết ví dụ Drop .45 Hình 4.10: Kết ví dụ Select 45 Hình 4.11: Kết ví dụ Select 46 Hình 4.12: Kết ví dụ Select 46 Hình 4.13: Kết ví dụ Select 47 Hình 4.14: Kết ví dụ Select 47 Hình 4.15: Kết ví dụ Select 48 Hình 4.16: Kết ví dụ Select 49 Hình 4.17: Kết ví dụ Select 49 vii Hình 4.18: Kết ví dụ Select 50 Hình 4.19: Kết ví dụ 10 Select 50 Hình 4.20: Kết ví dụ Update 51 Hình 4.21: Kết ví dụ Update 51 Hình 4.22: Kết ví dụ Update 51 Hình 4.23: Kết ví dụ Update 52 Hình 4.24: Kết ví dụ Update 52 Hình 4.25: Kết ví dụ Delete 52 Hình 4.26: Kết ví dụ Delete 53 Hình 4.27: Kết ví dụ Delete 53 Hình 4.28: Kết ví dụ Delete 54 Hình 4.29: Kết ví dụ Delete 55 Hình 4.30: Kiểm thử ví dụ Cursor .56 Hình 4.31: Kết ví dụ Cursor 56 Hình 4.32: Kiểm thử ví dụ Cursor .57 Hình 4.33: Kết ví dụ Cursor 57 Hình 4.34: Kiểm thử ví dụ Cursor .58 Hình 4.35: Kết ví dụ Cursor 59 Hình 4.36: Kiểm thử ví dụ Cursor .60 Hình 4.37: Kết ví dụ Cursor 60 Hình 4.38: Kiểm thử ví dụ Cursor .61 Hình 4.39: Kết ví dụ Cursor 62 Hình 4.40: Kiểm thử ví dụ Cursor .63 Hình 4.41: Kết ví dụ Cursor 63 viii ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART WHERE MaMH = :NEW.MaMH; IF(v_soluongton 0) THEN RAISE_APPLICATION_ERROR(-20000, 'Mã phiếu kiểm kễ ' || :NEW.MaPKK || ' tồn !'); END IF; END; Kiểm thử: INSERT INTO PhieuKiemKe VALUES ('VINKK00007', 'VINTK0004', TO_DATE('2020-10-19', 'YYYY/MM/DD'), N'NULL'); Kết quả: Hình 4.1: 4.3.5.4 Kết ví dụ Trigger Ví dụ Kiểm tra ngày vào làm nhân viên không lớn ngày thêm hay cập nhật vào bảng "Nhân viên" Cú pháp: CREATE OR REPLACE TRIGGER Trigger_4 BEFORE INSERT OR UPDATE ON NhanVien FOR EACH ROW BEGIN IF(:NEW.NgayVaoLam > SYSDATE) THEN RAISE_APPLICATION_ERROR(-20000, 'Ngày vào làm không lớn ngày !'); SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 117 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART END IF; END; Kiểm thử: INSERT INTO NhanVien VALUES ('VINQL0006', N'QL', N'Nguyễn Võ Quốc Huy', N'Nữ', N'685/81 XVNT P.26 Q.Bình Thạnh', '0929 218 039', TO_DATE('2022-06-30', 'YYYY/MM/DD')); Kết quả: Hình 4.1: 4.3.5.5 Kết ví dụ Trigger Ví dụ Giảm số lượng tồn quầy bảng "Mặt hàng" thêm vào bảng "Chi tiết hóa đơn" Cú pháp: CREATE OR REPLACE TRIGGER Trigger_5 BEFORE INSERT ON ChiTietHoaDon FOR EACH ROW BEGIN UPDATE MatHang SET SoLuongTon = SoLuongTon - :NEW.SoLuongBan WHERE MaMH = :NEW.MaMH; IF(SQL%ROWCOUNT = 0) THEN RAISE_APPLICATION_ERROR(-20000, 'Thêm chi tiết hoá đơn ' || :NEW.MaHD || ' thất bại !'); SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 118 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART END IF; DBMS_OUTPUT.PUT_LINE('Thêm chi tiết hoá đơn ' || :NEW.MaHD || ' thành công !'); END; Kiểm thử: INSERT INTO ChiTietHoaDon VALUES ('VINHD00020','VINMH10009 ',60,9100); Kết quả: Hình 4.1: 4.3.5.6 Kết ví dụ Trigger Ví dụ Số lượng nhập không lớn 1000 thêm hay cập nhật vào bảng "Chi tiết phiếu nhập" Cú pháp: CREATE OR REPLACE TRIGGER Trigger_6 BEFORE INSERT OR UPDATE ON ChiTietPhieuNhap FOR EACH ROW BEGIN IF(:NEW.SoLuongNhap > 1000) THEN RAISE_APPLICATION_ERROR(-20000, 'Số lượng nhập không lớn 1000 !'); END IF; END; SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 119 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART Kiểm thử: INSERT INTO ChiTietPhieuNhap VALUES ('VINPN00019','VINMH10019 ',1200,20000); Kết quả: Hình 4.1: 4.3.5.7 Kết ví dụ Trigger Ví dụ Thơng báo cho người dùng mua mặt hàng số lượng bán lớn số lượng tồn bảng "Mặt hàng" thêm hay cập nhật vào bảng "Chi tiết hóa đơn" Cú pháp: CREATE OR REPLACE TRIGGER Trigger_7 BEFORE INSERT ON ChiTietHoaDon FOR EACH ROW DECLARE v_soluongton NUMBER; BEGIN SELECT SoLuongTon INTO v_soluongton FROM MatHang WHERE MaMH = :NEW.MaMH; IF(v_soluongton < :NEW.SoLuongBan) THEN RAISE_APPLICATION_ERROR(-20000, 'Không thể mua mặt hàng ' || :NEW.MaMH || ' số lượng tồn không đủ !'); SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 120 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART END IF; DBMS_OUTPUT.PUT_LINE('Mua mặt hàng ' || :NEW.MaMH || ' thành công !'); END; Kiểm thử: INSERT INTO ChiTietHoaDon VALUES ('VINHD00008','VINMH10008 ',1500,20000); Kết quả: Hình 4.1: 4.3.5.8 Kết ví dụ Trigger Ví dụ Kiểm tra số lượng bán bảng "Chi tiết hóa đơn" khơng nhỏ Cú pháp: CREATE OR REPLACE TRIGGER Trigger_8 BEFORE INSERT OR UPDATE ON ChiTietHoaDon FOR EACH ROW BEGIN IF(:NEW.SoLuongBan SYSDATE) THEN RAISE_APPLICATION_ERROR(-20000, 'Ngày lập phiếu nhập không lớn ngày !'); END IF; END; Kiểm thử: INSERT INTO PhieuNhap VALUES ('VINPN00021', 'VINTK0002', TO_DATE('2022-10-01', 'YYYY/MM/DD'), N'NULL'); Kết quả: SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 122 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART Hình 4.1: Kết ví dụ Trigger 4.3.5.10 Ví dụ 10 Thông báo người sử dụng mặt hàng không tồn thêm cập nhật vào bảng "Chi Tiết Hóa đơn" Cú pháp: CREATE OR REPLACE TRIGGER Trigger_10 BEFORE INSERT OR UPDATE ON ChiTietHoaDon FOR EACH ROW DECLARE v_count NUMBER; BEGIN SELECT COUNT(*) INTO v_count FROM MatHang WHERE MaMH = :NEW.MaMH; IF(v_count < 1) THEN RAISE_APPLICATION_ERROR(-20000, 'Mặt hàng ' || :NEW.MaMH || ' không tồn !'); END IF; DBMS_OUTPUT.PUT_LINE('Thêm chi tiết hoá đơn ' || :NEW.MaHD || ' thành công !'); END; Kiểm thử: SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 123 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART INSERT INTO ChiTietHoaDon VALUES ('VINHD00015','VINMH10030 ',70,146700); Kết quả: Hình 4.1: Kết ví dụ 10 Trigger 4.4 Câu lệnh DCL 4.4.1 Tạo User 4.4.1.1 Tạo user cho quản lý Cú pháp: CREATE USER QuanLy IDENTIFIED BY quanly123; Kết quả: Hình 4.1: 4.4.1.2 Kết tạo user quản lý Tạo user cho nhân viên Cú pháp: CREATE USER NhanVien IDENTIFIED BY nhanvien123; Kết quả: Hình 4.1: Kết tạo user nhân viên SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 124 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART 4.4.2 Grant 4.4.2.1 Gán quyền kết nối database cho user Quản lý: GRANT CREATE SESSION TO QuanLy; Hình 4.1: Kết cho phép user quản lý kết nối với database Nhân viên: GRANT CREATE SESSION TO NhanVien; Hình 4.2: 4.4.2.2 Kết cho phép user nhân viên kết nối với database Gán quyền xem truy xuất liệu bảng Quản lý: GRANT SELECT ANY TABLE TO QuanLy; Hình 4.1: Gán quyền truy xuất lieu cho user quản lý Nhân viên: GRANT SELECT ANY TABLE TO NhanVien; SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 125 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART Hình 4.2: 4.4.2.3 Gán quyền truỳ xuất liệu cho user nhân viên Gán quyền thêm liệu bảng Quản lý: GRANT INSERT ANY TABLE TO QuanLy; Hình 4.1: Gán quyền thêm liệu cho user quản lý Nhân viên: GRANT INSERT ANY TABLE TO NhanVien; Hình 4.2: 4.4.2.4 Gán quyền thêm liệu cho user nhân viên Gán quyền xoá liệu bảng GRANT DELETE ANY TABLE TO QuanLy; Hình 4.1: Gán quyền xoá liệu cho user quản lý SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 126 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART 4.4.2.5 Gán quyền sửa liệu bảng GRANT UPDATE ANY TABLE TO QuanLy; Hình 4.1: Gán quyền sửa liệu cho user quản lý 4.4.3 Revoke 4.4.3.1 Thu hồi quyền truy xuất liệu bảng Quản lý: REVOKE SELECT ANY TABLE FROM QuanLy; Hình 4.1: Thu hồi quyền truy xuất liệu cho user quản lý Nhân viên: REVOKE SELECT ANY TABLE FROM NhanVien; Hình 4.2: 4.4.3.2 Thu hồi quyền truy xuất liệu cho user nhân viên Thu hồi quyền thêm liệu bảng Quản lý: REVOKE INSERT ANY TABLE FROM QuanLy; SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 127 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART Hình 4.1: Thu hồi quyền thêm liệu cho user quản lý Nhân viên: REVOKE INSERT ANY TABLE FROM NhanVien; Hình 4.2: 4.4.3.3 Thu hồi quyền thêm liệu cho user nhân viên Thu hồi quyền xố liệu bảng REVOKE DELETE ANY TABLE FROM QuanLy; Hình 4.1: 4.4.3.4 Thu hồi quyền xoá liệu cho user quản lý Thu hồi quyền sửa liệu bảng REVOKE UPDATE ANY TABLE FROM QuanLy; Hình 4.1: Thu hồi quyền sửa liệu cho user quản lý SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 128 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART CHƯƠNG 5: KẾT LUẬN 5.1 Kết đạt - Thiết kế sở liệu phục vụ cho việc lưu trữ thông tin hoạt động bán hàng siêu thị - Tìm hiểu số nghiệp vụ bán hàng siêu thị - Tìm hiểu khái niệm Oracle Database - Tìm hiểu cách sử dụng Oracle Database - Sử dụng thành thạo câu lệnh DDL, DML, PL/SQL DCL 5.2 Hạn chế - Chỉ tìm hiểu số nghiệp vụ bán hàng siêu thị - Do tìm hiểu hoạt động bán hàng siêu thị trang mạng nên việc thiết kế - sở liệu cịn tồn số chỗ khơng so với thực tế - Tìm hiểu câu lệnh DCL hạn chế 5.3 Hướng phát triển - Nghiên cứu thêm nghiệp vụ bán hàng siêu thị - Nghiên cứu kĩ thuật truy vấn liệu nâng cao - Nghiên cứu cách xử lý trigger nâng cao - Nghiên cứu thêm cách viết câu lệnh DCL SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 129 ĐỀ TÀI: QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG SIÊU THỊ VINMART TÀI LIỆU THAM KHẢO [1] Nguyễn Thị Minh Hương, Tập giảng Hệ Quản Trị Cơ Sở Dữ Liệu [2] Lê Thị Kim Thoa, Tập giảng Hệ Quản Trị Cơ Sở Dữ Liệu [3] Vũ Thị Thanh Hương, Tập giảng Cơ Sở Dữ Liệu SINH VIÊN THỰC HIỆN: LƯƠNG THÚY HÒA – NGUYỄN VÕ QUỐC HUY TRANG 130