火车票管理系统 数据库课设 集美大学概要Word文档格式.docx
《火车票管理系统 数据库课设 集美大学概要Word文档格式.docx》由会员分享,可在线阅读,更多相关《火车票管理系统 数据库课设 集美大学概要Word文档格式.docx(45页珍藏版)》请在冰点文库上搜索。
![火车票管理系统 数据库课设 集美大学概要Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/8ed1605a-5fbf-47ac-86b1-cfa54843e02f/8ed1605a-5fbf-47ac-86b1-cfa54843e02f1.gif)
随着经济的发展,各地人民的沟通交流也与之剧增,领土之大也给人民的出行带来了社会性的难题。
中国铁路四通八达,一直以来中国铁路以安全、稳定、快速和较为便宜的票价,吸引了占世界三分之一的人口乘坐。
随着互联网技术的不断发展,用信息技术改造传统行业,是国家实现铁路现代化战略任务的迫切要求。
铁路信息化是铁路信息化的重要标志,将信息技术运用到铁路生产经营与各项管理决策中,提高市场竞争力和经济效益,所以,开发出火车站售票管理系统就显得尤为重要了。
本系统的主要作用是管理车票信息,还可以实现购票,退票,换票让乘客及时了解售票的情况,及时买票;
以保证售票工作能更顺畅的运行;
车票信息和乘车向的统计分析,以便火车站能更好的调度车次,以便满足乘客出行要求。
这就要求软件的设计要结合具体实际,从而为车站管理服务,提高运行效率。
为此,我们进行了专门调查,搜集了大量的资料,制定了详尽的需求分析与系统设计。
本系统可以很好地帮助铁路部门提高工作效率,进一步提高工作效益和铁路现代化水平,具有很高的开发价值和使用价值。
1.2本课题研究内容与目标
1.2.1研究内容
本系统主要是实现火车站的售票管理与统计,从而提高售票效率。
使用本系统,可以有效地管理和统计车票的基本信息和各类车站相关信息,包括:
车票基本信息、车站基本信息、车次信息、人员管理等,完成这些信息的增加、删除、修改、查询统计功能。
(1)销售管理(自动生成车票编号、车票信息的增加、查询和统计)
(2)退票管理(车票的退票操作、车票信息的对应修改)
(3)换票管理(顾客车票信息的修改、车票信息的修改)
(4)查询管理(车次查询、时刻表查询、价格查询、售票情况查询)
(5)调度管理(运价修改,车票数量修改)
(6)用户管理(用户权限的分配、登录名与密码的设置)
1.2.2研究目标
(1)分权限管理,满足不同用户的需求。
(2)各类信息及时发布,便于调度车辆,提高效率。
1.3开发环境
操作系统为WindowsxpWindows7。
数据库管理系统为SQLServer2005标准版或企业版。
1.4体系结构设计
本次课程设计的课题为火车售票管理系统,只采用了数据库后台设计。
实现了销售管理,退票管理,换票管理,查询管理,调度管理,用户管理等功能。
表与表之间数据的影响采用触发器控制。
管理员给相应的角色赋相应权限,将用户添加到角色中来,每个用户拥有自己独立的登录名及相应的密码。
使用户拥有一定的查询修改插入功能,在增删改查等操作里使用了存储过程。
第二章需求分析
2.1信息要求
2.2处理要求
2.3数据字典
1、数据项
售票员信息表:
sale
描述
列名
数据类型
备注:
员工编号(登录名)
Sal_no
Varchar(20)
PK
姓名
Sal_name
可为空
登陆密码
Sal_pass
不可为空
顾客信息表:
customer
身份证号码
Cus_id
Char(18)
Cus_name
电话号码
Cus_tel
Char(11)
11或8位数字,可为空
上车日期
Cus_date
datetime
上车时间
Cus_h
Int
起点站
Cus_sta
终点站
Cus_end
坐卧铺
Cus_wz
Char(10)
卧铺或坐铺,不可为空
员工编号
Cus_sno
FK
车票信息表:
ticket
编号
Tic_no
PK,从1开始自动增长1
车次编号
Tic_cno
发车日期
Tic_date
Datetime
车票数量
Tic_set
顾客身份证号码
Tic_id
FK,17位数字+1位数字或x
Tic_wz
车次信息表:
price
Pr_cno
Pr_sta
Pr_end
票价
Pr_value
Money
Pr_date
发车时间
Pr_h1
到站时间
Pr_h2
卧铺数量
Prw_num
坐铺数量
Prz_num
退票信息表:
refund
车票编号
Ref_no
Ref_ticno
Ref_id
Char18)
顾客姓名
Ref_name
Ref_value
应退款
Ref_money
数据暂存表:
data
Data_cno
Data_id
Data_money
2、数据结构
1.sale,定义了售票员的主要信息
组成:
sale(sal_no,sal_name,sal_pass)
2.customer,购票顾客的主要信息
customer(cus_id,cus_name,cus_tel,cus_date,cus_h,cus_sta,cus_end,cus_wz,cus_sno)
3.ticket,车票的主要信息
ticket(tic_no,tic_id,tic_cno,tic_date,tic_set,tic_wz)
4.price,车次和运价的主要信息
price(pr_cno,pr_date,pr_sta,pr_end,pr_h1,pr_h2,pr_value,prw_num,prz_num)
5.refund,退票的相关信息
refund(ref_no,ref_ticno,ref_id,ref_name,ref_value,ref_money)
6.data,暂存数据的主要信息
data(data_id,data_cno,data_money)
3、数据流
数据流名
说明
数据流来源
数据流去向
添加
添加售票员信息
管理员
Sale
修改
修改车次信息
Price
添加顾客信息
Customer
查询
查询基本信息
火车票信息表
售票
插入顾客信息,售票
车票信息
添加售出的车票信息
Ticket
修改已购买的车票信息
退票换票
对已购买车票进行修改退订
添加退票信息
退票信息
4、数据存储
1.sale:
售票员信息表,用来存储各个售票员地基本信息,包括数据对象
sal_no,sal_name,sal_pass
2.customer,顾客信息表。
购票顾客的主要信息,用来存储每个顾客的基本信息,确定其购票信息,包括数据项cus_id,cus_name,cus_tel,cus_date,cus_h,cus_sta,cus_end,cus_wz,cus_sno
3.ticket,车票表。
车票的主要信息,包括数据项tic_no,tic_id,tic_cno,tic_date,tic_set,tic_wz
4.price,车次表。
车次和运价的主要信息,包括数据项pr_cno,pr_date,pr_sta,pr_end,pr_h1,pr_h2,pr_value,prw_num,prz_num)
5.refund,退票表。
退票的相关信息,包括数据项:
ref_no,ref_ticno,ref_id,ref_name,ref_value,ref_money,
6.data,数据暂存表。
暂存数据的主要信息data_id,data_cno,data_money
2.4安全性和完整性要求
该系统具有较为安全的性能,每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供机器使用权。
用一个用户名来标明用户身份,系统内部记录着所有合法用户的标识,系统鉴别是否是合法用户,鉴定通过之后方能进行下一步核实,即用户输入口令。
对角色进行授权,然后将用户加进角色,使其拥有改角色所拥有的权限。
通过授权管理,使得用户只能对数据库拥有部分操作的功能,防止对数据库的破坏。
通过定义视图,把数据对象限制在一定的范围内,即通过视图机制将保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
该系统整体把握防止了数据库中存在不正确的数据,使得数据具有一定的正确性,相容性和有效性。
该系统对每个表都设置了主键,保证了数据的唯一性,保证了主键的属性不可为空,从而保证了实体完整性。
该系统对于将两个表中的相应元素联系起来了,在对参照表和被参照表进行增删改时,采用了触发器,使得对另外的表也做出了正确的操作,从而保证了参照完整性。
对于个别属性,对其定义了非空,check等约束。
尽量保证用户定义完整性。
第三章概念结构设计
总ER图
第四章逻辑结构设计
4.1关系模型
Customer:
USE[dbs_keshe_gai]
GO
/******对象:
Table[dbo].[Customer]脚本日期:
01/10/201321:
22:
14******/
SETANSI_NULLSON
SETQUOTED_IDENTIFIERON
SETANSI_PADDINGON
CREATETABLE[dbo].[Customer](
[cus_id][char](18)NOTNULL,
[cus_name][varchar](20)NOTNULL,
[cus_tel][varchar](11)NULL,
[cus_date][datetime]NOTNULL,
[cus_h][int]NOTNULL,
[cus_sta][varchar](20)NOTNULL,
[cus_end][varchar](20)NOTNULL,
[cus_wz][char](10)NOTNULL,
[cus_sno][varchar](20)NULL,
CONSTRAINT[pk_cus_id]PRIMARYKEYCLUSTERED
(
[cus_id]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
SETANSI_PADDINGOFF
ALTERTABLE[dbo].[Customer]WITHCHECKADDCONSTRAINT[fk_cus]FOREIGNKEY([cus_sno])
REFERENCES[dbo].[sale]([sal_no])
ALTERTABLE[dbo].[Customer]CHECKCONSTRAINT[fk_cus]
ALTERTABLE[dbo].[Customer]WITHCHECKADDCONSTRAINT[ck_wz]CHECK(([cus_wz]like'
卧铺'
OR[cus_wz]like'
坐铺'
))
ALTERTABLE[dbo].[Customer]CHECKCONSTRAINT[ck_wz]
ALTERTABLE[dbo].[Customer]WITHCHECKADDCONSTRAINT[ckc_tel]CHECK(([cus_tel]like'
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
OR[cus_tel]like'
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
OR[cus_tel]ISNULL))
ALTERTABLE[dbo].[Customer]CHECKCONSTRAINT[ckc_tel]
Data:
Table[dbo].[data]脚本日期:
24:
27******/
CREATETABLE[dbo].[data](
[data_cno][varchar](20)NULL,
[data_id][char](18)NOTNULL,
[data_money][money]NULL,
CONSTRAINT[pk_data]PRIMARYKEYCLUSTERED
[data_id]ASC
ALTERTABLE[dbo].[data]WITHCHECKADDCONSTRAINT[cK_data_id]CHECK(([data_id]like'
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9,x,X]'
ALTERTABLE[dbo].[data]CHECKCONSTRAINT[cK_data_id]
Price:
Table[dbo].[price]脚本日期:
26:
39******/
CREATETABLE[dbo].[price](
[pr_cno][varchar](20)NOTNULL,
[pr_sta][varchar](20)NULL,
[pr_end][varchar](20)NULL,
[pr_value][money]NULL,
[pr_date][datetime]NOTNULL,
[pr_h1][int]NOTNULL,
[pr_h2][int]NOTNULL,
[prw_num][int]NULL,
[prz_num][int]NULL,
CONSTRAINT[pk_price]PRIMARYKEYCLUSTERED
[pr_cno]ASC,
[pr_date]ASC
Refund:
Table[dbo].[refund]脚本日期:
27:
04******/
CREATETABLE[dbo].[refund](
[ref_no][int]NOTNULL,
[ref_ticno][varchar](20)NULL,
[ref_id][char](18)NULL,
[ref_name][varchar](20)NULL,
[ref_value][money]NULL,
[ref_money][money]NULL,
CONSTRAINT[pk_refund]PRIMARYKEYCLUSTERED
[ref_no]ASC
Sale:
Table[dbo].[sale]脚本日期:
21******/
CREATETABLE[dbo].[sale](
[sal_no][varchar](20)NOTNULL,
[sal_name][varchar](20)NULL,
[sal_pass][varchar](20)NOTNULL,
CONSTRAINT[pk_sale]PRIMARYKEYCLUSTERED
[sal_no]ASC
Ticket:
Table[dbo].[ticket]脚本日期:
48******/
CREATETABLE[dbo].[ticket](
[tic_no][int]IDENTITY(1,1)NOTNULL,
[tic_cno][varchar](20)NULL,
[tic_date][datetime]NULL,
[tic_set][int]NULLDEFAULT((0)),
[tic_wz][char](10)NULL,
[tic_id][char](18)NULL,
CONSTRAINT[pk_tic_no]PRIMARYKEYCLUSTERED
[tic_no]ASC
ALTERTABLE[dbo].[ticket]WITHCHECKADDCONSTRAINT[ck_tic]FOREIGNKEY([tic_cno],[tic_date])
REFERENCES[dbo].[price]([pr_cno],[pr_date])
ALTERTABLE[dbo].[ticket]CHECKCONSTRAINT[ck_tic]
ALTERTABLE[dbo].[ticket]WITHCHECKADDCONSTRAINT[ck_tic1]FOREIGNKEY([tic_id])
REFERENCES[dbo].[Customer]([cus_id])
ALTERTABLE[dbo].[ticket]CHECKCONSTRAINT[ck_tic1]
4.2数据模型优化
1.sale(sal_no,sal_id,sal_name,sal_pass)
该关系的函数依赖图:
从函数依赖图可以看出,该关系中不存在部分函数依赖、传递函数依赖,且只