数据库设计--图书管理系统(共46页)_第1页
数据库设计--图书管理系统(共46页)_第2页
数据库设计--图书管理系统(共46页)_第3页
数据库设计--图书管理系统(共46页)_第4页
数据库设计--图书管理系统(共46页)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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)在系统中,图书管理员可以新建新的借阅者信息,修改已有的借阅者信息,注销已经把书还清的借阅者信息。(4)在系统中,图

6、书管理员可以对拥有借阅卡的用户办理借书,还书业务。(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)tel管理员电话

8、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(2)&

9、gt;=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表的基本管理对Manager表的基本管理对classidtable表的基本管理对punish表的基本管理对readerclass表的基本查询对punishpay表的查询对borrow表的基本管理在borrow表创建三个触发器对borrow表执行插入语句查询borrow表插入了数据后,book,reader,borrow表的记录情况;可以看到这样理想的一次借书就完成了但是当要对borrow修改时,现在只考虑,修改借阅者id,创建触发器同样的,当借阅者要求还书

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论