数据库课程设计--图书管理系统_第1页
数据库课程设计--图书管理系统_第2页
数据库课程设计--图书管理系统_第3页
数据库课程设计--图书管理系统_第4页
数据库课程设计--图书管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、滨海学院数据库课程设计目 录1概述11.1设计背景及目的11.2设计范围及相关领域11.3预期结果及意义22需求分析22.1功能需求22.2数据流图及数据字典33概念结构设计43.1局部设计43.2整体设计74逻辑结构设计74.1逻辑结构设计的含义74.2关系模式的转换及规范化85物理结构设计85.1物理结构设计的含义85.2数据表96数据库实施106.1建立实例数据库106.2加载数据及运行测试147数据库的运行和维护197.1安全性与完整性197.3监测和改善数据库性能218结论221概述1.1设计背景及目的随着信息技术的迅猛发展,计算机技术的日渐成熟,科学技术的力量已经得到了最广大人民在

2、思想上的认可。尤其是计算机的有效利用,在当今社会各行各业的各个方面起到了越来越重要的作用。书店管理也是一样,特别是大中型书店,信息管理也越是显得尤为重要。如果没有一个好的书店管理系统,对于书店的经营是非常不利的。在信息时代,传统的书店管理方式必然被计算机为基础的信息管理系统所取代。因为作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着人工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高书店管理的效率。为了跟上信息时代的步伐,数字化书店管理系统的出现将是必然。它将为人民的生活提供更好的帮助。根据所学知识,创建一个小型

3、书店管理系统,为书店管理人员提供更为便捷的管理方式,提高书店运行的效率,同时也为读者提供方便。本系统主要是改善对书店管理者、供应商以及客户之间的繁琐的管理方式,不过,界面美化还需改善。1.2设计范围及相关领域本管理系统的设计主要针对书店管理人员在购书和租、售书方面的管理。而设计主要涉及数据库方面的知识,对于界面的创建、美化等可以运用Dreamweaver、VB或者C#等方面的知识进行扩充。设计分析与研究小型书店管理系统主要用于书店的管理,主要包括以下几种基本表:图书信息表:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等;供应商信息表:供应商名称、地址、电话,联

4、系人等;客户信息表:客户编号、名称、年龄、性别、累计购书金额等;销售信息表:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。本书店管理系统则主要依赖以上几个表,而这几个表也反映出了本系统所要实现的基本功能。但要实现本系统的各项功能,则还要考虑其他很多方面,如开发环境、应用环境等等。我主要运用SQL server 2008来创建本数据库。SQL Server 2008 Developer Edition(32 位和 64 位)Developer Edition 使开发人员可以在 SQL Server 上生成任何类型的应用程序。它包括 SQL Server 2008 Enterpris

5、e Edition 的所有功能,但有许可限制,只能用于开发和测试系统,而不能用作生产服务器。Developer Edition 是独立软件供应商 (ISV)、咨询人员、系统集成商、解决方案供应商以及创建和测试应用程序的企业开发人员的理想选择。Microsoft SQL Server 2008 是一个完整的商务智能 (BI) 平台,其中为用户提供了可用于构建典型和创新的分析应用程序所需的各种特性、工具和功能。1.3预期结果及意义基本实现基本表中所有的功能,保证基本安全性能的有效性。符合本次课程设计的基本要求。我认为有两方面的意义:一是通过书店管理系统的设计,进一步加深自己对数据库的认识,熟悉数据

6、库的基本操作,理论联系实际。二是运用书店管理系统,排出了一系列不必要的繁琐步骤,节省时间,将极大地提高书店管理人员的工作效率,方便了人们。2需求分析2.1功能需求对于书店管理系统,书店管理人员可以对图书的进与出进行管理,与此同时,读者也可以对要阅读的书进行查询。本系统的查询操作主要包括:(1)查询当月书店销售金额、营业金额;(2)查询某种图书库存数量;(3)查询当月销量最好的图书信息;(4)按供应商名称查询订购信息;(5)查询购买次数超过3次的客户信息。 本管理系统可以及时更新信息,保证数据的准确性。2.2数据流图及数据字典. (1) 数据流图2-2-1数据流图(2) 数据字典表2-3-1 数

