1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ

57 803 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Định dạng
Số trang 57
Dung lượng 382,61 KB

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

Nội dung

Mục lụcLỜI NÓI ĐẦU3PHẦN 1: THỰC HIỆN ĐỀ TÀI3CHƯƠNG I: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN4CHƯƠNG II: CÀI ĐẶT TRUY XUẤT CƠ SỞ DỮ LIỆU TRONG SQL SERVER 20085I.Tạo cơ sở dữ liệu51.Tạo database52.Nhập dữ liệu vào bảng (dùng lệnh INSERT INTO)93.Mô hình quan hệ cơ sở dữ liệu12II.Các lệnh, thủ tục truy xuất dữ liệu131.Xây dựng khung nhìn VIEW132.Thủ tục lưu trữ163.Trigger194.Giao tác205.Phân quyền22PHẦN 2: BÀI TẬP BẮT BUỘC24KẾT LUẬN57Tài liệu tham khảo57

Trang 1

Hà Nội 12-2012

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

Mục lụ

LỜI NÓI ĐẦU 3

PHẦN 1: THỰC HIỆN ĐỀ TÀI 3

CHƯƠNG I: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN 4

CHƯƠNG II: CÀI ĐẶT TRUY XUẤT CƠ SỞ DỮ LIỆU TRONG SQL SERVER 2008 5

I Tạo cơ sở dữ liệu 5

1 Tạo database 5

2 Nhập dữ liệu vào bảng (dùng lệnh INSERT INTO) 9

3 Mô hình quan hệ cơ sở dữ liệu 12

II Các lệnh, thủ tục truy xuất dữ liệu 13

1 Xây dựng khung nhìn VIEW 13

2 Thủ tục lưu trữ 16

3 Trigger 19

4 Giao tác 20

5 Phân quyền 22

PHẦN 2: BÀI TẬP BẮT BUỘC 24

KẾT LUẬN 57

Tài liệu tham khảo 57

Trang 3

LỜI NÓI ĐẦU

Quản lý một cửa hàng, một công ty, hay một siêu thị là một trong những công việc hết sức phức tạp và khó khăn nếu quản lý bằng tay Chính vì vậy, công nghệ thông tin với những công cụ thích hợp, được phát triển, xây dựng để hỗ trợ cho công tác quản

lý này.

Các công cụ được phát triển để hỗ trợ quản lý hiện nay như về phía cơ sở dữ liệu

có SQL Server 2008, My SQL, Access, Từ các cơ sở dữ liệu xây dựng bằng các hệ quản trị cơ sở dữ liệu trên, ta có thể dễ dàng quản lý các vấn đề đặt ra cho kế toán, quản lý một cửa hàng một doanh nghiệp dựa trên các công cụ có sẵn của hệ quản trị cơ sở dữ liệu, hoặc là sử dụng các ngôn ngữ lập trình khác như VB, C#, VB.NET,… để sử dụng cơ

sở dữ liệu đó.

Hệ quản trị cơ sở dữ liệu SQL Server 2008 là một hệ quản trị cơ sở dữ liệu của hãng Microsoft phát triển Phiên bản này là một trong những phiên bản phổ biến, và được sử dụng nhiều nhất trong các hệ thống quản lý Chính vì vậy, với đề tài được giao,

hệ quản trị cơ sở dữ liệu SQL Server là một trong những công cụ thích hợp và hợp lý.

Đề tài quản lí của chúng em là : “Quản lí hệ thống bán hàng ở siêu thị bán lẻ” Với đề tài này nhóm 13 chúng em chủ yếu nghiên cứu việc bán hàng trong một siêu thị bán lẻ kết hợp với các hàm thủ tục, trigger, phân quyền cho người dùng để tiến hành quản lí siêu thị hợp lí hơn.

Trang 4

PHẦN 1: THỰC HIỆN ĐỀ TÀI

CHƯƠNG I: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN

Hiện nay có rất nhiều các hệ thống siêu thị vừa và nhỏ, với rất nhiều các loại mặt hàng trong đó siêu thị Thành là một trong các siêu thị bán lẻ các loại mặt hàng dân dụng Vấn đề đặt ra đổi với các nhà quản lí của siêu thị đó là làm sao để quản

lí được hệ thống bán hàng trong siêu thị một cách tốt nhất Người ta xây dựng, tổ chức hệ thống thông tin để theo dõi, quản lí hàng hóa và phục vụ việc mua hàng của khách hàng (ở đây chỉ xét bài toán quản lí hàng hóa và bán hàng).

