数据库实训项目报告.docx
- 文档编号:30623383
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:25
- 大小:1.15MB
数据库实训项目报告.docx
《数据库实训项目报告.docx》由会员分享,可在线阅读,更多相关《数据库实训项目报告.docx(25页珍藏版)》请在冰豆网上搜索。
数据库实训项目报告
数据库实训项目报告
书店数据库管理系统
系别:
班级:
学号:
姓名:
日期:
2011.12.27
一、需求分析与设计
书店数据库管理系统是为方便书店管理员对书店的管理。
1.1具体功能分析
1、书店经营的基础信息,如:
仓库、图书、供应商、业务员信息等是一个书店最基本、最重要的信息,脱离了这些基础信息,书店系统就无法运行。
“信息管理功能”就用于管理这些资料。
“图书信息维护”用于维护(增加、删除、修改、查询)图书的基本信息,内容包括图书编号、书名、作者、出版社、进货价、销售价等,其中设置图书编号是使程序可以通过图书编号方便查询所需的书。
“供应商信息维护”和“业务员信息维护”还有“仓库信息维护”分别维护供应商和销售业务员还有书店仓库的信息,具体的实现功能和和图书信息管理的功能相似。
2、“进书管理功能”用于管理书店的进书业务,在该功能中设置一张进书单表,它可以记录进书业务中涉及到得的所有信息,并发挥进书业务的相应功能。
内容包括进书单编号、图书编号、供应商编号、进书日期、业务员编号、进书数量、费用等。
另外还设置有历史进书管理的功能,用于查看以前进书的相关信息,并将现在的进书单信息归入历史进书管理的相应表中。
3、“售书管理功能”用于管理书店的售书业务,在该功能中设置一张售书单表,它可以记录售书业务中涉及到得的所有信息,并发挥售书业务的相应功能。
另外,此销售单的设置为统计库存与财务发挥了重要作用。
因为书店一般都是零售,所以无需考虑客户,改售书单内容包括售书单编号、图书编号、售书日期、业务员编号、售书数量、销售额等。
另外还设置有历史售书管理的功能,用于查看以前售书的相关信息,并将现在的售书单信息归入历史售书管理的相应表中。
4、“库存管理功能”用于查询书店的库存数量和库存金额,进书或者售书后库存数量和金额相应地增加或减少。
5、“权限管理功能”中主要涉及到用户权限设置,用于查看和修改当前用户的权限。
规定不同的用户对系统拥有不同的使用权限,内容包括用户编号、用户名、密码、权限名称等。
1.2信息需求
1、“图书信息维护”用于维护(增加、修改、查询、删除)图书的基本信息,所涉及到得信息包括图书编号、书名、作者、出版社、进货价、销售价。
2、“供应商信息维护”用于维护供应商的基本信息,涉及到的信息包括供应商编号、供应商名称、地址、电话、银行账号。
3、“业务员信息维护”用于维护书店销售业务人员的基本信息,涉及到的信息包括业务员编号、姓名、性别、年龄、电话。
4、“进书单”用于录入书店进书单,涉及到的信息包括进书单编号、图书编号、供应商编号、进书日期、业务员编号、进书数量、费用等。
5、“售书单”用于录入书店的售书单,涉及到的信息包括售书单编号、图书编号、售书日期、业务员编号、售书数量、销售额等。
因为书店一般都是零售,所以无需考虑客户。
6、“库存查询”用于查询书店的库存数量和金额,涉及到的信息包括仓库号、图书编号、库存数量、库存金额等。
7、“用户权限设置”用于设置各用户信息及使用系统的权限,涉及到的信息包括用户编号、用户名、密码、权限名称等。
8、“仓库信息”用于维护仓库的基本信息,涉及到的信息又仓库编号。
9、一个业务员可以买多种图书,但一种图书只能一个业务员买。
10、一个业务员可以卖多种图书,一种图书也可以多个业务员卖。
1.3功能模块图
根据对书店售书系统的分析,一个书店售书系统应该包括以下几大功能,每个功能都由若干相关联的子功能模块组成。
书店数据库系统功能模块
信息管理功能
进书管理功能
售书管理功能
库存管理功能
系统管理功能
图书信息维护
业务员信息维护
供应商信息维护
库存查询
售书功能
用户权限设置
进书功能
仓库信息维护
用户修改密码
二、概要设计
该书店信息管理系统的E—R图如图所示:
该图所示的书店数据库系统概念结构中,包括了图书、供应商、业务员、仓库、用户信息5个实体。
供应商
供应商编号
名称
电话
地址
银行账号
进书
业务员
业务员编号
性别
姓名
电话
进书单编号
进书日期
进书量
费用
售书
售书单编号
售书日期
售书量
收入
仓库
仓库编号
数量
存储
金额
图书
图书编号
书名
作者
出版社
进价
销售价
用户
用户编号
用户名
密码
权限名称
年龄
图书编号
M
1
M
M
N
N
N
三、详细设计
书店售书系统的数据采用SQLServer数据库来存储,数据库表包括图书信息表、供应商信息表、业务员信息表、用户信息表、进书单、售书单、仓库信息表、库存信息表。
1、图书信息表
图书信息表保存图书的基本信息,内容包括图书编号(同样的书用同一个图书编号,并不是给具体的每本书编号)、书名、作者、出版社、进货价、销售价等,其中图书编号是该表的主键。
图书信息表
字段名称
数据类型
字段长度
允许空
字段含义
bookno
char
18
图书编号,该表的主键
bookname
char
50
√
书名
author
char
40
√
作者
publish
char
60
√
出版社
inprice
int
4
√
进价
outprice
int
4
√
销售价
2、供应商信息表
供应商信息表保存供应商的基本信息,内容包括供应商编号、供应商名称、地址、供应商电话、银行账号等,其中供应商编号是该表的主键。
供应商信息表
字段名称
数据类型
字段长度
允许空
字段含义
providerno
char
14
供应商编号,该表的主键
provider
char
20
√
供应商名称
address
char
80
√
地址
providertel
char
11
√
供应商电话
account
char
18
√
银行账户
3、业务员信息表
业务员信息表用于保存书店销售业务人员的基本信息,内容包括业务员号、姓名、性别、电话、年龄、类别等,其中业务员编号是该表的主键。
从中获取所有业务员的名字作为词典供用户使用。
业务员信息表
字段名称
数据类型
字段长度
允许空
字段含义
operationno
char
8
业务员编号,该表的主键
operationname
char
12
√
业务员姓名
sex
char
2
√
性别
age
char
2
√
年龄
category
char
14
√
类别
operationtel
char
11
√
业务员电话
4、用户信息表
用户信息表用于保存用户的基本信息及其权限分配,内容包括用户编号、用户名、密码、用户权限名称,其中用户编号、用户权限名称是该表的主键。
用户信息表
字段名称
数据类型
字段长度
允许空
字段含义
userno
char
8
用户编号,该表的主键
username
char
12
√
用户名
cipher
char
6
√
用户密码
righ
char
20
用户权限名称,主键
5、进书单信息表
进书单用于录入书店进书单,内容包括进书单编号、图书编号、供应商编号、进书日期、业务员编号、进书数量、费用等。
其中进书单编号是该表的主键,图书编号、供应商编号、业务员编号是该表的外键。
进书单信息表
字段名称
数据类型
字段长度
允许空
字段含义
inno
char
6
进书单编号,该表主键
bookno
char
18
√
图书编号,外键
providerno
char
14
√
供应商编号,外键
indate
char
20
√
进书日期
operationno
char
8
√
业务员编号,外键
inamount
int
4
√
进书数量
fee
int
4
√
费用
6、售书单信息表
售书单用于录入书店售书单,内容包括售书单编号、图书编号、售书日期、业务员编号、售书数量、销售额等。
其中售书单编号是该表的主键,图书编号、业务员编号是该表的外键。
售书单信息表
字段名称
数据类型
字段长度
允许空
字段含义
outno
char
6
售书单编号,该表的主键
bookno
char
18
√
图书编号,外键
outdate
char
20
√
售书日期
operationno
char
8
√
业务员商编号,外键
outamount
int
4
√
售书量
income
int
4
√
收入
7、仓库信息表
仓库信息表用于存放关于仓库的相关信息,内容包括仓库编号,仓库编号就是该表的主键
仓库信息表
字段名称
数据类型
字段长度
允许空
字段含义
storeno
char
6
仓库号,该表的主键
8、库存信息表
库存信息表用于查询书店的库存数量和库存金额,内容包括仓库号、图书编号、库存数量、库存金额等。
其中仓库编号和图书编号是该表的主键。
库存信息表
字段名称
数据类型
字段长度
允许空
字段含义
storageno
char
8
仓库编号,外键
bookno
char
18
√
图书编号,外键
storageamount
char
10
√
库存数量
storagesum
char
10
√
库存金额
四、系统实现和系统测试
1、用SQL语句创建一个名为Book的数据库。
createdatabaseBook
ON
(
name='Book',
filename='E:
\yang\Book.mdf'
)
2、在Book数据库中建立表。
2.1建立图书信息表:
createtablebook
(booknochar(18)primarykey,
booknamechar(50)unique,
authorchar(40),
publishchar(60),
inpriceint,
outpriceint
)
2.2建立供应商信息表
createtableprovider
(providernochar(14)primarykey,
providerchar(20)unique,
addresschar(80),
providertelchar(11),
accountchar(18)
)
2.3建立业务员信息表
createtableoperation
(operationnochar(8)primarykey,
operationnamechar(12)unique,
sexchar
(2),
agechar
(2),
categorychar(14),
operationtelchar(11)
)
2.4建立用户信息表
createtableuserinformation
(usernochar(8),
usernamechar(12),
cipherchar(6),
righchar(20),
primarykey(userno,righ)
)
2.5建立进书单信息表
createtableinbooklist
(innochar(6)primarykey,
booknochar(18),
providernochar(14),
indatechar(20),
operationnochar(8),
inamountint,
feeint,
foreignkey(bookno)referencesbook(bookno),
foreignkey(providerno)referencesprovider(providerno),
foreignkey(operationno)referencesoperation(operationno)
)
2.6建立售书单信息表
createtableoutbooklist
(outnochar(6)primarykey,
booknochar(18),
outdatechar(20),
operationnochar(8),
outamountint,
incomeint,
foreignkey(bookno)referencesbook(bookno),
foreignkey(operationno)referencesoperation(operationno)
)
2.7建立仓库信息表
createtablestore
(storenochar(6)primarykey,
)
2.8建立库存信息表
createtablestorage
(storenochar(6),
booknochar(18),
storageamountchar(10),
storagesumchar(10),
foreignkey(bookno)referencesbook(bookno),
foreignkey(storeno)referencesstore(storeno)
)
3、创建视图
建立book表的视图,显示书的编号、书名、作者、出版社、售价。
便于顾客查看。
createviewbook1
as
selectbookno,bookname,author,publish,outprice
frombook
4、创建存储过程
4.1创建一个名字为yang的存储过程,当输入一个出版社名字,将会出现书店书中这个出版社的书以及书的相关信息。
Ifexists
(SELECTnameFROMsysobjects
WHEREname='yang'ANDtype='p')
DROPPROCEDUREyang
GO
CREATEPROCEDUREyang
@yangvarchar(8)
AS
SELECT*FROMbook
WHEREpublish=@yang
GO
存储过程的测试:
4.2创建一个名字为qin的存储过程,当输入一个进书单编号,将会出现这个进书单相关信息。
Ifexists
(SELECTnameFROMsysobjects
WHEREname='qin'ANDtype='p')
DROPPROCEDUREqin
GO
CREATEPROCEDUREqin
@qinvarchar(8)
AS
SELECT*FROMinbooklist
WHEREinno=@qin
GO
存储过程的测试:
5、创建触发器
建立outbooklist表中的触发器yangqin,在下订单的时候,storage表中的库存的数量及时更新。
createtriggeryangqinonoutbooklistforinsert
asdeclare@booknoint,@numint
select@num=outbooklist.outamountfromoutbooklist
select@bookno=booknofrominserted
updatestorage
setstorageamount=storageamount-@num
wherebookno=@bookno
触发前storage表
触发前outbooklist表
出售单0009
触发后的storage表
五、总结
经过三周的学习,我们最终完成了书店管理系统的设计。
通过此次课程设计我们受益良多。
通过这次课程设计,我明白了理论与实际应用相结合的重要性,掌握并熟练运用SQL语句,提高了我的综合运用所学知识的能力,理解了数据库电脑实用性。
在本次课程设计和过程中,由于时间不是很长,系统需求分析上可能不是很全面,系统中还存在很多缺点。
在书店管理系统设计中出现的问题,都是通过老师和同学帮助解决的,感谢老师和同学给与的帮助。
经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。
希望能在今后的不断的学习中和努力中,把程序做得更好。
最后,再次感谢老师所给我的帮助。
参考文献:
萨师煊、王珊。
数据库系统概论(第四版)北京:
高等教育出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 项目 报告