HỆ QUẢN TRỊ CSDL CHƯƠNG TRÌNH QUẢN LÝ BÁN HÀNG CỬA HÀNG ĐIỆN THOẠI Xây dựng chương trình quản lý bán hàng tại cửa hành kinh doanh điện thoại Các bảng tối thiểu cần có: tblDienThoai(Điện thoại), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn), …. (Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế) Yêu cầu cần thực hiện: 1. Xác định các bảng và Tạo CSDL của bài toán (1 điểm): Thực hiện câu lệnh tạo CSDL, tạo bảng và chèn dữ liệu cho bảng, mỗi bảng tối thiểu 5 bản ghi 2. Tạo các view chứa và khai thác CSDL (2 điểm): Tối thiểu 10 view (gồm: Lấy thông tin một bảng, lấy thông tin nhiều bảng, tính toán gom nhóm, …) 3. Tạo và thực thi các thủ tục cho CSDL (2 điểm): Tối thiểu 5 thủ tục (các thủ tục có truyền tham số) 4. Tạo và vận dụng các trigger (2 điểm): Tối thiểu 5 trigger 5. Phân quyền và bảo mật cho CSDL (2 điểm): Tạo tối thiểu 2 người dùng và phân quyền sử dụng cho Bảng, View, Thủ tục đã tạo ở trên
Trang 1TRƯỜNG ĐẠI HỌC ………….
TRUNG TÂM ĐÀO TẠO…….
-CHƯƠNG TRÌNH QUẢN LÝ BÁN HÀNG
CỬA HÀNG ĐIỆN THOẠI
BÁO CÁO BÀI TẬP LỚN MÔN: HỆ QUẢN TRỊ CSDL
Giảng viên hướng dẫn: …
Hà Nội – 2022
Trang 2CHỦ ĐỀ 06
I Đề bài.
- Xây dựng chương trình quản lý bán hàng tại cửa hành kinh doanh điện thoại
- Các bảng tối thiểu cần có: tblDienThoai(Điện thoại), tblKhachHang(Khách hàng),
tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn), ….
(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)
- Yêu cầu cần thực hiện:
1 Xác định các bảng và Tạo CSDL của bài toán (1 điểm): Thực hiện câu lệnh tạo
CSDL, tạo bảng và chèn dữ liệu cho bảng, mỗi bảng tối thiểu 5 bản ghi
2 Tạo các view chứa và khai thác CSDL (2 điểm): Tối thiểu 10 view (gồm: Lấy thông
tin một bảng, lấy thông tin nhiều bảng, tính toán gom nhóm, …)
3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): Tối thiểu 5 thủ tục (các thủ tục có
truyền tham số)
4 Tạo và vận dụng các trigger (2 điểm): Tối thiểu 5 trigger
5 Phân quyền và bảo mật cho CSDL (2 điểm): Tạo tối thiểu 2 người dùng và phân
quyền sử dụng cho Bảng, View, Thủ tục đã tạo ở trên
6 Phân tán (1 điểm): lựa chọn một số bảng bất kỳ, thực hiện phân tán ngang và dọc,
thực hiện các yêu cầu khai thác trên dữ liệu phân tán
II. Yêu cầu chung về quyển báo cáo và chương trình
*Toàn bộ chương trình và file báo cáo BTL được lưu trong thư mục với tên theo
nguyên tắc sau: Nguyên tắc: SQLSERVER-BTL-<thứ tự đề>-<Họ tên
sinh viên>
Ví dụ: SQLSERVER -BTL-01-NguyenVanHung
*Chương trình: Tạo file Query ghi nhận toàn bộ các câu lệnh thực hiện xử lý với CSDL của
bài toám gồm: Tạo cơ sở dữ liệu, tạo và chỉnh sửa các bảng, tạo và kiểm tra các View, tạo
và thực thi các thủ tục Proc, tạo và thực thi các Trigger, tạo người dùng và phân quyền người dùng, ….
1) *Cấu trúc quyển báo cáo:
1 Trang bìa: Tên đề tài, tên nhóm (gồm cả họ tên các thành viên của nhóm), tên lớp.
2 Mục lục.
3 Giới thiệu đề tài.
4 Phát biểu bài toán
5 Mô hình CSDL và tạo CSDL – tạo và chỉnh sửa các bảng
6 Các đối tượng CSDL gồm: View, Proc, Trigger
7 Phân quyền
và bảo mật
CSDL 8 …
9 Kết luận, hướng phát triển tiếp theo
10 Tài liệu tham khảo
Trang 3I PHÁT BIỂU BÀI TOÁN
Quản lý cửa hàng điện thoại gồm các thông tin sau:
Một cửa hàng điện thoại sẽ có nhiều loại điện thoại khác nhau: Mỗi loại điện thoại đều có một mã điện thoại, và là 1 mã duy nhất, kèm theo điện thoại sẽ có các thông tin Tên điện thoại, số lượng trong kho, đơn vị tính, Tên Hãng, và đơn giá bán
Trong cửa hàng sẽ có nhân viên bán và tư vấn điện thoại cho khách hàng: Mỗi nhân viên đều được quản lý theo mã nhân viên, các thông tin của nhân viên gồm tên nhân viên, địa chỉ, số điện thoại, ngày sinh, giới tính đều được quản lý.
Các khách hàng tới mua đều có lưu lại thông tin: Mỗi một khách hàng có một
mã khách hàng, thông tin khách hàng được lưu lưu lại để cho việc CSKH thuận tiện: Tên khách hàng, địa chỉ, số điện thoại, loại khách hàng)
Khi khách hàng mua sản phẩm sẽ có hóa đơn đi kèm, trong hóa đơn có các thông tin người mua (khách hàng), người bán (nhân viên), ngày đặt hàng, và tổng tiền hóa đơn.
II XÁC ĐỊNH CTDL BIỂU DIỄN BÀI TOÁN
Dữ liệu thông tin được lưu vào chương trình
Đối tượng và thông tin cần quản lý:
- tblDienThoai (MaĐT, TenĐT, SoLuong,DVT,TenHang,DonGia)
T Tên thuộc tính Kiểu dữ liệu Ràng Buộc Ghi chú
1 MaĐT Nvarchar(50) PK Mã điện thoại
2 TenĐT Nvarchar(255) Tên điện thoại
tblKhachHang
ST
T Tên thuộc tính Kiểu dữ liệu Ràng Buộc Ghi chú
1 MaKH Nvarchar(50) PK Mã khách hàng
Trang 42 TenKH Nvarchar(255) Tên khách hàng
3 DiaChi Nvarchar(255) Địa chỉ
5 LoaiKH Nvarchar(255) Loại khách hàng
tblNhanVien:
ST
T Tên thuộc tính Kiểu dữ liệu Ràng Buộc Ghi chú
1 MaNV Nvarchar(50) PK Mã nhân viên
2 TenNV Nvarchar(255) Tên nhân viên
3 DiaChi Nvarchar(255) Địa chỉ
6 GioiTinh Nvarchar(4) Giới tính
tblHoaDon
ST
T
Tên thuộc tính Kiểu dữ liệu Ràng Buộc Ghi chú
1 MaHD Nvarchar(50) PK Mã hóa đơn
2 NgayDatHang DateTime Ngày đặt hàng
3 MaKH Nvarchar(50) FK (tham chiếu sang
bảng tblKhachHang) Mã khách hàng
4 MaNV Nvarchar(50) FK (tham chiếu sang
bảng tblNhanVien) Mã nhân viên
tblCTHoaDon
ST
T Tên thuộc tính Kiểu dữ liệu Ràng Buộc Ghi chú
1 MaCTHD Nvarchar(50) PK Mã chi tiết hóa
6 TongThanhTien Float Tổng thành tiền
Trang 6III XÁC ĐỊNH THUẬT TOÁN
Các thuật toán được sử dụng:
Thuật toán tìm kiếm
Thuật toán sắp xếp
IV LẬP TRÌNH – CÀI ĐẶT
Dùng lệnh Create Database + với tên để tạo cơ sở dữ liệu
Dùng lệnh Create Table + Tên để tạo một bảng
Trang 7Dùng lệnh Insert Into để thêm dữ liệu vào bảng
Dùng lệnh Select * From + tên bảng để xem dữ liệu đã thêm vào
Tất cả các bảng khi được tạo xong
Dùng lệnh Create View + tên để tạo view
Trang 8Đây là view danh sách khách hàng
View danh sách nhân viên
View danh sách nhân viên có giới tính là Nam
View danh sách nhân viên có giới tính là Nữ
View danh sách điện thoại theo tên hãng
View danh sách hóa đơn có số tiền trên 10 triệu
View tính tổng số hóa đơn đã lập của từng nhân viên
Trang 9View tính tổng số hóa đơn đã lập của nhân viên trong ngày đã cho
View danh sách khách hàng theo loại khách hàng VIP
View danh sách nhân viên có địa chỉ là HCM
View danh sách nhân viên có năm sinh là 2000
Đây là tất cả các view đã được tạo
Trang 10Dùng lệnh Create Proc + tên để tạo Procedure cho CSDL
Kết quả khi thực hiện: đã thêm được nhân viên có ID là NV0008
Trang 11Proc xóa nhân viên khỏi bảng tblNhanVien
Kết quả sau khi thực hiện: đã xóa đi nhân viên có ID là NV0008
Proc đếm số hóa đơn có tổng tiền lớn hơn hoặc bằng 10 triệu
Kết quả sau khi thực hiện: Sẽ hiển thị ra list hóa đơn và đếm được số hóa đơn
có giá tiền lớn hơn hoặc bằng 10 triệu
Trang 12Tạo Proc để list ra những hóa đơn nào mà nhân viên đó làm theo ID của nhânviên được truyền vào
Kết quả sau khi thực hiện: Sau khi tìm số hóa đơn mà nhân viên có ID làNV0003 thì đã list ra được 2 hóa đơn
Tạo Proc sửa sản phẩm
Trang 13Kết quả sau khi thực hiện: nếu ID truyền vào là đúng thì khi sửa sẽ trả ra thôngbáo sửa thành công và ngược lại.
Trang 14Nếu ID truyền vào sai sẽ báo lỗi không tồn tại
Dùng lệnh Create trigger + tên để tạo một Trigger
Tạo trigger thêm dữ liệu trong bảng chi tiết hóa đơn
VD: nếu SP0001 có số lượng ban đầu là 10 thì khi mua sản phẩm đó với sốlượng là 3 thì sẽ update lại số lượng của SP = 7
Kết quả khi thực hiện: kết quả là bảng sản phẩm ban đầu có số lượng là 10 sẽthay đổi thành 8
Trang 15Tạo trigger cập nhật dữ liệu trong bảng QuanAo
VD: nếu SP0001 là 10 thì khi mua sản phẩm đó với số lượng là 3 thì sẽ updatelại số lượng của SP = 7
Trong trường hợp này là hủy đơn hàng khi không muốn mua hàng nữa thì sốlượng sẽ cập nhật từ 7 thành 10
Kết quả khi thực hiện: bảng sản phẩm ban đầu có số lượng là 6 và bảng chi tiếthóa đơn có ID = CTH04 có số lương =2 Sau khi thực hiện xóa đơn hàng thìbảng sản phẩm sẽ thay đổi số lượng từ 6 -> 8 và hóa đơn kia cũng mất đi
Trang 17Tạo Insert trigger nhằm đảm bảo khi nhập mới thông tin nhân viên bắt buộc phải
nhập những thông tin cần thiết (cách gọi khác là Validation)
Kết quả sau khi thực hiện: Khi thêm mới nhân viên mà để trống dữ liệu bắtbuộc thì sẽ báo lỗi như hình bên dưới
Tạo trigger sửa thông tin khách hàng có ràng buộc địa chỉ:
Kết quả đạt được: thêm mới một sản phẩm mới trùng tên với sản phẩm có trước
đó sẽ báo lỗi ‘Sản phẩm đã tồn tại’
Trang 18Tạo trigger đếm số lượng giới tính nam và nữ của nhân viên khi thực hiện thao
Kết quả sau khi thực hiện: khi thêm mới một nhân viên thì sẽ list ra tổng sốlượng giới tính nam & nữ có trong dữ liệu
Tạo Account và phân quyền
Tạo 2 account Login: 2 account này chỉ đăng nhập được nhưng không cho phépxem CSDL
Trang 19Sử dụng account Duy123 để đăng nhập và truy cập vào csdl đã tạo nó sẽ báo lỗi
Đây là cách tạo account có quyền cao nhất
Dùng account adminlogin có quyền cao nhất để đăng nhập thì sẽ truy cập đượcvào database, thao tác được table, view và proc đã tạo
Trang 20Tạo user
Tạo 2 user từ Login User này chỉ thao tác được với 1 bảng và 1 view cho phép
Trang 21Đây là account Thanh có user là Thanh0 Account này chỉ thao tác được vớibảng QuanAo Khi chọn bảng này nó sẽ báo lỗi vì không có quyền select bảng
Trang 22Tạo account Duytest123 để thao tác update trên view Vì chỉ cấp quyền để thaotác với view nên ở phần table sẽ không tác động được
Tạo Database Diagrams:
Trong cơ sở dữ liệu chuột phải vào Database Diagrams -> chọn New Database Diagram
Hộp thoại thông báo hiện lên và chọn Yes
Trang 23Chọn tất cả các bảng sau đó chọn Add
Kết quả sau khi tạo Databsae Diagrams