数据库课程设计火车站售票系统.docx
- 文档编号:8981006
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:30
- 大小:551KB
数据库课程设计火车站售票系统.docx
《数据库课程设计火车站售票系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计火车站售票系统.docx(30页珍藏版)》请在冰豆网上搜索。
数据库课程设计火车站售票系统
数据库课程设计报告
题目:
火车站售票系统
学院:
信息科学技术学院
班级:
学号:
姓名:
指导教师:
完成日期:
2020年6月12日
一、...................................................................................3
二、...........................................................................3
.............................................................................3
...............................................................................7
三、............................................................................10
..............................................................10
.....................................................................11
..............................................................13
.........................................13
....................................................................14
..................................................14
......................................................16
.............................................................16
......................................................................18
四、....................................................................18
..................................................................18
..............................................20
五、............................................................................27
附录参考文献
一、绪论
铁路票务治理是一件比较负责但又超级重要的情形,它是涉及国家铁路运输的正常工作、国民经济的进展和人民生活水平及质量的大情形。
随着经济的进展,交通运输愈来愈便利,为了提高效率,减轻劳动强度,设计开发高效的铁路信息查询系统就显得很是重要。
春运、旅行使得铁路客运量大幅度的提高,各大省市的列车都显著的增加,这些都对列车票务治理系统提出了更高的要求,因此要不断的完善更新列车票务治理系统,提高列车售票系统的工作效率。
基于全国有大量的人员通过搭乘火车抵达目的地;而与火车的特殊性及可能通过量个城市,每一个城市的车站能够出售此火车的车票;而且同一车站可能有多辆车通过;每一个乘客都希望以最快的方式选择自己想乘坐的那一趟列车,因此以人工的方式是无法实现的。
一种可行的方案是基于客户端效劳器的体系结构,效劳器为数据库系统,存储所有必要的信息。
客户能够在任一个火车售票点方便地购买符合自己要求的车票。
列车票务治理系统的实施,将会在必然程度上增进铁路客运生产力和生产关系的变革,增强市场竞争能力,提高铁路部门的工作效率,提升治理水平,减少劳动强度,方便广大旅客购票,有必然的社会和经济效益。
二、需求分析
数据流图
数据流图(DataFunctionDiagram),又名数据功能图表,简称DFD,确实是采纳图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换进程,是的要紧表达工具及用于表示软件模型的一种图示方式。
为了取得数据流图,第一需要分析系统需要具有哪些功能。
系统具应备的功能和操作如下:
(1).查询:
能够通过起点站与终点站在进行查询,也可依照具体的车次输入进行查询,同时每次查询都会显示车次号,点击即可显示该趟列车的详细信息,其中包括列车的起始站、终点站、发车时刻、抵达时刻等。
(2).售票业务:
每一个售票点都能够通过输入车次和站点来找到客户需要的车票,然后确信日期、座位类型,和是不是半票,付款后即可出票,同时在数据中进行更新。
(3).退票业务:
依照客户提供的情形(车次、时刻、)为客户办理退票手续,退票时按票价的80%退给客户金额,假设所退票额能知足他的要求,那么为他办理退票手续,同时在数据库中进行更新。
(4).更新功能:
该系统随时跟据车辆的转变情形进行更新,增加车辆时能够在系统中插入该车的详细信息,当某趟车停止运行时能够删除该趟车的信息。
包括对列车信息、站点信息的更新功能。
以下是需求分析后取得的数据流图(DFD):
顶层数据流图
一层数据数据流图
二层更新系统
二层查询系统
二层购票系统
二层退票系统
数据字典
数据字典是系统中各类数据描述的集合,是进行详细的数据搜集和数据分析所取得的要紧功效。
数据字典通常包括数据项、数据结构、数据流、数据存储和处置进程5个部份。
数据字典在数据库设计中占有很重要的地位,它是关于数据的信息的集合,也确实是对中包括的所有元素的概念的集合。
1.数据项
数据项是中讨论的最小单位,是数据记录中最大体的、不可分的出名数据单位。
数据项能够是字母、数字或二者的组合。
通过数据类型(逻辑的、数值的、字符的等)及数据长度来描述。
数据项用来描述实体的某种属性。
对数据项之间的描述通常包括以下内容:
数据项描述={数据项名,数据项含义说明,列名,数据项类型,长度,取值范围,
取值含义,与其他数据项的实际联系,数据项之间的联系}
改系统要紧涉及的数据项有三个:
数据项名称
数据项列名
数据类型
说明
售票点编号
Sno
char(10)
PK
名称
Sname
char(30)
地址
Address
char(30)
联系电话
Tel
char(11)
[0-1][0-9]…九位数字
数据项名称
数据项列名
数据类型
说明
车次编号
Tno
char(6)
PK
票类名称
Tname
char(4)
PK
票价
Price
char(10)
额定票数
Tamount
numeri(5)
数据项名称
数据项列名
数据类型
说明
车次编号
Tno
char(6)
PK
列车类型
Type
char(20)
空调特快,空调快速,动车组,直达特快,零时客车,普快列车
起始站名
Bstation
char(10)
终点站名
Estation
char(10)
发车时间
Btime
char(10)
24时制
到达时间
Etime
char(10)
24时制
运行时间
Ttime
char(10)
小时/分钟
里程
Distance
char(10)
2.数据结构
数据结构反映了数据之间的组合关系。
一个数据结构能够由假设干个数据项组成,也能够由假设干个数据结构组成,或由假设干个数据项和数据结构混合组成。
对数据结构的描述通常包括以下内容:
数据结构的描述={数据结构名,含义说明,组成:
{数据项或数据结构}}
该系统要紧涉及的数据结构有:
售票点、车票、车次、出售
数据结构名
售票点
说明
记录售票点的基本信息
组成
Sno+Sname+Address+Tel
备注
数据结构名
车票
说明
记录车票的基本信息
组成
Tno+Tname+Price+Tamount
备注
数据结构名
车次
说明
记录车次的基本信息
组成
Tno+Type+Bstation+Estation+Btime+Etime+Ttime+Distance
备注
数据结构名
出售
说明
记录出售的基本信息
组成
Sno+Tno+Tname+Ddate+Samount
备注
3.数据流
数据流是数据结构在系统内传输的途径。
对数据流的描述通常包括以下内容:
数据流描述={数据流名,说明,数据流来源,数据流去向,
组成:
{数据结构},平均流量,顶峰期流量}
该系统要紧涉及的数据流有:
数据流名
车票信息
说明
记录车票的出售过程
数据流来源
核实车票信息
数据流去向
确认付款
组成
车次编号+票类名称+票价+车票类型+车票日期
流量
卖出一张票,则发出一张票
4.数据存储
数据存储是数据结构停留或保留的地址,也是数据流的来源和去向之一。
对数据存储的描述通常包括:
数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,
组成:
{数据结构},数据量,存取频度,存取方式}
该系统的数据存储要紧有:
数据存储名
售票点信息
说明
记录售票点的基本信息
输入的数据流
统计输入
输出的数据流
售票点基本信息
组成
售票点
数据存储名
车票信息
说明
记录车票的基本信息
输入的数据流
决定售票
输出的数据流
确认出票
组成
车票
数据存储名
车次信息
说明
记录车次的基本信息
输入的数据流
输入车次、站点查询
输出的数据流
显示车次信息
组成
车次
5.处置进程
处置进程的具体处置逻辑一样用判定表或判定树来描述。
数据字典中只需要处置进程的说明性信息,由以下内容组成:
处置进程描述={处置进程名,说明,输入:
{数据流},输出:
{数据流},
组成:
{简要说明}}
该系统设计的处置进程有:
数据过程名
车次查询
说明
记录车次的全部信息
输入
车次信息
输出
车次信息
数据过程名
买票
说明
记录车票的全部信息
输入
车次信息
输出
车票信息
数据过程名
退票
说明
记录与购票时相同的信息
输入
车票信息
输出
票价信息
数据过程名
插入列车
说明
记录新增加的零时列车
输入
车次信息
输出
车次信息
数据过程名
删除列车
说明
记录要删除的列车
输入
车次信息
输出
车次信息
三、系统设计
.概念结构设计
在需求分析时期所取得的应用需求应该第一抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。
在概念结构设计时期,第一需要了解概念结构设计的方式和步骤。
(1)概念结构设计的方式:
本系统采纳自底向上的概念结构设计方式。
即第一概念各局部应用的概念结构,然后将它们集成起来取得全局概念模式。
(2)概念结构设计的步骤:
a、抽象数据并设计局部视图。
确实是对需求分析时期搜集到的数据依照E-R模型的要求进行分类、组织,标识实体的键,确信实体之间的联系类型,设计出E-R图的框架。
b、丰硕E-R,为其添上属性,取得全局的概念结构。
E-R图
E-R图也即实体-联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的方式,用来描述现实世界的概念模型。
E-R方式是“实体-联系方式”(Entity-RelationshipApproach)的简称,它是描述现实世界概念结构模型的有效方式,组成E-R图的大体要素是实体型、属性和联系。
第一画出每一个实体的属性图和联系的属性图,即:
抽象数据,取得数据的整体E-R:
具体的E—R图为:
售票点:
{编号,名称,地址,联系}
车票:
{车次编号,票类名称,票价,额定票数}
车次:
{车次编号,列车类型,起始站名,终点站名,发车时刻,抵达时刻,运行时刻,里程}
出售:
{车次编号,票类名称,编号,车票日期,出售数量}
逻辑结构设计
E-R图向关系模型的转化:
售票点表(Sale):
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Sno
char
10
否
是
编号
Sname
char
30
否
否
名称
Address
char
30
否
否
地址
Tel
char
11
否
否
联系电话
车票表(Ticket):
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Tno
char
6
否
是
车次编号
Tname
char
4
否
是
票类名称
Price
char
10
否
否
票价
Tamount
numeric
5
否
否
额定票数
车次表(Train):
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Tno
char
6
否
是
车次编号
Type
char
20
否
否
列车类型
Bstation
Char
10
否
否
起始站名
Estation
Char
10
否
否
终点站名
Btime
Char
10
否
否
发车时间
Etime
Char
10
否
否
到达时间
Ttime
Char
10
否
否
运行时间
Distance
char
10
否
否
里程
出售表(ST):
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Tno
char
6
否
是
车次编号
Tname
char
4
否
是
票类名称
Sno
char
10
否
是
编号
Ddate
char
20
否
否
车票日期
Samount
numeric
5
否
否
出售数量
二维表
在中,数据结构表示为一个二维表,一个关系确实是一个二维表,但不是任意一个二维表都能表示一个关系,二维表名确实是关系名。
表中的第一行通常称为属性名,表中的每一个元组和属性都是不可再分的,且元组的顺序是无关紧要的。
数据模型的标准化:
标准化理论是用来改造,通过度解关系模式来排除其中不适合的数据依托,以解决插入异样、删除异样、更新异样和数据冗余问题。
关系数据库中关系是知足必然要求的,知足不同程度要求的为不同范式。
一样有1NF,2NF,3NF及BCNF。
关于售票点表(Sale),因为每一个分量都是不可分的数据项,因此它已知足一范式(1NF),又因为它的主码是售票点编号,唯一决定了每一个非主属性,即每一个非主属性完全函数依托于主码,达到二范式(2NF)。
由此能够看出,上图是标准化了的BCNF。
关于车票表(Ticket),第一它是一范式(1NF),又它的主码是车次编号(Tno)和票类名称(Tname),能够完全决定其他非主属性,因此达到二范式(2NF)。
由图能够看出,图中既没有传递依托,又都是完全依托,因此达到三范式(3NF)。
关于车次表(Train),第一它的每一个分量都是不可分的数据项,知足一范式(1NF),又因为它的主码是车次编号,唯一决定了每一个非主属性,即每一个非主属性完全函数依托于主码,达到二范式(2NF)。
由此能够看出,上图是标准化了的BCNF。
关于出售表(ST),第一它是一范式(1NF),又它的主码是车次编号(Tno)、票类名称(Tname)和售票点编号(Sno),能够完全决定其他非主属性,因此达到二范式(2NF)。
由图能够看出,图中既没有传递依托,又都是完全依托,因此达到三范式(3NF)。
数据模型的优化:
数据库逻辑设计的结果不是唯一的。
为了进一步提高数据库应用系统的性能,还应该依照应用需要适本地修改、调整数据模型的结构,这确实是数据模型的优化。
关系数据模型的优化通常以标准化理论为指导,方式为:
1.确定数据依赖。
在“数据字典”一节中己讲到用数据依赖分析和表示数据项之间的联系,写出每个数据项之间的数据依赖。
如果需求分析阶段没有来得及做,可以现在补做,即按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间的数据依赖。
2.对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3.依照数据依托的理论对关系模式一一进行分析,考察是不是存在部份函数依托、传递函数依托、多值依托等,确信各关系模式别离属于第几范式。
4.按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解。
5.对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。
常用的两种分解方法果水平分解和垂直分解。
在我的系统中,用户相当于是游客,只具有查询的功能,而真正利用那个系统的是每一个售票点,关于售票点,它所涉及的表格有三张(售票点大体信息表、车票表、出售表),因为售票点的大体信息在一样情形下可不能用到,而只会用到它的编号,因此将其与车票表分开列成两张表,而出售表是售票点表和车票表的综合,因为售票点的大体信息不需用到,因此只需列出它们的主码,即售票点编号、车次编号与票类名称三者,如此那么简化了表格也清楚了思路,使每一张表格都能达到最优的状态。
视图的成立
从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。
从系统内部来看,一个视图是由SELECT语句组成的查询概念的虚拟表。
从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就犹如一张表一样,对表能够进行的一样操作都能够应用于视图,例如查询,插入,修改,删除操作等。
视图是一个虚拟表,其内容由查询概念。
同真实的表一样,视图包括一系列带出名称的列和行数据。
可是,视图并非在数据库中以存储的数据值集形式存在。
行和列数据来自由概念视图的查询所引用的表,而且在引用视图时动态生成。
对其中所引用的基础表来讲,视图的作用类似于挑选。
概念视图的挑选能够来自当前或其它数据库的一个或多个表,或其它视图。
散布式查询也可用于概念利用多个异类源数据的视图。
视图一经概念便存储在数据库中,与其相对应的数据并无像表那样又在数据库中再存储一份,通过视图看到的数据只是寄存在大体表中的数据。
对视图的操作与对表的操作一样,能够对其进行查询、修改(有必然的限制)、删除。
当对通过视图看到的数据进行修改时,相应的大体表的数据也要发生转变,同时,假设大体表的数据发生转变,那么这种转变也能够自动地反映到视图中。
该系统的用户是售票点,因此成立视图时只需从此角度考虑,即成立这一个车次的视图和查看具体车次车票票价的视图。
例如:
车次:
createviewsun_Train
as
selectTno,Bstation,Estation
fromTrain
具体车次车票票价:
createviewyy_Ticket
as
selectTno,Tname,Price
fromTicket
whereTno='K776'
概要设计:
概要设计的要紧任务是把需求分析取得的DFD转换为软件结构和数据结构。
设计软件结构的具体任务是:
将一个复杂系统按功能进行模块划分、成立模块的层次结构及挪用关系、确信模块间的接口及人机界面等。
数据结构设计包括数据特点的描述、确信数据的结构特性、和数据库的设计。
在我的设计中,火车站售票系统包括两个模块,一个是售票点模块,一个是客户模块,售票点模块的功能包括更新、查询、售票、退票;客户模块那么只包括查询模块。
因此,功能图如下:
四、数据库的实现
数据的载入
数据的载入有两种方式,一种是在SQL中成立表格,再将数据输入当中;另一种是在excel中先成立好表格,再用SQL将数据导入。
(1)在SQL中成立表格,利用查询分析器,代码如下:
第一张表,Sale表:
createtableSale
(Snochar(10)primarykey,
Snamechar(30),
Addresschar(30),
Telchar(11)
);
第二张表,Ticket表
createtableTicket
(Tnochar(16),
Tnamechar(4),
Pricechar(10),
Tamountnumeric(5)
primarykey(Tno,Tname)
);
第三张表,Train表
createtableTrain
(Tnochar(6),
Typechar(20),
Bstationchar(10),
Estationchar(10),
Btimechar(10),
Etimechar(10),
Ttimechar(10),
Distancechar(10),
primarykey(Tno)
);
第四张表,ST表
createtableST
(Snochar(6),
Tnochar(20),
Tnamechar(10),
Ddatechar(10),
Samountnumeric(10),
primarykey(Sno,Tno)
);
(2)用SQLServer将每张二维表的数据导入(二维表已在中列出),共四张,步骤如下(见截屏):
功能的实现和系统调试
1.更新系统
火车忙碌时期,插入零时列车L7566:
insert
intoTrain(Tno,Type,Bstation,Estation,Btime,Etime,Ttime,Distance)
values('L7566','零时列车','广州','广州北','07:
08','07:
33','25分钟','27千米')
忙碌时期已过,删除之前插入的零时列车L7566:
delete
fromTrain
whereTno='L7566'
2.查询系统
按车次查询(查询车次为T202的列车的详细信息):
select*
fromTrain
whereTno='T202'
按站点查询(查询从广州动身到重庆北的所有列车的详细信息):
select*
fromTrain
whereBstation='广州'andEstation='重庆北'
查询剩余票数:
选取列车车次为K776的列车,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 火车站 售票 系统