车站与火车站车票售票系统数据库课程设计.docx
- 文档编号:5773528
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:20
- 大小:576.20KB
车站与火车站车票售票系统数据库课程设计.docx
《车站与火车站车票售票系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《车站与火车站车票售票系统数据库课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
车站与火车站车票售票系统数据库课程设计
概述
随着国民经济快速发展,人们出行、交通越来越频繁,对服务的快捷、便利性要求也越来越高。
从而对客运行业的建设与管理提出了更高的要求。
为适应和推动客运行业的发展,各种交通公司和部门开始广泛采用使用日趋成熟的计算机技术和数据库技术来实现票务信息的现代化管理,具有手工管理所无法比拟的优点,如:
检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本底等。
这些优点能够极大地提高信息管理和业务管理的效率。
本火车站售票系统正是通过数据库存储信息实现高效率管理。
该实验设计首先进行需求分析,然后在需求文档的指导下实现系统的功能,如操作员的信息管理功能与旅客的火车信息查询、订票、退票等功能,最终实现的是旅客购得一张自己满意的票券,同时力求通过数据库系统与计算机在其中的运用达到提高工作效率,节约人力资源的效果。
系统需求分析
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统,使整个系统的功能更加详细易于理解,同时易于实现系统的整体设计。
本系统所能实现的功能:
1、实现对车次的删除和车次基本信息的添加。
2、实现售票的基本管理。
3、实现对车次基本信息的查询。
2.1业务需求分析
从实际角度出发,对于用户要提供方便快捷的车票查询和购票服务,对于车站工作人员,则是要能够方便明朗的对车次信息进行增删修改操作和售票操作,提高车次的编组效率,使车次资源得到充分利用,并可以提高车票的出售效率,降低工作人员的工作量。
2.2功能需求
在数据操作界面需要有售票员登录窗口和车次信息操作窗口,这需要有实现售票员登录的功能和车次查询、添加、车票出售的功能。
这是火车站售票系统的基本功能,只有实现了这几个功能一个火车站售票系统才能开始运作,在本系统中实现了售票员的登录和车票的基本信息操作。
表2.1功能列表
编号
功能名称
功能说明
1
售票员登录
售票员输入用户名和密码登录系统
2
列车系统管理
添加车次、删除车次、修改车次
3
旅客购票
订票、购票、退票
4
票务查询
站站查询、车次查询、站名查询
具体需求描述:
1售票员管理需求
●授权功能:
只有登录账号和密码合格的售票员才能进入售票系统。
●考勤功能:
方便了铁路部门对售票员的考勤。
2列车系统管理需求
●添加功能:
主要用来增加车次与相关信息。
●修改功能:
主要是用来修改列车的发车和到达等相关信息。
●删除功能:
删除已经不用的列车信息。
3旅客购票需求
●订票功能:
旅客可提前10天到各个站点查询并预定所需车票。
●退票功能:
旅客可随时退换所购车票。
●购票功能:
发售的车票按照速度快慢,分为特别快车,直达快车,普通快车。
按照乘车的形式分为硬座票,软座票,硬卧票,软卧票等。
✓
票务查询需求
●站站查询功能:
旅客可根据始发站名和终到站名查询到全国任意两站之间的所有车次,并且相应查询出两站的距离公里数、票价、经过的时间和车次类型等各种信息。
●车次查询功能:
旅客可根据具体车次查询到所需的相关信息。
●站名查询功能:
旅客可根据具体站名查询到所需的相关信息。
2.3数据字典
经过可行性分析和初步需求调查,抽象出该火车站车票售票系统的业务流程图,如图2.1所示:
图2.1售票业务流程图
根据功能列表和业务流程图,开始分析用户需求。
在此,采用自顶向下的结构化分析方法(SA方法)。
首先,定义全局概念结构的框架,如图2.2所示:
图2.2火车站车票售票系统总框架图
对各子系统进一步细化,如下各图所示:
图2.3列车管理子系统细化
图2.4列车查询子系统细化
图2.5售票/订票/退票子系统细化
将所有子系统全部细化。
将所有用户需求分析完毕之后,开始构造数据字典。
经分析,本系统要用到七个基本表:
列车信息总表、车票信息表、售票员信息表、旅客信息表、售票信息表、退票信息表和车站信息表。
数据结构定义如表2.2所示。
表2.2数据结构定义
数据结构名
含义说明
组成
列车信息总表
定义所有列车的相关信息
列车编号,车种,始发站,终点站,发时,到时,卧铺车厢数,里程,剩余票数,经过车站
车票信息表
定义了供旅客查询的现有列车车次有关信息
车票编号,发站,到站,发时,到时,票价,座位类型,座位号,售票站名
售票员信息表
定义了售票员进入系统填入的登录信息
工作证号,姓名,密码,车站名
售票信息表
定义了已售出与订出车票的有关信息
车票编号,售票站名,售票时间,旅客身份证号
退票信息表
定义旅客因某种原因退掉的车票
车票编号,旅客身份证号
退票金额
车站信息表
定义了各车站站点的有关信息
车站名,城市名,省份
旅客信息表
定义了旅客的基本信息与所购车票信息
旅客姓名,身份证号,
概念模型设计
3.1概念结构设计的方法与步骤
3.1.1概念结构设计的方法
本系统采用自底向上的概念结构设计方法。
即首先定义各局部应用的概念结构,然后将它们集成起来得到全局概念模式。
3.1.2概念结构设计的步骤
概念结构设计可分为两个步骤:
1、抽象数据并设计局部视图。
就是对需求分析阶段收集到的数据按照E-R模型的要求进行分类、组织,形成实体的属性,标识实体的键,确定实体之间的联系类型,设计分E-R图。
2、集成局部视图,得到全局的概念结构。
即将所有的分E-R图综合成一个系统的总E-R图。
3.2数据抽象与局部视图设计
按照图2.2列车票务管理系统总框架图,设计局部E-R图:
图3.1列车管理E-R图
图3.2售票E-R图
图3.3退票E-R图
图3.4订票E-R图
图3.5售票员E-R图
图3.6旅客E-R图
3.3视图的集成
将局部E-R图集成为全局E-R图并优化,如图3.7所示:
图3.7总体概念结构E-R图
逻辑模型设计
4.1E-R图向关系模型的转化
将图3.6总体概念结构E-R图转化成关系模型如下:
列车(列车编号,车种,始发站,终到站,发时,到时,车厢数,卧铺车厢数,剩余票数,里程,经过车站)
车票(车票编号,发站,到站,发时,到时,票价,座位类型,座位号,售票站名)
售票员(工作证号,姓名,密码,车站名)
旅客(身份证号,姓名,车票编号)
车站(车站名,售票员工作证号,城市名,所在省)
购票(车票编号,售票站名,购票时间,旅客身份证号)
订票(车票编号,售票站名,订票时间,旅客身份证号)
退票(车票编号,旅客身份证号,退票金额)
经过(列车编号,车站名,到时,发时,里程)
4.2数据模型的优化
将转化的关系模式进行优化:
列车(列车编号,车种,始发站,终到站,发时,到时,车厢数,卧铺车厢数,剩余票数,里程,经过车站)
车票(车票编号,发站,到站,发时,到时,票价,座位类型,座位号,售票站名)
售票员(工作证号,姓名,密码)
旅客(身份证号,姓名,车票编号)
车站(车站名,城市名,所在省)
工作(车站名,售票员工作证号)
购票(车票编号,旅客身份证号)
订票(车票编号,旅客身份证号,订票时间)
退票(车票编号,旅客身份证号,退票金额)
经过(列车编号,车站名,到时,发时,里程)
4.3数据库表格设计
根据优化后的数据模型,设计表格,每个表格表示在数据库中的一个表,如表4.1-表4.7所示。
表4.1列车信息表
字段名
数据类型
长度
约束
列车编号
char
30
主键
车种
char
20
不为空
始发站
varchar
50
不为空
终到站
varchar
50
不为空
发时
time
不为空
到时
time
不为空
车厢数
Integer
4
不为空
卧铺车厢数
integer
4
不为空
剩余票数
Integer
4
不为空
里程
integer
不为空
票价
Decimal
9
不为空
表4.2车票信息表
字段名
数据类型
长度
约束
车票编号
char
8
主键
列车编号
char
30
外键
始发站
varchar
50
不为空
终到站
varchar
50
不为空
发时
time
不为空
到时
time
不为空
票价
decimal
9
不为空
座位类型
char
10
不为空
车票类型
char
10
不为空
座位号
integer
不为空
售票站名
varchar
50
外键
表4.3车站信息表
字段名
数据类型
长度
约束
车站名
varchar
50
主键
城市名
varchar
50
不为空
省份
varchar
12
不为空
表4.4售票员信息表
字段名
数据类型
长度
约束
工作证号
char
50
主键
姓名
varchar
50
不为空
登录密码
varchar
50
不为空
车站名
varchar
50
外键
表4.5旅客信息表
字段名
数据类型
长度
约束
身份证号
char
50
主键
姓名
varchar
50
不为空
车票编号
char
8
外键
表4.6购票信息表
字段名
数据类型
长度
约束
车票编号
char
8
主键
身份证号
char
50
外键
车站名
varchar
50
外键
购票时间
Datetime
不为空
表4.7退票信息表
字段名
数据类型
长度
约束
车票编号
char
8
主键
身份证号
char
50
外键
退票金额
decimal
9
不为空
物理模型设计
因此系统较为简单,故未创建索引,现将表间关系展示如下:
关键业务逻辑的存储过程实现
6.1创建数据库
6.2在数据库‘火车站车票售票系统0301’下建表
共七个表:
车票信息表0301、车站信息表0301、购票信息表0301、列车信息表0301、旅客信息表0301、售票员信息表0301、退票信息表0301。
建表语句与结果如下:
6.3存储过程的实现
6.3.1按站站查询:
存储过程:
执行结果:
6.3.2查询旅客购票信息:
存储过程:
执行结果:
6.3.3增加一趟列车:
存储过程:
执行结果:
执行存储过程前:
执行存储过程后:
6.3.4关键业务逻辑的实现
描述:
新的旅客(即原系统中未存储该旅客相关信息的)购买一张票后,剩余票数减一,旅客信息表中记录增加一条,购票信息表中记录增加一条。
存储过程:
执行结果:
执行存储过程前该列车票数:
执行存储过程后该列车票数减一:
存储过程执行前的旅客信息表0301:
存储过程执行后的旅客信息表0301:
执行存储过程前的购票信息表0301:
执行存储过程后的购票信息表0301:
课程设计总结
终于完成了这次的数据库课程设计,在课程设计这两周中,感受很深刻。
、设计好一个数据库真的不是件容易的事,就这样一个小系统就已经花费了大量的时间和精力在上面了。
虽然在网上看了不少类似的设计,也吸取、借鉴了别人的一些东西,但是经过修改和自己设计,最终能够做出一个小型的系统来真的很让我振奋。
通过这次课程设计,领悟了很多东西。
首先,整个设计过程中,逻辑思维一定要清晰。
做到存储过程的时候,突然发现前面的逻辑结构分析不够合理,于是又倒回去再改,多次反复,弄得自己都晕头转向了,于是把课程设计暂时放了两天。
那两天里,重新整理了一下自己的思路,在第二天突然就想到了应该如何修改自己的设计。
然后根据自己整理后的思路一步一步修改,最后终于完成了任务。
我想应该是我一开始在设计时急于求成,导致很多地方没有考虑到,最后反而带来了更大的工作量。
所以除了思路清晰以外,冷静沉着也很重要。
另外,在设计的过程中,发现了很多问题以与缺漏的知识点,通过问同学,自己查资料,最后基本上都解决了。
这个过程让我提高了很多东西,包括自己解决问题的能力、和同学交流的能力,还有自身知识的补充。
最后,由于临近期末,时间仓促,课程设计做得不是很好,还有很多需要补充和修改的地方,我会在以后继续积累知识,充实自己,争取能够做出更好的设计来。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车站 火车站 车票 售票 系统 数据库 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)