Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
1,94 MB
Nội dung
TRƯỜNG ĐẠI HỌC GIAO THÔNG VÂN TẢI KHOA CÔNG NGHỆ THƠNG TIN o0o Bài tập lớn mơn học Thiết Kế Cơ Sở Dữ Liệu Giảng viên hướng dẫn: Nguyễn Kim Sao Nhóm thực hiện: Nhóm 12 Lớp: CNTT2 Sinh viên thực hiện: Mai Duy Chinh 201200043 Chu Mạnh Quân 201200292 Nguyễn Minh Quý 201210305 Hoàng Minh Đức 201200087 Trần Đức An 201200005 Nguyễn Quang Huy 201216824 Hà Nội, tháng năm 2022 Lời nói đầu Cơng nghệ thơng tin ngành phát triển mạnh đất nước ta Việc ứng dụng công nghệ thông tin lĩnh vực đời sống nhiều hạn chế Để nâng cao tính ứng dụng cơng nghệ thông tin lĩnh vực kinh doanh dịch vụ, chúng em định chọn đề tài “Xây dựng hệ thống quản lý siêu thị mini” Mục tiêu tập phân tích, thiết kế để xây dựng chương trình quản lý siêu thị với nhiều tính phục vụ cho việc quản lý bán sản phẩm dễ dàng Mục lục I KHẢO SÁT II PHÂN TÍCH THIẾT KẾ Các kiểu thực thể liên kết Mơ hình thực thể liên kết III XÂY DỰNG VÀ QUẢN TRỊ HỆ THỐNG CSDL TRÊN SQL SEVER View Trigger Thủ tục Hàm Câu lệnh điều khiển liệu IV XÂY DỰNG CHƯƠNG TRÌNH KẾT NỐI I KHẢO SÁT Cơ sở thực tế toán quản lý siêu thị mini Siêu thị mơ hình kinh doanh phổ biến Nguồn hàng chủ yếu nhà cung cấp, nhà sản xuất Khách hàng siêu thị chủ yếu người tiêu dùng Siêu thị có đa dạng mặt hàng, sản phẩm Vì cần hệ thống quản lý để giúp cho việc quản lý siêu thị dễ dàng f) Các hoạt động siêu thị gồm nhập hàng vào kho, bán hàng, báo cáo số lượng doanh thu hàng bán a) b) c) d) e) Những nghiệp vụ yếu - - - - Nghiệp vụ quản lý bán hàng: + Xuất hiện: Có khách hàng đến mua hàng + Cách thực hiện: Tính tiền cho khách, lập hóa đơn cập nhật vào CSDL Nghiệp vụ quản lý nhập hàng + Xuất hiện: Khi nhập hàng hóa từ nhà cung cấp + Cách thực hiện: Lập phiếu nhập, lưu thông tin hàng hóa vào CSDL Nghiệp vụ quản lý bảo hành: + Xuất hiện: Khi khách hàng mua sản phẩm có bảo hành từ siêu thị + Cách thực hiện: Lập phiếu bảo hành sản phẩm cập nhật CSDL Nghiệp vụ thống kê tổng hợp: + Xuất hiện: Khi cần thống kê kinh doanh siêu thị + Cách thực hiện: Tính tổng đơn giá nhập bán sản phẩm cập nhật CSDL Khảo sát chung https://forms.gle/cAaqXZVEwKHz9C4e8 Tổng hợp khảo sát: Khảo sát nhân viên https://forms.gle/e8bJyEhpTUBXgXX47 Tổng hợp khảo sát: Khảo sát khách hàng https://forms.gle/cDRpMft6qUExT6va6 Tổng hợp khảo sát: II PHÂN TÍCH THIẾT KẾ Chức Mơ hình thực thể Cách chuyển đổi Chuyển đổi kiểu thực thể, mối liên kết Mô tả cấu trúc liệu bảng: Mơ hình Diagram III XÂY DỰNG VÀ QUẢN TRỊ HỆ THỐNG CSDL TRÊN SQL SEVER 1.View Câu 1: tạo View đưa danh sách nhân viên có ngày vào làm từ năm 2015 trở create view Cau1 as Select TenNV As N'Họ Tên Nhân viên ',MaNV As N'Mã Nhân viên ',DiaChi As N'Địa ',NgayVaoLam As N'Ngày vào làm ' From tNhanVien Where NgayVaoLam>=2015 select * from Cau1 Câu 2: Tạo view đưa khách hang mua ngày ……… create view Cau2 as Select tKhachHang.* from tKhachHang join tHoaDonBan on tKhachHang.MaKH =tHoaDonBan.MaKH Where tHoaDonBan.NgayBan = N'2019-04-12T00:00:00.000' select * from Cau2 Câu 3: Tạo view đưa hang hóa nhập tháng 4/2019 create view Cau3 as select tHangHoa.* from tPhieuNhap join tChiTietPN on tPhieuNhap.MaPN = tChiTietPN.MaPN join tHangHoa on tHangHoa.MaHH = tChiTietPN.MaHH where month(tPhieuNhap.NgayNhap) = and year(tPhieuNhap.NgayNhap) = 2019 select * from Cau3 Câu 4: tạo view đưa danh sách hang hóa hết HSD ### create view Cau4 as Select TenHH As N'Tên hàng hóa ',MaHH As N'Mã hàng hóa ',NSX As N'Ngày sản xuất ' From tHangHoa Where HSD select *from Cau5 Câu 6: Tạo view đưa nhân viên có số lượng xuất lớn create view Cau6 as Select tNhanVien.MaNV, TenNV, DiaChi, DienThoai, count(MaPX) as SoLuongXuat from tNhanVien join tPhieuXuat on tNhanVien.MaNV =tPhieuXuat.MaNV group by tNhanVien.MaNV, TenNV, DiaChi, DienThoai having Count(MaPX) > select * from Cau6 Câu 7: tạo view danh sách hang hóa có nhà cung cấp “Thái Bảo” create view Cau7 as Select tHangHoa.* from tHangHoa join tNhaCungCap on tHangHoa.MaNCC =tNhaCungCap.MaNCC Where tNhaCungCap.TenNCC = N'Thái Bảo' select * from Cau7 Câu 8: Tạo view đưa danh sách hàng hóa có nhóm hàng "thực phẩm" create view Cau8 as Select tHangHoa.* from tHangHoa join tNhomHang on tHangHoa.MaNH =tNhomHang.MaNH Where tNhomHang.TenNH = N'thực phẩm' select * from Cau8 2.Trigger Câu 1: Viết trigger xóa tự động ghi hóa đơn bán khách hàng xóa liệu khách hàng bảng khách hàng go create or alter trigger Cau1_trigger on tkhachhang for delete as begin declare @makh nvarchar(20) select @makh = deleted.MaKH from deleted delete from tChiTietHDB from tChiTietHDB join tHoaDonBan on tChiTietHDB.MaHDB = tHoaDonBan.MaHDB where tHoaDonBan.MaKH = @makh delete from tHoaDonBan where tHoaDonBan.MaKH = @makh en d lỗi Câu 2: Thêm trường đơn giá cho bảng Chi tiết HDB ,Viết trigger cho cập nhập tự động cho bảng alter table tchitietHDB add Dongia int go create or alter trigger Cau2_trigger on tchitiethdb for insert,update as begin declare @mahdb1 nvarchar(20),@mahdb2 nvarchar(20),@mah nvarchar(20),@mah2 nvarchar(20),@dongia1 int,@dongia2 int select @mahdb1 = inserted.MaHDB, @mah = inserted.MaHH from inserted select @mahdb2 = deleted.MaHDB, @mah2 = deleted.MaHH from deleted select @dongia1 = tHangHoa.DonGiaBan from tHangHoa join inserted on inserted.MaHH = tHangHoa.MaHH where inserted.MaHDB = @mahdb1 select @dongia2 = tHangHoa.DonGiaBan from tHangHoa join deleted on deleted.MaHH = tHangHoa.MaHH where deleted.MaHDB = @mahdb2 update tChiTietHDB set Dongia = isnull(Dongia,0)-isnull(@dongia2,0)+isnull(@dongia1,0) where tChiTietHDB.MaHDB = isnull(@mahdb1,@mahdb2) and tChiTietHDB.MaHH = isnull(@mah,@mah 2) end UPDATE tChiTietHDB SET Dongia = '27800' WHERE MaHH ='H01' insert into tChiTietHDB values(N'HDB01',N'H03',7,NULL,NULL) select * from tchitiethdb Câu Thêm trường tổng tiền cho bảng chi tiết HDB ,Viết trigger tự động tính tổng tiền cập nhập Tổng tiền = số lượng * đơn giá alter table tchitiethdb add Tongtien int go create trigger Cau3_trigger on tchitiethdb for insert,update as begin declare @mah nvarchar(20),@shdb nvarchar(20) select @mah = inserted.MaHH, @shdb = inserted.MaHDB from inserted declare @tt int select @tt = inserted.SLBan*tHangHoa.DonGiaBan from inserted join tHangHoa on tHangHoa.MaHH = inserted.MaHH where inserted.MaHDB = @shdb update tChiTietHDB set Tongtien = @tt end Câu 4: Viết trigger gắn với bảng hàng hóa dựa kiện Insert, Update để tự động xếp loại Nhiều hay số lượng hàng hóa , cách thức xếp loại Số lượng >100 nhiều, ngược lại alter table thanghoa add tinhtrang nvarchar(20) create trigger Cau4_trigger on thanghoa for insert,update as begin declare @mah nvarchar(20),@tt nvarchar(20) select @mah = inserted.MaHH from inserted declare @sl int select @sl = inserted.SoLuong from inserted if @sl > 100 set @tt = N'Nhiều' else set @tt = N'Ít' update tHangHoa set TinhTrang = @tt where tHangHoa.MaHH = @mah end Câu 5: Viết Trigger gắn với bảng hàng hóa dựa kiện Insert, Update để tự động cập nhật Ngày sử dụng hàng hóa thêm hay cập nhật hàng hóaNgày cịn sử dụng= HSD – ngày SX alter table thanghoa add Ngayconhsd int create or alter trigger Cau5_trigger on thanghoa for insert,update as begin declare @mah nvarchar(20) select @mah = inserted.MaHH from inserted declare @sn int select @sn = datedif(day,inserted.NSX,inserted.HSD) from inserted update tHangHoa set Ngayconhsd = @sn where tHangHoa.MaHH = @mah en d go insert into tHangHoa values(N'H15',N'Thảm trải nhà quý tộc',N'NSX10','2019-08-11 00:00:00.000','2024-08-11 00:00:00.000',N'NH02',N'NCC05',3000000,4600000,300,NULL,N'Nhiều',NULL) Câu 6: them trường thâm niên cho nhân viên,Viết trigger tự động tính năm thâm niên cho nhân viên Thâm niên = năm- ngày vào làm alter table tnhanvien add Thamnien int create trigger Cau6_trigger on tnhanvien for insert,update as begin declare @mnv nvarchar(20) select @mnv = inserted.MaNV from inserted declare @sn int select @sn = datedif(year,inserted.NgayVaoLam,getdate()) from inserted update tNhanVien set Thamnien = @sn where tNhanVien.MaNV = @mnv end 3.Thủ tục Câu 1: Tạo thủ tục đầu vào ngày bán đầu số lượng hóa đơn bán dc ngày create procedure Cau1_tt(@ngayban datetime, @slban int output) as begin select @slban = count(tChiTietHDB.MaHDB) from tChiTietHDB join tHoaDonBan on tChiTietHDB.MaHDB = tHoaDonBan.MaHDB where NgayBan = @ngayban end declare @slhdban int exec Cau1_tt '2020-01-01', @slhdban output print @slhdban Câu 2: Tạo thủ tục đầu vào mã hàng đầu tên hàng hóa ,nhà sản xuất create procedure Cau2_tt @mah nvarchar(20),@tenh nvarchar(20) output,@tnsx nvarchar(20) output as begin select @tenh = TenHH, @tnsx = tNhaSanXuat.TenNSX from tHangHoa join tNhaSanXuat on tHangHoa.MaNSX = tNhaSanXuat.MaNSX where tHangHoa.MaHH = @mah end declare @tenh nvarchar(20),@tnsx nvarchar(20) exec Cau2_tt'H02',@tenh output,@tnsx output print @tenh print @tnsx Câu 3: Tạo thủ tục đầu vào mã nhân viên đầu số lượng nhập nhân viên create or alter procedure Cau3_tt(@manv nvarchar(20), @slnhap int output) as begin select @slnhap = count(tPhieuNhap.MaPN) from tNhanVien join tPhieuNhap on tNhanVien.MaNV = tPhieuNhap.MaNV where tNhanVien.MaNV = @manv end declare @slnhapvao nvarchar(20) exec Cau3_tt N'NV06', @slnhapvao output print @slnhapvao Câu 4: Tạo thủ tục đầu vào mã khách hàng,ngày bán, đầu số hóa đơn khách hàng create procedure Cau4_tt @makh nvarchar(20),@ngayban datetime, @shd nvarchar(20) output as begin end Câu 5: Tạo thủ tục đầu vào Mã hàng hóa, mã phiếu nhập đầu tên hàng hóa ngày nhập create or alter procedure Cau5_tt @mahh nvarchar(20),@maph nvarchar(20), @tenhh nvarchar(20) output, @ngaynhap datetime output as begin select @tenhh = tHangHoa.TenHH, @ngaynhap = tPhieuNhap.NgayNhap from tHangHoa join tNhaCungCap on tHangHoa.MaNCC = tNhaCungCap.MaNCC join tPhieuNhap on tNhaCungCap.MaNCC = tPhieuNhap.MaNCC where tPhieuNhap.MaPN = @maph and tHangHoa.MaHH = @mahh end declare @tenhh nvarchar(20),@ngaynhap datetime exec Cau5_tt N'H01',N'PN01',@tenhh output,@ngaynhap output print N'Tên hàng hóa: '+cast(@tenhh as nvarchar(20)) print N'Ngày nhập: '+cast(@ngaynhap as nvarchar(20)) Câu 6: Tạo thủ tục đầu vào Mã Hóa đơn đầu tên khách hàng ,sdt khách hàng create procedure Cau6_tt @mahd nvarchar(20), @tenkh nvarchar(20) output,@sdt nvarchar(20) output as begin select @tenkh =tKhachHang.TenKH, @sdt = tKhachHang.DienThoai from tKhachHang join tHoaDonBan on tKhachHang.MaKH = tHoaDonBan.MaKH where tHoaDonBan.MaHDB = @mahd en d declare @tenkh nvarchar(20),@sdt nvarchar(20) exec Cau6_tt N'HDB01',@tenkh output,@sdt output print N'Tên khách hàng: '+cast(@tenkh as nvarchar(20)) print N'SĐT: ' + cast(@sdt as nvarchar(20)) 4.Hàm Câu 1: Tạo hàm với đầu vào năm, đầu danh sách nhân viên vào làm vào năm create function Cau1_h(@nam int) returns table as return( select tNhanVien.* from tNhanVien where year(tNhanVien.NgayVaoLam) = @nam ) select * from Cau1_h(2018) Câu Tạo hàm với đầu vào số thâm niên (số năm làm việc) đầu danh sách nhân viên có thâm niên create function Cau2_h (@tl int) returns table as return( select MaNV, MaCV, TenNV, GioiTinh, NgayVaoLam, DiaChi, DienThoai, DATEDIFF(Year, NgayVaoLam, GetDate()) as ThamLien from tNhanVien where DATEDIFF(Year, NgayVaoLam, GetDate()) = @tl ) select * from Cau2_h('4') Câu Tạo hàm đầu vào chức vụ đầu nhân viên chức vụ create function Cau3_h (@tl nvarchar(20)) returns table as return( select MaNV, tNhanVien.MaCV, TenNV, GioiTinh, NgayVaoLam, DiaChi, DienThoai from tNhanVien join tChucVu on tNhanVien.MaCV = tChucVu.MaCV where TenCV = @tl ) select * from Cau3_h(N'Nhân viên thu ngân') Câu 4: Tạo hàm đầu vào mã khách hàng đầu số lượng hóa đơn khách hàng create function Cau4_h(@tl nvarchar(20)) returns int as begin declare @shd int select @shd= count(tHoaDonBan.MaHDB) from tHoaDonBan where tHoaDonBan.MaKH = @tl return @shd en d print dbo.Cau4_h('KH03') Câu 5: tạo hàm đưa danh sách hàng hóa tồn kho tháng (bán không hết tháng) Câu 6: Tạo hàm đầu vào mã nhóm hàng đầu thơng tin hàng hóa ,ngày sản xuất create or alter function Cau6_h(@tl nvarchar(20)) returns table as return( select TenHH, NSX, TenNH,tNhomHang.MaNH from tHangHoa join tNhomHang on tHangHoa.MaNH = tNhomHang.MaNH Where tNhomHang.MaNH = @tl ) select * from Cau6_h(N'NH04') 5.Câu lệnh điều khiển liệu IV XÂY DỰNG CHƯƠNG TRÌNH KẾT NỐI Chương trình gồm form KẾT LUẬN Tài liệu thao khảo ... chúng em định chọn đề tài “Xây dựng hệ thống quản lý siêu thị mini” Mục tiêu tập phân tích, thiết kế để xây dựng chương trình quản lý siêu thị với nhiều tính phục vụ cho việc quản lý bán sản phẩm... xuất Khách hàng siêu thị chủ yếu người tiêu dùng Siêu thị có đa dạng mặt hàng, sản phẩm Vì cần hệ thống quản lý để giúp cho việc quản lý siêu thị dễ dàng f) Các hoạt động siêu thị gồm nhập hàng... Hàm Câu lệnh điều khiển liệu IV XÂY DỰNG CHƯƠNG TRÌNH KẾT NỐI I KHẢO SÁT Cơ sở thực tế toán quản lý siêu thị mini Siêu thị mơ hình kinh doanh phổ biến Nguồn hàng