1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn môn học thiết kế cơ sở dữ liệu cơ sở thực tế bài toán quản lý siêu thị mini

23 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng hệ thống quản lý siêu thị mini
Tác giả Mai Duy Chinh, Chu Mạnh Quân, Nguyễn Minh Quý, Hoàng Minh Đức, Trần Đức An, Nguyễn Quang Huy
Người hướng dẫn Giảng viên Nguyễn Kim Sao
Trường học Trường Đại học Giao thông Vận tải
Chuyên ngành Thiết kế cơ sở dữ liệu
Thể loại Bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 23
Dung lượng 1,84 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

XÂY DỰNG VÀ QUẢN TRỊ HỆ THỐNG CSDL TRÊN SQL SEVER --Câu 1: tạo View đưa ra danh sách nhân viên có ngày vào làm từ năm 2015 trở' đi create view Cau1 as Select TenNV As N'Họ Tên Nhân viên

Trang 1

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:

Trang 2

Lời nói đầu

Công nghệ thông tin là một ngành đang phát triển rất mạnh trên đất nước ta hiện nay Việc ứng dụng công nghệ thông tin trong các lĩnh vực của đời sống còn nhiều hạn chế.

Để nâng cao tính ứng dụng của công nghệ thông tin trong lĩnh vực kinh doanh và dịch

vụ, chúng em đã quyết định chọn đề tài “Xây dựng hệ thống quản lý siêu thị mini” Mục tiêu của bài tập này là phân tích, thiết kế để xây dựng được chương trình quản lý siêu thị với nhiều tính năng phục vụ cho việc quản lý bán các sản phẩm dễ dàng hơn.

Mục lục

I KHẢO SÁT

II PHÂN TÍCH THIẾT KẾ

1 Các kiểu thực thể liên kết

2 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 1 View

2 Trigger

3 Thủ tục

4 Hàm

5 Câu lệnh điều khiển dữ liệu

IV XÂY DỰNG CHƯƠNG TRÌNH KẾT NỐI

Trang 3

I KHẢO SÁT

1 Cơ sở thực tế bài toán quản lý siêu thị mini

a) Siêu thị là mô hình kinh doanh khá phổ biến.

b) Nguồn hàng chủ yếu do các nhà cung cấp, nhà sản xuất.

c) Khách hàng của siêu thị chủ yếu là người tiêu dù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 và 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 và 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 và bán sản phẩm và cập nhật CSDL.

3 Khảo sát chung https://forms.gle/cAaqXZVEwKHz9C4e8

Trang 5

Tổng hợp khảo sát:

Trang 7

4 Khảo sát nhân viên https://forms.gle/e8bJyEhpTUBXgXX47

Trang 8

Tổng hợp khảo sát:

Trang 10

5 Khảo sát khách hàng https://forms.gle/cDRpMft6qUExT6va6

Trang 12

Tổng hợp khảo sát:

Trang 14

II PHÂN TÍCH THIẾT KẾ

1 Chức năng

2 Mô hình thực thể

Trang 15

3 Cách chuyển đổi

4 Chuyển đổi các kiểu thực thể, mối liên kết Mô tả cấu trúc dữ liệu bảng:

Trang 16

5 Mô hình Diagram

III XÂY DỰNG VÀ QUẢN TRỊ HỆ THỐNG CSDL TRÊN SQL SEVER

Câu 1: tạo View đưa ra danh sách nhân viên có ngày vào làm từ năm 2015

trở' đi 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 chỉ' ' NgayVaoLam As N'Ngày vào làm '

From tNhanVien

Where NgayVaoLam>=2015

select * from Cau1

Câu 2: Tạo view đưa ra khách hang mua trong 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 ra hang hóa nhập trong 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) = 4 and year(tPhieuNhap.NgayNhap)

= 2019 select * from Cau3

Câu 4: tạo view đưa ra danh sách hang hóa hêLt 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 sa'n xuâLt ' From tHangHoa

Where HSD <= getdate()

select * from Cau4

Câu 5: Tạo view đưa ra khách hang có sốL hóa đởn lớn

hởn 3 create view Cau5

as

