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