收藏 分销(赏)

数据库设计--图书管理系统.doc

上传人:天**** 文档编号:2227347 上传时间:2024-05-23 格式:DOC 页数:43 大小:1.95MB
下载 相关 举报
数据库设计--图书管理系统.doc_第1页
第1页 / 共43页
数据库设计--图书管理系统.doc_第2页
第2页 / 共43页
数据库设计--图书管理系统.doc_第3页
第3页 / 共43页
数据库设计--图书管理系统.doc_第4页
第4页 / 共43页
数据库设计--图书管理系统.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、。南昌大学软件学院数据库实训大作业课程名称:数据库实训院(系):软件学院专业:软件工程班级:Java146姓名:欧阳天雄、黎子杨、刘涛学号:800011420、8000114213、 8000114211题目:图书馆管理系统数据库设计指导老师:王卓完成日期:2016/12/15目录一、系统概述3二、功能需求分析31、功能概述32、系统角色4三、数据流设计52、数据流图5四、系统结构设计91、数据字典92、ER图123、概念模型164、逻辑模型175、物理模型18五、表空间设计18六、安全管理20七、表、约束、索引、视图管理23八、PL/SQL语句38九、总结40十、参考文献41-可编辑修改-一

2、、系统概述图书馆管理系统是一类比较典型的系统开发系统。它总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。 本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、和删除管理员的信息等。可以帮助图书馆管理员和读者更加方便地管理图书和借阅图书。二、功能需求分析1、功能概述:本图书馆管理系统适用于校园等小型的图书馆使用,它的主要任务是建立详细的可借阅读者的信息(可表现为一张借阅卡,或者校园卡)以及图书馆内所有的图书种类以及对应书籍的记录。并可以对借阅者和所借书籍进行登记,方便图书管理员能及时查看馆内书刊信息以及对借书以及还书做出操作。对此,本系

3、统应该具有的功能应该有1、 管理员信息管理:管理员是本系统的管理者,具有最高权限,对图书和读者有添加,修改和删除等功能。但管理员只能修改自己的信息,不能添加或删除自己的信息。要想添加和删除管理员必须到数据库中去操作表结构。2、 借阅者信息管理:由系统管理员,给每个借阅者创建一个账户,账户应具有借阅者的详细信息,并且借阅者的信息在借阅者的身份信息改变后可以修改或注销。3、 书库管理:当有新的图书种类或者新书入库时候,要对书库记录进行添加记录,当有旧的书种或书被下架时,也要对书库进行删除记录。当读者或者管理员要对某种书刊进行查询时,也可以通过本系统进行查询4、 书籍出借管理:图书馆代理借阅者进行借

4、书或者还书等各项义务。在借阅书刊时,只要输入要借阅的书刊编号然后输入借阅者的ID,即可提交借书操作。若书刊编号存在,且借阅卡号存在,且借阅卡的信息与借阅者本人的信息吻合,收取一定押金后即可完成借书操作。完成借书操作后,数据库内书库记录该书刊的记录从在库状态改为借出状态。则操作成功,系统会把该本书的加入借阅记录中去。5、 书籍归还管理:管理员可以根据借阅者的关键信息,查询到该借阅者所有的借阅信息,借阅日期等,从中选择要归还的图书,显示有关本图书的所有借阅信息,方便让管理员判断出是否过期,是否对读者进行罚款,退还押金后并对数据库记录做出改变,并把该本图书状态信息改为在库。6、 借阅书籍管理:图书管