select tHoaDonBan.MaKH, TenKH, DiaChi, DienThoai, GioiTinh, count(MaHDB) as SoLuongHD from tKhachHang join tHoaDonBan on tKhachHang.MaKH = tHoaDonBan.MaKHgroup by tHoaDonBan.MaKH, TenKH, DiaChi, DienThoai,

GioiTinh having count(MaHDB) > 3

Trang 17

select *from Cau5

Câu 6: Tạo view đưa ra nhân viên có sốL lượng xuâLt lớn

hởn 2 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) > 2

select * from Cau6

Câu 7: tạo view danh sách hang hóa có cùng nhà cung câLp

“Thái Ba'o” create view Cau7

as

Select tHangHoa.* from tHangHoa join tNhaCungCap on tHangHoa.MaNCC

=tNhaCungCap.MaNCC Where tNhaCungCap.TenNCC = N'Thái Ba'o'

select * from Cau7

Câu 8: Tạo view đưa ra danh sách hàng hóa có cùng 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

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

end

đang lố̃i

Câu 2: Thêm trường đởn giá cho ba'ng Chi tiêLt HDB ,ViêLt trigger cho cập nhập tự động cho ba'ng này

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

Trang 18

select @mahdb2 = deleted.MaHDB,

@mah2 = deleted.MaHH from deletedselect @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, )+isnull(@dongia1, ) where tChiTietHDB.MaHDB =

isnull(@mahdb1,@mahdb2) and tChiTietHDB.MaHH =

isnull(@mah,@mah2)

end

UPDATE tChiTietHDB

SET Dongia = '27800'

WHERE MaHH ='H01'

insert into tChiTietHDB values(N'HDB01',N'H03', ,NULL,NULL)

select * from tchitiethdb

Câu 3 Thêm trường tố'ng tiê_n cho ba'ng chi tiêt HDB ,ViêLt trigger tự động tính tố'ng tiê_n và cập nhập Tố'ng tiê_n = sốL 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êLt trigger găLn với ba'ng hàng hóa dựa trên sự kiện Insert, Update đê'

tự động xêLp loại Nhiê_u hay ít vê_ sốL lượng hàng hóa , cách thức xêLp loại như SốLlượng >100 là nhiê_u, ngược lại là ít

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

Trang 19

where tHangHoa.MaHH = @mah

end

Câu 5: ViêLt một Trigger găLn với ba'ng hàng hóa dựa trên sự kiện Insert, Update đê' tự động cập nhật Ngày còn sư' dụng cu'a hàng hóa khi thêm mới 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 = datediff(day,inserted.NSX,inserted.HSD) from

inserted update tHangHoa

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 = datediff(year,inserted.NgayVaoLam,getdate()) from

inserted update tNhanVien

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 thu' tục đâ_u vào là mã hàng đâ_u ra là tên hàng hóa ,nhà sa'n xuâLt

create procedure Cau2_tt @mah nvarchar(20),@tenh nvarchar(20) output,@tnsx

nvarchar(20) output as

begin

Trang 20

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

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

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

tHoaDonBan.MaKH where tHoaDonBan.MaHDB = @mahd

Trang 21

end

Trang 22

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 là năm, đâ_u ra là 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 2 Tạo hàm với đâ_u vào là sốL thâm niên (sốL năm làm việc) đâ_u ra là 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 3 Tạo hàm đâ_u vào là chức vụ đâ_u ra là những nhân viên cùng

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 là mã khách hàng đâ_u ra là sốL lượng hóa đởn cu'a kháchhà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

end

print dbo.Cau4_h('KH03')

Câu 5: tạo hàm đưa ra danh sách hàng hóa tố_n kho quá 1 tháng (bán nhưng khống hêLt trong 1 tháng)

Câu 6: Tạo hàm đâ_u vào là mã nhóm hàng đâ_u ra là thống tin hàng hóa ,ngày

sa'n xuâLt create or alter function Cau6_h(@tl nvarchar(20))

returns table

Trang 23

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 dữ liệu

IV XÂY DỰNG CHƯƠNG TRÌNH KẾT NỐI

Chương trình gồm các form

KẾT LUẬN

Tài liệu thao khảo

Ngày đăng: 18/12/2022, 06:24

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w