数据库设计--图书管理系统.doc
《数据库设计--图书管理系统.doc》由会员分享,可在线阅读,更多相关《数据库设计--图书管理系统.doc(43页珍藏版)》请在咨信网上搜索。
。 南昌大学软件学院 数据库实训大作业 课程名称:数据库实训 院(系):软件学院 专业 :软件工程 班级 :Java146 姓名 :欧阳天雄、黎子杨、刘涛 学号 :800011420、8000114213、 8000114211 题目 :图书馆管理系统数据库设计 指导老师:王卓 完成日期:2016/12/15 目录 一、系统概述 3 二、功能需求分析 3 1、功能概述 3 2、系统角色 4 三、数据流设计 5 2、数据流图 5 四、系统结构设计 9 1、数据字典 9 2、ER图 12 3、概念模型 16 4、逻辑模型 17 5、物理模型 18 五、表空间设计 18 六、安全管理 20 七、表、约束、索引、视图管理 23 八、PL/SQL语句 38 九、总结 40 十、参考文献 41 -可编辑修改- 一、系统概述 图书馆管理系统是一类比较典型的系统开发系统。它总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。 本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、和删除管理员的信息等。可以帮助图书馆管理员和读者更加方便地管理图书和借阅图书。 二、功能需求分析 1、功能概述: 本图书馆管理系统适用于校园等小型的图书馆使用,它的主要任务是建立详细的可借阅读者的信息(可表现为一张借阅卡,或者校园卡)以及图书馆内所有的图书种类以及对应书籍的记录。并可以对借阅者和所借书籍进行登记,方便图书管理员能及时查看馆内书刊信息以及对借书以及还书做出操作。对此,本系统应该具有的功能应该有 1、 管理员信息管理:管理员是本系统的管理者,具有最高权限,对图书和读者有添加,修改和删除等功能。但管理员只能修改自己的信息,不能添加或删除自己的信息。要想添加和删除管理员必须到数据库中去操作表结构。 2、 借阅者信息管理:由系统管理员,给每个借阅者创建一个账户,账户应具有借阅者的详细信息,并且借阅者的信息在借阅者的身份信息改变后可以修改或注销。 3、 书库管理:当有新的图书种类或者新书入库时候,要对书库记录进行添加记录,当有旧的书种或书被下架时,也要对书库进行删除记录。当读者或者管理员要对某种书刊进行查询时,也可以通过本系统进行查询 4、 书籍出借管理:图书馆代理借阅者进行借书或者还书等各项义务。在借阅书刊时,只要输入要借阅的书刊编号然后输入借阅者的ID,即可提交借书操作。若书刊编号存在,且借阅卡号存在,且借阅卡的信息与借阅者本人的信息吻合,收取一定押金后即可完成借书操作。完成借书操作后,数据库内书库记录该书刊的记录从在库状态改为借出状态。则操作成功,系统会把该本书的加入借阅记录中去。 5、 书籍归还管理:管理员可以根据借阅者的关键信息,查询到该借阅者所有的借阅信息,借阅日期等,从中选择要归还的图书,显示有关本图书的所有借阅信息,方便让管理员判断出是否过期,是否对读者进行罚款,退还押金后并对数据库记录做出改变,,并把该本图书状态信息改为在库。 6、 借阅书籍管理:图书管理员要能够对所有被借出的书进行查询,了解哪些人借了哪些书,以及借阅书籍的日期,方便当一本书借出太久后管理员可以对该借书的人进行通知。 2、系统角色 本项目的主要用户包括以下两类。 (1) 图书管理员 图书管理员负责管理书籍的维护,读者的管理,以及借阅归还业务的办理。是服务的提供者。 (2) 借阅者 借阅者主要是书籍的借阅和归还。 三、数据流设计 1、数据流分析: (1)系统为图书管理员建立档案,管理员进入系统前需要进行身份验证,用户名,密码输入正确方可进入系统。 (2)系统预设一些借阅者,并为他们建立档案信息。 (3)在系统中,图书管理员可以新建新的借阅者信息,修改已有的借阅者信息,注销已经把书还清的借阅者信息。 (4)在系统中,图书管理员可以对拥有借阅卡的用户办理借书,还书业务。 (5)在系统中,图书管理员可以对还书违规的借阅者做出处罚金的处罚。 (6)在系统中,图书管理员可以修改库存信息,增加新书刊或新书种,删除书种或书刊。 (7)在系统中,借阅者可以自助查询书库信息,和自己的借阅记录。 (8)在系统中,图书管理员可以查看所有被借出书的信息。 2、数据流图: 1、顶层数据流图 2、借书管理的二层数据流图 3、还书管理的二层数据流图 书库管理的二层数据流图 4、读者管理的二层数据流图 罚款管理的二层流图 四、系统结构设计 1、数据字典: 由需求分析和数据流图中我们可以提取到几个不同的元素:管理员,借阅者,书籍,借阅记录 表1-1图书包含的数据项的数据字典 数据项名 数据项含义 别名 数据类型 取值范围 BookID 唯一标识每本书籍 图书编号 Char(10) BookName 图书名称 Varchar2(30) class 图书类别 Char(20) publishDate 出版日期 Date Author 作者 Char(30) Publisher 出版社 Varchar(20) ISBN ISBN号 Varchar2(20) price 价格 Numeric(5,2) Bookstate 表示图书在库还是借出 图书状态 Char(5) 表1-2管理员包含的数据项的数据字典 数据项名 数据项含义 别名 数据类型 取值范围 ID 唯一标识管理员 管理员编号 Char(4) Name 管理员名字 Char(10) 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) >0 BookBorrowed 已借图书 Number(2) >=0 表1-4 管理员操作的数据字典 处理名 说明 流入的数据流 流出的数据流 处理 借书操作 对借阅者的借书申请作出处理 书籍信息,借阅者信息 借阅单 根据借阅者挑选的书籍,查看借阅者是否满足借阅条件,如果满足条件,则收取一定的押金并保存记录到借阅记录表产生借阅单 还书操作 对借阅者的还书申请作出处理 书籍信息 读者信息 退款 根据借阅者所持的借阅单和书籍借阅卡,查看借阅者的本次借阅记录,是否有违规使用的情况,若有则相应处以罚金,或退还押金,删除借阅记录。 添加借阅者 对申请借书的潜在客户的申请作出处理 客户信息 借阅卡 根据客户的准确身份信息,核对信息是否有效,若有效则给客户办借阅卡。 修改借阅者信息 对借阅者的信息进行更改 客户信息 借阅卡 根据客户的修改请求,核对修改的信息,若有效,则给客户更新借阅卡。 2、ER图: 1. 实体:管理员: 管理员 密码 身份证号 姓名 工作证号 读者: 图书: 罚款: 2.管理员图书读者之间的联系: 3、概念模型 4、逻辑模型 在得出概念结构设计的E-R图后,下一步的任务就是吧概念结构设计中的E-R模型转换为具体的数据库管理系统支持的组织层数据模型,也就是导出特定的数据库管理系统可以处理的数据库逻辑结构,由于在概念结构设计中我们就得出了若干个关系模式,因此在逻辑结构设计要做的就是把各个关系模式做一遍规范化处理,以减少冗余。以下关系模式均已规范化到第三范式。 图书表(图书编号,图书类别编号,书名,出版日期,作者,出版社,ISBN号,价格) 图书类别表(类别编号,类别名称,类别解释) 借阅者表(借阅者编号,借阅等级,姓名,性别,照片,电话,已借图书) 借阅者类别表(借阅等级,等级名称,最大可借图书数,最长借阅期限) 管理员表(管理员编号,姓名,性别,登陆密码,电话,照片) 罚金表(罚金级别,罚金名称,罚款说,罚金数量) 借书记录表(借阅者编号,图书编号,借书时间,还书期限,押金) 还书记录表(借阅者编号,图书编号,还书时间,退款) 罚款表(借阅者编号,罚款类别,已缴罚款,罚款原因) 5、物理模型 五、表空间设计 通过之前的概念结构设计,逻辑结构设计,物理结构设计得出来的模型可以知道,本图书管理系统大概有十张表,这些表从业务角度来分,主要有以下三类: (1) 与书库相关的表。包括图书表 (2) 与系统角色相关的表,包括借阅者表,管理员表 (3) 与案例业务相关的表,借书表,还书表。 除了这些表外,其他都是些参数类型的表。在我们的案例中,本系统是面向小型图书馆的。下面我们以一个借阅人数为500,藏书量为10000本的图书馆为例。有五百个借阅者需要建立借阅信息,10000本图书需要建立图书信息。预设10位管理员。粗略估算一下数据表空间为2G,索引表也设为2G,临时表空间设为500M。由于本系统大多数操作都是通过管理员进行的,并发性不高,所以回退表空间不需要很大,回退表空间就设为500M。 综上所述,本案例需要创建一个数据表空间,一个索引表空间,一个临时表空间并将回退表空间扩充,为其增加一个数据文件。表空间名称分别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用户 通过前面的需求分析可以知道,系统主要有两个系统角色,分别是管理员和借阅者,管理员有很多种权限,可以对除管理员表外的所有表进行增删改查的操作,而借阅者的权限比较低,只能进行一些针对特殊表的查找操作,例如,当借阅者想查询图书馆有没有自己想要的书可以对书库表进行查询,想知道自己的借阅记录可以查询借阅记录表。因此本例中我们新建两个角色,管理员和用户(operator和reader) 创建operator用户 创建reader用户 6.2、权限、角色管理 Operator用户是本系统的主用户,本案例数据库模型的数据库对象全部建立在此方案中,而reader用户只需要给他连接数据库的权限,然后由operator将部分数据库对象的查询权限授予他就行。 如上所述,暂给connect,resource权限给Operator用户,让operator用户可以建表等等: 而Reader用户先授予它连接数据库的权限, 由于Reader用户,前面说了可以查询书库和某些记录的权限。因此我们自定义一个角色,具有选择任何表的权限,然后把这个角色授予Reader。 到目前为止,我们创建了两个用户Operator和Reader Operator具有创建数据库对象的权利,而Reader只有查询的权限。可以通过sql语句查询各个用户的权限 Operator用户的角色信息和使用空间表的配额信息 Reader用户的角色信息和权限信息 七、表、约束、索引、视图管理 7.1、表管理 表是ORACLE数据库中的主要对象,是数据库中的数据存储的基本单位,存储着与应用程序相关的一些信息。其他许多数据库对象如索引、视图都以表为基础。下面我们将以前面概念模型设计通过正向工程生成的物理数据模型进一步生成的数据库创建的SQL脚本来建表。 具体的建表过程如下。 7.2、约束 完整性约束是一种规则,它不占任何数据空间完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。约束大致分为唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束,等,对于本例来说,主要是应该添加外键约束,检查约束,和默认值约束。例如,管理员表和借阅者表的性别字段应该添加检查约束,还有一些表与表之间的引用应该添加外键约束。下面我们将进行添加约束工作。 对于表Manager只用添加一些检查约束和空值约束就行了 对于表Reader因为存在引用,所以除了检查约束和空值约束还得添加外键约束 对于Book表只需添加外键约束 对于Borrow表因为和很多实体存在联系,所以得添加几个外键约束 给Returnbook表添加外键约束 给punishpay表添加外键约束 7.3索引管理 虽然关系数据库中的数据行的物理位置无关紧要,但在本案例中,管理员和用户用Book,Borrow,ReturnBook三个表的查询是非常集中的,所以为了加快用户查找的速度有必要设置索引。索引就是一种可以提高查询性能的数据结构。 在Book表中,用户查询一本书通常会按书名和书的类别进行查找,因此可以在书名和图书类别这两列设置非唯一索引 在borrow表中,通常会按书编号或借阅者id来查找一条借阅记录。因此可在书编号和借阅者ID上建立索引 同理给还书记录表设置索引 给罚款记录表设置索引 7.4、视图管理 视图是从一个表或多个表中通过查询二导出数据的虚表,建立视图并不占据空间。在本案例中在Reader表中有个已借图书数量borrowed,和readerclass,而在Readerclass表中规定了一个等级的用户可以借多少书,因此我们可以通过它来创建一个视图从而显示出用户还能借多少本图书。步骤如下: 创建视图 从视图中选择数据 就这样管理员就可以方便地判断是否可以将书籍出借给借阅者了。 或者还可以对视图进行修改, 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,创建触发器 同样的,当借阅者要求还书的时候,也应该对以上的表做出修改,因此,也对returnbook表创建触发器 先看对returnbook表执行插入前的三个表情况做对比 向returnbook表插入数据 查完后各表的状态为 到此,所有数据库基本对象的信息查询和管理也都进行过了。 八、PL/SQL语句 编写PL/SQL语句实现管理员查询图书记录的过程 查询结果: 编写PL/SQL语句查询耽搁读者的借阅记录 编写PL/SQL语句查询读者想要借的图书信息 九、 总结 在本次图书管理系统数据库设计中,通过每一个环节地亲历亲为,使我积累了一定经验。首先、需求分析的很重要,在开始的需求分析阶段,过于急于求成,并没有把需求分析做到最精致,导致后来在数据库的实现中出现了很多问题,例如,表的重要属性缺失,数据类型设计不合理。所幸,这些问题可以通过sql命令去解决。其次,powerDesign是个好工具,它在概念结构设计,物理结构设计中帮了不少忙。通过这次数据库设计也让我掌握了如何运用powerdesign,也明白了熟练掌握开发工具,会使你的项目开发事倍功半。 在数据库的实现过程中,也加深了我对数据库基本对 象的的理解。熟练了各种DDL,DML语句的使用,尤 其是触发器的运用。总之,这次的数据库设计让我受 益匪浅,同时也感谢授予我知识和技能的老师和书籍。 十、参考文献 《Oracle 11g+ASP.NET数据库系统开发案例教程》 --欧阳浩 《Oracle database 10g PL/SQL程序设计》 --Scott Urman 《Oracle 触发器与存储过程高级编程》 --Kevins Owens THANKS !!! 致力为企业和个人提供合同协议,策划案计划书,学习课件等等 打造全网一站式需求 欢迎您的下载,资料仅供参考- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 图书 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文