图书管理系统数据库设计.docx
- 文档编号:6222940
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:20
- 大小:694.16KB
图书管理系统数据库设计.docx
《图书管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《图书管理系统数据库设计.docx(20页珍藏版)》请在冰豆网上搜索。
图书管理系统数据库设计
内容与要求
1.请结合软件类专业课程实验教学环节设计数据库,实现实验教学的有效管理,具体功能应包括但不限于:
(1)教师可以根据不同课程编辑和发布实验内容;
(2)学生可以浏览实验内容,同时完成作品的提交;
(3)学生可以在规定时间内填写、修改和提交实验报告;
(4)教师可以通过应用系统批改实验报告,并提交成绩;
(5)学生可以查询个人实验成绩;
2.给出数据库设计各个阶段的详细设计报告,包括:
(1)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)物理结构设计与实施
3.写出应用系统的主要功能设计;
4.写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想和建议;
5.独自完成作业,有雷同的平分得分;
6.也可以自行设计课题。
1绪论
数据库是数据管理的有效技术,是计算机科学的重要分支。
信息资源已成为各个部门的重要财富和资源。
建立一个满足各个部门信息处理系统核心和基础的数据库技术得到越来越广泛的应用。
随着社会信息量的与日俱增,职场竞争的日益激烈,越来也多的人更关注知识的积累、能力的培养。
作为信息存储的主要媒体之一,图书的规模、数量比以往任何时候都大的多,不论个人还是图书馆管理部门都需要使用方便有效的方式来管理自己的图书。
一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。
系统在IBMDB2平台上用SQL语言来编写实现。
此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认
1.1课题的意义
对于图书管理部门而言,以前单一的手工检索已经不能满足人们的要求,为了方便图书资料的管理需要有效的图书管理软件,缩短了借阅者的等待时间,减轻了工作人员的工作量,方便工作人员对他的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
本文以高校图书馆管理系统管理系统开发过程为背景,在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充,基本功能全面,系统可读性好,易于维护,更新,安全性好。
2应用系统功能设计
2.1业务操作流程
2.1.1读者角度的流程图
图2.1-1
2.1.2图书管理系统流程图
顶层数据流程图:
第二层数据流程图:
(读者借阅,读者还书,读者查询,管理员查询、修改)
2.2系统功能设计
系统功能模块图
3数据库设计
3.1需求分析
此部分写数据库需求分析,必须给出数据字典和数据流图。
3.1.1需求分析过程
(1)流程
读者到图书借阅处查询图书,看看是否有满足读者要求的图书。
如果有满足读者要求的图书,查看该图书是否在馆,如果在馆,则图书管理员在系统记录读者信息并记录借出图书信息,如果不在馆,通知读者。
如果读者要求的图书无法提供,则通知读者无法满足。
(2)功能:
实现图书的查询,借入和归还功能,而且能保存记录。
(3)流程图:
读者借阅图书,系统查询图书是否在馆。
图书已借出,显示已借出;未借出显示下一步,图书管理员管理图书,登记读者信息,借出图书。
3.1.2数据字典
(1)数据项:
数据项名
含义说明
数据类型
长度
与其他数据项的逻辑关系
读者编号
读者相关信息
整型
10
决定要借的书
读者姓名
读者相关信息
字符型
6
读者性别
读者相关信息
字符型
2
联系电话
读者相关信息
整型
7
所在系
读者相关信息
字符型
10
书名
图书相关信息
字符型
20
作者
图书相关信息
字符型
6
出版社
图书相关信息
字符型
20
管理员工作号
管理员信息
整型
10
图书借出、归还
管理员姓名
管理员信息
字符型
6
管理员性别
管理员信息
字符型
2
借书日期
借书相关信息
整型
10
还书日期
借书相关信息
整型
10
表3.1-1
(2)数据结构:
数据结构名
含义说明
组成
图书信息表
定义了图书的相关信息
ISBN,书名,作者,出版社,出版日期,简介
读者信息表
定义了读者有关信息
读者编号,姓名,性别,联系电话,系别
管理员信息表
定义了管理员有关信息
工作号,姓名,性别,电话,工资
借阅关系表
定义了借阅图书的有关信息
工作号,ISBN,读者编号,借书日期,还书日期,是否续借
管理员_书籍表
定义了管理员与书籍的有关信息
工作号,ISBN,添加时间,是否在馆
管理员_读者表
定义了管理员与学生的有关信息
工作号,读者编号,借还确认,违章状况,累计借书
表3.1-2
(3)数据流:
数据流名
来源
去向
读者信息
读者
图书管理员的管理处
图书信息
图书
图书管理员的管理处
借阅信息
借阅图书
图书管理员的管理处
表3.1-3
(4)数据存储:
数据存储名
含义说明
组成
读者信息
存储了读者的相关信息
读者编号,姓名,性别,联系电话,系别
图书信息
存储了图书的相关信息
ISBN,书名,作者,出版社,出版日期,简介
借阅信息
存储了借阅图书的有关信息
工作号,ISBN,读者编号,借书日期,还书日期,是否续借
表3.1-4
(5)处理过程:
处理过程名
含义说明
输入
输出
借书过程
查看图书是否被借出
图书信息
借阅信息
还书过程
查看借阅图书的信息
读者信息
图书信息
表3.1-5
3.2概念结构设计
此部分主要给出全局ER模型。
3.2.1实体
读者信息,图书信息,图书管理员信息
3.2.2局部视图
(1)
读者-借阅—图书
图3.2-1借阅关系E-R图
事务规则:
一个读者可以借阅多本图书(1:
n)
一本图书可以被一个读者借阅(1:
n)
(2)管理员—管理—读者
图3.2-2管理员_读者关系E-R图
事务规则:
一个图书管理员可以管理多个读者信息(1:
n)
一个读者信息只能被一个图书管理员管理(1:
1)
(3)管理员—管理—图书
n
n
图3.2-3管理员_书籍关系E-R图
事务规则:
一本图书可以被多个图书管理员管理(1:
n)
一个图书管理员可以管理多本图书(1:
n)
3.2.3视图集成
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。
在这一步中我们仅根据实体类型名和键来认定公共实体类型。
一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
2)局部ER模式的合并
合并的原则是:
首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。
3)消除冲突
冲突分为三类:
属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。
一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:
实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。
综上所述,“图书管理系统”的全局ER模式如下图所示。
图3.2-4系统全局ER图
3.3逻辑结构设计
给出优化后的关系模式。
3.3.1将E-R图转化为关系模式
由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。
由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。
设计结果是一组关系模式的定义。
将图2-4总体概念结构E-R图转化成关系模型。
1、读者(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书)
2、书籍(ISBN,书名,作者,出版社,出版日期,简介)
3、管理员(工作号,姓名,性别,电话,工资)
4、借阅(读者编号,ISBN,是否续借,借书日期,还书日期)
5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)
6、管理员_读者(工作号,读者编号,确认借还)
3.3.2数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
优化后的关系模式如下:
1、读者(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书)
2、书籍(ISBN,书名,作者,出版社,出版日期,简介)
3、管理员(工作号,姓名,性别,电话,工资)
4、借阅(读者学号,ISBN,是否续借,借书日期,还书日期)
5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)
6、管理员_读者(工作号,读者编号,确认借还)
表3.3.1图书信息表BOOK
字段名称
数据类型
长度
约束
属性
ISBN
char
20
NOTNULL
主码
书名
char
50
NOTNULL
非主属性
作者
char
20
NOTNULL
非主属性
出版社
char
50
非主属性
出版日期
date
非主属性
简介
char
200
非主属性
表3.3.2读者信息表STUDENT
字段名称
数据类型
长度
约束
属性
读者编号
char
20
NOTNULL
主码
读者姓名
char
10
NOTNULL
非主属性
读者性别
char
2
NOTNULL
非主属性
联系电话
char
10
非主属性
所在系
char
20
NOTNULL
非主属性
违章状况
char
2
非主属性
累计借书
int
非主属性
表3.3.3管理员信息表MANAGER
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
主码
姓名
char
20
NOTNULL
非主属性
性别
char
2
NOTNULL
非主属性
电话
char
12
非主属性
工资
char
12
非主属性
表3.3.4借阅关系表R-B
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
外码
ISBN
char
20
NOTNULL
外码
读者编号
char
20
NOTNULL
非主属性
借书日期
char
NOTNULL
非主属性
还书日期
NOTNULL
非主属性
是否续借
char
4
NOTNULL
非主属性
表3.3.5管理员_书籍表M-B
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
外码
ISBN
char
20
NOTNULL
外码
添加时间
data
非主属性
是否在馆
char
14
非主属性
表3.3.6管理员_学生表M-S
字段名称
数据类型
长度
约束
属性
工作号
char
12
NOTNULL
外码
读者学号
char
20
NOTNULL
外码
借还确认
char
4
NOTNULL
非主属性
3.4物理结构设计与实施
此部分写数据库物理结构设计,重点给出SQLServer2008中各个关系的实现情况,包括表和视图的create语句。
3.4.1建表
/*
(1)图书信息表BOOK*/
CreateTableBOOK
(ISBNchar(20)PrimaryKeyNotNull,
书名char(50)NotNull,
作者char(20)NotNull,
出版社char(50),
出版日期date,
简介char(100)
);
/*
(2)读者信息表STUDENT*/
CreateTableSTUDENT
(读者编号char(20)PrimaryKeyNotNull,
读者姓名char(10)NotNull,
读者性别char
(2)NotNull,
联系电话char(10),
所在系char(20)NotNull,
违章状况char
(2),
借书累计int
);
/*(3)管理员信息表MANAGER*/
CreateTableMANAGER
(工作号char(12)PrimaryKeyNotNull,
姓名char(20)NotNull,
性别char
(2)NotNull,
电话char(12),
工资char(12)
);
/*(4)借阅关系表R-B*/
CreateTableR_B
(工作号char(12)NotNull,
ISBNchar(20)NotNull,
读者编号char(20)NotNull,
借书日期dateNotNull,
还书日期dateNotNull,
是否续借char(4)NotNull,
PrimaryKey(ISBN,读者编号),
ForeignKey(ISBN)ReferencesBOOK(ISBN),
ForeignKey(读者编号)ReferencesSTUDENT(读者编号)
);
/*(5)管理员_书籍表M-B*/
CreateTableM_B
(工作号char(12)NotNull,
ISBNchar(20)NotNull,
添加时间date,
是否在馆char(14),
PrimaryKey(工作号,ISBN),
ForeignKey(工作号)ReferencesMANAGER(工作号),
ForeignKey(ISBN)ReferencesBOOK(ISBN)
);
/*(6)管理员_学生表M-S*/
CreateTableM_S
(工作号char(12)NotNull,
读者编号char(20)NotNull,
确认归还char(4)NotNull,
PrimaryKey(工作号,读者编号),
ForeignKey(工作号)ReferencesMANAGER(工作号),
ForeignKey(读者编号)ReferencesSTUDENT(读者编号)
);
3.4.2合法用户
(1)将图书信息表的查询权限授给读者S1
GrantSelect
ONTableBook
TOS1
(2)将借阅关系表R-B,管理员_书籍表M-B,管理员_学生表M-S的查询和修改的权限给管理员U1
GrantUpdate,Select
ONTableR-B,M-B,M-S
TOU1
3.4.3视图
在性别为女的管理员信息表上建立工资视图ManagerWage
CreateviewManagerWage
As
Select姓名,性别,工资
Frommanager
Where性别=’女’;
3.4.4触发器
建立一个如果管理员的工资不足700,自动改为700元的触发器——insert_orupdate_wage
Createtriggerinsert_orupdate_wage
Beforeinsertorupdateonmanager
Foreachrow
Asbegin
If(new.Professinal=’管理员’)and(new.工资<700)then
New.工资=700;
Endif;
End
3.4.5索引
在图书信息表BOOK上建立唯一索引D-BOOKNAME
CreateuniqueindexD-BOOKNAMEONBOOK;
在图书管理员表MANAGER上建立唯一索引M-MANAGER
CreateuniqueindexM-MANAGERONMANAGER;
4结束语
4.1收获和体会
1、这次课程设计使我熟悉了系统设计的整体步骤。
系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施以及调试测试六大步骤。
其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体发构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭空想象或者自己的了解,这样在后续的工作会遇到很多的问题。
2、在这次的课程设计过程中加深了我对数据库系统概论相关知识和SQLSERVER相关功能的理解。
并在解决遇到的各种问题的过程中,学习到了很多的知识,掌握了以前很不熟悉的知识点。
4.2总结与展望
通过此次的数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据库开始,对数据库设计理念及思想上有更高的认识,从需求分析到概念设计和逻辑设计,E-R图的表示,数据库字典的建立,懂得了不少有关数据库开发过程的知识,在实验中建立表格,及其关系模式,关系代数的建立及理解,将SQL的查询语句用的淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括插入、删除、修改、查询、牵涉表和表之间的联系,主键与外键的定义约束项的设置,使逻辑更加严密,在学习过程中,我也在网上查阅了不少的资料,也看了一些别人设计的图书管理系统的设计报告,学以致用,自我创新,独立完成了这份报告,从中在学到用,从用到学,不断修改,系统更新。
虽然不能达到完善系统,但也做到尽善尽美,加强理论学习对完善系统会有很大帮助,不管怎么说,这次的课程设计自己觉得还是比较满意的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 数据库 设计