Qua việc tìm hiểu các tài liệu và thông tin trên mạng chúng ta thấy có rất nhiều cách để quản lí việc mua bán trong siêu thị bán lẻ, nhưng với công cụ đắc lực

là SQL SERVER 2008 được sử dụng rất phổ biến và sẽ giúp cho chúng ta quản lí được công việc bán hàng một cách có hệ thống, bảo mật và chặt chẽ nhất

Trong bài toán xây dựng và thiết kế phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ này, chúng em xây dựng mô hình cơ sở dữ liệu Quản lý Siêu thị (QLST) quản lý các thông tin về khách hàng, nhân viên, các mặt hàng và các hóa đơn hàng của khách hàng Cơ sở dữ liệu QLST gồm 8 bảng đưa ra thông tin về các mặt hàng, nhà cung cấp, khách hàng, nhân viên, hóa đơn hàng, và thông tin về các mặt hàng được nhập

Trang 5

CHƯƠNG II: CÀI ĐẶT TRUY XUẤT CƠ SỞ DỮ LIỆU

tạo bảng nhà cung cấp

(nhacc) create table nhacc(

manhacc nvarchar(5) PRIMARY KEY,tennhacc nvarchar(100) NOT NULL,

Trang 6

diachi nvarchar(200) NOT NULL,dienthoai nvarchar(20) NOT NULL)

tạo bảng hàng hóa

(hanghoa) create table hanghoa(

mahang nvarchar(5) PRIMARY KEY,tenhang nvarchar(100) NOT NULL,manhacc nvarchar(5) not null,dvtinh nvarchar(10) NOT NULL,giahang money not null,

khuyenmai real not null,

foreign key(manhacc)

references nhacc(manhacc) )

tạo bảng khách

hàng(khachhang) create table khachhang(

makh nvarchar(5) primary key,tenkh nvarchar(50) not null,diachi nvarchar(100) not null,dienthoai nvarchar(20) not null)

tạo bảng nhân viên

(nhanvien) create table nhanvien(

manv nvarchar(5) primary key,tennv nvarchar(50) not null,ngaysinh datetime not null,diachi nvarchar(100) not null,dienthoai nvarchar(20) not null,luong money not null

tạo bảng hóa đơn

(hoadon) create table hoadon(

mahd nvarchar(5) PRIMARY KEY,ngayhd datetime NOT NULL,makh nvarchar(5) NOT NULL,manv nvarchar(5) NOT NULL,

foreign key(makh)

references khachhang(makh),

foreign key(manv)

references nhanvien(manv))

Trang 7

tạo bảng chi tiết hóa đơn

(cthoadon) create table cthoadon(

mahd nvarchar(5),mahang nvarchar(5),soluong smallint NOT NULL,dongia money not null,

primary key(mahd,mahang),

foreign key (mahd)

references hoadon(mahd),

foreign key(mahang)

references hanghoa(mahang))

tạo bảng phiếu nhập

(pnhap) create table pnhap(

mapn nvarchar(5) PRIMARY KEY,ngaynhap datetime NOT NULL,mahd nvarchar(5),

foreign key(mahd)

references hoadon(mahd))

tạo bảng chi tiết phiếu nhập

(ctpnhap) create table ctpnhap(

mapn nvarchar(5),mahang nvarchar(5),slnhap smallint NOT NULL,dgnhap money not null,

PRIMARY KEY (mapn,mahang),

foreign key (mapn)

references pnhap(mapn),

foreign key(mahang)

references hanghoa(mahang))

GO

Sau khi chạy các câu lệnh, ta được 8 bảng như sau:

a) Bảng nhà cung cấp (nhacc):

Trang 8

b) Bảng hànghóa (hanghoa):

c) Bảng khách hàng (khachhang):

d) Bảng nhân viên (nhanvien):

e) Bảng hóa đơn (hoadon):

f) Bảng chi tiết hóa đơn (cthoadon):

Trang 9

g) Bảng phiếu nhập (pnhap):

h) Bảng chi tiết phiếu nhập (ctpnhap):

2 Nhập dữ liệu vào bảng (dùng lệnh INSERT INTO):

USE QLST

GO

INSERT INTO nhacc VALUES

('CC01','Pham Nguyen','Quan 12 - HCM','0835926885'),

('CC02','Trang Tien','Đong Đa - Ha Noi','0436462740'),

('CC03','Ngoi Sao','Tu Liem - Ha Noi','0462656566'),

('CC04','MASAN Group','Tan Phu - HCM','0438247773')

INSERT INTO hanghoa VALUES