5、理员要能够对所有被借出的书进行查询,了解哪些人借了哪些书,以及借阅书籍的日期,方便当一本书借出太久后管理员可以对该借书的人进行通知。2、系统角色本项目的主要用户包括以下两类。(1) 图书管理员图书管理员负责管理书籍的维护,读者的管理,以及借阅归还业务的办理。是服务的提供者。(2) 借阅者借阅者主要是书籍的借阅和归还。三、数据流设计1、数据流分析:(1)系统为图书管理员建立档案,管理员进入系统前需要进行身份验证,用户名,密码输入正确方可进入系统。(2)系统预设一些借阅者,并为他们建立档案信息。(3)在系统中,图书管理员可以新建新的借阅者信息,修改已有的借阅者信息,注销已经把书还清的借阅者信息。(

6、4)在系统中,图书管理员可以对拥有借阅卡的用户办理借书,还书业务。(5)在系统中,图书管理员可以对还书违规的借阅者做出处罚金的处罚。(6)在系统中,图书管理员可以修改库存信息,增加新书刊或新书种,删除书种或书刊。(7)在系统中,借阅者可以自助查询书库信息,和自己的借阅记录。(8)在系统中,图书管理员可以查看所有被借出书的信息。2、数据流图:1、顶层数据流图2、借书管理的二层数据流图3、还书管理的二层数据流图书库管理的二层数据流图4、读者管理的二层数据流图罚款管理的二层流图四、系统结构设计1、数据字典:由需求分析和数据流图中我们可以提取到几个不同的元素:管理员,借阅者,书籍,借阅记录表1-1图书

7、包含的数据项的数据字典数据项名数据项含义别名数据类型取值范围BookID唯一标识每本书籍图书编号Char(10)BookName图书名称Varchar2(30)class图书类别Char(20)publishDate出版日期DateAuthor作者Char(30)Publisher出版社Varchar(20)ISBNISBN号Varchar2(20)price价格Numeric(5,2)Bookstate表示图书在库还是借出图书状态Char(5)表1-2管理员包含的数据项的数据字典数据项名数据项含义别名数据类型取值范围ID唯一标识管理员管理员编号Char(4)Name管理员名字Char(10)

8、tel管理员电话Char(11)Pwd登陆密码Char(16)Sex管理员性别Char(1)“男”或“女”Phone管理员照片Image一寸证件照表1-3借阅者包含的数据项的数据字典数据项名数据项含义别名数据类型取值范围ReaderID唯一标识每一位借阅者借阅者编号Char(10)ReaderName借阅者姓名Char(15)ReaderSex借阅者性别Char(1)“男”或“女”ReaderPhone用以借还书确认身份借阅者照片Image证件照ReaderPhone用以管理员联系借阅者电话Char(11)MaxDay最大借阅天数Number(2)0BookBorrowed已借图书Number

9、(2)=0表1-4 管理员操作的数据字典处理名说明流入的数据流流出的数据流处理借书操作对借阅者的借书申请作出处理书籍信息,借阅者信息借阅单根据借阅者挑选的书籍,查看借阅者是否满足借阅条件,如果满足条件,则收取一定的押金并保存记录到借阅记录表产生借阅单还书操作对借阅者的还书申请作出处理书籍信息 读者信息退款根据借阅者所持的借阅单和书籍借阅卡,查看借阅者的本次借阅记录,是否有违规使用的情况,若有则相应处以罚金,或退还押金,删除借阅记录。添加借阅者对申请借书的潜在客户的申请作出处理客户信息借阅卡根据客户的准确身份信息,核对信息是否有效,若有效则给客户办借阅卡。修改借阅者信息对借阅者的信息进行更改客户

10、信息借阅卡根据客户的修改请求,核对修改的信息,若有效,则给客户更新借阅卡。2、ER图:1. 实体:管理员:管理员密码身份证号姓名工作证号读者:图书:罚款:2.管理员图书读者之间的联系:3、概念模型4、逻辑模型在得出概念结构设计的E-R图后,下一步的任务就是吧概念结构设计中的E-R模型转换为具体的数据库管理系统支持的组织层数据模型,也就是导出特定的数据库管理系统可以处理的数据库逻辑结构,由于在概念结构设计中我们就得出了若干个关系模式,因此在逻辑结构设计要做的就是把各个关系模式做一遍规范化处理,以减少冗余。以下关系模式均已规范化到第三范式。图书表(图书编号,图书类别编号,书名,出版日期,作者,出版

11、社,ISBN号,价格)图书类别表(类别编号,类别名称,类别解释)借阅者表(借阅者编号,借阅等级,姓名,性别,照片,电话,已借图书)借阅者类别表(借阅等级,等级名称,最大可借图书数,最长借阅期限)管理员表(管理员编号,姓名,性别,登陆密码,电话,照片)罚金表(罚金级别,罚金名称,罚款说,罚金数量)借书记录表(借阅者编号,图书编号,借书时间,还书期限,押金)还书记录表(借阅者编号,图书编号,还书时间,退款)罚款表(借阅者编号,罚款类别,已缴罚款,罚款原因)5、物理模型五、表空间设计通过之前的概念结构设计,逻辑结构设计,物理结构设计得出来的模型可以知道,本图书管理系统大概有十张表,这些表从业务角度来

