2、还书带来便利。本系统除了图书馆内管理的一般功能还外,还包括网上在线查询图书信息、查询本人的借阅情况和续借等功能,系统的功能相对比较完善。根据以后不同的需要,还可以对系统进行更新。1.2业务需求及处理流程根据实际情况可以将图书馆管理系统分为四大流程:图书上架流程图、读者借书流程图、读者还书流程图和读者网上流程图。(1)图书上架流程如图1-1开始给图书分类,编号给图书贴上条形码和带编号的标签按图书编号规则上架到指定位置结束把信息录入数据库图1-1图书上架流程图(2)读者借书流程如图1-2借书证件有效?有超期未还的书?YYNN开始办理借书结束把信息写入数据库图1-2读者借书流程图(3)读者还书流
10、型名(typename1)、可借天数(days)。图书类目实体集E-R图如图2-2书架实体集E-R图所示。图2-2书架实体集E-R图(3)书架(bookCase4098)实体集:其属性有:书架编号(id1)、书架别名(name1)、书架描述(Column_3)。书架实体集E-R图如图2-3图书类目实体集E-R图所示。图2-3图书类目实体集E-R图(4)图书信息(bookInfo4098)实体集:其属性有:图书编号(id1)、图书名称(bookname1)、作者(author)、版本(typeid1)、单价(price)、条形码(barcode)、翻译者(translator)、图书ISB
12、sex)。读者实体集E-R图如图2-5读者实体集E-R图所示。图2-5读者实体集E-R图(6)管理员(Admin)实体集:其属性有:管理员编号(id1)、管理员姓名(name1)、管理员密码(PWD)。管理员实体集E-R图如图2-6管理员实体集E-R图所示。图2-6管理员实体集E-R图(7)出版信息(publishing4098)实体集:其属性有:图书ISBN号(ISBN)、出版社名(pubname1),出版信息实体集E-R图如图2-7出版信息实体集E-R图所示。图2-7出版信息实体集E-R图(9)权限(purview4098)实体集:其属性有:权限编号(id1)、系统设置权限(sysse
13、t)、读者管理权限(readerset)、图书设置(bookset)、图书归还权限(borrowback)、查询权限(sysquery),电子书实体集E-R图如图2-9电子书实体集E-R图所示。图2-9电子书实体集E-R图(10)参数信息(parameter4098)实体集:其属性有,参数编号(id1)、费用(cost)、有效期(valid1ity),系统功能模块实体集E-R图如图2-10系统功能模块实体集E-R图所示。图2-10参数信息实体集E-R图(11)归还(giveBack4098)实体集:其属性有,归还编号(id1)、读者编号(readerid1)、图书编号(bookid1)、归还
15、型实体集E-R图如图2-13读者类型实体集E-R图所示。图2-13VIP等级实体集E-R图2.3联系集及属性(1)图书馆和书架之间的“包含”联系集,它是一对多的关系,其属性有书架名(name1)、书架编号(id1)、书架描述(Column_3)。(2)图书类目和图书的“包含”联系集,它是一对多的关系,其属性有:类目编号(classNo)、图书编号(bookNo)。(3)书架和书之间的“存放”联系集,它是一对多的关系,其属性有:书架编号(bookrackNo)、图书编号(bookNo)。(4)读者和图书之间的“借、还、续”联系集。它是一对多的关系,其属性有:读者编号(readerNo),图
20、3所示:属性名称数据类型是否为空属性描述id1int否图书类型编号typename1varchar2(30)是图书类型名daysint是可借天数图3-3图书分类表bookType4098(3)书架表,如图3-4所示:属性名称数据类型是否为空属性描述id1int否图书架编号name1varchar2(30)是书架m名Column_3varchar2(30)是书架描述图3-4书架表bookCase4098(4)图书信息表,如图3-5所示:属性名称数据类型是否为空属性描述barcodevarchar2(30)是条形码bookname1varchar2(70)是书名typeid1int
23、号name1Varchar2(20)是管理员姓名PWDVarchar2(20)是管理员密码(7)出版信息表,如图3-8所示:属性名称数据类型是否为空属性描述ISBNvarchar2(20)否图书ISBN号pubname1varchar2(30)否出版社名图3-8出版信息表publishing4098(8)图书分类表,如图3-9所示:属性名称数据类型是否为空属性描述id1int否图书类型编号typename1varchar2(30)是图书类型名daysint是可借天数图3-9图书分类表bookType4098(9)读者类型表,如图3-10所示:属性名称数据类型是否为空属性描述id1in
26、2)权限表,如图3-13所示:属性名称数据类型是否为空属性描述id1int否权限编号syssetint否系统设置权限readersetint否读者管理权限booksetint否图书设置borrowbackint是图书归还权限sysqueryint是查询权限图3-13权限表purview40983.5视图设计数据库的视图设计可以在一定层次上提高数据库的安全性,来达到业务的透明性;也可以降低脚本设计的复杂度。安全性主要涉及到图书的查询、借还书时信息的处理、网上续借、网上订书、隐藏读者部分信息等业务。同时用户没有访问涉及到业务关系到的基本表的权限,所以建立各种视图来处理各种业务,这样
28、控制能力。数据库的触发器设计主要是在数据的插入、删除和更新操作场合下来进行更为复杂的检查和操作,一次来保证数据库的正确性和一致性。本系统涉及到图书的借还信息、图书的网上预订等数据更新操作,对应于不同的操作建立不同的触发器来限定各种操作的范围和数据的一致性。为此设计了如下触发器:(1)触发器一BorrowIns,当插入或删除读者借书记录时,保证Borrow表某读者的借书记录数量和Reader表中的borrowCount值一致。(2)触发器二ReaderStatus,当读者违反某规章制度时,自动让读者的借书证件可用状态改为不可用。(3)触发器三BookingRemove,当读者在网上预订某图书后
29、,有效期为一天,若一天内,读者没到图书馆借此书,此触发器自动从预订表中删除此预订记录。如果预定此书的读者借出书,此触发器自动从预订表中删除此预订记录。(4)触发器四BookingNotBorrow,控制预订表中的图书不可被其他读者借出。只允许预订此书的读者借出。3.7存储过程设计数据库的存储过程设计主要是为了完成特定功能汇集而成的一组SQL语句集合,该集合编译后存放在数据库中。由于存储过程可以直接运行,也可以远程运行,使用存储具有将业务操作封装、便于事物管理、实现一定程度的安全性保护等优点。并且存储过程特别适合统计和查询操作、减少网络通讯量,因为这部分数据的计算在服务端执行,客户端只调用此存储
30、过程,并获得结果,减轻网络的负载。(1)存储过程一proFindBooks,输入图书名称查找该图书是否借出,并显示图书的图书编号、作者、出版社等信息。(2)存储过程二proFindReader,输入读者编号或读者姓名,显示读者的借阅信息,包括已借图书数量、已借图书的编号、已借图书名称、违章次数等信息。(3)存储过程三proOverdue,此触发器是为方便程序设计而准备的,用来显示有多少读者至今有超期未还的图书,并显示那些超期未还图书的读者编号、姓名、工作单位、未还图书编号、图书名称等信息。(4)存储过程四proReaderAvailable,方便系统判断读者的借书证件是否有效,若无效则不允许
31、借书。4模式求精4.1存在的问题读者在图书馆网站留言关系模式若设计为Message(readerNo,readerName,messageModuleNo,content,messageModuleDate,adminNo,adminName,replyDate)。这样设计会产生大量数据冗余,所以必需对Message进行模式分解。4.2解决方案通过分析关系模式Message可知,存在以下函数依赖:readerNoreaderNamemessageModuleNocontent,messageModuleDateadminNoadminName显然存在非主属性对主属性的部分依赖,所以Mess
32、age只是第一范式。经过模式分解,并定义一个留言编号做主键,最后将Message分解为如下满足BCNF要求的关系模式:NewMessage(MessageNo,readerNo,messageModuleNo,adminNo,replyDate)。5物理设计5.1设计目标数据库最终是要存储在物理设备上的。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。物理结构依赖于给定的DBMS和和硬件系统,本系统数据库物理设计的目标为:(1)提高数据库的性能,以满足应用的性能需求。(2)有效利用存储空间,合理存放易变部分、稳定部分、经常存取部