数据库火车票销售系统.docx
- 文档编号:8737210
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:37
- 大小:290.20KB
数据库火车票销售系统.docx
《数据库火车票销售系统.docx》由会员分享,可在线阅读,更多相关《数据库火车票销售系统.docx(37页珍藏版)》请在冰豆网上搜索。
数据库火车票销售系统
数据库火车票销售系统
长沙学院
课程设计说明书
题目
火车票预定管理系统
系(部)
数学与计算机科学系
专业(班级)
姓名
学号
指导教师
起止日期
2016.05.16—05.27
课程设计任务书
课程名称:
数据库系统原理课程设计
题目:
火车票预订管理系统
1、某铁路局火车票预订管理系统需要如下信息:
车次信息:
车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数等。
车票信息:
座位号、价格、当前预售状态、座位类型等。
客户:
姓名、联系电话、身份证号码等。
业务员:
姓名、工号。
其业务规则描述如下:
一个客户可以预订(退订)多张火车票,但一张火车票只能被一个客户预订(退订);一个业务员能销售多张车票,但一张车票只被一个业务员销售。
一辆列车包含多张车票,但一张车票只属于一辆列车。
2、系统功能的基本要求:
按照一定条件查询、统计符合条件的火车、车票、客户信息等。
例如火车车次查询、时刻表查询、剩余座位数、同一路线可选火车信息、客户购买历史等,能够在车票售出时更新可用火车票数,模拟完成火车票订票、退订业务。
各阶段具体要求:
1、需求分析阶段
●定义数据项的含义和取值
●定义目标系统的数据流
2、概念结构设计阶段
●画出实体模型E-R图
3、逻辑结构设计阶段
●将实体模型转化为关系模型
●给出每个关系的主关键字和函数依赖集
●分析你所设计的关系数据库模式是否属于3NF
4、物理设计阶段
●确定所有字段的名称、类型、宽度、小数位数及完整性约束
●确定数据库及表的名称及其组成
●确定索引文件和索引关键字
5、数据库安全及维护设计阶段
●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)
●为了实现复杂的数据完整性约束,设计适当的触发器
●设计一个适合的数据库备份策略
6、实施阶段
●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。
●对于学有余力的同学,可以使用嵌入式SQL语句结合高级语言开发完成。
设计工作量:
(1)软件设计:
完成问题陈述中所提到的所有需求功能。
(2)论文:
要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。
工作计划:
安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;
1)选定题目
2)需求分析
3)概念结构设计
4)逻辑结构设计
5)物理设计
6)数据库安全及维护设计
7)数据库上机实现
8)答辩
计划时间
指导老师
班级
13~14周
潘怡、卓琳
13软件1班
13~14周
潘怡、卓琳
13软件2班
13~14周
刘欣、黄彩霞
13软件3班
13~14周
刘欣、黄彩霞
13软件4班
13~14周
杨刚、刘钢钦
13软件5班
13~14周
杨刚、刘钢钦
13软件6班
注意事项
⏹提交电子文档
Ø长沙学院课程设计任务书(每学生1份)
Ø长沙学院课程设计论文(每学生1份)
Ø长沙学院课程设计鉴定表(每学生1份)
指导教师签名:
日期:
教研室主任签名:
日期:
系主任签名:
日期:
长沙学院课程设计鉴定表
姓名
学号
专业
软件工程
班级
设计题目
火车票预订管理系统
指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
一、引言
1.1编写目的
随着时代的发展,计算机软件和系统的成熟,火车票的正当管理成为一个影响铁路部门正常运营的因素之一,而建立火车票订票管理系统是一个很好的解决办法。
作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好等,这些优点能够极大的提高火车票信息管理的效率,也正体现了火车票的科学化正规化管理
现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。
本论文就是通过SQL的整体设计把数据库与应用程序相连接,做成一个火车票的订票管理系统,使得火车票管理员能够有效的管理车次信息、旅客信息、退票信息等。
同时用户可以通过查询到相关的火车票信息,选择是否适合自己,也可以在网上直接订票、退票,省时省力。
1.2参考资料
资料名称
作者
文件编号、版本
《数据库系统概论》
王珊、萨师煊
2006年5月第4版
《现代软件工程》
孙涌
2003年8月第1-246版
《精通SQLserver2000数据库管理与开发》
于松涛
2003年10月
二、需求规约
2.1业务描述
该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。
我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。
2.1.1经济可行性
本系统其他应用软件、硬件系统也易于获得.因此,开发成本较低。
而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。
所以,从经济的角度来看,该系统可行。
2.1.2技术可行性
开发工具:
VS2005
数据库环境:
SQLServer2008
系统环境:
MicrosoftWindows2000或以上版本。
系统实现依靠相对熟悉的c语言和SQLServer2008数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。
2.1.3操作可行性
系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便。
2.1.4业务流程图
经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出旅客信息、订票信息和取票通知的具体需求。
图2.1旅客购票流程图
⑴调查用户需求
①售票处需求
●功能:
旅客持个人证件去火车站购买火车票。
希望能通过旅客姓名查到该旅客的列车车次并记录旅客基本信息。
●统计功能:
◆按火车票统计买票人数
◆按姓名统计火车票数
②旅客购票需求
●交费功能:
◆交费
◆退费
③取票需求
●通知功能:
◆通知旅客取票
●统计功能:
◆统计通过验证的人数
◆统计可以取票的人
◆统计未通过验证的人数
●查询功能:
◆购票旅客查询
购票旅客姓名
购票旅客身份证号
购票旅客订单号
④列车车次信息需求
●查询功能:
◆车次
◆始发站
◆终点站
◆始发时间
2.1.5系统框架
在调查完了用户需求之后,就要开始分析用户需求。
在此,我们们采用自顶向下的结构化分析方法(SA方法)。
首先,定义全局概念结构的框架,如图2.2所示。
图2.2火车票预定系统总框架图
各子系统需要进一步细化。
旅客信息系统为例进一步细化,如图2.3所示。
图2.3旅客信息系统细化
以其中的查询旅客信息功能为例进一步细化,如图2.4所示。
图2.4查询旅客信息功能
图2.5列车车次信息系统细化
图2.6取票通知系统细化
图2.7旅客信息系统能查询到的内容
图2.8火车票信息系统能查询到的内容
图2.9退票信息系统细化
将所有子系统全部细化。
将所有用户需求分析完毕之后,就要开始构造数据字典了。
经分析之后,本系统要用到五个基本表:
退票信息表,旅客信息表,列车车次信息表,取票通知信息系统,列车座位信息表。
数据结构定义如表2.1所示。
表2.1数据结构定义
数据结构名
含义说明
组成
退票信息
定义了退票旅客的有关信息
旅客姓名,身份证号,订单号,电话号
旅客
定义了旅客有关信息
旅客姓名,身份证号,性别,
工作单位,电话号
列车车次信息表
定义了车次
的有关信息
车次号,始发地,目的地,始发时间
取票通知单
定义了取票通知相关有关信息
旅客姓名,取票时间,列车车次,座位号,火车票类型
列车座位信息表
定义了列车座位有关信息
列车号,座位号,座位信息,火车票类型
2.2需求分析
需求分析是软件设计的一个重要的环节。
本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。
用户对系统的需求我们从以下几方面进行分析。
2.2.1功能需求
本网上订票系统应该具备如下功能:
1.查询
分为对车次信息的查询和客户对已订车票信息的查询。
要求:
1)对车次的查询,可以按照发车车次进行查询;2)车次信息包括:
车号、出发地、目的地、发车日期、开出时刻、票价。
3)座位类型设定。
2.订票
通过查询系统,客户根据自己的需求找到满意的车次,再输入个人信息后直接通过网上订票确定已预订选中的车票。
要求:
订票记录应包括:
会员名、车号、发车日期、订购日期、订购票数、总价。
3.退票
可退票,通过查询系统,客户可以自己的名字找到自己的订票信息,通过退票模块退去已购车票。
2.2.2数据需求
信息需求,即在系统中需要处理哪些数据。
根据对火车站网上订票系统的分析,本系统的信息需求如表2-1所示。
表2-1信息输入输出
信息输入
信息处理
信息输出
用户输入所需车次
检索系统数据库
符合用户需求的车次及相关
信息
用户输入个人信息及所需订
购的车票信息
更新系统中的订票信息,
将新信息存入系统数据库
操作反馈(如订票成功)
用户输入自己的名字、身份
证号;或交易的订单号
检索系统数据库
符合用户需求的订票信息
用户输入自己的名字
检索系统数据库以得到订票
记录,删除用户请求的订票
记录,更新系统数据库
操作反馈(如退票成功等)
2.2.3性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。
1.准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
系统应能及时而且准确的根据用户权限及所输入的信息做出响应。
由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。
2.易用性
本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。
3.安全性
网上订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。
同时系统还要保证对数据库进行及时更新,保证数据一致性。
三、数据库环境说明
数据库实例
数据库系统
数据库部署环境
数据库设计工具
数据库存放位置
说明
火车票订票管理
SQLServer2008
Window7
SQLServer
存放位置,绝对路径/相对路径D:
/Program
完整的车票管理流程
四、数据库的命名规则
4.1数据库对象命名规则
数据库对象
命名规则
备注
表
Tbl_功能描述字符串
例如:
Checi车次信息表
视图
View_功能描述字符串
例如:
Checi车次信息视图
存储过程
Procedure_功能描述字符串
例如:
[dbo].[kh]存储过程
触发器
Insert_功能描述字符串
例如:
Insert_Or_Update_Sal_1更改库数据库
4.2数据项编码规则
数据项
命名规则
数据类型
长度范围
备注
C_ci
(G/K/T/D)+号码
varchar
10位
车次号
T_seat
1-800
int
10位
座位号
C_goTime
年—月—日+时:
分:
秒
varchar
10位
出发时间
C_fanhuiadd
地名
varchar
10位
目的地
K_name
名字
varchar
10位
客户姓名
Y_name
名字
varchar
10位
业务员姓名
K_id
数字
varchar
16位
身份证号码
Y_tel
数字
varchar
11位
电话号码
T_price
数字
float
10位
车票价格
T_type
一等座/二等座
varchar
10位
座位类型
五、逻辑设计
(1)关系模式:
车次信息(车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数)
车票信息(座位号、价格、当前预售状态、座位类型)
客户(姓名、联系电话、身份证号码)
业务员(姓名、工号)
(2)
关系图:
主键
主键
1
主键
n1
n
n
1
主键
图5.1系统总体结构E-R图
图5.2逻辑关系图
六、物理设计
6.1表汇总
表名
功能说明
车次表
存储车次的相关信息及其数据类型以及相关的约束
车票信息表
存储车票的相关信息及其数据类型以及相关的约束
客户表
存储客户的相关信息及其数据类型以及相关的约束
业务员表
存储业务员的相关信息及其数据类型以及相关的约束
6.2表的基本信息
车次信息表
表名
车次信息表
数据库用户
主键
车次号
其他排序字段
无
索引字段
车次号
序号
字段名称
数据类型(精度范围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
t_no
VARCHAR(10)
N
Y
高
车次号/主键
2
t_departure
VARCHAR(10)
N
N
中
出发地
3
t_destination
VARCHAR(10)
N
N
中
目的地
4
t_goTime
DATETIME
N
N
中
出发时间
5
t_returnTime
DATETIME
N
N
中
到站时间
6
t_trainType
VARCHAR(10)
Y
N
低
火车类型
7
mileageNumber
INT
N
N
低
里程数
8
seatNumber
INT
N
N
低
座位数
sql脚本
CREATETABLEtrain_number
(
t_noVARCHAR(10)PRIMARYKEY,--车次编号(主键)
t_departureVARCHAR(10)NOTNULL,--出发地
t_destinationVARCHAR(10)NOTNULL,--目的地
t_goTimeDATETIMENOTNULL,--出发时间
t_returnTimeDATETIMENOTNULL,--到站时间
t_trainTypeVARCHAR(10)CHECK(t_trainTypeIN('高铁','普快','特快','动车')),--火车类型
t_mileageNumberINTNOTNULL,--里程数
t_seatNumberINTNOTNULL--座位数
)
备注
车票信息表
表名
车票信息表
数据库用户
主键
车次编号
其他排序字段
无
索引字段
车次编号
序号
字段名称
数据类型(精度范围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
t_no
VARCHAR(10)
N
Y
高
车次编号/主键
2
ti_seatNo
VARCHAR(10)
N
N
中
座位号
3
ti_seatPrice
FLOAT
(2)
N
N
中
车票价格
4
ti_saleStatus
VARCHAR(10)
N
N
中
销售状态
5
ti_seatType
VARCHAR(10)
N
N
中
座位类型
sql脚本
CREATETABLEtrain_ticket
(
t_noVARCHAR(10),--车次编号
ti_seatNoVARCHAR(10),--座位号
ti_seatPriceFLOAT
(2)NOTNULL,--车票价格
ti_saleStatusVARCHAR(10)CHECK(ti_saleStatusIN('待售','已售')),--销售状态
ti_seatTypeVARCHAR(10)CHECK(ti_seatTypeIN('一等座','二等座','三等座')),--座位类型
PRIMARYKEY(ti_seatNo,t_no),--主键约束
FOREIGNKEY(t_no)REFERENCEStrain_number(t_no)--外键约束
备注
客户信息表
表名
客户信息表
数据库用户
主键
身份证号码
其他排序字段
无
索引字段
身份证号码
序号
字段名称
数据类型(精度范围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
u_ID
VARCHAR(20)
N
Y
高
身份证号码/主键
2
u_name
VARCHAR(10)
N
N
中
姓名
3
u_telephone
VARCHAR(10)
N
N
中
电话号码
sql脚本
CREATETABLEUsers
(
u_IDVARCHAR(20)PRIMARYKEY,--身份证号码
u_nameVARCHAR(10)NOTNULL,--姓名
u_telphoneVARCHAR(10)NOTNULL,--电话号码
t_noVARCHAR(10)NOTNULL,--车次号
ti_seatNoVARCHAR(10)NOTNULL,--座位号
FOREIGNKEY(ti_seatNo,t_no)REFERENCEStrain_ticket(ti_seatNo,t_no)--外键约束
--FOREIGNKEY()REFERENCEStrain_ticket()--外键约束
备注
业务员信息表
表名
业务员信息表
数据库用户
主键
编号
其他排序字段
无
索引字段
编号
序号
字段名称
数据类型(精度范围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
s_no
VARCHAR(20)
N
Y
高
编号/主键
2
s_name
VARCHAR(20)
N
N
中
业务员姓名
sql脚本
CREATETABLEsaleMan
(
s_noVARCHAR(20)PRIMARYKEY,--主键约束
s_nameVARCHAR(20)NOTNULL,--业务员姓名
ti_seatNoVARCHAR(10)NOTNULL,--座位号
t_noVARCHAR(10)NOTNULL,--座位号
FOREIGNKEY(ti_seatNo,t_no)REFERENCEStrain_ticket(ti_seatNo,t_no)--外键约束
)
备注
6.3视图的设计
图6.3.1车票信息视图
图6.3.1售票信息视图
6.4存储过程、函数及触发器的设计
触发器1:
修正票价和票价对应的座位类型[insert_or_upadte_sal_2]
USE[火车票]
GO
/******Object:
Trigger[dbo].[insert_or_upadte_sal_2]ScriptDate:
05/28/201606:
22:
30******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[insert_or_upadte_sal_2]
on[dbo].[Che_ticket]
forinsert
as
begin
DECLARE@ti_seatNoVARCHAR(10),@ti_seatPriceFLOAT
(2),@ti_seatTypeVARCHAR(10),@t_novarchar(10)
SELECT@ti_seatNo=T_seat,@ti_seatPrice=T_price,@ti_seatType=T_type,@t_no=C_ciFROMinserted
IF(@ti_seatNoLIKE'A%')
UPDATEChe_ticketSETT_price=200
IF(@ti_seatNoLIKE'A%')
UPDATEChe_ticketSETT_price='一等座'
IF(@ti_seatNoLIKE'B%')
UPDATEChe_ticketSETT_price=100
IF(@ti_seatNoLIKE'B%')
UPDATEChe_ticketSETT_price='二等座'
IF(@ti_seatNoLIKE'A%'AND@t_noLIKE'G-%')
UPDATEChe_ticketSETT_price=900WHERE@ti_seatNo=T_seatAND@t_no=C_ci
IF(@ti_seatNoLIKE'B%'AND@t_noLIKE'G-%')
UPDATEChe_ticketSETT_price=600WHERE@ti_seatNo=T_seatAND@t_no=C_ci
IF(@ti_seatNoLIKE'C%'AND@t_noLIKE'G-%')
UPDATEChe_ticketSETT_price=300WHERE@ti_seatNo=T_seatAND@t_no=C_ci
IF(@ti_seatNoLIKE'A%'AND@t_noLIKE'K-%')--K是普快
UPDATEC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 火车票 销售 系统