7、据字典表数据流名含义说明组成图书图书信息分类编号、名称、作者、出版社等供应商供应商信息名称、联系人、电话、地址等客户客户信息编号、姓名、性别、年龄等供应供应信息图书分类编号、供应商名称、订购时间、数量、单价、金额等销售销售信息图书分类编号、客户编号、销售数量、单价、时间等3概念结构设计概念结构设计就是将需求分析得到的用户需求抽象为信息结构。3.1局部设计(1)图书E-R图:图3-1-1(2)供应商E-R图:图3-1-2(3)客户E-R图:图3-1-3(4)供应E-R图:图3-1-4(5)销售E-R图:图3-1-5-1图3-1-5-23.2整体设计图3-2-14逻辑结构设计4.1逻辑结构设计的含

8、义数据库逻辑设计就是将概念模型转换成特定的DBMS所支持的数据库模型的过程。逻辑结构设计一般分为三步进行:(1)从E-R图向关系模式转化数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中实体、实体的属性和实体之间的联系转化为关系模式(2) 数据模型的优化数据库逻辑设计的结果并不是唯一的,为了提高数据库应用系统的性能,还应该适当的修改数据模型的结构,提高查询速度。(3) 关系视图的设计关系视图的设计又叫外模式设计,也叫用户模式设计,是用户可以直接访问的书记模式。4.2关系模式的转换及规范化图书信息(图书名称、供应商名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名

9、称)供应商信息(供应商名称、地址、电话,联系人)客户信息(客户编号、图书名称、名称、年龄、性别)销售信息(销售图书名称、客户编号、客户名称、销售单价、数量、时间、金额)带有下划线的表示主键。通过分析以上模式的转换,可以将部分信息属性细化,重新划分属性分布,组建新的信息表,可以减少冗余,使结构更加简洁。以下是经过规范化后的关系模式:图书信息(图书分类编号、图书名称、出版社名称、作者名称)供应商信息(供应商名称、地址、电话,联系人)供应信息(图书分类编号、供应商名称、订购时间、订购数量、金额、订购单价)客户信息(客户编号、名称、年龄、性别)销售信息(图书分类编号、客户编号、销售单价、数量、时间、金

10、额等)其他销售信息(图书分类编号、销售月份、销售总量)5物理结构设计5.1物理结构设计的含义对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为数据库物理结构设计。数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。5.2数据表(1)图书表(BD)表5-2-1 BD表字段名字段类型约束控制字段含义说明B_identifierchar(8)主键非空约束图书分类编号B_namevarchar(50) 非空约束书名B_authervarchar(20) 非

11、空约束作者B_publishVarchar(50) 非空约束出版社(2)供应商表(GD)表5-2-2 GD表字段名字段类型约束控制字段含义说明providervarchar(50)主键非空约束供应商名称addressvarchar(50) 非空约束地址linkmanvarchar(20) 非空约束联系人telephonebigint 电话(3)供应表(BGD)表5-2-3 BGD表字段名字段类型约束控制字段含义说明B_identifierchar(8)主键非空约束图书分类编号providervarchar(50)主键非空约束供应商名称order_countint 非空约束订购数量order_t

12、imesmalldatatime 非空约束订购时间order_pricesmallmoney 非空约束订购单价order_moneysmallmoney 非空约束订购金额(4)客户表(CD)表5-2-4 CD表字段名字段类型约束控制字段含义说明C_identifierchar(8)主键非空约束客户编号C_namevarchar(20) 非空约束客户姓名C_sexchar(2) 默认“男”性别C_ageint 年龄(5)销售表(BCD)表5-2-5 BCD表字段名字段类型约束控制字段含义说明B_identifierchar(8)主键非空约束图书分类编号C_identifierchar(8)主键非

