1、数据库课程设计图书管理系统数据库设计姓名:贺佳伟 学号:21513129指导教师:童蔚苹数据库课程设计 1一、数据库需求分析1.1 用户需求1.1.1 系统现状及主要解决问题近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍的增加,面对着庞大的信息量,传统的人工方式管理的记录中我们可以发现这样的问题:(1)检索速度慢、效率低。因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难往往是终于查到了书的信息,馆中没有此书或已被别人借走。图书馆的规模越大,这个问题越突出。(2)借书、还书工作量大。借书、还书频率越大,说明图书馆的作用越大,然而
2、随之而来的大量的借书、 还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往 往是人工操作所难以胜任的。而且经常会出现这样那样的差错。(3)图书统计工作难、藏书更新不能及时完成。图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。因此必须制定一套合理、有效、规范和实用的图书管理系统,对图书资料进行集中统一的管理。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。使图
3、书管理者便于对图书和读者的管理。本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销等;还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况 。1.1.2 要达到的具体指标(1)可随时查询书库中现有书籍的种类、数量与存放位置。所有各类书籍均可由书号唯一标识。(2)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。(3)当需要时,
4、可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。1.2 业务流程分析1.2.1 系统的业务流程对于图书管理系统,其内部数据应该包括图书信息,读者信息,系统用户信息,借阅情况的信息。这些数据对于图书管理系统来说,缺一不可。其中,图书信息应该包括图书名称,图书的作者,图书编码,查询该图书的关键词等;读者信息应该包括读者姓名,读者单位,读者的借书证号,读者的借书数量等;系统用户信息包括用户名,密码等,借阅情况信息包括图书的借书日期,图书证号,图书编码等。数据库课程设计 2有了该系统,读者可以通过
5、书籍的名称、作者姓名或关键字等条件查找到自己想要的书籍,包括书籍编号、出版时间、书籍数量、剩余数量等。然后到图书馆进行借阅就可以了,也可以通过该系统进行预借。图书管理员通过该系统可以对图书进行 3 大操作:删除、增加以及查询;而对学生的管理中就有 4 项:借书、还书、增加和删除记录、查询等。1.2.2 系统业务流程图开始管理员登陆书库维护 读者维护图书添加图书注销图书查询添加删除借书输入图书编号此书是否在库输入读者学号借书成功添加成功删除成功还书是否超期还书成功结束YYYYNNNNNNN数据库课程设计 3图 1-1 系统业务流程图1.3 功能需求分析1、安全性管理:给每个管理员一个用户名和密码
6、,以登录图书馆管理系统,便于身份验证,管理员可以拥有最高权限对数据库进行所有操作。同样拥有一个用户名和密码,但普通用户只能进行查询操作,看个人信息和图书馆中图书信息不可修改它们。(1)管理员:增加、删除、查询、修改图书信息;增加、删除、查询、修改读者信息;图书借出、图书归还、逾期还书处理、图书注销(2)读者: 查询图书信息、查看借书情况、查询个人信息、历史借书情况、超期还书警告。2、读者信息管理:该功能模块用于管理相关的读者信息,包括的子功能模块如下图所示图 12 读者信息功能模块“读者类型”用于设置读者的类型及相关的信息,内容包括读者的身份、可借册数,可续借次数等。“读者档案管理”用于设置读
7、者相关的信息,内容包括编号、姓名、身份、读者性别、联系方式、登记日期、有效期至、违规次数、现借图书数、是否挂失。“借书证挂失与恢复”用于挂失和恢复读者的借书证,挂失后该编号的读者不能再借书。3、图书管理:该功能模块用于管理图书相关的信息包含的功能模块如下图所示读者信息读者类型管理读者档案管理借阅证挂失与恢复数据库课程设计 4图书管理图书基本信息图书档案管理图书征订图书盘点图书查看图书注销图 13 “图书管理”功能模块 “图书基本信息设置”用于设置图书的类型及相关的信息,内容包括 ISBN、书名、版次、类型、作者、出版社、价格、现存量、库存总量。“图书档案管理”用于设置图书相关信息,内容包括编号
8、、ISBN、入库时间。“图书征订”用于订购新图书,内容包括征订编号、ISBN、订购数量、订购日期。“图书注销”用于注销图书,被注销的图书不可以再借出,并且应将图书信息进行修改。“图书查看”用于查看某本书的情况。“图书盘点”输出图书的在库清单供盘点使用。4、图书流通管理:此功能模块用于管理图书流通环节的相关的操作,包括如下图所示的功能模块。图书馆流通管理图书借阅图书归还图书丢失图书罚款图 14 “图书流通管理”功能模块“图书借阅”用于登记读者借阅图书的记录并减少图书在库的库存,登记内容包括借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、图书状态等。图书馆管理员数据库课程设计 5作为借
9、阅者的代操纵借书和还书者。借书时只要输入借阅的书刊编号就可以,然后输入借阅者的借阅卡号,完成后提交,系统验证借阅者是否有效,若有效借阅请求被接收并处理,系统将库存中图书数量减一,同时将读者信息中借书量加一。“图书归还”用于登记读者归还图书的记录并增加图书在库的库存,登记内容包括归还编号、图书编号、读者编号、归还时间等。系统查询借阅此书的人的信息以及该书被借日期判断是否过期,若过期将进行罚款,并将该书刊的借阅记录改为已还。“图书丢失”用于报失图书,内容包括丢失编号、图书编号、读者编号、赔偿金额、操作时间等。“图书罚款”用于对图书超期、丢失等情况的罚款管理,内容包括罚款编号、图书编号、读者编号、罚
10、款日期、罚款金额、是否交款、备注等。5、系统功能层次图如图 15 所示:管理员读者信息流通管理图书信息图书借阅图书归还图书征订图书罚款修改查询查询修改图书注销图 1-5 系统总流程图数据库课程设计 6二、数据库概念设计2.1 ERD 的四条原则及相应得出的实体、联系、属性以及实体的标识特征根据 ERD 的四条原则:原则 1:能独立存在的事物,在其有多个由基本项描述的特征需要关注时,就应把它作为实体。在系统中,可得知有“图书” 、 “读者” 、 “出版社”3 个实体。原则 2:两个或多个实体间的关联与结合,当需要予以关注时,应作为联系。在系统中,可以得知有“借阅图书”和“购买图书”两个联系。原则
11、 3:实体的属性是实体的本质特征;联系的属性是联系的结果或状态。原则 4:信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性得出。在系统中,可以得出:图书信息(图书编号,书名,作者,出版社,种类)读者信息(读者学号,姓名,专业与班级,学院与年级,已借书数,允许借书数)管理员信息(管理员编号,姓名,管理员密码,管理员权限)借阅图书(读者学号,图书编号,书名,借阅日期,归还日期)归还图书(读者学号,图书编号,书名,借阅日期,归还日期)出版社(出版社名,联系人,电话,邮编,地址)书架(图书编号,书名,位置)2.2 画出并改进 ERD如图 2-1 所示为改进后的整体 E-R 图。数据库课程
12、设计 7管理员姓名经办借还书登记表借还读者是否超期上次借期是否借满借书日期清点盘目单所盘盘存实际数 盈余数位置书架图书编号书名采购编号 工作 用户 密码 电话 地址所借还图书供应供书单出版社名学号姓名专业与班级学院与年级已借书数允许借书数电话邮编地址联系人职称号出版社图 2-1 改进后的整体 E-R 图三、数据库逻辑设计数据库课程设计 83.1 一般逻辑模型设计3.1.1 由 ERD 导出一般关系模型的四条原则:原则一:每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。原则二:从实体及响应的“的”联系变换为一个关系,从实体的属性加上主实体关系的主码构成这个关系的属性。
13、如果“的”联系是 1:1 的,则以实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是 1:N 的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以互相区分的属性组,组成该关系的主码。原则三:1:N 联系通过在“ 多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。原则四:N:N 联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。3.1.2 数据库初步构思的关系框架基本框架如下:表 3-1 图书信息表图书编号 书名 作者 出版社 种类主码表 3
14、-2 读者信息表读者学号 姓名 专业与班级 学院与年级 已借书数 允许借书数主码表 3-3 管理员信息表管理员编号 姓名 管理员密码 管理员权限数据库课程设计 9主码表 3-4 借阅图书表读者学号 图书编号 书名 借阅日期 归还日期外码 外码主码 主码表 3-5 归还图书表读者学号 图书编号 书名 借阅日期 归还日期外码 外码主码 主码表 3-6 出版社关系表出版社名 联系人 电话 邮编 地址主码表 3-7 书架关系表图书编号 书名 位置主码3.2 具体逻辑模型设计表的具体结构表名 字段名 字段类型 关键字 约束说明图书编号 8 个字符 是图书信息书名 20 个字符 不允许空值数据库课程设计
15、10作者 10 个字符出版社 20 个字符种类 8 个字符读者学号 8 个字符 是姓名 10 个字符专业与班级 20 个字符学院与年级 20 个字符已借书数 整数读者信息允许借书数 整数管理员编号 8 个字符 是姓名 10 个字符管理员密码 10 个字符管理员信息管理员权限 4 个字符 取值为“删除” 、 “增加” 、“查询”读者学号 8 个字符 参照读者信息表的读者学号,不允许空值图书编号 8 个字符 参照图书信息表的图书编号,不允许空值书名 20 个字符借阅日期 10 个字符借阅图书归还日期 10 个字符读者学号 8 个字符 参照读者信息表的读者学号,不允许空值图书编号 8 个字符 参照图
16、书信息表的图书编号,不允许空值书名 20 个字符借阅日期 10 个字符归还图书归还日期 10 个字符出版社名 20 个字符 唯一值联系人 10 个字符电话 8 个字符邮编 6 个字符出版社地址 10 个字符图书编号 8 个字符 参照图书信息表的图书编号,不允许空值书名 20 个字符书架位置 8 个字符四、数据库物理设计数据库课程设计 114.1 设计表间关系在图书管理系统中,存在着参照关系和被参照关系。书架表 参照关系外部关键字主关键字图书信息表 被参照关系图 4-1 参照关系与被参照关系4.2 完整性设计现实世界中的实体之间存在着某种联系,而在关系模型中实体是用关系描述的,实体之间的联系也是
17、用关系描述的,这样就自然存在着关系和关系之间的参照或引用。图书管理系统参照完整性表如下:书架 1:n 1:n出版社图书编号 书名 位置bj01001 基础会计学 一楼 A 格bj01002 中国大历史 二楼 A 格bj01003 我在回忆里等你 三楼 B 格bj01004 杜拉拉升职记 四楼 A 格bj01005 视听说教程 一楼 B 格图书编号 书名 作者 出版社 种类bj01001 基础会计学 彭卉 华南理工大学出版社 教科书bj01002 中国大历史 黄仁宇 中国发展出版社 历史书bj01003 我在回忆里等你 辛夷坞 江苏文艺出版社 文学作品bj01004 杜拉拉升职记 李可 江苏文艺
18、出版社 小说bj01005 视听说教程 秦秀白 上海外语教育出版社 教科书图书编号 书名 位置书名 作者 出版社 种类图书编号出版社名 电话联系人 邮编 地址数据库课程设计 12图书信息n:n读者图 4-2 说明关联和参照关五、数据库系统的实现5.1 数据库及其表结构的建立图表 1“图书管理系统”数据库基本表读者学号 姓名 专业与班级 学 4 院与年级已借书数 允许借书数数据库课程设计 13图表 2 图书数据库的创建数据库课程设计 14图表 3 建立图书信息表数据库课程设计 15图表 4 建立读者信息表图表 5 建立管理员信息表数据库课程设计 16图表 6 建立借阅图书表图表 7 建立归还图书
19、信息表数据库课程设计 17图表 8 建立出版社信息表图表 9 建立书架信息表5.2 数据输入图书信息表的数据:数据库课程设计 18读者信息表的数据:管理员信息表的数据:数据库课程设计 19借阅图书表的数据:归还图书表的数据:数据库课程设计 20出版社信息表的数据:数据库课程设计 21书架信息表的数据:六、典型的 SQL 语句查询1Distinct 语句图表 10Distinct 语句数据库课程设计 222.选择表中的若干列图表 11 选择表中的若干列3.字符匹配图表 12 字符匹配4.带有 ANY 或 ALL 谓词的查询数据库课程设计 23图表 13 带有 ANY 或 ALL 谓词的查询5.带有 EXIST 谓词的子查询图表 14 带有 EXIST 谓词的子查询6.新建视图查询数据库课程设计 24图表 15 新建视图查询7集合查询图表 16 集合查询数据库课程设计 258.嵌套查询图表 17 嵌套查询9.对查询结果分组图表 18 对查询结果分组10.使用集函数数据库课程设计 26图表 19 使用集函数11.空值查询图表 20 空值查询12.查询后排序数据库课程设计 27图表 21 查询后排序13.多重条件图表 22 多重条件14.大于或小于数据库课程设计 28图表 23 大于或小于15.确定集合图表 24 确定集合