高校教材管理数据库课程设计报告.docx
《高校教材管理数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《高校教材管理数据库课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
高校教材管理数据库课程设计报告
数据库原理课程设计报告
题目名称:
高校教材管理系统
专业:
信息管理与信息系统
班级:
信管班
学号:
学生姓名:
***
指导教师:
**
完成日期2016.7.4
1.题目要求
实现出版社、教材类型等的管理;
实现教材的订购管理;
实现教材的入库管理;
创建触发器,实现教材入库和出库时自动修改库存数量;
创建存储过程统计各种教材的订购、到货和发放数量;
建立数据库相关表之间的参照完整性约束。
2.设计基本要求
(1)结构设计,包括概念结构设计,逻辑结构设计和物理结构设计与高校教材管理相结合;
(2)列出实体、联系及实体和联系的属性;
(3)画出E-R图;E-R图转换成关系模式,并注明主码和外码;
(4)建立直观的数据字典;
(5)创建数据库,正确的SQL语句;
(6)根据题目的要求写查询、存储过程、触发器等。
3.设计过程
3.1问题的描述
高校教材管理系统:
实现教材基本信息的管理;实现教材的订购管理;实现教材的入库管理;实现教材的领用管理。
3.2需求分析
开发教材管理系统的目的就是充分利用计算机和现代办公软件,摆脱传统办公工具,用计算机实现集中方便的管理工作,把学校教材科的工作人员从繁重的体力劳动中解脱出来以提高工作效率和质量,最终实现教材管理的全面自动化为和现代化。
因此系统主要是实现教材管理信息的输入包括入库、出库、需求信息的输入等。
教材管理各种信息的查询、修改以及各系各部门的教材需求管理等。
3.3系统功能模块图
(1)高校教材管理系统:
3.4结构流程图
(1)学校订购流程图
(2)出版社订单流程图
4逻辑结构设计
4.1局部E-R图
(1)学校E_R图
(2)教材E_R图
(3)出版社E_R图
4.2全局E-R图
根据表格绘制E-R图如下:
4.3数据字典
数据的基本存取单位是存储记录。
有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。
存储记录就包括记录的组成,数据项的类型,长度及其他约束条件。
经分析可知其对应的关系模式:
(1)出版社(出版社号、教材号、出版社名、库存量)
(2)订购表(教材号、学校号、出版社号、订购数量、到货数量,领用数量)
(3)教材(教材号、教材名)
(4)学校(学校号、学校名)
涉及的表如下:
(1)出版社表(以出版社号、教材号为主键)
名称
数据类型
是否为空
出版社号
int
否
教材号
int
否
出版社名
库存量
nchar(10)
int
否
是
(2)订购表(教材号、学校号、出版社号为主键)
名称
数据类型
是否为空
教材号
Int
否
出版社号
学校号
订购数量
领用数量
到货数量
Int
Int
Int
Int
Int
否
否
否
是
是
(3)学校表(学校号为主键)
名称
数据类型
是否为空
学校号
Int
否
学校名
nchar(10)
否
(4)教材表(教材号为主键)
名称
数据类型
是否为空
教材号
Int
否
教材名
nchar(10)
否
4.4关系图
5物理结构设计
物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻辑结构设计中的表用SQL语句创建出来。
5.1创建存储过程
(1)创建存储过程查询输入学校号,输出该学校的到货情况
--创建存储过程
--输入学校号,输出该学校的到货情况
use高校教材管理
ifexists(selectnamefromsysobjects
wherename='pro_1'andTYPE='p')
dropprocedurepro_1
go
Createprocedurepro_1
@学校号_inint
As
Select*
From订购表
where学校号=@学校号_in
--验证
execpro_1'101'
5.2创建触发器
--创建触发器
--
(1)订购教材时,订购数量要小于库存量,并且修改库存量
use高校教材管理
ifexists(selectnamefromsysobjects
wherename='tri_1'andTYPE='tr')
droptriggertri_1
go
Createtriggertri_1
on订购表
Forupdate,insert
As
if(select订购数量frominserted)>(select库存量
from出版社表
where出版社号=(select出版社号frominserted)
and教材号=(select教材号frominserted)
)
begin
print'库存数量不足'
rollbacktransaction
end
else
print'订购成功'
update出版社表set库存量=库存量-(select订购数量frominserted)
where出版社号=(select出版社号frominserted)
and教材号=(select教材号frominserted)
select库存量from出版社表where出版社号=(select出版社号frominserted)
and教材号=(select教材号frominserted)
go
--验证修改不成功案例
update订购表set订购数量=300where出版社号=2and教材号=11
--验证插入不成功
insertinto订购表values(12,102,3,300,0,0)
--修改成功
update订购表set订购数量=10where出版社号=2and教材号=11
--插入成功
insertinto订购表values(12,102,3,10,0,0)
5.3数据库备份与恢复
--数据库备份
use高校教材管理
backupdatabasezyjs
todisk='D:
\2014508122武杰\备份'
withinit
go
--数据库恢复
use高校教材管理--(或更改为master)
restoredatabasezyjs
fromdisk='D:
\2014508122武杰\备份'
withrecovery
go
5.4SQL语句
1.--新建一个表
--学校表
use高校教材管理
go
createtable学校表
(学校号intnotnull,
学校名nchar(10)notnull
)
2.--创建视图
--创建订购表视图
use高校教材管理
go
createviewview_订购
as
select*
from订购表
3.--添加记录
--向订购表添加一条记录
insertinto订购表values(11,101,2,100,0,0)
4.--修改记录
--把订购表的教材号为,学校号为,出版社号为的到货数量改为
Update订购表set到货数量=20where教材号=11and学校号=100and出版社号=1
5.--删除记录
--删除出版社表出版社号=1并且教材号=13的记录
Deletefrom出版社表where出版社号=1and教材号=13
6.--查询记录
--查询到货数量=0的学校名
select学校名
from学校表
where学校号=(select学校号from订购表where到货数量=0)
7.-创建索引
--为用人单位表在单位编号上按降序建立聚簇索引ind_单位编号
use高校教材管理
go
createclusteredindexind_学校号
on订购表(学校号desc)
6、总结
在完成高校教材管理的课程设计针对系统进行了需求分析、逻辑结构设计、物理设计、加载数据、功能设计(事物设计),程序设计、据库分析与设计;然后画出E-R图并利用T-SQL语句完成相关的操作。
在SQl的语句编写实现的操作中认识到能掌握SQL的标准语句是极为重要的,在企业管理器和查询分析器中实现相同效果的不同操作。
此课程设计—高校教材管理系统以高校教材管理功能为基础,涵盖了出版社管理、教材管理、订购管理、库存管理多个方面,是高校教材实现的基本数据库的实现,但对于复杂的高校教材问题我的设计仅是冰山一角,希望在以后的学习中能完善!
通过此次课程设计更深入的理解了SQLServer2008中的有关基本操作。
例如:
表、视图的创建、信息的插入、修改、删除,存储过程、触发器的相关操作等。
同时对课本知识有了一个比较整体的掌握。
同样的,在此次课程设计的学习实践中出现了许多问题,是我很苦恼,但是通过自我学习实践与请教老师同学,收获了很多,包括思路与技术问题。
经过老师指导,我修改后自我感觉比之前有了进步,但是,针对于此教材管理系统的设计,还欠缺很多,由于时间与能力有限,关于学校教师与学生的教材的情况未能体现出,今后还须更加努力。
参考文献
1.王珊陈红著《数据库系统原理教程》.北京:
清华大学出版社.1998.7
2.王珊.陈红.文继荣著.《数据库与数据库管理系统》.北京:
电子工业出版社.1995
3.王珊,萨师煊.《数据库系统概论》.北京:
高等教育出版社,2006
4.施伯乐,丁宝康.《数据库系统教程》.北京:
高等教育出版社,2006