13、空约束客户编号sell_countint 非空约束销售数量sell_time_yearint 非空约束销售时间年sell_time_monint 非空约束销售时间月sell_time_dayint非空约束销售时间日sell_pricesmallmoney非空约束销售单价sell_moneysmallmoney非空约束销售金额(6)销售单表(BSD)表5-2-6 BSD表字段名字段类型约束控制字段含义说明B_identifierchar(8)非空约束图书分类编号sell_time_monint 非空约束销售时间月sell_countsint 非空约束销售总数6数据库实施6.1建立实例数据库6.1

14、.1创建一个书店数据库BSCREATE DATABASE BS ON ( NAME = BS_data, FILENAME ='D:BSdata.mdf', SIZE = 10, MAXSIZE = 100, FILEGROWTH = 10)LOG ON ( NAME =BS_log, FILENAME = 'D:BSdata.ldf', SIZE = 5, MAXSIZE = 25, FILEGROWTH =5)6.1.2创建各种数据表(1)创建图书信息表(BD表)create table BD(B_identifier char(8)not null con

15、straint B_prim primary key,B_name varchar(50)not null,B_auther varchar(20)not null,B_publish varchar(50)not null)(2)创建供应商信息表(GD表)create table GD(provider varchar(50)not null constraint G_prim primary key,address varchar(50),linkman varchar(20),telephone bigint not null )(3)创建供应信息表(BGD表)create table

