图书管理系统数据库设计64104Word文档下载推荐.docx
《图书管理系统数据库设计64104Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书管理系统数据库设计64104Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
5.5索引.........................................................11
6备份及恢复策略.................................................11
6.1备份策略.....................................................11
6.2恢复策略.....................................................11
1需求分析
1.1需求分析过程
(1)流程
读者到图书借阅处查询图书,看看是否有满足读者要求的图书。
如果有满足读者要求的图书,查看该图书是否在馆,如果在馆,则图书管理员在系统记录读者信息并记录借出图书信息,如果不在馆,通知读者。
如果读者要求的图书无法提供,则通知读者无法满足。
(2)功能:
实现图书的查询,借入和归还功能,而且能保存记录。
(3)流程图:
读者
借阅
图书
判断图书是否在馆
图书管理员
管理
所借图书
读者借阅图书,系统查询图书是否在馆。
图书已借出,显示已借出;
未借出显示下一步,图书管理员管理图书,登记读者信息,借出图书。
1.2数据字典:
(1)数据项:
表1.1
数据项名含义说明数据类型长度与其他数据项的逻辑关系
读者编号读者相关信息整型10决定了要借阅的图书
读者读者相关信息字符型6
读者性别读者相关信息字符型2
联系读者相关信息整型7
所在系读者相关信息字符型10
书名图书相关信息字符型20
作者图书相关信息字符型6
图书相关信息字符型20
管理员工作号管理员相关信息整型10管理图书的借出和归还
管理员管理员相关信息字符型6
管理员性别管理员相关信息字符型2
借书日期借书相关信息整型10
还书日期借书相关信息整型10
(2)数据结构:
表1.2
数据结构名含义说明组成
图书信息表定义了图书的相关信息ISBN,书名,作者,,出版日期,简介
读者信息表定义了读者有关信息读者编号,,性别,联系,系别
管理员信息表定义了管理员有关信息工作号,,性别,,工资
借阅关系表定义了借阅图书的有关信息工作号,ISBN,读者编号,借书日期,还书日期,是否续借
管理员_书籍表定义了管理员与书籍的有关信息工作号,ISBN,添加时间,是否在馆
管理员_读者表定义了管理员与学生的有关信息工作号,读者编号,借还确认,违章状况,累计借书
(3)数据流:
表1.3
数据流名来源去向
读者信息读者图书管理员的管理处
图书信息图书图书管理员的管理处
借阅信息借阅图书图书管理员的管理处
(4)数据存储:
表1.4
数据存储名含义说明组成
读者信息存储了读者的相关信息读者编号,,性别,联系,系别
图书信息存储了图书的相关信息ISBN,书名,作者,,出版日期,简介
借阅信息存储了借阅图书的有关信息工作号,ISBN,读者编号,借书日期,还书日期,是否续借
(5)处理过程:
表1.5
处理过程名含义说明输入输出
借书过程查看图书是否被借出图书信息借阅信息
还书过程查看借阅图书的信息读者信息图书信息
2概念模式设计
2.1实体:
读者信息,图书信息,图书管理员信息
2.2局部视图:
(1)
读者—借阅—图书
图2-1借阅关系E-R图
事务规则:
一个读者可以借阅多本图书(1:
n)
一本图书可以被一个读者借阅(1:
(2)管理员—管理—读者
1
n
图2-2管理员_读者关系E-R图
一个图书管理员可以管理多个读者信息(1:
一个读者信息只能被一个图书管理员管理(1:
1)
(3)管理员—管理—图书
图2-3管理员_书籍关系E-R图
一本图书可以被多个图书管理员管理(1:
一个图书管理员可以管理多本图书(1:
2.3视图集成
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。
在这一步中我们仅根据实体类型名和键来认定公共实体类型。
一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
2)局部ER模式的合并
合并的原则是:
首先进行两两合并;
先和合并那些现实世界中有联系的局部结构;
合并从公共实体类型开始,最后再加入独立的局部结构。
3)消除冲突
冲突分为三类:
属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。
一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:
实体类型的个数要尽可能的少;
实体类型所含属性个数尽可能少;
实体类型间联系无冗余。
综上所述,“图书管理系统”的全局ER模式如下图所示。
图2.4系统全局ER图
图2-4系统全局ER图
3逻辑模式设计
3.1将E-R图转化为关系模式
由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。
由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规化理论,使设计过程形式化地进行。
设计结果是一组关系模式的定义。
将图2-4总体概念结构E-R图转化成关系模型。
1、读者(读者编号,读者,读者性别,联系,所在系,违章状况,累计借书)
2、书籍(ISBN,书名,作者,,出版日期,简介)
3、管理员(工作号,,性别,,工资)
4、借阅(读者编号,ISBN,是否续借,借书日期,还书日期)
5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)
6、管理员_读者(工作号,读者编号,确认借还)
3.2数据模型的优化
将转化的关系模式进行优化,最终达到第三式。
优化后的关系模式如下:
4、借阅(读者学号,ISBN,是否续借,借书日期,还书日期)
表3.1图书信息表BOOK
字段名称数据类型长度约束属性
数据类型
长度
约束
描述
ISBNchar20NOTNULL主码
书名char50NOTNULL非主属性
作者char20NOTNULL非主属性
char50非主属性
出版日期date非主属性
简介char200非主属性
表3.2读者信息表STUDENT
读者编号char20NOTNULL主码
读者char10NOTNULL非主属性
读者性别char2NOTNULL非主属性
联系char10非主属性
所在系char20NOTNULL非主属性
违章状况char2非主属性
累计借书int非主属性
表3.3管理员信息表MANAGER
工作号char12NOTNULL主码
char20NOTNULL非主属性
性别char2NOTNULL非主属性
char12非主属性
工资char12非主属性
表3.4借阅关系表R-B
工作号char12NOTNULL外码
ISBNchar20NOTNULL外码
读者编号char20NOTNULL非主属性
借书日期dateNOTNULL非主属性
还书日期dateNOTNULL非主属性
是否续借char4NOTNULL非主属性
表3.5管理员_书籍表M-B
工作号char12NOTNULL外码
ISBNchar20NOTNULL外码
添加时间data非主属性
是否在馆char14非主属性
表3.6管理员_学生表M-S
读者学号char20NOTNULL外码
借还确认char4NOTNULL非主属性
4检验是否满足用户需求
4.1调查用户需求
①读者需求
(1)借阅功能:
能够方便地借阅图书、续借图书、归还图书
(2)查询功能:
1)按图书编号查找图书
2)按书籍名称查找图书
3)按书籍作者查找图书
4)能够按照自己的图书证编号查询自己的状态信息
②图书管理员需求
(1)读者注册功能:
能够对新的读者进行登记,或注销读者的信息信息。
(2)图书录入功能:
能够将新到的图书信息输入到系统的图书信息库中。
(3)统计功能:
1)按图书编号统计书籍数量
2)按书籍名称统计数量
3)按作者统计书籍数量
5其它数据库对象(物理数据库设计)的考虑
5.1建表
(1)图书信息表BOOK
CreateTableBOOK
(ISBNchar(20)PrimaryKeyNotNull,
书名char(50)NotNull,
作者char(20)NotNull,
char(50),
出版日期date(),
简介char(300)
);
(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,
借书日期date()NotNull,
还书日期date()NotNull,
是否续借char(4)NotNull,
PrimaryKey(ISBN,读者编号),
ForeignKey(ISBN)ReferencesBOOK(ISBN),
ForeignKey(读者编号)ReferencesSTUDENT(读者编号)
(5)管理员_书籍表M-B
CreateTableM-B
添加时间date(),
是否在馆char(14),
PrimaryKey(工作号,ISBN),
ForeignKey(工作号)ReferencesMANAGER(工作号),
ForeignKey(ISBN)ReferencesBOOK(ISBN)
(6)管理员_学生表M-S
CreateTableM-S
确认归还char(4)NotNull,
PrimaryKey(工作号,读者编号),
5.2合法用户名字、权限、角色
(1)将图书信息表的查询权限授给读者S1
GrantSelect
ONTableBook
TOS1
(2)将借阅关系表R-B,管理员_书籍表M-B,管理员_学生表M-S的查询和修改的权限给管理员U1
GrantUpdate,Select
ONTableR-B,M-B,M-S
TOU1
5.3视图
在性别为女的管理员信息表上建立工资视图ManagerWage
CreateviewManagerWage
As
Select,性别,工资
Frommanager
Where性别=’女’;
5.4触发器
建立一个如果管理员的工资不足700,自动改为700元的触发器——insert_orupdate_wage
Createtriggerinsert_orupdate_wage
Beforeinsertorupdateonmanager
Foreachrow
Asbegin
If(new.Professinal=’管理员’)and(new.工资<
700)then
New.工资=700;
Endif;
End
5.5索引
在图书信息表BOOK上建立唯一索引D-BOOKNAME
CreateuniqueindexD-BOOKNAMEONBOOK;
在图书管理员表MANAGER上建立唯一索引M-MANAGER
CreateuniqueindexM-MANAGERONMANAGER;
6备份及恢复策略
6.1备份策略
1)每天进行一次动态增量转储
2)每星期进行一次动态海量转储
3)每月进行一次静态海量转储
6.2恢复策略
数据库中可能发生各种各样的故障,大致可以分为以下几类:
1.事物部故障。
遇到次种故障的恢复策略主要是:
(1)反向扫描日志文件,查找该事物的更新操作。
(2)对该事物的更新操作执行逆操作。
(3)继续反向扫描日志文件,查找该事物的其他更新操作,并做同样处理。
(4)如此处理下去,直至读到此事物的开始标记,事物故障恢复就完成了。
2.系统故障。
遇到次种故障的恢复策略主要是:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做队列。
同时找出故障发生时尚未完成的事务,将其事务标识记入撤消队列。
(2)对撤消队列的各个事务进行撤消处理。
(3)对重做队列的各个事务进行重做处理。
3.介质故障。
(1)装入最新的数据库后备副本,使数据库恢复到最近一次转储的一致性状态。
(2)装入相应的日志文件副本,重做已完成的事物。