数据库课程设计--图书管理系统
更新时间:2024-04-20 06:36:01 阅读量: 综合文库 文档下载
目 录
1概述 ......................................................................................................................................... 1 1.1设计背景及目的 .............................................................................................................. 1 1.2设计范围及相关领域 ...................................................................................................... 1 1.3预期结果及意义 .............................................................................................................. 2 2需求分析 ................................................................................................................................. 2 2.1功能需求 .......................................................................................................................... 2 2.2数据流图及数据字典 ...................................................................................................... 3 3概念结构设计 ......................................................................................................................... 3 3.1局部设计 .......................................................................................................................... 4 3.2整体设计 .......................................................................................................................... 7 4逻辑结构设计 ......................................................................................................................... 7 4.1逻辑结构设计的含义 ...................................................................................................... 7 4.2关系模式的转换及规范化 .............................................................................................. 8 5物理结构设计 ......................................................................................................................... 8 5.1物理结构设计的含义 ...................................................................................................... 8 5.2数据表 .............................................................................................................................. 9 6数据库实施 ........................................................................................................................... 10 6.1建立实例数据库 ............................................................................................................ 10 6.2加载数据及运行测试 .................................................................................................... 14 7数据库的运行和维护 ........................................................................................................... 19 7.1安全性与完整性 ............................................................................................................ 19 7.3监测和改善数据库性能 ................................................................................................ 21 8结论 ....................................................................................................................................... 22
滨海学院数据库课程设计
1概述
1.1设计背景及目的
随着信息技术的迅猛发展,计算机技术的日渐成熟,科学技术的力量已经得到了最广大人民在思想上的认可。尤其是计算机的有效利用,在当今社会各行各业的各个方面起到了越来越重要的作用。书店管理也是一样,特别是大中型书店,信息管理也越是显得尤为重要。如果没有一个好的书店管理系统,对于书店的经营是非常不利的。在信息时代,传统的书店管理方式必然被计算机为基础的信息管理系统所取代。因为作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着人工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高书店管理的效率。为了跟上信息时代的步伐,数字化书店管理系统的出现将是必然。它将为人民的生活提供更好的帮助。
根据所学知识,创建一个小型书店管理系统,为书店管理人员提供更为便捷的管理方式,提高书店运行的效率,同时也为读者提供方便。
本系统主要是改善对书店管理者、供应商以及客户之间的繁琐的管理方式,不过,界面美化还需改善。
1.2设计范围及相关领域
本管理系统的设计主要针对书店管理人员在购书和租、售书方面的管理。而设计主要涉及数据库方面的知识,对于界面的创建、美化等可以运用Dreamweaver、VB或者C#等方面的知识进行扩充。
设计分析与研究
小型书店管理系统主要用于书店的管理,主要包括以下几种基本表:图书信息表:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等;供应商信息表:供应商名称、地址、电话,联系人等;客户信息表:客户编号、名称、年龄、性别、累计购书金额等;销售信息表:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。
本书店管理系统则主要依赖以上几个表,而这几个表也反映出了本系统所要实现的
1
滨海学院数据库课程设计
基本功能。但要实现本系统的各项功能,则还要考虑其他很多方面,如开发环境、应用环境等等。我主要运用SQL server 2008来创建本数据库。
SQL Server 2008 Developer Edition(32 位和 64 位)
Developer Edition 使开发人员可以在 SQL Server 上生成任何类型的应用程序。它包括 SQL Server 2008 Enterprise Edition 的所有功能,但有许可限制,只能用于开发和测试系统,而不能用作生产服务器。Developer Edition 是独立软件供应商 (ISV)、咨询人员、系统集成商、解决方案供应商以及创建和测试应用程序的企业开发人员的理想选择。Microsoft SQL Server 2008 是一个完整的商务智能 (BI) 平台,其中为用户提供了可用于构建典型和创新的分析应用程序所需的各种特性、工具和功能。
1.3预期结果及意义
基本实现基本表中所有的功能,保证基本安全性能的有效性。符合本次课程设计的基本要求。
我认为有两方面的意义:一是通过书店管理系统的设计,进一步加深自己对数据库的认识,熟悉数据库的基本操作,理论联系实际。二是运用书店管理系统,排出了一系列不必要的繁琐步骤,节省时间,将极大地提高书店管理人员的工作效率,方便了人们。
2需求分析
2.1功能需求
对于书店管理系统,书店管理人员可以对图书的进与出进行管理,与此同时,读者也可以对要阅读的书进行查询。本系统的查询操作主要包括:
(1)查询当月书店销售金额、营业金额; (2)查询某种图书库存数量; (3)查询当月销量最好的图书信息; (4)按供应商名称查询订购信息; (5)查询购买次数超过3次的客户信息。
本管理系统可以及时更新信息,保证数据的准确性。
2
滨海学院数据库课程设计
2.2数据流图及数据字典
. (1) 数据流图
供应商销售管理图书管理客户管理供应商管理(2) 数据字典
表2-3-1 数据字典表 数据流名 含义说明 图书 供应商 客户 供应 图书信息 供应商信息 客户信息 供应信息 组成 分类编号、名称、作者、出版社等 名称、联系人、电话、地址等 编号、姓名、性别、年龄等 图书分类编号、供应商名称、订购时间、数量、单价、金额等 销售
书 店书的管理读者2-2-1数据流图
其它处理销售信息 图书分类编号、客户编号、销售数量、单价、时间等 3概念结构设计
概念结构设计就是将需求分析得到的用户需求抽象为信息结构。
3
滨海学院数据库课程设计
3.1局部设计
(1)图书E-R图:
出版社名图称书作者名称管图书分类理编号图书名称图3-1-1
(2)供应商E-R图:
供应商名称供应地址商管理电话联系人图3-1-2
(3)客户E-R图:
4
滨海学院数据库课程设计
4)供应E-R图:5)销售E-R图:客户编号客户客户姓名管理客户年龄客户性别图3-1-3
图书分类编号订购数量供应订购单价管理订购金额供应商名称订购时间图3-1-4
5
(
(
滨海学院数据库课程设计
客户编号图书分类编号销售销售金额管理销售单价销售数量销售时间图3-1-5-1
其他图书分类编号销售销售月份管理销售总数量图3-1-5-2
6
滨海学院数据库课程设计
3.2整体设计
名称电话联系人地址供应商m供应订购单价数量订购时间其他销售销售总数量n分类编号出版社图书作者名称销售单价1性别n销售1客户编号姓名销售数量销售时间金额年龄
图3-2-1
4逻辑结构设计
4.1逻辑结构设计的含义
数据库逻辑设计就是将概念模型转换成特定的DBMS所支持的数据库模型的过程。 逻辑结构设计一般分为三步进行: (1)从E-R图向关系模式转化
数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中实体、实体的属性和实体之间的联系转化为关系模式
(2) 数据模型的优化
数据库逻辑设计的结果并不是唯一的,为了提高数据库应用系统的性能,还应该适
7
滨海学院数据库课程设计
当的修改数据模型的结构,提高查询速度。
(3) 关系视图的设计
关系视图的设计又叫外模式设计,也叫用户模式设计,是用户可以直接访问的书记模式。
4.2关系模式的转换及规范化
图书信息(图书名称、供应商名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称)
供应商信息(供应商名称、地址、电话,联系人) 客户信息(客户编号、图书名称、名称、年龄、性别)
销售信息(销售图书名称、客户编号、客户名称、销售单价、数量、时间、金额) 带有下划线的表示主键。
通过分析以上模式的转换,可以将部分信息属性细化,重新划分属性分布,组建新的信息表,可以减少冗余,使结构更加简洁。
以下是经过规范化后的关系模式:
图书信息(图书分类编号、图书名称、出版社名称、作者名称) 供应商信息(供应商名称、地址、电话,联系人)
供应信息(图书分类编号、供应商名称、订购时间、订购数量、金额、订购单价) 客户信息(客户编号、名称、年龄、性别)
销售信息(图书分类编号、客户编号、销售单价、数量、时间、金额等) 其他销售信息(图书分类编号、销售月份、销售总量)
5物理结构设计
5.1物理结构设计的含义
对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为数据库物理结构设计。数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。实现的是数据库系统的
8
滨海学院数据库课程设计
内模式,它的质量直接决定了整个系统的性能。
5.2数据表
(1)图书表(BD)
表5-2-1 BD表 字段名 B_identifier B_name B_auther B_publish (2)供应商表(GD) 字段名 provider address linkman telephone (3)供应表(BGD) 字段名 B_identifier provider order_count order_time order_price order_money (4)客户表(CD) 字段名 C_identifier C_name C_sex C_age 9
字段类型 char(8) varchar(50) varchar(20) Varchar(50) 约束控制 主键非空约束 非空约束 非空约束 非空约束 字段含义说明 图书分类编号 书名 作者 出版社 表5-2-2 GD表 字段类型 varchar(50) varchar(50) varchar(20) bigint 约束控制 主键非空约束 非空约束 非空约束 表5-2-3 BGD表 字段类型 char(8) varchar(50) int smalldatatime smallmoney smallmoney 约束控制 主键非空约束 主键非空约束 非空约束 非空约束 非空约束 非空约束 字段含义说明 图书分类编号 供应商名称 订购数量 订购时间 订购单价 订购金额 字段含义说明 供应商名称 地址 联系人 电话 表5-2-4 CD表 字段类型 char(8) varchar(20) char(2) int 约束控制 主键非空约束 非空约束 默认“男” 字段含义说明 客户编号 客户姓名 性别 年龄
滨海学院数据库课程设计
(5)销售表(BCD)
表5-2-5 BCD表 字段名 B_identifier C_identifier sell_count sell_time_year sell_time_mon sell_time_day sell_price sell_money (6)销售单表(BSD)
表5-2-6 BSD表
字段名 B_identifier sell_time_mon sell_counts 字段类型 char(8) int int 约束控制 非空约束 非空约束 非空约束 字段含义说明 图书分类编号 销售时间月 销售总数 字段类型 char(8) char(8) int int int int smallmoney smallmoney 约束控制 主键非空约束 主键非空约束 非空约束 非空约束 非空约束 非空约束 非空约束 非空约束 字段含义说明 图书分类编号 客户编号 销售数量 销售时间年 销售时间月 销售时间日 销售单价 销售金额 6数据库实施
6.1建立实例数据库
6.1.1创建一个书店数据库BS
CREATE DATABASE [BS] ON (
NAME = BS_data,
FILENAME ='D:\\BSdata.mdf', SIZE = 10, MAXSIZE = 100, FILEGROWTH = 10 ) LOG ON
10
滨海学院数据库课程设计
(
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 constraint 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 )
11
滨海学院数据库课程设计
(3)创建供应信息表(BGD表) create table 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 smallmoney 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)
12
滨海学院数据库课程设计
)
(5)创建销售信息表(BCD表) create table BCD (
B_identifier 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 null, sell_money smallmoney not null
)
(6)创建销售单表(BSD表) create table BSD (
13
滨海学院数据库课程设计
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表)
insert 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_auther,B_publish) values ('00003','Java面向对象编程','杨默','人民邮电出版社')
14
滨海学院数据库课程设计
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','七龙珠','斯默','电子工业出版社')
(2)供应商信息表(GD表)
insert into GD(provider,address,linkman,telephone)
values ('电子工业出版社','北京市七八街','赵六',15212345674) insert into GD(provider,address,linkman,telephone) values ('清华大学','北京市五六街','王五',15212345673) insert into GD(provider,address,linkman,telephone)
values ('人民邮电出版社','北京市三四街','李四',15212345672) insert into GD(provider,address,linkman,telephone)
values ('西安电子科技大学','北京市一二街','张三',15212345671)
(3)供应信息表(BGD表)
insert into BGD(B_identifier,provider,order_count,order_time,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_count,order_time,order_price,order_money)
15
滨海学院数据库课程设计
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,provider,order_count,order_time,order_price,order_money) values ('00005','电子工业出版社',20,'2009-11-23',30,600)
通过上述方式继续输入其他三个表信息,截图如下: (4)客户信息表(CD表)
(5)销售信息表(BCD表)
(6)销售单表(BSD表)
16
滨海学院数据库课程设计
6.2.2运行测试
(1)查询某月书店销售金额及营业总额 查询7月份书店销售金额: select sum(sell_money)as '当月收入' from BCD
where sell_time_mon=7 select sum(sell_money)as'总收入' from BCD
(2)查询某种图书库存数量
查询编号是00002的图书库存数量: select order_count from BGD
where B_identifier='00002'
(3)查询某月销售最好的图书信息
17
滨海学院数据库课程设计
查询7月份销售最好的图书信息:
select BD.B_identifier,B_name,B_auther,B_publish,sell_counts from BD,BSD
where BD.B_identifier=BSD.B_identifier
group by BD.B_identifier,B_name,B_auther,B_publish,sell_counts having max(sell_counts)= (select max(sell_counts) from BSD
group by sell_time_mon having sell_time_mon=7)
(4)按供应商名称查询订购信息
查询供应商名为电子工业出版社的订购信息: select* from BGD
where provider='电子工业出版社'
(5)查询订购次数超过3(包括3)次的客户信息 select CD.C_identifier,C_name,C_sex,C_age from CD,BCD
where CD.C_identifier=BCD.C_identifier group by CD.C_identifier,C_name,C_sex,C_age having count(CD.C_identifier)>=3
18
滨海学院数据库课程设计
7数据库的运行和维护
7.1安全性与完整性
7.1.1安全性
数据库的安全性是指保护数据库以防止非法使用造成的数据泄漏、更改或破坏。 我们可以通过创建服务器登入账号来实现其安全性。如:
创建了一个名为“mch”的登陆账号,其密码为000000,与BS数据库相连 EXEC sp_addLogin 'mch','000000','BS',NULL EXEC sp_adduser 'mch'
为登陆账号“mch”设置一个名为“mch”的数据库用户账号,设置为db_owner角色。
EXEC sp_adduser 'mch','mch','db_owner' 7.1.2完整性
数据库的完整性是之保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效的操作。而实施数据库完整性的方法有五种:约束、默认值、规则、存储过程和 触发器。
(1)约束
约束是SQL Server自动强制数据库完整性的方式,约束定义了列中允许的取值。 (2)默认值
默认是向用户输入记录时没有指定具体数据的列中自动插入的数据。
(3)规则
规则是数据库对存储在表中的列或用户自定义数据类型中的值的规定和限制。 (4)存储过程
19
滨海学院数据库课程设计
存储过程是存储在SQL Server数据库中的一种编译对象,它是一组为了完成特定功能的SQL语句集,这些SQL语句集经编译后存储在数据库中,可以被客户机管理工具、应用程序、其他存储过程调用,同时可以传递参数。如:
创将一个存储过程,该存储过程可以从数据表CD中查询所有男性客户的信息。 create procedure message as select * from CD where C_sex='男'
(5)触发器
触发器是一种特殊类型的存储过程,它主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字被直接调用。如:
在表BCD上创建一个插入触发器,当插入数据时,同时修改表BGD中数据。 create trigger bcd_bgd on bcd for insert as update bgd
set order_count=order_count-(select sell_count from inserted) where(B_identifier=(select B_identifier from inserted))
在表BCD上创建一个插入触发器,当插入数据时,同时修改表BSD中数据。 create trigger bcd_bsd on bcd for insert as update bsd
set sell_counts=sell_counts+(select sell_count from inserted)
20
滨海学院数据库课程设计
where(B_identifier=(select B_identifier from inserted)
and sell_time_mon=(select sell_time_mon from inserted))
在表BCD上创建一个删除触发器,当删除数据时,同时修改表BGD中数据。 create trigger bcd_bgd1 on bcd for delete as update bgd
set order_count=order_count+(select sell_count from deleted) where(B_identifier=(select B_identifier from deleted))
在表BCD上创建一个删除触发器,当删除数据时,同时修改表BSD中数据。 create trigger bcd_bsd1 on bcd for delete as update bsd
set sell_counts=sell_counts-(select sell_count from deleted) where(B_identifier=(select B_identifier from deleted)
and sell_time_mon=(select sell_time_mon from deleted))
7.3监测和改善数据库性能
通过调试,发现该系统还有很多不足之处,有很多功能并没有很好的实现,而且各个表之间的联系还是比较少。我认为销售和供应这两个表还可以细化,再分成多个小表,分别记入信息,加强表与表之间的关联,减小冗余。像供应和销售信息表,我们可以把订购总金额、订购时间及销售总金额、销售时间等信息分别再做一张表,细化他们的功能。同时,在触发器的创建方面也要加大设计力度,方便管理者管理,我在该系统中只是简单的创建了四个触发器,主要关联图书数量方面的信息。我觉得该系统还可以在销售金额与销售总金额等方面再创建几个触发器,这样将很好的改善数据库的性能,极大地提高管理者的效率。
21
滨海学院数据库课程设计
在本系统中并没有对登入介面及登入管理这几方面进行设计,我相信,如果再加上登入介面这几方面的设计,实现人性化登入,那么,该小型书店管理系统将会变得更加成熟、实用。
8结论
通过本次小型书店管理系统的设计,我对数据库这门课程有了更深刻的认识,同时,对SQL Server的功能更加了解,对其使用也更加熟练。在设计的过程中,我学到了很多,但最重要的是我学会了如何去学习、如何处理问题。
在设计过程中,我遇到了很多问题,正是这些问题,帮助我学会了学习,了解了学习的含义。学习并不只是学习课本,课本外还有很多知识需要我们学习。
学习有很多方式,书本只是其中最基本的一种。我们还可以通过向其他人请教,在图书馆查阅,通过网络进行搜索等。但最好的学习方式是在理论的基础上进行实践。
数据库课程设计便是一次很好的实践,它使我更为深刻的理解所学的知识,与此同时,促使我学到了很多课本上没有的知识。
总之,通过这次小型书店课程设计,我受益匪浅。
22
正在阅读:
数据库课程设计--图书管理系统04-20
科技工作发展十三五规划02-11
非营利组织财务会计复习题201307-07
人教版初中文言文词类活用11-22
管理思想史复习重点(川大版)10-30
重庆2019中考语文试题研究素材 第四部分 作文 专题二三大招成就满分 作文第二招谋篇和布局 - 图文01-04
货币金融试题答案总结04-25
如何确定抽样统计的最小样本量01-25
二建继续教育考题10-07
新派公寓:长租公寓“闯关”样本 - 图文09-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 课程
- 数据库
- 图书
- 设计
- 08高考文科试题分类函数
- 安庆公司年会哪家好?
- 大学计算机基础实验指导(第8版 2014.02修订)-最后修改
- 《机械制图》会考复习题集(修改)
- 2009年全国高等学校城市规划专业社会调查报告
- 12级电气工程及其自动化3班 程林云 - 图文
- 物理人教版选修3-2同步练习专题1楞次定律的推广及应用
- 三升四暑假班讲义 - 图文
- 对于GSM通信网络数据业务的分析 - 图文
- 数据库基础与应用形成性考核册-答案
- 消费者理论习题20101122
- 奥克兰理工大学学术研究
- 商业空间9种类型
- 3DMAX实训报告
- 组成实验报告
- 网球体育理论考试
- 《中医病历书写基本规范》2010年版
- WebService总账(凭证引入)接口说明 - EAS7.0.1
- 《国际铁路货物联运协定》
- 2016年中考思想品德知识点主题归类整理