数据库图书管理系统1.docx
《数据库图书管理系统1.docx》由会员分享,可在线阅读,更多相关《数据库图书管理系统1.docx(24页珍藏版)》请在冰豆网上搜索。
数据库图书管理系统1
1、引言
图书馆是我们学生在日常生活、学习中接触比较多的机构,图书馆中首先要记录大量的图书信息,为了方便广大读者的查询还要一些方便查询的程序语言。
同时,为了记录读者的借阅信息,还要建立读者的相关信息表,这么多的数据如果人工来处理不仅速度慢、效率低,而且很容易出错,不利于图书馆的综合管理。
由于科学技术的发展,电脑的应用越来越普遍,而且数据库系统的不断完善,几乎所有的图书故都开始采用电脑来管理日常事务。
通过电脑来管理图书馆的日常事务,这就要求我们建立一个符合图书馆实际应用的数据库系统来存储大量的各种信息。
2、需求分析阶段
需求分析阶段是图书管管理系统开发的第一个阶段,也是非常重要的一个阶段。
这是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响后面各个阶段的设计,并影响到设计结果是否合理和实用。
它也是我们系统开发过程当中最困难、最耗费时间的一步,作为地基的需求分析做的是否充分和准确,决定了在其上构建数据库大厦的速度和质量。
2.1需求分析阶段的目标与任务
需求阶段主要任务是通过详细调查图书馆的详细业务情况,了解原系统的工作情况,明确用户的各项需求,在此基础上确定新系统的功能,了解新系统的业务流程,数据流程,完成数据字典的建立。
需求分析的任务是通过详细的调查现实生活中图书馆,充分了解图书馆系统工作概况,明确用户的各种需求,然后再次基础上确定新系统的功能,新系统必须充分考虑到今后可能的扩充和改变,不能仅仅按照当前应用需求来建设数据库。
调查的重点是“数据”和“处理”,我们要通过调查、收集与分析,获得用户对数据库如下要求:
(1)信息要求
我们要了解图书馆管理系统都要存储哪些信息。
这里我们了解到图书馆管理系统大概要存储的信息有:
图书信息,管理员信息,读者信息,借书信息,还书信息,读者注销、注册、图书罚款信息等。
(2)处理要求
了解图书馆管理员要完成哪些处理功能,对处理的相应时间有什么特殊要求,处理方式是批处理还是联机处理。
这里我们了解到图书馆管理员要处理的事务大体为:
管理读者的借阅、归还,管理读者的图书卡的注销、注册,完成对那些欠款的读者的罚款,图书管理员的的相关事务。
(3)安全性与完整性要求
确定用户的最终需求是意见很困难的事,这是因为一方面用户缺少计算机只是,开始的时候无法确定计算机计算机能够为自己做什么,不能做什么,因此往往不能正确的表达自己的需求,所提出的要求往往不断的变化。
设计人员必需不断的深入与用户交流,才能逐步确定用户的实际需求。
2.2需求分析的方法
进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析语表达这些需求。
调查用户需求的具体步骤是:
1.调查组织机构性质。
2.调查个部门的业务活动情况。
3.在熟悉了业务活动的基础上协助用户明确对新系统的各种要求,包括信息要求、处理要求、安全性与完整性的要求,者是调查的由一个重点。
4.确定系统的边界。
2.2.1处理对象
1、图书类别(图书类别号,图书类别名)
2、管理员(管理员编号,管理员姓名,管理员性别,管理员电话)
3、读者(读者编号,读者姓名,读者性别,读者类型,最大借阅量,登记时期)
4、图书(图书编号,图书名称,图书类别号,作者,出版社,出版日期,收录时间,图书价格,是否被借,)
5、借书(图书编号,读者编号,借阅时间)
6、还书(图书编号,读者编号,还书时间)
7、罚款(读者编号,读者姓名,图书编号,图书名,罚款金额,借阅时间)
2.2.2处理功能及要求
1.读者基本信息的输入,包括借书证编号、读者姓名、读者性别。
2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4.书籍类别信息的查询、修改,包括类别编号、类别名称。
5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。
9.还书信息的输入,包括借书证编号、书籍编号、还书日期。
10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。
12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等
2.2.3安全性和完整性要求
1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,或者通过使用触发器更新。
2.2.4数据字典
数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,使进行详细的数据收集和数据分析所获得的主要成果。
数据字典在数据库的设计中占有很重要的地位。
数据字典通常包括:
数据项,数据结构,数据流,数据存储和处理过程五个部分。
这里,由于系统的需求和技术的原因,我们只涉及数据项和数据结构。
a)数据项:
数据项名
别名
数据类型
长度
取值范围
bookstyleno
图书类别号
varchar
30
bookstyle
图书类别名
varchar
30
managerid
管理员编号
varchar
10
managername
管理员姓名
varchar
10
managersex
管理员性别
varchar
10
(男,女)
managerphone
管理员电话
varchar
10
ISBN
图书编号
Varchar
20
bookname
图书名
Varchar
30
bookstyleno
图书类别号
Varchar
30
bookauthor
图书作者
Varchar
30
bookpub
出版社名称
Varchar
30
bookpubdate
出版日期
Datetime
bookindate
登记日期
Datetime
bookprice
图书价格
int
isborrowed
是否被借出
Varchar
readerid
读者编号
varchar
9
readername
读者姓名
varchar
9
readersex
读者性别
varchar
2
(男,女)
readertype
读者种类
varchar
10
maxborrow
最大借阅量
int
regdate
登记日期
datetime
borrowdate
借阅时间
varchar
returndate
归还时间
datetime
bookfee
罚款金额
varchar
30
b)数据结构
根据以上分析,得到相应的数据结构表如下:
数据结构名
含义说明
组成
图书类别
记录学生的基本信息
Bookstyleno,bookstyle
图书管理员
记录员工的基本信息
Managerid,managername,managersex,managerphone
图书信息
记录书籍的基本信息
ISBN,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,bookprice,isborrowed
读者信息
记录借阅卡的基本信息
Readerid,readername,readersex,readertype,maxborrow,regdate
借书信息
记录当前借阅的信息
ISBN,readerid,borrowdate
还书信息
记录借阅历史
ISBN,readerid,returndate
罚款信息
记录学生的罚款信息
Readerid,readername,ISBN,bookname,bookfee,borrowdate,
3、概念设计阶段
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计,它是整个数据库设计的关键。
概念设计就是要把我们在业务流程图、数据流程图转化为相应的关系图,并画出相应的E-R图。
3.1概念设计任务
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好的、更准确的用某一DBMS实现这些需求。
概念结构是各种数据模型的共同基础,它比数据模型更独立于及其、更抽象,从而更加稳定。
描述概念模型的有力工具是E-R图模型,通过E-R模型我们可以形象具体的体现出实体之间的联系。
3.2E-R图设计
根据前面的需求分析,可以将图书管系统数据库实体划分为图书类别实体集、管理员信息实体集、图书信息实体集、读者信息实体集,借书实体集,还书实体集,罚款信息实体集,我们得到以下分的E-R图:
1、类别实体E-R图:
2、管理员实体E-R图:
3、图书实体E-R图:
4、读者信息实体E-R图:
5、借书信息实体E-R图:
6、还书信息实体E-R图:
7、罚款信息实体E-R图:
8、总的信息实体E-R图:
综上我们涉及到的实体有:
图书类别(图书类别号,图书类别名)
管理员(管理员编号,管理员姓名,管理员性别,管理员电话)
读者(读者编号,读者姓名,读者性别,读者类型,最大借阅量,登记时期)
图书(图书编号,图书名称,图书类别号,作者,出版社,出版日期,收录时间,图书价格,是否被借,)
借书(图书编号,读者编号,借阅时间)
还书(图书编号,读者编号,还书时间)
罚款(读者编号,读者姓名,图书编号,图书名,罚款金额,借阅时间)
3.3图书馆功能模块设计
4、逻辑设计阶段
4.1逻辑设计任务
逻辑设计阶段的目的是将我们已经画好的E-R图转化为相应的关系模型,是我们在建立数据库的时候可以根据这些关系模型建立表。
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
4.2图向关系模型转化
将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。
由以上的E-R图我们得到如下的基本表:
1、图书类别信息:
book_style(bookstyleno,bookstyle)
表中列名
别名
数据类型
可否为空
bookstyleno
图书类别号
varchar
notnull(主键)
bookstyle
图书类别名
varchar
notnull
2、管理员system_managers(managerid,managername,managersex,managerphone)
表中列名
别名
数据类型
可否为空
managerid
管理员编号
varchar
Notnull(主键)
managername
管理员姓名
varchar
notnull
managersex
管理员性别
varchar
notnull
managerphone
管理员电话
varchar
notnull
3、图书信息:
System_books(bookid,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,bookprice,isborrowed)
表中列名
别名
数据类型
可否为空
bookid
图书编号
Varchar
notnull(主键)
bookname
图书名
Varchar
notnull
bookstyleno
图书类别号
Varchar
notnull
bookauthor
图书作者
varchar
notnull
bookpub
出版社名称
varchar
null
bookpubdate
出版日期
datetime
null
bookindate
登记日期
datetime
null
bookprice
图书价格
int
notnull
isborrowed
是否被借出
varchar
notnull
4读者信息:
System_readers(readerid,readername,readersex,readertype,maxborrow,regdate)
表中列名
别名
数据类型
可否为空
readerid
读者编号
varchar
notnull(主键)
readername
读者姓名
varchar
notnull
readersex
读者性别
varchar
notnull
readertype
读者种类
varchar
null
maxborrow
最大借阅量
int
notnull
regdate
登记日期
datetime
null
5、借书信息:
Borrow_record(ISBN,readerid,borrowdate)
表中列名
别名
数据类型
可否为空
ISBN
图书编号
varchar
notnull(外键)
readerid
读者编号
varchar
notnull(外键)
borrowdate
借阅时间
varchar
notnull
6、还书信息:
return_record(ISBN,readerid,returndate)
表中列名
别名
数据类型
可否为空
ISBN
图书编号
varchar
notnull(外键)
Readerid
读者编号
varchar
notnull(外键)
returndate
归还时间
datetime
notnull
7、罚款信息:
reader_fee(readerid,readername,ISBN,bookname,bookfee,borrowdate)
表中列名
别名
数据类型
可否为空
readerid
读者编号
varchar
notnull
readername
读者姓名
varchar
notnull
ISBN
图书编号
varchar
notnull(外键)
bookname
图书名
varchar
notnull
bookfee
罚款金额
varchar
notnull
borrowdate
借阅时间
datetime
notnull
4.3数据模型的优化
数据库逻辑设计的结果不是唯一的。
为了进一步提高数据库应用系统的性能,还应该根据数据库的需要适当的修改,调整数据模型的结构,这就是数据模型的优化。
关系数据模型的优化通常以规范化理论为指导,方法为:
1.确定函数依赖按照需求分析阶段得到的予以,分别写出每个关系模式内部个属性之间的数据依赖以及不同模式属性之间的数据依赖。
2.对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3.按照数据依赖的原理对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
4.按照需求分析阶段的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。
对关系模式进行必要的分解,提高数操作的效率和存储空间的利用率。
常用的两种分解方法是水平分解法和垂直分解。
管理员信:
System_managers(managerid,managername,managersex,managerphone)
存在的函数依赖有:
managerid决定managername,managersex,managerphone,同时managerphone分别的也能够决定其他的属性,这两个数据项分别作为这个实体型的码,我们选取managerid作为主码。
不存在部分函数依赖和传递函数依赖,所以这个关系模式属于BCNF.
图书类别信息:
Book_style(bookstyleno,bookstyle)
在员工关系模式中,bookstyleno决定了另一个的数据项,所以这个关系模式属于BCNF。
图书信息:
System_books(ISBN,bookname,bookstyleno,bookauthor,bookpub,bookpubdate,bookindate,bookprice,isborrowed)
图书信息关系模式中,ISBN决定了其它的所有数据项,所以这个关系模式属于BCNF。
读者信息:
System_readers(readerid,readername,readersex,readertype,maxborrow,regdate)
在借阅卡信息关系模式中,readerid决定了其它的所有数据项,所以这个关系模式属于BCNF。
借书信息:
Borrow_record(ISBN,readerid,borrowdate)
在罚款信息关系模式中,ISBN,readerid共同作为主码决定了另一个数据项,所以这个关系模式属于BCNF。
还书信息:
Return_record(ISBN,readerid,returndate)
丢书信息的关系模式中ISBN,readerid作为主码决定了returndate,所以这个关系模式属于BCNF。
罚款信息:
reader_fee(readerid,readername,ISBN,bookname,bookfee,borrowdate)
在读者推荐的关系模式中,readerid,ISBN作为主码决定了borrowdate,所以这个关系模式属于BCNF。
4.4设计用户子模式
将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。
目前关系数据库管理系统一般都提供了试图概念,可以利用这一功能设计更加符合局部用户需要的用户外模式。
1、查看图书信息的视图view_book
数据项名
别名
数据类型
长度
取值范围
ISBN
图书编号
Varchar
20
bookname
图书名
Varchar
30
bookstyle
图书类别
Varchar
30
bookauthor
作者
Varchar
30
bookpub
出版社名称
Varchar
30
bookpubdate
出版日期
Datetime
bookprice
图书价格
Int
isborrowed
是否被借出
Varchar
2、查看读者信息视图view_reader
数据项名
别名
数据类型
长度
取值范围
readerid
读者编号
varchar
9
readername
读者姓名
varchar
9
readersex
读者性别
varchar
2
(男,女)
readertype
读者类型
varchar
10
maxborrow
最大借阅量
int
3、查看读者借书视图:
view_reader_book
数据项名
别名
数据类型
长度
取值范围
system_readers.readerid
读者编号
varchar
9
system_readers.readername
读者姓名
varchar
9
system_books.ISBN
图书编号
varchar
20
book_style.bookstyleno
图书类别号
varchar
30
5、物理设计阶段
5.1物理设计阶段的任务与目标
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它以来与选定的数据管理系统,为一个给定的逻辑数据模型选取一个最合适应用要求物理结构的过程,就是数据库的物理设计。
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
5.2数据存储
为了提高数据库中一些表的查询速度,我们有必要在一些有特殊需要的表上创建索引。
在我们的数据库中经常用到的表有图书信息表,读者信息表,借书信息表,还书信息表,罚款信息表,我们对图书信息表的图书编号建立索引,对于读者的编号建立索引。
5.3功能模块分析
查询:
读者信息可以通过相应的查询功能来查询当前图书馆的藏书状况,查询自己想要借的书籍的状态,在馆的位置。
以及自己的借阅历史,当前借阅的书籍,即将到期的书籍,同时可以查询自己的罚款信息。
借书、还书,罚款:
通过这些功能模块,学生可以实现从图书馆借书、还书、挂失图书的功能,保证图书馆的每一本书都有详细的记录,若果有同学挂失图书,图书馆则可以根据相应的信息及时的将挂失的图书购买填补空缺。
注册、注销、图书卡:
通过这些功能模块实现对读者的管理,当读者注册的时候把读者的相关信息录入,注销的时候要先看学生是否已经缴清欠款,是否还有未还的图书。
图书馆的管理员管理模块则可以让图书馆的内部管理更加方便、高效。
5.4数据库实施
根据关系模式建立基本表、视图、触发器和索引,并完成存取过程的设计。
5.4.1创建基本表(详见附录9-1)
编号
表名称
定义
A-1
book_style
图书类别表
A-2
system_managers
管理员信息表
A-3
system_books
图书信息表
A-4
system_readers
读者信息表
A-5
borrow_record
借书表
A-6
return_record
还书表
A-7
reader_fee
罚款表
5.4.2数据录入(详见附录9-2)
5.4.3创建视图(详见附录9-3)
编号
存储过程名称
定义
作用
B-1
view_book
详见附录
查询图书馆图书信息
B-2
vi