




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学华夏学院课程设计报告书课程名称: 数据库原理及应用 题 目: 火车售票系统的数据库设计 系 名: 信息工程系 专业班级: 软件工程1101 姓 名: 王 阳 学 号: 指导教师: 刘春燕 2013 年 1 月 18 日课程设计任务书学生姓名: 王阳 专业班级: 软件工程1101 指导教师: 刘春燕 工作单位: 信息工程系 设计题目: 火车售票系统的数据库设计要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.创建数据库2.创建表、建立主外键、约束、建立表测试数据3.常规业务:(1)查询个人相关信息,如有问题进行修改;(2)查询自己的购票的信息,以及详
2、细信息;(3)个人给情况高级检索自己需要的车票信息;4.创建索引与视图为用户表中的创建索引;创建视图查询各表要求字段全为中文字段名5.创建触发器实现相应购买操作信息时,完成日志的统计。设计报告撰写格式要求:1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程设计任务。2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。设计报告正文字数不少于0.2万字(不包括附录)时间安排:消化资料、系统调查1天
3、系统分析、总体设计,实施计划、撰写报告 3天演示、验收 1天指 导 教 师 签 字: 2013年 1 月 8 日系 主 任 签 字: 2013 年 1 月 8 日1.概述随着国民经济快速发展, 人们出行、交通越来越频繁, 对服务的快捷、便利性要求也越来越高。从而对客运行业的建设与管理提出了更高的要求。为适应和推动客运行业的发展, 各种交通公司和部门开始广泛采用使用日趋成熟的计算机技术和数据库技术来实现票务信息的现代化管理,具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本底等。这些优点能够极大地提高信息管理和业务管理的效率。本火车站售票系统正是通过
4、数据库存储信息实现高效率管理。该实验设计首先进行需求分析,然后在需求文档的指导下实现系统的功能,如操作员的信息管理功能及旅客的火车信息查询、订票、退票等功能,最终实现的是旅客购得一张自己满意的票券,同时力求通过数据库系统及计算机在其中的运用达到提高工作效率,节约人力资源的效果。2.系统需求分析在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统,使整个系统的功能更加详细易于理解,同时易于实现系统的整体设计。本系统所能实现的功能:1.创建数据库2.创建表、建立主外键、约束、建立表测试数据3.常规业务:(1)查询个人相关信息,
5、如有问题进行修改;(2)查询自己的购票的信息,以及详细信息;(3)个人给情况高级检索自己需要的车票信息;4.创建索引与视图为用户表中的创建索引;创建视图查询各表要求字段全为中文字段名5.创建触发器实现相应购买操作信息时,完成日志的统计。2.1业务需求分析从实际角度出发,对于用户要提供方便快捷的车票查询和购票服务,对于车站工作人员,则是要能够方便明朗的对车次信息进行增删修改操作和售票操作,提高车次的编组效率,使车次资源得到充分利用,并可以提高车票的出售效率,降低工作人员的工作量。2.2功能需求 在数据操作界面需要有售票员登录窗口和车次信息操作窗口,这需要有实现售票员登录的功能和车次查询、添加、车
6、票出售的功能。这是火车站售票系统的基本功能,只有实现了这几个功能一个火车站售票系统才能开始运作,在本系统中实现了售票员的登录和车票的基本信息操作。表2.1 功能列表 1编号功能名称功能说明1查询及修改查询个人相关信息,如有问题进行修改2列车系统管理添加车次、删除车次、修改车次3旅客购票订票、购票、退票4票务查询站站查询、车次查询、订单查询2.3数据字典1根据功能列表,开始分析用户需求。在此,采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图2.2所示:图2.2 火车站车票售票系统总框架图 1对各子系统进一步细化,如下各图所示:图2.3 列车管理子系统细化 1图2.4
7、列车查询子系统细化 1图2.5 售票/订票/退票子系统细化 1将所有子系统全部细化。将所有用户需求分析完毕之后,开始构造数据字典。经分析,本系统要用到五个基本表:车次信息、用户信息、订单信息、订票、退票。数据结构定义如表2.2所示。表2.2 数据结构定义 1数据结构名含义说明组成车次信息定义所有列车的相关信息车号,出发日期,发车时间,到达时间,发车地点,目的地,票价,剩余票数,座位类型用户信息定义了用户的个人基本信息身份证号码,姓名,性别,电话号码订单信息定义了订票后生成的订单信息订单号,身份证号码,车号,订购日期,出发日期,座位类型订票定义了用户订票过程中的必要信息订单号,身份证号码,车号,
8、出发日期,座位类型退票定义旅客因某种原因退掉的车票订单号,身份证号码,车号,出发日期,座位类型3.概念模型设计3.1数据抽象与局部视图设计设计局部E-R图:图3.1 查询车次E-R图图3.2 订票E-R图图3.3 退票E-R图4.逻辑模型设计4.1 E-R图向关系模型的转化将图3.6总体概念结构E-R图转化成关系模型如下: 车次信息(车号,出发日期,发车时间,到达时间,发车地点,目的地,票价,剩余票数,座位类型)用户信息(车票编号,发站,到站,发时,到时,票价,座位类型,座位号,售票站名)订单信息(订单号,身份证号码,车号,订购日期,出发日期,座位类型)订票(订单号,身份证号码,车号,出发日期
9、,座位类型)退票(订单号,身份证号码,车号,出发日期,座位类型)4.2数据库表格设计根据优化后的数据模型,设计表格,每个表格表示在数据库中的一个表,如表4.1-表4.7所示。表4.1 车次信息表 1字段名数据类型长度约束车号varchar50主键出发日期varchar50不为空发车时间varchar50不为空到达时间varchar50不为空发车地点char50不为空目的地char50不为空票价Integer4不为空剩余票数Integer4不为空座位类型char20不为空表4.2 用户信息表 1字段名数据类型长度约束身份证号码vchar50主键姓名char50不为空性别char20不为空电话号码
10、char20不为空表4.3 订单信息表 1字段名数据类型长度约束订单号int4 主键身份证号码char50外键车号varchar50 外键订购日期varchar50不为空出发日期varchar50不为空座位类型varchar50不为空表4.4 订票表 2字段名数据类型长度约束订单号int4主键身份证号码char50外键 车号varchar50外键出发日期varchar50不为空座位类型varchar50不为空表4.5退票信息表 3字段名数据类型长度约束订单号int4主键身份证号码char50外键车号varchar50外键出发日期varchar50不为空座位类型varchar50不为空5.物理模
11、型设计5.1 索引的设置在用户信息表,车次信息表,订票表的主键上创建索引,使得查询更加快速。代码如下:create unique index 身份证号索引on 用户信息(身份证号码)create unique index 车号索引on 车次信息(车号)create unique index 订单号索引on 订票(订单号)6.关键业务逻辑的存储过程实现6.1 创建数据库6.2 在数据库train下建表共五个表:车次信息、用户信息、订单信息、订票、退票。建表语句及结果如下:6.3 存储过程的实现6.3.1 按站站查询:存储过程:create proc 站站查询beginplace varchar(
12、50),endplace varchar(50)asselect * from 车次信息where 发车地点=beginplace and 目的地=endplace执行结果:6.3.2 查询车辆信息存储过程:create proc 车次信息查询cno varchar(50),begintime varchar(50)asselect * from 车次信息where 车号=cno and 出发日期=begintime执行结果:6.3.3 查询订票信息存储过程:create proc 订票信息查询dno intasselect * from 订单信息where 订单号=dno执行结果:6.3.4
13、 修改个人信息:存储过程:create proc 修改个人信息name varchar(50),tel varchar(50)asupdate 用户信息set 电话号码=telwhere 姓名=name执行结果:6.4 触发器的实现触发器:-订票触发器create trigger 订票功能on 订票for insertasif(select 剩余票数 from 车次信息 where 车号=(select 车号 from inserted)and 出发日期=(select 出发日期 from inserted)0begininsert into 订单信息(订单号,身份证号码,车号,出发日期,座位
14、类型)(select * from inserted)update 订单信息set 订购日期=getdate()print 订票成功!-订票成功票数减1update 车次信息set 剩余票数=剩余票数-1where 车号=(select 车号 from inserted)and 出发日期=(select 出发日期 from inserted)insert into 退票(订单号,身份证号码,车号,出发日期,座位类型)(select * from inserted)endelse print 没有余票,订票失败!-退票触发器create trigger 退票功能on 退票for deleteas
15、begindeletefrom 订单信息where 订单号=(select 订单号 from deleted )deletefrom 订票where 订单号=(select 订单号 from deleted )update 车次信息set 剩余票数=剩余票数+1where 车号=(select 车号 from deleted)and 出发日期=(select 出发日期 from deleted)print 退票成功!end6.5视图的实现-视图-订票详细信息create view 订票详细信息asselect 订单号,身份证号码,订票.车号,订票.出发日期,订票.座位类型,发车地点,目的地fr
16、om 订票,车次信息where 订票.车号=车次信息.车号-余票查询create view 余票查询asselect 车号,剩余票数from 车次信息-个人详细订单查询create view 个人详细订单查询asselect 用户信息.姓名,订票.*from 用户信息,订票where 用户信息.身份证号码=订票.身份证号码执行结果:订票详细信息:余票查询:个人详细订单查询:课程设计总结终于完成了这次的数据库课程设计,在课程设计这一周中,感受很深刻。设计好一个数据库真的不是件容易的事,就这样一个小系统就已经花费了大量的时间和精力在上面了。虽然在网上看了不少类似的设计,也吸取、借鉴了别人的一些东西,但是经过修改和自己设计,最终能够做出一个小型的系统来真的很让我振奋。通过这次课程设计,领悟了很多东西。首先,整个设计过程中,逻辑思维一定要清晰。做到存储过程的时候,突然发现前面的逻辑结构分析不够合理,于是又倒回去再改,多次反复,弄得自己都晕头转向了,于是把课程设计暂时放了两天。那两天里,重新整理了一下自己的思路,在第二天突然就想到了应该如何修改自己的设计。然后根据自己整理后的思路一步一步修改,最后终于完成了任务。我想应该是我一开始在设计时急于求成,导致很多地方没有考虑到,最后反而带来了更大的工作量。所以除了思路清晰以外,冷静沉着也很重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 眼内炎的治疗及护理
- 冷焊机使用培训课件
- 安徽省舒城县千人桥中学高考仿真卷(文综历史)
- 疑难病例模板护理
- 2026届陕西省咸阳市武功县重点名校中考语文模试卷含解析
- 排球中考试题及答案
- java工程师面试题及答案csdn
- 新华字典考试试题及答案
- 创意作文测试题及答案
- 成人培训课件律动操
- 教育部学科门类、一级学科、二级学科目录
- 教学案例 长方形的面积“黄冈赛”一等奖
- GB/T 35694-2017光伏发电站安全规程
- GB/T 19418-2003钢的弧焊接头缺陷质量分级指南
- GA/T 992-2012停车库(场)出入口控制设备技术要求
- GA/T 828-2009电子物证软件功能检验技术规范
- 共价有机骨架材料COFs教学讲义课件
- 安全手册(中英文版)
- 粉末冶金学(全套课件325P)
- 2022年《旅游景区游客容量计算通用规范》
- LNG接收站运行仿真系统设计
评论
0/150
提交评论