('TL100','Tra lai Tam Chau 100g','CC01','Hop','26900','0'),('KS150','Keo sua Caramen 150g','CC02','Goi','29500','0'),('BG195','Banh gau Koala 195g','CC03','Hop','50200','0'),

Trang 10

INSERT INTO khachhang VALUES

('KH01','Tran Van An','Go Vap - HCM','92857295'),

('KH02','Le My Le','Cau Giay - Ha Noi','57395799'),

('KH03','Nguyen Nhu Ngoc','Tay Ho - Ha Noi','29572935'),('KH04','Hoang Quoc Dat','Quan 1 - HCM','94728947')

INSERT INTO nhanvien VALUES

('NV01','Nguyen Thi Nga','1989-02-18','Binh Thanh -

Sau khi chạy các cậu lệnh chúng ta có thông tin chi tiết trong các bảng như sau:

Các thông tin trong bảng nhà cung cấp:

Trang 11

Các thông tin trong bảng hàng hóa:

Các thông tin trong bảng khách hàng:

Các thông tin trong bảng nhân viên:

Các thông tin trong bảng hóa đơn:

Trang 12

Các thông tin trong bảng chi tiết hóa đơn:

Các thông tin trong bảng phiếu nhập:

Các thông tin trong bảng chi tiết phiếu nhập:

3 Mô hình quan hệ cơ sở dữ liệu

Hình 1: Mô hình quan hệ cơ sở dữ liệu QLSieuThi

Trang 13

II Các lệnh, thủ tục truy xuất dữ liệu

1 Xây dựng khung nhìn VIEW

Một khung nhìn (View) là một tập gồm các dòng và các cột, và có thể được xemnhư là một bảng ảo trong cơ sở dữ liệu có nội dung được định nghĩa thông qua một truyvấn (câu lệnh SELECT)

Dưới đây là một số cậu lệnh minh họa cho view:

a) Tạo view vw_hanghoa gồm mã hàng, tên hàng liệt kê danh sách các mặt hàng trong bảng hanghoa

Sau khi chạy view ta dc bảng sau:

b) Tạo view vw_tt_hanghoa thống kê những mặt hàng nào chưa được mua

GO

Trang 14

Những mặt hàng chưa được mua:

c) Tạo view vw_thongke thống kê trong năm 2000, mỗi mặt hàng trong mỗi tháng vàtrong cả năm bán được với số lượng bao nhiêu

USE QLST

GO

create view vw_thongke

as

select b.mahang, tenhang,

SUM(case MONTH(ngayhd) when 1 then b.soluong else

where YEAR(ngayhd)=2000

GROUP BY b.mahang, tenhang

Trang 15

Thống kê hàng hóa:

d) Tạo view vw_thongke_nhanvien cho biết nhân viên nào của công ty bán được số

lượng hàng nhiều nhất và số lượng hàng bán được của những nhân viên này là baonhiêu

USE QLST

GO

create view vw_thongke_nhanvien

as

select nhanvien.manv, tennv, SUM(soluong) as tonghang

from (nhanvien inner join hoadon

on nhanvien.manv=hoadon.manv)inner join cthoadon

on hoadon.mahd=cthoadon.mahdgroup by nhanvien.manv, tennv

having SUM(soluong)>=ALL(select SUM(soluong)

from (nhanvien inner join hoadon onnhanvien.manv=hoadon.manv)

inner join cthoadon

on hoadon.mahd=cthoadon.mahdgroup by nhanvien.manv, tennv)

GO

Thống kê nhân viên: (nhân viên bán được nhiều hàng nhất)

e) Xóa view vw_hanghoa

DROP view vw_hanghoa

f) Cập nhật dữ liệu vào view vw_bosung_hanghoa

USE QLST

GO

create view vw_bosung_hanghoa

as

Trang 16

select mahang, tenhang, hanghoa.manhacc, dvtinh,giahang, khuyenmai

from hanghoa full outer join nhacc onhanghoa.manhacc=nhacc.manhacc

GO

bổ sung thêm thông tin vào bảng hanghoa

insert into vw_bosung_hanghoa(mahang, tenhang, manhacc,

dvtinh, giahang, khuyenmai)

values ('DBS1', 'Duong sieu sach Bonsu 1kg', 'CC02', 'Goi','21300', '0')

Bảng hàng hóa sau khi cập nhật thông tin:

declare @serrsmg nvarchar(200)

if exists (select mahang from hanghoa where mahang=@smahang)

Trang 17

b) Xây dựng thủ tục nội tại tính số lượng đơn hàng với tên spud_nhap_tongslnhap với hai tham số vào là tenhang, slhoadon, 1 tham số ra là tổng số lượng đã nhập trong

