1、#*数据库系统原理课程设计课题名称:图书信息管理系统 姓 名: 班 级: 学 号: 指导老师: 2014 年 01 月 02 日#*目录1.绪论 -31.1 背景介绍 -31.2 开发背景的选用及介绍 -32.需求分析 -42.1 系统分析 -42.2 系统目标 -42.3 总体需求 -43.概念设计阶段 -53.1 实体 E-R 图 -53.2 数据流程图 -84.逻辑结构设计阶段 -84.1 E-R 图转换为关系模型 -84.2 数据字典 -95物理结构设计阶段 -105.1 物理设计阶段的目标和任务 -105.2 数据存储方面 -106.数据库实施与维护 -106.1 创建数据库,数据表
2、 -106.2 创建视图 -126.3 创建索引 -136.4 创建触发器 -136.5 数据表的初始化 -146.6 初始表的显示 -167数据库界面实现 -197.1 系统总的功能模块图 -197.2 系统的实现 -198.心得体会 -25#*1.绪论1.1 背景介绍随着社会的发展,人们对于知识的需求也在不断地增长。书籍作为人们获取并增长知识的主要途径,使得图书馆在人们生活中占有了一定位置。但是近几年来,随着书量的不断增长,造成了书库空间极度不足,图书挤压,管理不善。这些都直接影响了读者对图书馆藏书的充分利用。这时图书馆就特别需要开发一套书刊租借管理系统,通过该系统来提高图书馆的管理效率,
3、从而减少管理方面的工作流和成本。 一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。因此有一个智能化、系统化、信息化的图书管理系统十分重要的。充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱。方便友好的图形界面、简便的操作、完善的数据库管理。将会使得图书馆系统极大限度的应用于现代化图书管理中。1.2 开发背景的选用及介绍1.2.1 SQL Server 2005 的简介SQL 是英文(S
4、tructured Query Language)的缩写,意思为结构化查询语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通。SQL 被作为关系型数据库管理系统的标准语言。SQL 语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如 Oracle, Sybase, Microsoft SQL Server, Access 等都采用了 SQL 语言标准。SQL 语言有以下几个优点:1. 非过程化语言SQL 是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL 允许用户在高层的数据结构上工作,而不
5、对单个记录进行操作,可操作记录集,所有 SQL 语句接受集合作为输入,返回集合作为输出。SQL 的集合特性允许一条 SQL 语句的结果作为另一条 SQL 语句的输入。SQL 不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有 SQL 语句使用查询优化器,它是 RDBMS 的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。2. 统一的语言SQL 可用于所有用户的 DB 活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本
6、的 SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。3. 所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持 SQL 语言,用户可将使用 SQL 的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用 SQL 编写的程序都是可以移植的。#*1.2.2 java 简介java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性
7、,广泛应 4 用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。2.需求分析2.1 系统分析书刊租借系统(以高校的图书管理系统为例)是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。 在数据库应用系统开发之前,对开发数据库的基本概念,数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。
8、数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。2.2 系统目标1. 用户方便进行图书查询,图书浏览和图书分类浏览,进行图书借阅并了解自己的借书情况和个人情况。2. 用户在借书超期的情况下得到来自管理员的提醒。3. 管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改和锁定(限制用户的正常使用功能,使其无法登陆) 。管理员管理包括管理员信息的添加,删除,修改等。
9、4. 用户和管理员可以修改自己的密码,修改前需先核实自己的原始密码。5. 未注册用户读者也可以浏览所有的图书信息和分类信息,但是无法借阅。6. 考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书,程序自动跳转该分类图书查看。删除某个用户,如果存在借书记录则不允许删除,跳转到该用户的借书记录。等待管理员确认该用户所借图书已经全部归还之后才允许删除该用户信息。2.3 总体需求书刊租借系统(以高校图书馆为例)是一项复杂系统工程,要从实际出发,对实际情况进行客观的分析,深入了解需求。系统利用 java 与数据库结合的技术建立数据库管理系统,采用交互式的图形用户界面(GUI)来实现。需
10、求调查是为了研究系统设计的开发途径和方法。同时它也是进行概要设计和详细设计的基础,是进行内部维护和测试的依据。具体分析如下:添加操作:在执行操作时首先都要先检查是否已经输入以及数据库中是否已经存在输入的数据,如果存在会报错,程序返回上个页面,不执行添加操作。#*删除操作:考虑到了字段在不同表中可能会同时存在的情况,比如:删除图书分类时候该分类下有书或者删除用户时该用户有借书记录,这样的情况下程序会给出提醒并跳转到该分类下的所有图书查看或者是该用户的全部借书查看。直到这种关联取消掉之后才允许进行 删除这样的危险操作。查询操作:考虑到了模糊查询的实现, SQL 语句中用“like” ,还有组合查询
11、,通过对用户输入情况的判断来确定 SQL 语句的最终形式,比如用户查询时并未输入图书名字,就是名字匹配任意字符,那么程序给数据库的 SQL 语句就会是 name like %。组合查询的实现也是程序判断用户所做的选择或者输入,在 SQL 语句中实现的。超期统计:假定借书超期的限制是三十天,借书记录中的所有数据的借书时间如果不在当前服务器时间减去三十天和当前服务器时间之间,那么这条借书记录就属于超期记录了。由用户借书记录中的用户编号到用户表中查找该用户。发送消息:往消息表中添加数据,该数据包含用户名,用户超期的图书,超期时间,罚金等相关警告信息。当用户正常登陆主页后,程序自动检查消息表中是否存在
12、该用户的记录,如果有要给出提示,但是没有强制用户必须查看。数据库备份和还原操作:程序只要告诉 SQL 服务器执行备份和还原 SQL 语句就可以实现,在还原时程序还在使用系统数据库,此时执行还原操作会因为没有排它使用权出现错误,所以应告诉 SQL 服务器使用另外的一个数据库,程序中用的是:use master。还原操作时用 FSO 组件首先检查备份数据库文件是否存在,如果不存在则给出提示回到上个页面。所有条件都允许后则执行还原操作,如果数据库数据比较多,备份和还原的时间都可能会比较长。3.概念设计阶段3.1 实体 E-R 图书刊租借系统有书籍类别实体,书籍实体,读者实体,还书记录实体,借书记录实
13、体,罚款金额实体等。31.1 书籍种类实体 E-R 图3.1.2 书籍实体 E-R 图书籍种类种类编号 种类名称书籍书籍编号书籍名称书籍种类单价出版社作者借阅情况#*3.1.3 读者实体 E-R 图3.1.4 借书记录实体 E-R 图3.1.4 还书记录实体 E-R 图出版日期读者借书证号 姓名 性别注册日期 读者类别借书记录姓名 书籍编号 书籍名称应还时间借阅时间借书证号还书记录姓名书籍编号 借书证号#*3.1.4 还书记录实体 E-R 图3.1.5 总的 E-R 图(略去实体属性)归还时间借阅时间书籍名称罚款信息书籍编号 借书证号姓名书籍名称 超期时间 罚款金额还书记录归还读者罚款 罚款信
14、息书籍借阅 借书记录信息登记书籍种类#*3.2 数据流程图图书馆管理员还书记录 借书记录图书归还处理 检查读者身份检查图书是否可借填写借阅库,修改图书库借阅库 图书库借阅库 图书库填写归还记录 修改图书记录 有效可借填写借阅记录 借阅信息修改4.逻辑结构设计阶段4.1 E-R 图转换为关系模型#*书籍种类(种类编号,种类名称)书籍(书籍编号,书籍名称,书籍种类,作者,出版社,出版时间,单价,是否可借)读者(借书证号,姓名,性别,读者类别,注册日期)借书记录(姓名,书籍编号,书籍名称,借书证号,借阅时间,应还时间)还书记录(姓名,书籍编号,书籍名称,借书证号,借阅时间,归还时间)罚款信息(书籍编
15、号,书籍名称,借书证号,姓名,超期时间,罚款金额)4.2 数据字典表 4-2-1 书籍种类信息表表 4-2-2 书籍信息表表 4-2-3 读者种类信息表表 4-2-4 借书记录信息表表 4-2-5 还书记录信息表表中列名 数据类型及长度 可否为空种类编号 int Not null种类名称 Varchar(30) Not null表中列名 数据种类及长度 可否为空书籍编号 Varchar(20) Not null书籍名称 Varchar(30) Not null书籍种类 Varchar(30) Not null作者 Char(30) Not null出版社 Varchar(30) Null出版日
16、期 Datetime Null单价 Money Not null是否可借 Varchar(20) Not null表中列名 数据种类及长度 可否为空借书证号 Int Not null姓名 Varchar(10) Nou null性别 Char(2) null读者类别 Varchar(20) Null注册日期 Datetime Not null表中列名 数据种类及长度 可否为空姓名 Varchar(10) Not null书籍编号 Varchar(20) Not null书籍名称 Varchar(30) Not null借书证号 Int Not null借阅时间 Datetime Not nul
17、l应还时间 datetime Not null#*表 4-2-6 罚款信息表5物理结构设计阶段5.1 物理设计阶段的目标和任务数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:1) 确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;2) 对物理结构进行评价,评价的重点是时间和空间效率。5.2 数据存储方面为数据库中各基本表建立的索引如下:1) 由于基本表 readers_table,books_table 的主码借书证号,书籍编号经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;2) 借阅信息基
18、本表 borrow_record_table 的一属性借书证号,书籍编号,经常在查询条件中出现,考虑在其之上建立聚簇索引;3) 还书信息基本表 return_record_table 的一属性借书证号,书籍编号,经常在查询条件中出现,考虑在其之上建立聚簇索引;6.数据库实施与维护6.1 创建数据库,数据表6.1.1 创建libarysystem数据库表中列名 数据种类及长度 可否为空姓名 Varchar(10) Not null书籍编号 Varchar(20) Not null书籍名称 Varchar(30) Not null借书证号 Int Not null借阅时间 Datetime Not null归还时间 datetime Not null表中列名 数据种类及长度 可否为空书籍编号 Varchar(20) Not null借书证号 Int Not null姓名 Varchar(10) Not null书籍名称 Varchar(30) Not null超期时间 Int Not null罚款金额 Money Not null