1、大连交通软件学院数据库原理及应用课程设计设计题目:图书管理系统设计班 级:机械08级5班学 号: 15姓 名: 噢噢噢噢摘 要数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完数据库原理及应用课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库及其应用系统是具有管理功能的计算机系统,而数据库原理及应用课程设计在开发应用程序中至关重要
2、,合理的数据表结构不尽有利于软件的快速开发,而且有利于以后对软件的维护。目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会信息社会的重要支柱。在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。系统在IBMDB2平台上用SQL语言来编写实现。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操
3、作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。关键词:SQL语言;数据库设计;图书管理系统目 录1需求分析11.1需求分析过程11.2数据字典22概念模式设计32.1实体32.2 局部视图32.3视图集成43逻辑模式设计63.1将E-R图转化为关系模式63.2数据模型的优化64检验是否满足用户需求84.1调查用户需求85其它数据库对象(物理数据库设计)的考虑95.1建表95.2合法用户名字、权限、角色105.3视图105.4触发器115.5索引116数据库实施.116.1表的建立与数据的载入.116.2数据库运行11图书管理系统1需求分析1.1需求分析过程(
4、1)流程读者到图书借阅处查询图书,看看是否有满足读者要求的图书。如果有满足读者要求的图书,查看该图书是否在馆,如果在馆,则图书管理员在系统记录读者信息并记录借出图书信息,如果不在馆,通知读者。如果读者要求的图书无法提供,则通知读者无法满足。(2)功能:实现图书的查询,借入和归还功能,而且能保存记录。(3)流程图:读者借阅图书判断图书是否在馆图书管理员管理所借图书借阅读者借阅图书,系统查询图书是否在馆。图书已借出,显示已借出;未借出显示下一步,图书管理员管理图书,登记读者信息,借出图书。1.2数据字典:(1)数据项: 表1.1数据项名 含义说明 数据类型 长度 与其他数据项的逻辑关系读者编号 读
5、者相关信息 字符型 10 决定了要借阅的图书读者姓名 读者相关信息 字符型 6读者性别 读者相关信息 字符型 2联系电话 读者相关信息 字符型 7所在系 读者相关信息 字符型 10书 名 图书相关信息 字符型 20作 者 图书相关信息 字符型 6出版社 图书相关信息 字符型 20管理员工作号 管理员相关信息 字符型 10 管理图书的借出和归还管理员姓名 管理员相关信息 字符型 6管理员性别 管理员相关信息 字符型 2借书日期 借书相关信息 字符型 10还书日期 借书相关信息 字符型 10(2)数据结构: 表1.2数据结构名 含义说明 组成图书信息表 定义了图书的相关信息 ISBN,书名,作者,
6、出版社,出版日期,简介读者信息表 定义了读者有关信息 读者编号,姓名,性别,联系电话,系别 管理员信息表 定义了管理员有关信息 工作号,姓名,性别,电话,工资借阅关系表 定义了借阅图书的有关信息 工作号,ISBN,读者编号,借书日期,还书日期,是否续借管理员书籍表 定义了管理员与书籍的有关信息 工作号,ISBN,添加时间,是否在馆管理员读者表 定义了管理员与学生的有关信息 工作号,读者编号,借还确认,违章状况,累计借书(3)数据流:表1.3数据流名 来源 去向读者信息 读者 图书管理员的管理处图书信息 图书 图书管理员的管理处借阅信息 借阅图书 图书管理员的管理处(4)数据存储:表1.4数据存
7、储名 含义说明 组成读者信息 存储了读者的相关信息 读者编号,姓名,性别,联系电话,系别图书信息 存储了图书的相关信息 ISBN,书名,作者,出版社,出版日期,简介借阅信息 存储了借阅图书的有关信息 工作号,ISBN,读者编号,借书日期,还书日期,是否续借(5)处理过程:表1.5处理过程名 含义说明 输入 输出借书过程 查看图书是否被借出 图书信息 借阅信息还书过程 查看借阅图书的信息 读者信息 图书信息2概念模式设计2.1实体:读者信息,图书信息,图书管理员信息2.2局部视图:图 书读 者借 阅编号姓名性别所在系违章数累计借书还书日期借书日期书名出版社出版日期ISBN简介作者1n(1) 读者
8、借阅图书图2-1借阅关系E-R图事务规则:一个读者可以借阅多本图书(1:n) 一本图书可以被一个读者借阅(1:n)(2)管理员管理读者管理员读 者管 理 编号姓名性别所在系违章数累计借书借还确认姓名电话工作号工资性别1n图2-2管理员_读者关系E-R图事务规则:一个图书管理员可以管理多个读者信息(1:n) 一个读者信息只能被一个图书管理员管理(1:1)(3)管理员管理图书工作号图 书管理员管 理姓名性别工资电话借书是否在馆添加时间书名出版社出版日期ISBN简介作者 nmm图2-3管理员_书籍关系E-R图事务规则:一本图书可以被多个图书管理员管理(m:n) 一个图书管理员可以管理多本图书(m:n
9、)2.3视图集成所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。1)确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部ER模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突冲突分为
10、三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。4)全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。综上所述,“图书管理系统”的全局ER模式如下图所示。 图2.4系统全局ER图图2-4系统全局ER图3逻辑模式设计3.1将E-R图转化为关系模式由于概念设计
11、的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。将图2-4总体概念结构E-R图转化成关系模型。1、读者(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书) 2、书籍(ISBN,书名,作者,出版社,出版日期,简介)3、管理员(工作号,姓名,性别,电话,工资)4、借阅(读者编号,ISBN,借书日期,还书日期)5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)6、管理员_读者(工作号,读者编号,确认借还)
12、3.2数据模型的优化将转化的关系模式进行优化,最终达到第三范式。优化后的关系模式如下:1、读者(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书) 2、书籍(ISBN,书名,作者,出版社,出版日期,简介)3、管理员(工作号,姓名,性别,电话,工资)4、借阅(读者编号,ISBN,借书日期,还书日期)5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)6、管理员_读者(工作号,读者编号,确认借还)表3.1 图书信息表BOOK字段名称 数据类型 长度 约束 属性数据类型长度约束描述ISBN char 20 NOT NULL 主键书名 char 50 NOT NULL 非主属性作
13、者 char 20 NOT NULL 非主属性出版社 char 50 非主属性出版日期 char 非主属性简介 char 200 非主属性表3.2 读者信息表STUDENT字段名称 数据类型 长度 约束 属性数据类型长度约束描述读者编号 char 20 NOT NULL 主键读者姓名 char 10 NOT NULL 非主属性读者性别 char 2 NOT NULL 非主属性所在系 char 20 NOT NULL 非主属性违章状况 char 2 非主属性累计借书 int 非主属性表3.3 管理员信息表MANAGER字段名称 数据类型 长度 约束 属性数据类型长度约束描述工作号 char 12
14、 NOT NULL 主键姓名 char 20 NOT NULL 非主属性性别 char 2 NOT NULL 非主属性电话 char 12 非主属性工资 char 12 非主属性表3.4 借阅关系表R-B字段名称 数据类型 长度 约束 属性ISBN char 20 NOT NULL 主键读者编号 char 20 NOT NULL 主键借书日期 char NOT NULL 非主属性还书日期 char NOT NULL 非主属性表3.5 管理员_书籍表M-B字段名称 数据类型 长度 约束 属性工作号 char 12 NOT NULL 主键ISBN char 20 NOT NULL 主键添加时间 c
15、har 非主属性是否在馆 char 14 非主属性表3.6 管理员_学生表M-S字段名称 数据类型 长度 约束 属性工作号 char 12 NOT NULL 主键读者学号 char 20 NOT NULL 主键借还确认 char 4 NOT NULL 非主属性4检验是否满足用户需求4.1调查用户需求读者需求(1) 借阅功能:能够方便地借阅图书、续借图书、归还图书(2) 查询功能:1)按图书编号查找图书2)按书籍名称查找图书3)按书籍作者查找图书4)能够按照自己的图书证编号查询自己的状态信息图书管理员需求(1)读者注册功能:能够对新的读者进行登记,或注销读者的信息信息。(2)图书录入功能:能够将
16、新到的图书信息输入到系统的图书信息库中。(3)统计功能:1)按图书编号统计书籍数量2)按书籍名称统计数量3)按作者统计书籍数量5 数据库的物理设计5.1建表(1) 图书信息表BOOK Create Table BOOK ( ISBN char(20) Primary Key Not Null, 书名 char(50) Not Null, 作者 char(20) Not Null, 出版社 char(50), 出版日期 date( ), 简介 char(300) );(2)读者信息表STUDENTCreate Table STUDENT ( 读者编号 char(20) Primary Key N
17、ot Null, 读者姓名 char(10) Not Null, 读者性别 char(2) Not Null, 联系电话 char(10), 所在系char(20) Not Null, 违章状况 char(2), 借书累计 int( );(3) 管理员信息表MANAGER Create Table MANAGER ( 工作号 char(12) Primary Key Not Null, 姓名 char(20) Not Null, 性别 char(2) Not Null, 电话 char(12), 工资 char(12) );(4)借阅关系表R-BCreate Table R-B ( 工作号 c
18、har(12) Not Null, ISBN char(20) Not Null, 读者编号 char(20) Not Null, 借书日期 date( ) Not Null, 还书日期 date( ) Not Null, 是否续借 char(4) Not Null,Primary Key(ISBN,读者编号),Foreign Key(ISBN)References BOOK(ISBN),Foreign Key(读者编号)References STUDENT(读者编号);(5)管理员_书籍表M-BCreate Table M-B ( 工作号 char(12) Not Null, ISBN ch
19、ar(20) Not Null, 添加时间 date(), 是否在馆 char(14),Primary Key(工作号,ISBN),Foreign Key(工作号)References MANAGER(工作号),Foreign Key(ISBN)References BOOK(ISBN);(6)管理员_学生表M-SCreate Table M-S ( 工作号 char(12) Not Null, 读者编号 char(20) Not Null, 确认归还 char(4) Not Null,Primary Key(工作号, 读者编号),Foreign Key(工作号)References MANA
20、GER(工作号),Foreign Key(读者编号)References STUDENT(读者编号);5.2合法用户名字、权限、角色(1) 将图书信息表的查询权限授给读者S1Grant SelectON Table BookTO S1(2)将借阅关系表R-B,管理员_书籍表M-B,管理员_学生表M-S的查询和修改的权限给管理员U1Grant Update,SelectON Table R-B,M-B,M-STO U15.3视图在性别为女的管理员信息表上建立工资视图ManagerWageCreate view ManagerWageAsSelect 姓名,性别,工资From managerWhe
21、re 性别 =女;5.4触发器CREATE TRIGGER ADMINISTRATOR.T-121 NO CASCADE BEFORE INSERT ON ADMINISTRATOR.读者信息表 REFERENCING NEW AS new FOR EACH ROW MODE DB2SQL WHEN ( new.suozaixi=软件 )BEGIN ATOMICselect duzhebianhaofrom 读者信息表 ;END5.5索引在图书信息表BOOK上建立唯一索引D-BOOKNAMECreate unique index D-BOOKNAME ON BOOK;在图书管理员表MANAGE
22、R上建立唯一索引M-MANAGERCreate unique index M-MANAGER ON MANAGER;6数据库的实施6.1表的创建与数据的载入1管理员信息表2读者信息表3借阅关系表4. 管理员-书籍表5 管理员-学生表6.图书信息表6.2数据库的查询与操作1 抓一些查询结果的界面,至少五个,对每个查询的图,写出相应得查询语句 图6.2.1. 查找女读者的全部信息 图6.2.2 查询交通出版社的图书及作者 图6.2.3向图书信息表 插入一本书的全部信息操作 图6.2.4删除图书信息表isbn号=11的图书的所有数据 图6.2.5 修改工作号为1的管理员的工资总结学习完数据库原理及应
23、用课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统。一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。系统在IBMDB2平台上用SQL语言来编写实现。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认 参考文献1 杨鑫华,赵慧敏等数据库原理与DB2应用教程M清华大学出版社,2007.82 王珊,陈红数据库系统原理教程M清华大学出版社,1998.7 3 牛新庄循序渐进DB2DBA系统管理、运维与应用案例M清华大学出版社,2009