数据库火车票销售系统.docx
- 文档编号:26317485
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:40
- 大小:297.73KB
数据库火车票销售系统.docx
《数据库火车票销售系统.docx》由会员分享,可在线阅读,更多相关《数据库火车票销售系统.docx(40页珍藏版)》请在冰豆网上搜索。
数据库火车票销售系统
长沙学院
课程设计说明书
题目
火车票预定管理系统
系(部)
数学与计算机科学系
专业(班级)
学号
指导教师
起止日期
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.1编写目的1
1.2参考资料1
二、需求规约2
2.1业务描述2
2.1.1经济可行性2
2.1.2技术可行性2
2.1.3操作可行性2
2.1.4业务流程图2
2.1.5系统框架4
2.2需求分析7
2.2.1功能需求7
2.2.2数据需求8
2.2.3性能需求8
三、数据库环境说明9
四、数据库的命名规则9
4.1数据库对象命名规则9
4.2数据项编码规则9
五、逻辑设计10
六、物理设计11
6.1表汇总11
6.2表的基本信息12
6.3视图的设计15
6.4存储过程、函数及触发器的设计16
七、安全性设计23
7.1防止用户直接操作数据库的方法23
7.2用户密码的加密方法24
7.3角色与权限24
八、数据库管理与维护说明24
一、引言
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
DECLAREti_seatNoVARCHAR(10),ti_seatPriceFLOAT
(2),ti_seatTypeVARCHAR(10),t_novarchar(10)
SELECTti_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%'ANDt_noLIKE'G-%')
UPDATEChe_ticketSETT_price=900WHEREti_seatNo=T_seatANDt_no=C_ci
IF(ti_seatNoLIKE'B%'A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 火车票 销售 系统