数据库课程设计实验报告.docx
- 文档编号:4999071
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:18
- 大小:247.09KB
数据库课程设计实验报告.docx
《数据库课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
数据库课程设计实验报告
数据库课程设计实验报告
课程设计报告
课程设计题目:
图书管理系统数据库设计
专业:
网络工程
班级:
2班
姓名:
程鹏飞
学号:
06
指导教师:
游胜玉
2011年11月29日
1需求分析........................................................1
需求分析过程..................................................1
数据字典......................................................2
2概念模式设计....................................................3
实体..........................................................3
局部视图.....................................................3
视图集成......................................................4
3逻辑模式设计....................................................6
将E-R图转化为关系模式........................................6
数据模型的优化................................................6
4检验是否满足用户需求............................................8
调查用户需求..................................................8
5其它数据库对象(物理数据库设计)的考虑............................9
建表..........................................................9
合法用户名字、权限、角色.......................................10
视图.........................................................10
触发器.......................................................11
索引.........................................................11
图书管理系统
1需求分析
需求分析过程
(1)流程
读者到图书借阅处查询图书,看看是否有满足读者要求的图书。
如果有满足读者要求的图书,查看该图书是否在馆,如果在馆,则图书管理员在系统记录读者信息并记录借出图书信息,如果不在馆,通知读者。
如果读者要求的图书无法提供,则通知读者无法满足。
(2)功能:
实现图书的查询,借入和归还功能,而且能保存记录。
(3)流程图:
读者借阅图书,系统查询图书是否在馆。
图书已借出,显示已借出;未借出显示下一步,图书管理员管理图书,登记读者信息,借出图书。
数据字典:
(1)数据项:
表
数据项名含义说明数据类型长度与其他数据项的逻辑关系
读者编号读者相关信息整型10决定了要借阅的图书
读者姓名读者相关信息字符型6
读者性别读者相关信息字符型2
联系电话读者相关信息整型7
所在系读者相关信息字符型10
书名图书相关信息字符型20
作者图书相关信息字符型6
出版社图书相关信息字符型20
管理员工作号管理员相关信息整型10管理图书的借出和归还
管理员姓名管理员相关信息字符型6
管理员性别管理员相关信息字符型2
借书日期借书相关信息整型10
还书日期借书相关信息整型10
(2)数据结构:
表
数据结构名含义说明组成
图书信息表定义了图书的相关信息ISBN,书名,作者,出版社,出版日期,简介
读者信息表定义了读者有关信息读者编号,姓名,性别,联系电话,系别
管理员信息表定义了管理员有关信息工作号,姓名,性别,电话,工资
借阅关系表定义了借阅图书的有关信息工作号,ISBN,读者编号,借书日期,还书日期,是否续借
管理员_书籍表定义了管理员与书籍的有关信息工作号,ISBN,添加时间,是否在馆
管理员_读者表定义了管理员与学生的有关信息工作号,读者编号,借还确认,违章状况,累计借书
(3)数据流:
表
数据流名来源去向
读者信息读者图书管理员的管理处
图书信息图书图书管理员的管理处
借阅信息借阅图书图书管理员的管理处
(4)数据存储:
表
数据存储名含义说明组成
读者信息存储了读者的相关信息读者编号,姓名,性别,联系电话,系别
图书信息存储了图书的相关信息ISBN,书名,作者,出版社,出版日期,简介
借阅信息存储了借阅图书的有关信息工作号,ISBN,读者编号,借书日期,还书日期,是否续借
(5)处理过程:
表
处理过程名含义说明输入输出
借书过程查看图书是否被借出图书信息借阅信息
还书过程查看借阅图书的信息读者信息图书信息
2概念模式设计
实体:
读者信息,图书信息,图书管理员信息
局部视图:
(1)
读者—借阅—图书
图2-1借阅关系E-R图
事务规则:
一个读者可以借阅多本图书(1:
n)
一本图书可以被一个读者借阅(1:
n)
(2)管理员—管理—读者
1
n
图2-2管理员_读者关系E-R图
事务规则:
一个图书管理员可以管理多个读者信息(1:
n)
一个读者信息只能被一个图书管理员管理(1:
1)
(3)管理员—管理—图书
n
n
图2-3管理员_书籍关系E-R图
事务规则:
一本图书可以被多个图书管理员管理(1:
n)
一个图书管理员可以管理多本图书(1:
n)
视图集成
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。
在这一步中我们仅根据实体类型名和键来认定公共实体类型。
一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
2)局部ER模式的合并
合并的原则是:
首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。
3)消除冲突
冲突分为三类:
属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。
一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:
实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。
综上所述,“图书管理系统”的全局ER模式如下图所示。
图系统全局ER图
图2-4系统全局ER图
3逻辑模式设计
将E-R图转化为关系模式
由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。
由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。
设计结果是一组关系模式的定义。
将图2-4总体概念结构E-R图转化成关系模型。
1、读者(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书)
2、书籍(ISBN,书名,作者,出版社,出版日期,简介)
3、管理员(工作号,姓名,性别,电话,工资)
4、借阅(读者编号,ISBN,是否续借,借书日期,还书日期)
5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)
6、管理员_读者(工作号,读者编号,确认借还)
数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
优化后的关系模式如下:
1、读者(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书)
2、书籍(ISBN,书名,作者,出版社,出版日期,简介)
3、管理员(工作号,姓名,性别,电话,工资)
4、借阅(读者学号,ISBN,是否续借,借书日期,还书日期)
5、管理员_书籍(工作号,ISBN,添加时间,是否在馆)
6、管理员_读者(工作号,读者编号,确认借还)
表图书信息表BOOK
字段名称数据类型长度约束属性
数据类型
长度
约束
描述
ISBNchar20NOTNULL主属性
书名char50NOTNULL非主属性
作者char20NOTNULL非主属性
出版社char50非主属性
出版日期date非主属性
简介char200非主属性
表读者信息表STUDENT
字段名称数据类型长度约束属性
数据类型
长度
约束
描述
读者编号char20NOTNULL主属性
读者姓名char10NOTNULL非主属性
读者性别char2NOTNULL非主属性
联系电话char10非主属性
所在系char20NOTNULL非主属性
违章状况char2非主属性
累计借书int非主属性
表管理员信息表MANAGER
字段名称数据类型长度约束属性
数据类型
长度
约束
描述
工作号char10NOTNULL主属性
姓名char10NOTNULL非主属性
性别char2非主属性
电话char15非主属性
工资char30非主属性
字段名称数据类型长度约束属性
工作号char12NOTNULL外码
ISBNchar20NOTNULL外码
读者编号char20NOTNULL非主属性
借书日期dateNOTNULL非主属性
还书日期dateNOTNULL非主属性
是否续借char4NOTNULL非主属性
表借阅关系表R-B
表管理员_书籍表M-B
字段名称数据类型长度约束属性
工作号char12NOTNULL外码
ISBNchar20NOTNULL外码
添加时间data非主属性
是否在馆char14非主属性
表管理员_学生表M-S
字段名称数据类型长度约束属性
工作号char12NOTNULL外码
读者学号char20NOTNULL外码
借还确认char4NOTNULL非主属性
4检验是否满足用户需求
调查用户需求
①读者需求
(1)借阅功能:
能够方便地借阅图书、续借图书、归还图书
(2)查询功能:
1)按图书编号查找图书
2)按书籍名称查找图书
3)按书籍作者查找图书
4)能够按照自己的图书证编号查询自己的状态信息
②图书管理员需求
(1)读者注册功能:
能够对新的读者进行登记,或注销读者的信息信息。
(2)图书录入功能:
能够将新到的图书信息输入到系统的图书信息库中。
5其它数据库对象(物理数据库设计)的考虑
建表
(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
(工作号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(读者编号)
);
插入读者信息
insertintoSTUDENT(读者编号,读者姓名,读者性别,读者学号,所在系,联系电话,违章状况,累计借书)
values('X','程鹏飞','男','0','网络工程','','2','6')
insertintoSTUDENT(读者编号,读者姓名,读者性别,读者学号,所在系,联系电话,违章状况,累计借书)
values('X','赫中翔','男','0','网络工程','','0','5')
插入管理员信息
insertintoMANAGER(工作号,姓名,性别,电话,工资)
values('001','王雷','男','3088022','1600')
insertintoMANAGER(工作号,姓名,性别,电话,工资)
values('002','大飞','男','3320445','1200')
插入图书信息
insertintoBOOK(书名,作者,出版社,出版日期,简介)
values('大学英语','董亚兰','上海外语出版社','2004-10-03','大学重要学习课程')
insertintoBOOK(书名,作者,出版社,出版日期,简介)
values('数据库原理','陈志治','人民邮电出版社','2008-10-03','工程技术讲解')
insertintoBOOK(书号,书名,作者,出版社,价格,出版日期,简介)
values('微观经济学','李小刚','上海大学出版社','2010-10-01','经济政治类讲解')
合法用户名字、权限、角色
(1)将图书信息表的查询权限授给读者S1
GrantSelect
ONTableBook
TOS1
(2)将借阅关系表R-B,管理员_书籍表M-B,管理员_学生表M-S的查询和修改的权限给管理员U1
GrantUpdate,Select
ONTableR-B,M-B,M-S
TOU1
视图
建图
(1)在图书信息表上创建Bookview
CreatviewBookview(IBSN,书名,作者,出版社,出版日期,简介)
as
selectIBSN,书名,作者,出版社,出版日期,简介
fromBOOK
(2)在读者信息表上创建Studentview
CreatviewStudentview(读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书)
as
select读者编号,读者姓名,读者性别,联系电话,所在系,违章状况,累计借书
fromSTUDENT
(3)在管理员信息表上创建Managerview
CreatviewManagerview(工作号,姓名,性别,电话,工资)
as
select工作号,姓名,性别,电话,工资
fromMANAGER
(4)在借阅关系表上创建表R-Bview
CreatviewR-Bview(工作号,ISBN,读者编号,借书日期,还书日期,是否续借)
as
select工作号,ISBN,读者编号,借书日期,还书日期,是否续借
fromR-B
(5)
在性别为男的管理员信息表上建立工资视图ManagerWage
CreateviewManagerWage
As
Select姓名,性别,工资
Frommanager
Where性别=’男’;
触发器
建立一个如果管理员的工资不足700,自动改为700元的触发器——insert_orupdate_wage
Createtriggerinsert_orupdate_wage
Beforeinsertorupdateonmanager
Foreachrow
Asbegin
If(new.Professinal=’管理员’)and(new.工资<700)then
New.工资=700;
Endif;
End
索引
在图书信息表BOOK上建立唯一索引D-BOOKNAME
CreateuniqueindexD-BOOKNAMEONBOOK;
在图书管理员表MANAGER上建立唯一索引M-MANAGER
CreateuniqueindexM-MANAGERONMANAGER;
实验总结:
通过此次实验,加深我对数据库基本原理和应用的理解。
逐步熟悉了包括数据库和数据表的建立,查询,统计,视图管理,存储过程和触发器的管理,用户管理、约束和默认管理、数据库备份和还原等。
通过建立思想,画出E-R图,表明个成员间的关系。
使得程序逐渐完善。
但是自身尚未能把SQL与VB很好的结合,使得程序在实用上有很大的差距,需要进一步加强。
致谢
非常感谢游胜玉老师在本学期数据库课程中对我们无私的教育和在本次实验中对我们耐心的教导。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 实验 报告