select cthoadon.mahang,tenhang from cthoadon

inner join hanghoa on cthoadon.mahang=hanghoa.mahangorder by cthoadon.mahang

declare @serrsmg varchar(200)

if exists (select tenhang,soluong from hanghoa.cthoadon

where tenhang=@stenhang and soluong=@nsoluong)

begin

set @serrsmg ='tên hàng,tổng số lượng nhập

['+@stenhang+@nsoluong+'] đã có,xin cấp một tên khác,số lượng nhập khác'

raiserror (@serrsmg ,16,2)

return

end

insert cthoadon.hanghoa(mahang,tenhang,soluong)

values(@smahang,@stenhang,@nsoluong)

go

GO

c) Xây dựng thủ tục nội tại thêm mới dữ liệu vào bảng nhacc Trong đó phải kiểm tra các ràng buộc trước khi thực hiện lệnh insert into manhacc phải có trong bảng nhacc

create proc spud_nhacc_insert

select nhacc.manhacc,tennhacc,mahang from hanghoa hh

inner join nhacc on hh.manhacc=nhacc.manhaccorder by nhacc.manhacc

declare @serrsmg varchar(200)

if exists (select tennhacc, manhacc from nhacc.hh

where tennhacc=@stennhacc and manhacc=@smanhacc)

begin

Trang 18

set @serrsmg='tên nhacc, mã

nhacc['+@stennhacc+@smanhacc+']đã có ,xin cấp thêm một tên khác, một mã nhacc khác'

raiserror(@serrsmg,16,2)

return

end

insert into nhacc.hanghoa(manhacc,tennhacc,diachi,dienthoai)

values(@smanhacc,@stennhacc,@sdiachi,@sdienthoai)

go

d) Xây dựng thủ tục sửa đổi hàng hóa trong bảng hanghoa với tên spud_hanghoa_sua

gồm có 4 tham số vào chính là giá trị cần thay đổi Trong thủ tục chỉ thực hiện UPDATE SET để cập nhật dữ liệu

create proc spud_hanghoa_sua

declare @serrsmg nvarchar(200)

if exists (select mahang from hanghoa

where mahang=@smahang)

e) Xây dựng thủ tục hiển thị dữ liệu cho báo cáo hóa đơn Các thông tin trên báo cáo

bao gồm các cột trong bảng hoadon, cthoadon, hanghoa, nhacc Thủ tục có các

tham số để lọc dữ liệu báo cáo theo đúng mã hóa đơn nhập vào, tuy nhiên nếu khigọi thủ tục mà không truyền vào thì xem như hiển thị tất cả các số đặt hàng có trong

hoadon

create proc spud_hoadon_baocaohoadon

@smahd char(4)=null,

@smahang varchar(4),

@stenhang varchar(50)

as

set nocount on

Trang 19

if @smahd is null

select hd.*,ct.mahang,soluong,tennhacc from hoadon hd

inner join cthoadon ct on ct.mahd=hd.mahdinner join hanghoa hh on hh.mahang=ct.mahanginner join nhacc ncc on ncc.manhacc=hh.manhaccorder by ct.mahd, ct.mahang

else

select hd.*,ct.mahang,tenhang,soluong,tennhacc from hoadon hd

inner join cthoadon ct on ct.mahd=hd.mahdinner join hanghoa hh on hh.mahang=ct.mahanginner join nhacc ncc on ncc.manhacc=hh.manhacc where ct.mahd=@smahd

select @mahang=mahang from hanghoa

where mahang in(select mahang from deleted)

set @del_err = @@ERROR

Trang 20

create trigger tg_cthoadon_update

from (deleted inner join inserted on

deleted.mahang=inserted.mahang)

if not exists(select I.mapn from inserted I, pnhap pn

where pn.mapn=I.mapn)

begin

rollback transet @serrmsg='ma phieu nhap hang khong co, nhap lai'raiserror (@serrmsg,16,1)

returnend

Trang 21

raiserror (@serrmsg,16,1)

returnend

a) Giao tác không tường minh

Cập nhật dữ liệu vào bảng nhacc, thêm nhà cung cấp mới

use QLST

go

insert into nhacc

values('CC05','Tien Phat','Go Vap - HCM','29482490')

Trang 22

Sử dụng lệnh begin tran để chỉ định bắt đầu thực hiện giao tác thêm nhà cung cấp

mới vào bảng nhacc

set ansi_warnings off

go

select COUNT(*) as 'tong nha cung cap truoc khi them' fromnhacc

begin tran

insert into nhacc(manhacc,tennhacc,diachi,dienthoai)

