数据库原理课程设计报告
题目名称:专 业:班 级:学 号:学生姓名:指导教师:
高校教材管理系统 信息管理与信息系统 信管 班 * ** **
完成日期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)出版社表(以出版社号、教材号为主键)
(2)订购表(教材号、学校号、出版社号为主键)
(3)学校表(学校号为主键)
(4) 教材表(教材号为主键)
4.4关系图
5 物理结构设计
物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻
辑结构设计中的表用SQL 语句创建出来。
5.1 创建存储过程
(1)创建存储过程查询输入学校号,输出该学校的到货情况
--创建存储过程
--输入学校号,输出该学校的到货情况 use 高校教材管理
if exists(select name from sysobjects where name ='pro_1' and TYPE ='p' ) drop procedure pro_1 go
Create procedure pro_1 @学校号_in int As Select * From 订购表
where 学校号=@学校号_in --验证
exec pro_1
'101'
5.2创建触发器
--创建触发器
--(1)订购教材时,订购数量要小于库存量,并且修改库存量
use 高校教材管理
if exists(select name from sysobjects
where name ='tri_1' and TYPE ='tr' )
drop trigger tri_1
go
Create trigger tri_1
on 订购表
For update , insert
As
if (select 订购数量 from inserted ) >(select 库存量
from 出版社表
where 出版社号=( select 出版社号 from inserted )
and 教材号=( select 教材号 from inserted )
)
begin
print ' 库存数量不足'
rollback transaction
end
else
print ' 订购成功'
update 出版社表 set 库存量=库存量-(select 订购数量 from inserted ) where 出版社号=( select 出版社号 from inserted )
and 教材号=( select 教材号 from inserted )
select 库存量 from 出版社表 where 出版社号=( select 出版社号 from inserted )
and 教材号=( select 教材号 from inserted )
go
--验证修改不成功案例
update 订购表 set 订购数量=300 where 出版社号=2 and 教材号=11
--验证插入不成功
insert into 订购表 values (12, 102, 3, 300, 0, 0)
--修改成功
update 订购表 set 订购数量=10 where 出版社号=2 and 教材号=11
--插入成功
insert into 订购表 values (12, 102, 3, 10, 0, 0)
5.3数据库备份与恢复
--数据库备份
use 高校教材管理
backup database zyjs
to disk ='D:\2014508122 武杰\备份'
with init
go
--数据库恢复
use 高校教材管理 --(或更改为master)
restore database zyjs
from disk = 'D:\2014508122 武杰\备份'
with recovery
5.4 SQL语句
1.--新建一个表
--学校表
use 高校教材管理
go
create table 学校表
(学校号 int not null,
2.--创建视图
--创建订购表视图
use 高校教材管理
go
create view view_订购
as
select *
from 订购表
3.--添加记录
--向订购表添加一条记录
insert into 订购表 values (11, 101, 2, 100, 0, 0)
4.--修改记录
--把订购表的教材号为, 学校号为, 出版社号为的到货数量改为
Update 订购表 set 到货数量=20 where 教材号=11 and 学校号=100 and 出版社号=1 学校名 nchar (10) not null )
5.--删除记录
--删除出版社表出版社号=1 并且教材号=13 的记录
Delete from 出版社表 where 出版社号=1 and 教材号=13
6.--查询记录
--查询到货数量=0的学校名
select 学校名
from 学校表
where 学校号=(select 学校号 from 订购表 where 到货数量=0)
7.-创建索引
--为用人单位表在单位编号上按降序建立聚簇索引ind_单位编号
use 高校教材管理
go
create clustered index ind_学校号
on 订购表(学校号 desc )
6、总结
在完成高校教材管理的课程设计针对系统进行了需求分析、逻辑结构设计、物理设计、加载数据、功能设计(事物设计),程序设计、据库分析与设计;然后画出E-R 图并利用T-SQL 语句完成相关的操作。在SQl 的语句编写实现的操作中认识到能掌握SQL 的标准语句是极为重要的,在企业管理器和查询分析器中实现相同效果的不同操作。此课程设计—高校教材管理系统以高校教材管理功能为基础,涵盖了出版社管理、教材管理、订购管理、库存管理多个方面,是高校教材实现的基本数据库的实现,但对于复杂的高校教材问题我的设计仅是冰山一角,希望在以后的学习中能完善!
通过此次课程设计更深入的理解了SQL Server 2008中的有关基本操作。例如:表、视图的创建、信息的插入、修改、删除,存储过程、触发器的相关操作等。同时对课本知识有了一个比较整体的掌握。
同样的,在此次课程设计的学习实践中出现了许多问题,是我很苦恼,但是通过自我学习实践与请教老师同学,收获了很多,包括思路与技术问题。经过老师指导,我修改后自我感觉比之前有了进步,但是,针对于此教材管理系统的设计,还欠缺很多,由于时间与能力有限,关于学校教师与学生的教材的情况未能体现出,今后还须更加努力。
参考文献
1. 王珊 陈红著《数据库系统原理教程》. 北京:清华大学出版社.1998.7
2. 王珊. 陈红. 文继荣著. 《数据库与数据库管理系统》. 北京:电子工业出版
社.1995
3. 王珊,萨师煊. 《数据库系统概论》. 北京:高等教育出版社,2006
4. 施伯乐,丁宝康 .《数据库系统教程》. 北京:高等教育出版社,2006
数据库原理课程设计报告
题目名称:专 业:班 级:学 号:学生姓名:指导教师:
高校教材管理系统 信息管理与信息系统 信管 班 * ** **
完成日期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)出版社表(以出版社号、教材号为主键)
(2)订购表(教材号、学校号、出版社号为主键)
(3)学校表(学校号为主键)
(4) 教材表(教材号为主键)
4.4关系图
5 物理结构设计
物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻
辑结构设计中的表用SQL 语句创建出来。
5.1 创建存储过程
(1)创建存储过程查询输入学校号,输出该学校的到货情况
--创建存储过程
--输入学校号,输出该学校的到货情况 use 高校教材管理
if exists(select name from sysobjects where name ='pro_1' and TYPE ='p' ) drop procedure pro_1 go
Create procedure pro_1 @学校号_in int As Select * From 订购表
where 学校号=@学校号_in --验证
exec pro_1
'101'
5.2创建触发器
--创建触发器
--(1)订购教材时,订购数量要小于库存量,并且修改库存量
use 高校教材管理
if exists(select name from sysobjects
where name ='tri_1' and TYPE ='tr' )
drop trigger tri_1
go
Create trigger tri_1
on 订购表
For update , insert
As
if (select 订购数量 from inserted ) >(select 库存量
from 出版社表
where 出版社号=( select 出版社号 from inserted )
and 教材号=( select 教材号 from inserted )
)
begin
print ' 库存数量不足'
rollback transaction
end
else
print ' 订购成功'
update 出版社表 set 库存量=库存量-(select 订购数量 from inserted ) where 出版社号=( select 出版社号 from inserted )
and 教材号=( select 教材号 from inserted )
select 库存量 from 出版社表 where 出版社号=( select 出版社号 from inserted )
and 教材号=( select 教材号 from inserted )
go
--验证修改不成功案例
update 订购表 set 订购数量=300 where 出版社号=2 and 教材号=11
--验证插入不成功
insert into 订购表 values (12, 102, 3, 300, 0, 0)
--修改成功
update 订购表 set 订购数量=10 where 出版社号=2 and 教材号=11
--插入成功
insert into 订购表 values (12, 102, 3, 10, 0, 0)
5.3数据库备份与恢复
--数据库备份
use 高校教材管理
backup database zyjs
to disk ='D:\2014508122 武杰\备份'
with init
go
--数据库恢复
use 高校教材管理 --(或更改为master)
restore database zyjs
from disk = 'D:\2014508122 武杰\备份'
with recovery
5.4 SQL语句
1.--新建一个表
--学校表
use 高校教材管理
go
create table 学校表
(学校号 int not null,
2.--创建视图
--创建订购表视图
use 高校教材管理
go
create view view_订购
as
select *
from 订购表
3.--添加记录
--向订购表添加一条记录
insert into 订购表 values (11, 101, 2, 100, 0, 0)
4.--修改记录
--把订购表的教材号为, 学校号为, 出版社号为的到货数量改为
Update 订购表 set 到货数量=20 where 教材号=11 and 学校号=100 and 出版社号=1 学校名 nchar (10) not null )
5.--删除记录
--删除出版社表出版社号=1 并且教材号=13 的记录
Delete from 出版社表 where 出版社号=1 and 教材号=13
6.--查询记录
--查询到货数量=0的学校名
select 学校名
from 学校表
where 学校号=(select 学校号 from 订购表 where 到货数量=0)
7.-创建索引
--为用人单位表在单位编号上按降序建立聚簇索引ind_单位编号
use 高校教材管理
go
create clustered index ind_学校号
on 订购表(学校号 desc )
6、总结
在完成高校教材管理的课程设计针对系统进行了需求分析、逻辑结构设计、物理设计、加载数据、功能设计(事物设计),程序设计、据库分析与设计;然后画出E-R 图并利用T-SQL 语句完成相关的操作。在SQl 的语句编写实现的操作中认识到能掌握SQL 的标准语句是极为重要的,在企业管理器和查询分析器中实现相同效果的不同操作。此课程设计—高校教材管理系统以高校教材管理功能为基础,涵盖了出版社管理、教材管理、订购管理、库存管理多个方面,是高校教材实现的基本数据库的实现,但对于复杂的高校教材问题我的设计仅是冰山一角,希望在以后的学习中能完善!
通过此次课程设计更深入的理解了SQL Server 2008中的有关基本操作。例如:表、视图的创建、信息的插入、修改、删除,存储过程、触发器的相关操作等。同时对课本知识有了一个比较整体的掌握。
同样的,在此次课程设计的学习实践中出现了许多问题,是我很苦恼,但是通过自我学习实践与请教老师同学,收获了很多,包括思路与技术问题。经过老师指导,我修改后自我感觉比之前有了进步,但是,针对于此教材管理系统的设计,还欠缺很多,由于时间与能力有限,关于学校教师与学生的教材的情况未能体现出,今后还须更加努力。
参考文献
1. 王珊 陈红著《数据库系统原理教程》. 北京:清华大学出版社.1998.7
2. 王珊. 陈红. 文继荣著. 《数据库与数据库管理系统》. 北京:电子工业出版
社.1995
3. 王珊,萨师煊. 《数据库系统概论》. 北京:高等教育出版社,2006
4. 施伯乐,丁宝康 .《数据库系统教程》. 北京:高等教育出版社,2006