12、分,主要有以下三类:(1) 与书库相关的表。包括图书表(2) 与系统角色相关的表,包括借阅者表,管理员表(3) 与案例业务相关的表,借书表,还书表。除了这些表外,其他都是些参数类型的表。在我们的案例中,本系统是面向小型图书馆的。下面我们以一个借阅人数为500,藏书量为10000本的图书馆为例。有五百个借阅者需要建立借阅信息,10000本图书需要建立图书信息。预设10位管理员。粗略估算一下数据表空间为2G,索引表也设为2G,临时表空间设为500M。由于本系统大多数操作都是通过管理员进行的,并发性不高,所以回退表空间不需要很大,回退表空间就设为500M。综上所述,本案例需要创建一个数据表空间,一个

13、索引表空间,一个临时表空间并将回退表空间扩充,为其增加一个数据文件。表空间名称分别libsys_data,libsys_idx,libsys_temp。采用小文件类型的额数据文件。每个数据文件的大小不超过1G.因此数据文件分别是libsys_data01.dbf,libsys_data02.dbf,libsys_idx01.dbf,libsys_idx02.dbf,libsys_temp01.dbf,libsys_undo01.dbf。创建图书管理系统数据库:LIBSYS建立表空间:创建的数据库文件:六、安全管理6.1用户通过前面的需求分析可以知道,系统主要有两个系统角色,分别是管理员和借阅者

14、,管理员有很多种权限,可以对除管理员表外的所有表进行增删改查的操作,而借阅者的权限比较低,只能进行一些针对特殊表的查找操作,例如,当借阅者想查询图书馆有没有自己想要的书可以对书库表进行查询,想知道自己的借阅记录可以查询借阅记录表。因此本例中我们新建两个角色,管理员和用户(operator和reader)创建operator用户创建reader用户6.2、权限、角色管理Operator用户是本系统的主用户,本案例数据库模型的数据库对象全部建立在此方案中,而reader用户只需要给他连接数据库的权限,然后由operator将部分数据库对象的查询权限授予他就行。如上所述,暂给connect,reso

15、urce权限给Operator用户,让operator用户可以建表等等:而Reader用户先授予它连接数据库的权限,由于Reader用户,前面说了可以查询书库和某些记录的权限。因此我们自定义一个角色,具有选择任何表的权限,然后把这个角色授予Reader。到目前为止,我们创建了两个用户Operator和ReaderOperator具有创建数据库对象的权利,而Reader只有查询的权限。可以通过sql语句查询各个用户的权限Operator用户的角色信息和使用空间表的配额信息Reader用户的角色信息和权限信息七、表、约束、索引、视图管理7.1、表管理表是ORACLE数据库中的主要对象,是数据库中的

16、数据存储的基本单位,存储着与应用程序相关的一些信息。其他许多数据库对象如索引、视图都以表为基础。下面我们将以前面概念模型设计通过正向工程生成的物理数据模型进一步生成的数据库创建的SQL脚本来建表。具体的建表过程如下。7.2、约束完整性约束是一种规则,它不占任何数据空间完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。约束大致分为唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束,等,对于本例来说,主要是应该添加外键约束,检查约束,和默认值约束。例如,管理员表和借

