数据库课程设计报告火车时刻查询系统.docx
- 文档编号:16014899
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:10
- 大小:41.33KB
数据库课程设计报告火车时刻查询系统.docx
《数据库课程设计报告火车时刻查询系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告火车时刻查询系统.docx(10页珍藏版)》请在冰点文库上搜索。
数据库课程设计报告火车时刻查询系统
陶瓷学院
数据库课程设计报告
院系:
信息工程学院
专业:
计算机科学与技术
班级:
计科2班
学号:
201310510112
姓名:
旸
火车时刻查询系统
一、需求分析
1.1编写目的
火车时刻查询功能是本系统的主要功能,通过实现火车时刻信息和票务信息的计算机信息化系统管理,以提高工作效率。
该系统能够为用户提供有关火车时刻的信息和快捷的查询手段。
1.2背景
项目名称:
火车时刻查询系统
项目提出者:
项目组织人员
项目开发者:
项目开发小组
项目鉴定者:
暂无
项目开发时间:
2015年6月15日-2015年6月23日
1.3定义
系统数据流程图的一些定义
1.4目标
当管理人员和旅客使用了此系统后,可以实现以下主要功能:
1.管理员可以录入新的火车信息;
2.管理员可以查询、核对、修改、删除火车信息;
3.旅客可以根据车次或站点查询自己需要查询的火车信息。
1.5系统需求分析
系统的工作总体规划由该系统管理人员在系统中完成对各种所需的基本数据的维护,包括相关火车信息的录入、查询、核对、修改、删除以及对各项信息的变动都将在这里进行操作。
后台管理主要由系统建设人员和系统管理人员进行操作。
他们可以进行各种火车信息例如车次、出发站、到达站、出发时间、到达时间、历时等信息的录入、查询、核对、修改、删除等。
前台主要是让旅客了解各种火车信息以对自己的出行做好规划。
1.6系统功能分析
1.6.1车次查询
通过列车的车次,查询出列车的详细信息:
车次、出发站、到达站、出发时间、到达时间、历时。
1.6.2时间查询
通过输入出发时间、到达时间,查询出列车的详细信息:
车次、出发站、到达站、出发时间、到达时间、历时。
1.7开发环境
操作系统:
Windows8.1
数据库管理系统:
SQLServer2012
二、概念设计
概念结构是将需求分析抽象为信息结构即概念模型的过程,这样才能更好地、更准确的用某一DBMS实现这些需求,是整个数据库设计的关键,它主要特点是能真实、充分地反映现实社会,包括事物和事物之间的联系,能满足用户对数据的处理需求,是对现实世界的一个真实模型,而且还易于理解,也方便用户的操作,对数据的修改和各种模型的转换。
2.1数据库E-R图
2.2由系统E—R图转化而得到的关系模式如下:
火车基本信息:
车次、出发站、到达站、出发时间、到达时间、历时,其中车次为主键。
三、逻辑设计
本次设计的数据库在SQLServer2012上实现,将概念结构设计中的E-R图转换成SQLSever2012支持的关系数据模型后,结合上述分析得到如下数据表:
火车时刻表(Time):
主键为车次
车次
char(10)
notnull
primarykey
车次
出发站
char(10)
notnull
发站
到达站
char(10)
notnull
到站
出发时间
char(10)
notnull
发时
到达时间
char(10)
notnull
到时
历时
char(10)
notnull
历时
商务座
char(10)
notnull
商务座
特等座
char(10)
notnull
特等座
一等座
char(10)
notnull
一等座
二等座
char(10)
notnull
二等座
高级软卧
char(10)
notnull
高级软卧
软卧
char(10)
notnull
软卧
硬卧
char(10)
notnull
硬卧
软座
char(10)
notnull
软座
硬座
char(10)
notnull
硬座
无座
char(10)
notnull
无座
其它
char(10)
notnull
其它
备注
char(10)
notnull
备注
四、物理设计
为了加速表的查询,根据所设计的表的特点,我们决定在对火车时刻查询表中的“车次”建立索引,以方便通过车次查询火车时刻,代码如下:
createuniqueindex车次索引ondbo.Time(车次);
五、触发器
建立触发器T(保证出发站不能修改)
-------------建立触发器T(保证出发站不能修改)-------------
go
createtriggerT
onTime
afterupdate
as
ifupdate(出发站)
begin
raiserror('出发站不能修改',10,1)
rollbacktransaction
end
六、存储过程
建立存储过程P,输入车次,即可查出其出发时间
------------------建立存储过程P--------------------------
ifexists(select*fromsysobjectswherename='P')
dropproceduredbo.P
GO
createprocedureP@车次char(10),@出发时间intoutputas
select@出发时间=出发时间
fromTime
where车次=@车次
go
declare@出发时间int
execPC101,@出发时间output
select@出发时间
七、数据库脚本
--------------------数据库初始化工作-----------------------
setnocounton
setdateformatmdy
go
usemaster
go
ifexists(select*fromsysdatabaseswherename='火车时刻查询系统')
dropdatabase火车时刻查询系统
go
--------------------数据库的建立-----------------------------
CREATEdatabase火车时刻查询系统_data
ONprimary
(NAME='火车时刻查询系统_data.MDF',
FILENAME='d:
\迅雷下载\火车时刻查询系统_data.MDF',
SIZE=5,
FILEGROWTH=1,
MAXSIZE=10)
LOGON
(NAME='火车时刻查询系统_Log',
FILENAME='d:
\迅雷下载\火车时刻查询系统_Log.LDF',
SIZE=5,
FILEGROWTH=1,
MAXSIZE=5)
GO
------------------表的建立---------------------------------
createtableTime
(
车次char(10)notnullprimarykey,
出发站char(10)notnull,
到达站char(10)notnull,
出发时间char(10)notnull,
到达时间char(10)notnull,
历时char(10)notnull,
商务座char(10)notnull,
特等座char(10)notnull,
一等座char(10)notnull,
二等座char(10)notnull,
高级软卧char(10)notnull,
软卧char(10)notnull,
硬卧char(10)notnull,
软座char(10)notnull,
硬座char(10)notnull,
无座char(10)notnull,
其它char(10)notnull,
备注char(10)notnull,
)
go
------------------插入数据---------------------------------
insertintoTime
values('G101','北京南','上海虹桥','07:
00','12:
37','05:
37','有','有','有','有','-','-','-','-','-','-','-','-')
insertintoTime
values('G103','北京南','上海虹桥','07:
05','12:
42','05:
37','有','有','有','有','-','-','-','-','-','-','-','-')
insertintoTime
values('G105','北京南','上海虹桥','07:
36','13:
21','05:
45','有','有','有','有','-','-','-','-','-','-','-','-')
insertintoTime
values('G107','北京南','上海虹桥','08:
05','13:
26','05:
21','有','有','有','有','-','-','-','-','-','-','-','-')
insertintoTime
values('G109','北京南','上海虹桥','08:
15','14:
00','05:
45','有','有','有','有','-','-','-','-','-','-','-','-')
insertintoTime
values('G111','北京南','上海虹桥','08:
35','14:
21','05:
46','有','有','有','有','-','-','-','-','-','-','-','-')
insertintoTime
values('G115','北京南','上海虹桥','09:
32','15:
14','05:
42','有','有','有','有','-','-','-','-','-','-','-','-')
------------------建立索引---------------------------------
createuniqueindex车次索引onTime(车次);
-------------建立触发器T(保证出发站不能修改)-------------
go
createtriggerT
onTime
afterupdate
as
ifupdate(出发站)
begin
raiserror('出发站不能修改',10,1)
rollbacktransaction
end
------------------建立存储过程P--------------------------
ifexists(select*fromsysobjectswherename='P')
dropproceduredbo.P
GO
createprocedureP@车次char(10),@出发时间intoutputas
select@出发时间=出发时间
fromTime
where车次=@车次
go
declare@出发时间int
execPC101,@出发时间output
select@出发时间
八、设计小结
数据库课程设计的主要目的是学习并实践运用数据库的相关知识,学会常用查询语句的使用。
通过本课程设计,使我们加强对数据库基本概念、原理和技术的掌握。
结合实际的操作和设计,巩固课堂教学容,将理论与实际相结合,应用现有的数据库建模工具和数据库管理系统软件,规科学地完成一个小型数据库的设计与实现。
在此基础上强化我们的实践意识,从而提高我们的实际动手能力和创新能力。
连续两周的数据结构课程设计使我对数据库方面的知识有了更加深入的了解,也使我认识到自己在数据库学习以及编程习惯上面还有很多的不足之处。
今后我应当多读一些数据库方面的书籍,注重理论与实践的结合,多进行上机练习编写程序,提高自己的实际动手能力和独立思考的能力,不断充实自己,更好地掌握编程思想,培养自己运用数据库的相关知识解决问题的能力。
同时,此次课程设计也使我对编程产生了兴趣,特别是在通过查书籍资料以及网上资源的情况下能够使程序运行成功,让人十分地有成就感,参考网上的代码并结合理论课知识读懂程序代码的设计思想及其设计理念,也让我获益颇多。
最后,通过这次实践,我们也应该认识到自己所学到的东西实在太浅太简单太基础,我们以后应当认真地学习专业知识,打好基础,为自己的未来铺路,因为成功是百分之九十九的汗水加上百分之一的灵感。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 火车时刻 查询 系统