16、BGD(B_identifier char(8) not null constraint fk_bd_bgd foreign key references bd(b_identifier),provider varchar(50)not null,constraint BGD_Prim primary key(B_identifier,provider),order_count int not null constraint CK_BGD check(order_count>=0),order_time smalldatatime not null,order_price smallmo

17、ney not null,order_money smallmoney not null)(4)创建客户信息表(CD表)create table CD(C_identifier char(8)not null constraint C_prim primary key,C_name varchar(20),C_sex char(2) not null default'男',C_age int constraint C_age_Chk check(C_age between 1 and 100)(5)创建销售信息表(BCD表)create table BCD(B_identifi

18、er char(8)not null constraint fk_bd_bcd foreign key references bd(b_identifier),C_identifier char(8)not null,constraint BCD_Prim primary key(B_identifier,C_identifier),sell_count int not null,sell_time_year int not null,sell_time_mon int not null,sell_time_day int not null,sell_price smallmoney not

19、null,sell_money smallmoney not null)(6)创建销售单表(BSD表)create table BSD(B_identifier char(8)not null constraint fk_bd_bsd foreign key references bd(b_identifier),sell_time_mon int not null,sell_counts int not null constraint CK_BSD check(sell_counts>=0)(7)各表之间的联系6.2加载数据及运行测试6.2.1加载数据(1) 图书信息表(BD表)ins

20、ert into BD(B_identifier,B_name,B_auther,B_publish)values ('00001','计算机操作系统(第三版)','张默','电子工业出版社')insert into BD(B_identifier,B_name,B_auther,B_publish)values ('00002','数据库原理(第二版)','汤默','清华大学出版社')insert into BD(B_identifier,B_name,B_auth

21、er,B_publish)values ('00003','Java面向对象编程','杨默','人民邮电出版社')insert into BD(B_identifier,B_name,B_auther,B_publish)values ('00004','计算机网络','单默','西安电子科技大学出版社')insert into BD(B_identifier,B_name,B_auther,B_publish)values ('00005','

22、;七龙珠','斯默','电子工业出版社')(2)供应商信息表(GD表)insert into GD(provider,address,linkman,telephone)values ('电子工业出版社','北京市七八街','赵六'insert into GD(provider,address,linkman,telephone)values ('清华大学','北京市五六街','王五'insert into

23、GD(provider,address,linkman,telephone)values ('人民邮电出版社','北京市三四街','李四'insert into GD(provider,address,linkman,telephone)values ('西安电子科技大学','北京市一二街','张三'(3)供应信息表(BGD表)insert into BGD(B_identifier,provider,order_count,order_time,

24、order_price,order_money)values ('00001','电子工业出版社',20,'2009-11-12',20,400)insert into BGD(B_identifier,provider,order_count,order_time,order_price,order_money)values ('00002','清华大学',20,'2009-11-15',30,600)insert into BGD(B_identifier,provider,order_coun

25、t,order_time,order_price,order_money)values ('00003','人民邮电出版社',20,'2009-11-20',50,1000)insert into BGD(B_identifier,provider,order_count,order_time,order_price,order_money)values ('00004','西安电子科技大学',20,'2009-11-22',40,800)insert into BGD(B_identifier,p

26、rovider,order_count,order_time,order_price,order_money)values ('00005','电子工业出版社',20,'2009-11-23',30,600)通过上述方式继续输入其他三个表信息,截图如下:(4)客户信息表(CD表)(5)销售信息表(BCD表)(6)销售单表(BSD表)6.2.2运行测试(1)查询某月书店销售金额及营业总额查询7月份书店销售金额:select sum(sell_money)as '当月收入'from BCDwhere sell_time_mon=7se

27、lect sum(sell_money)as'总收入'from BCD(2)查询某种图书库存数量查询编号是00002的图书库存数量:select order_countfrom BGDwhere B_identifier='00002'(3)查询某月销售最好的图书信息查询7月份销售最好的图书信息:select BD.B_identifier,B_name,B_auther,B_publish,sell_countsfrom BD,BSDwhere BD.B_identifier=BSD.B_identifiergroup by BD.B_identifier,B

28、_name,B_auther,B_publish,sell_countshaving max(sell_counts)=(select max(sell_counts)from BSDgroup by sell_time_monhaving sell_time_mon=7)(4)按供应商名称查询订购信息查询供应商名为电子工业出版社的订购信息:select*from BGDwhere provider='电子工业出版社'(5)查询订购次数超过3(包括3)次的客户信息select CD.C_identifier,C_name,C_sex,C_agefrom CD,BCDwhere

29、CD.C_identifier=BCD.C_identifiergroup by CD.C_identifier,C_name,C_sex,C_agehaving count(CD.C_identifier)>=37数据库的运行和维护7.1安全性与完整性7.1.1安全性数据库的安全性是指保护数据库以防止非法使用造成的数据泄漏、更改或破坏。我们可以通过创建服务器登入账号来实现其安全性。如:创建了一个名为“mch”的登陆账号,其密码为000000,与BS数据库相连EXEC sp_addLogin 'mch','000000','BS',NULL

30、EXEC sp_adduser 'mch'为登陆账号“mch”设置一个名为“mch”的数据库用户账号,设置为db_owner角色。EXEC sp_adduser 'mch','mch','db_owner'7.1.2完整性数据库的完整性是之保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效的操作。而实施数据库完整性的方法有五种:约束、默认值、规则、存储过程和 触发器。(1)约束约束是SQL Server自动强制数据库完整性的方式,约束定义了列中允许的取值。(2)默认值默认是向用户输入记录时没有指定具体数据的

31、列中自动插入的数据。(3)规则规则是数据库对存储在表中的列或用户自定义数据类型中的值的规定和限制。(4)存储过程存储过程是存储在SQL Server数据库中的一种编译对象,它是一组为了完成特定功能的SQL语句集,这些SQL语句集经编译后存储在数据库中,可以被客户机管理工具、应用程序、其他存储过程调用,同时可以传递参数。如:创将一个存储过程,该存储过程可以从数据表CD中查询所有男性客户的信息。create procedure messageasselect *from CDwhere C_sex='男'(5)触发器触发器是一种特殊类型的存储过程,它主要是通过事件进行触发而被执行的

32、,而存储过程可以通过存储过程名字被直接调用。如:在表BCD上创建一个插入触发器,当插入数据时,同时修改表BGD中数据。create trigger bcd_bgdon bcdfor insertasupdate bgdset order_count=order_count-(select sell_count from inserted)where(B_identifier=(select B_identifier from inserted)在表BCD上创建一个插入触发器,当插入数据时,同时修改表BSD中数据。create trigger bcd_bsdon bcdfor insertasupdate bsdset sell_counts=sell_counts+(select sell_count from inserted)where(B_identifier=(select B_identifier from inserted) and sell_time_mon=(select sell_time_mon from inserted)在表BCD上创建一个删除触发器,当删除数据时,同时修改表BGD中数据。create trigger bcd_bg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论