17、阅者表的性别字段应该添加检查约束,还有一些表与表之间的引用应该添加外键约束。下面我们将进行添加约束工作。对于表Manager只用添加一些检查约束和空值约束就行了对于表Reader因为存在引用,所以除了检查约束和空值约束还得添加外键约束对于Book表只需添加外键约束对于Borrow表因为和很多实体存在联系,所以得添加几个外键约束给Returnbook表添加外键约束给punishpay表添加外键约束7.3索引管理虽然关系数据库中的数据行的物理位置无关紧要,但在本案例中,管理员和用户用Book,Borrow,ReturnBook三个表的查询是非常集中的,所以为了加快用户查找的速度有必要设置索引。索引

18、就是一种可以提高查询性能的数据结构。在Book表中,用户查询一本书通常会按书名和书的类别进行查找,因此可以在书名和图书类别这两列设置非唯一索引在borrow表中,通常会按书编号或借阅者id来查找一条借阅记录。因此可在书编号和借阅者ID上建立索引同理给还书记录表设置索引给罚款记录表设置索引7.4、视图管理视图是从一个表或多个表中通过查询二导出数据的虚表,建立视图并不占据空间。在本案例中在Reader表中有个已借图书数量borrowed,和readerclass,而在Readerclass表中规定了一个等级的用户可以借多少书,因此我们可以通过它来创建一个视图从而显示出用户还能借多少本图书。步骤如下

19、:创建视图从视图中选择数据就这样管理员就可以方便地判断是否可以将书籍出借给借阅者了。或者还可以对视图进行修改,7.5、基本对象的信息查询及管理在本案例中Book,Manager,Reader,Punish,ReaderClass,classIDTable这六个表的查询及管理是最简单的。而后面借书还书罚款三个表的查询及管理则稍微复杂一点。因为这些联系涉及到多张表,插入,修改,删除会引起其他表记录的改变,因此我们将通过定义触发器或存储过程的方法来实现。对Book表的基本管理为book表新增一个bookState字段 类型为char(5),表示图书室在库还是借出状态对Reader表的基本管理对Man

20、ager表的基本管理对classidtable表的基本管理对punish表的基本管理对readerclass表的基本查询对punishpay表的查询对borrow表的基本管理在borrow表创建三个触发器对borrow表执行插入语句查询borrow表插入了数据后,book,reader,borrow表的记录情况;可以看到这样理想的一次借书就完成了但是当要对borrow修改时,现在只考虑,修改借阅者id,创建触发器同样的,当借阅者要求还书的时候,也应该对以上的表做出修改,因此,也对returnbook表创建触发器先看对returnbook表执行插入前的三个表情况做对比向returnbook表插入

21、数据查完后各表的状态为到此,所有数据库基本对象的信息查询和管理也都进行过了。八、PL/SQL语句编写PL/SQL语句实现管理员查询图书记录的过程查询结果:编写PL/SQL语句查询耽搁读者的借阅记录编写PL/SQL语句查询读者想要借的图书信息九、 总结在本次图书管理系统数据库设计中,通过每一个环节地亲历亲为,使我积累了一定经验。首先、需求分析的很重要,在开始的需求分析阶段,过于急于求成,并没有把需求分析做到最精致,导致后来在数据库的实现中出现了很多问题,例如,表的重要属性缺失,数据类型设计不合理。所幸,这些问题可以通过sql命令去解决。其次,powerDesign是个好工具,它在概念结构设计,物

22、理结构设计中帮了不少忙。通过这次数据库设计也让我掌握了如何运用powerdesign,也明白了熟练掌握开发工具,会使你的项目开发事倍功半。在数据库的实现过程中,也加深了我对数据库基本对象的的理解。熟练了各种DDL,DML语句的使用,尤其是触发器的运用。总之,这次的数据库设计让我受益匪浅,同时也感谢授予我知识和技能的老师和书籍。十、参考文献Oracle 11g+ASP.NET数据库系统开发案例教程-欧阳浩Oracle database 10g PL/SQL程序设计-Scott UrmanOracle 触发器与存储过程高级编程-Kevins OwensTHANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服