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