values('CC06','Phu Dat','Ba Dinh - Ha Noi','95825689')

select COUNT (*) as 'tong nha cung cap sau khi them trong giaotac' from nhacc

a) Tạo tên đăng nhập (login) và người dùng (user)

− Tạo tên đăng nhập:

CREATE login [nhom13]

with password='1234'

− Tạo tên người dùng:

CREATE user [QLST]

for login [nhom13]

b) Phân quyền cho user 'QLST' thao tác dữ liệu với các bảng

grant all on nhacc to QLST with grant option

grant all on hanghoa to QLST with grant option

grant all on dondh to QLST with grant option

grant all on ctdondh to QLST with grant option

grant all on pnhap to QLST with grant option

grant all on ctpnhap to QLST with grant option

grant all on ctpxuat to QLST with grant option

grant all on pxuat to QLST with grant option

− Thao tác trên cho phép user 'QLST' có thể thực hiện các thao tác như INSERT,UPDATE, trên các bảng thuộc CSDL và được phép phân quyền cho các user khác(phân các quyền được cho)

Trang 23

c) Tạo tài khoản truy nhập(login) và khách hàng(user)

− Tạo tài khoản truy nhập cho khách

CREATE login [khach hang1]

with password='1122'CREATE login [khach hang2]

with password ='3344'

− Tạo một user tương ứng với tài khoản khách

CREATE user [KH01] for login [khach hang1]

CREATE user [KH02] for login [khach hang2]

d) Phân quyền cho khách hàng

− Phân quyền cho user KH01

grant select on hoadon to KH01

grant select on hanghoa to KH01 with grant option

− Người dùng KH01 chuyển tiếp cấp phát quyền cho KH02

grant select on hanghoa to KH02

− Thu hồi quyền đối với khách1

revoke select on hanghoa from KH01 CASCADE

Trang 24

PHẦN 2: BÀI TẬP BẮT BUỘC

Bài 2: Các đối tượng trong cơ sở dữ liệu

Bài 2.1: Tạo database

USE master

GO

IF exists (select * from sysdatabases where name='QLBanHang')

drop database QLBanHangGO

create database QLBanHang

create table vattu(

mavtu nvarchar(4) primary key,

tenvtu nvarchar(100),

dvtinh nvarchar(10),

phantram real,)

create table nhacc(

manhacc nvarchar(3) primary key,

tennhacc nvarchar(100),

diachi nvarchar(200),

dienthoai nvarchar(20),

Trang 25

primary key(sodh),

foreign key(manhacc) references nhacc(manhacc))

create table ctdondh(

sodh nvarchar(4),

mavtu nvarchar(4),

sldat smallint,

primary key(sodh, mavtu),

foreign key (sodh) references dondh(sodh),

foreign key(mavtu) references vattu(mavtu))

create table pnhap(

primary key(sopn,mavtu),

foreign key (sopn) references pnhap(sopn),

foreign key(mavtu)references vattu(mavtu))

create table pxuat(

Trang 26

create table ctpxuat(

sopx nvarchar(4),

mavtu nvarchar(4),

slxuat smallint,

dgxuat money,

primary key(sopx, mavtu),

foreign key(sopx) references pxuat(sopx),

foreign key(mavtu) references vattu(mavtu))

create table tonkho(

primary key(namthang, mavtu),

foreign key(mavtu) references vattu(mavtu))

Trang 28

Bài 2.3: Thêm dữ liệu vào bảng (dùng lệnh insert into)

USE QLBanHang

GO

insert into nhacc

values ('C01','Lê Minh Trí','54 Hậu Giang Q6 HCM','8781024'),

insert into vattu

values ('DD01','Đầu DVD Hitachi 1 đĩa','Bộ','40'),

('TL15','Tủ lạnh Sanio 150 lit','Cái','25'),('TL90','Tủ lạnh Sanio 90 lit','Cái','20'),

insert into dondh

Ngày đăng: 19/04/2016, 22:40

HÌNH ẢNH LIÊN QUAN

Hình 1: Mô hình quan hệ cơ sở dữ liệu QLSieuThi - Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ
Hình 1 Mô hình quan hệ cơ sở dữ liệu QLSieuThi (Trang 11)
Bảng hàng hóa sau khi cập nhật thông tin: - Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ
Bảng h àng hóa sau khi cập nhật thông tin: (Trang 15)
Bảng vattu - Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ
Bảng vattu (Trang 25)
Bảng pxuat - Xây dựng phần mềm quản lý hệ thống bán hàng trong siêu thị bán lẻ
Bảng pxuat (Trang 26)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w