火车票管理系统 数据库课设 集美大学概要.docx

上传人:b****3 文档编号:5199945 上传时间:2022-12-13 格式:DOCX 页数:45 大小:675.57KB
下载 相关 举报
火车票管理系统 数据库课设 集美大学概要.docx_第1页
第1页 / 共45页
火车票管理系统 数据库课设 集美大学概要.docx_第2页
第2页 / 共45页
火车票管理系统 数据库课设 集美大学概要.docx_第3页
第3页 / 共45页
火车票管理系统 数据库课设 集美大学概要.docx_第4页
第4页 / 共45页
火车票管理系统 数据库课设 集美大学概要.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

火车票管理系统 数据库课设 集美大学概要.docx

《火车票管理系统 数据库课设 集美大学概要.docx》由会员分享,可在线阅读,更多相关《火车票管理系统 数据库课设 集美大学概要.docx(45页珍藏版)》请在冰豆网上搜索。

火车票管理系统 数据库课设 集美大学概要.docx

火车票管理系统数据库课设集美大学概要

 

数据库原理课程设计

 

评语:

学院班级

姓名学号

成绩指导老师

2013年01月10日

目录

第一章引言3

1.1课题研究背景与意义3

1.2本课题研究内容与目标3

1.3开发环境3

1.4体系结构设计3

第二章需求分析4

2.1信息要求4

2.2处理要求.5

2.3数据字典.5

2.4安全性和完整性要求.7

第三章概念结构设计8

3总ER图8

第四章 逻辑结构设计9

4.1关系模型9

4.2数据模型优化15

4.3视图设计17

第五章数据库的实施和维护18

5.1存储过程设计18

5.2触发器设计22

5.3 模块设计30

结论35

参考文献36

第一章引言

1.1课题研究背景与意义

中国的领土面积约960万平方公里,居世界前列。

随着经济的发展,各地人民的沟通交流也与之剧增,领土之大也给人民的出行带来了社会性的难题。

中国铁路四通八达,一直以来中国铁路以安全、稳定、快速和较为便宜的票价,吸引了占世界三分之一的人口乘坐。

随着互联网技术的不断发展,用信息技术改造传统行业,是国家实现铁路现代化战略任务的迫切要求。

铁路信息化是铁路信息化的重要标志,将信息技术运用到铁路生产经营与各项管理决策中,提高市场竞争力和经济效益,所以,开发出火车站售票管理系统就显得尤为重要了。

本系统的主要作用是管理车票信息,还可以实现购票,退票,换票让乘客及时了解售票的情况,及时买票;以保证售票工作能更顺畅的运行;车票信息和乘车向的统计分析,以便火车站能更好的调度车次,以便满足乘客出行要求。

这就要求软件的设计要结合具体实际,从而为车站管理服务,提高运行效率。

为此,我们进行了专门调查,搜集了大量的资料,制定了详尽的需求分析与系统设计。

本系统可以很好地帮助铁路部门提高工作效率,进一步提高工作效益和铁路现代化水平,具有很高的开发价值和使用价值。

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

Varchar(20)

可为空

登陆密码

Sal_pass

Varchar(20)

不可为空

顾客信息表:

customer

描述

列名

数据类型

备注:

身份证号码

Cus_id

Char(18)

PK

姓名

Cus_name

Varchar(20)

不可为空

电话号码

Cus_tel

Char(11)

11或8位数字,可为空

上车日期

Cus_date

datetime

不可为空

上车时间

Cus_h

Int

不可为空

起点站

Cus_sta

Varchar(20)

不可为空

终点站

Cus_end

Varchar(20)

不可为空

坐卧铺

Cus_wz

Char(10)

卧铺或坐铺,不可为空

员工编号

Cus_sno

Varchar(20)

FK

车票信息表:

ticket

描述

列名

数据类型

备注:

编号

Tic_no

Int

PK,从1开始自动增长1

车次编号

Tic_cno

Varchar(20)

FK

发车日期

Tic_date

Datetime

FK

车票数量

Tic_set

Int

可为空

顾客身份证号码

Tic_id

Char(18)

FK,17位数字+1位数字或x

坐卧铺

Tic_wz

Char(10)

可为空

车次信息表:

price

描述

列名

数据类型

备注:

车次编号

Pr_cno

Varchar(20)

PK

起点站

Pr_sta

Varchar(20)

可为空

终点站

Pr_end

Varchar(20)

可为空

票价

Pr_value

Money

可为空

发车日期

Pr_date

Datetime

PK

发车时间

Pr_h1

Int

不可为空

到站时间

Pr_h2

Int

不可为空

卧铺数量

Prw_num

Int

可为空

坐铺数量

Prz_num

Int

可为空

退票信息表:

refund

描述

列名

数据类型

备注:

车票编号

Ref_no

Int

PK

车次编号

Ref_ticno

Varchar(20)

可为空

顾客身份证号码

Ref_id

Char18)

可为空

顾客姓名

Ref_name

Varchar(20)

可为空

票价

Ref_value

Money

可为空

应退款

Ref_money

Money

可为空

数据暂存表:

data

描述

列名

数据类型

备注:

车次编号

Data_cno

Varchar(20)

PK

顾客身份证号码

Data_id

Char18)

可为空

票价

Data_money

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

添加

添加顾客信息

Sale

Customer

查询

查询基本信息

Sale

火车票信息表

售票

插入顾客信息,售票

Sale

车票信息

添加

添加售出的车票信息

Sale

Ticket

修改

修改已购买的车票信息

Customer

Ticket

退票换票

对已购买车票进行修改退订

Customer

Sale

添加

添加退票信息

Customer

退票信息

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

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

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]

GO

SETANSI_PADDINGOFF

GO

ALTERTABLE[dbo].[Customer]WITHCHECKADDCONSTRAINT[fk_cus]FOREIGNKEY([cus_sno])

REFERENCES[dbo].[sale]([sal_no])

GO

ALTERTABLE[dbo].[Customer]CHECKCONSTRAINT[fk_cus]

GO

ALTERTABLE[dbo].[Customer]WITHCHECKADDCONSTRAINT[ck_wz]CHECK(([cus_wz]like'卧铺'OR[cus_wz]like'坐铺'))

GO

ALTERTABLE[dbo].[Customer]CHECKCONSTRAINT[ck_wz]

GO

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))

GO

ALTERTABLE[dbo].[Customer]CHECKCONSTRAINT[ckc_tel]

Data:

USE[dbs_keshe_gai]

GO

/******对象:

Table[dbo].[data]脚本日期:

01/10/201321:

24:

27******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[data](

[data_cno][varchar](20)NULL,

[data_id][char](18)NOTNULL,

[data_money][money]NULL,

CONSTRAINT[pk_data]PRIMARYKEYCLUSTERED

[data_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]

GO

SETANSI_PADDINGOFF

GO

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]'))

GO

ALTERTABLE[dbo].[data]CHECKCONSTRAINT[cK_data_id]

Price:

USE[dbs_keshe_gai]

GO

/******对象:

Table[dbo].[price]脚本日期:

01/10/201321:

26:

39******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

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

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

Refund:

USE[dbs_keshe_gai]

GO

/******对象:

Table[dbo].[refund]脚本日期:

01/10/201321:

27:

04******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

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

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

Sale:

USE[dbs_keshe_gai]

GO

/******对象:

Table[dbo].[sale]脚本日期:

01/10/201321:

27:

21******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

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

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

Ticket:

USE[dbs_keshe_gai]

GO

/******对象:

Table[dbo].[ticket]脚本日期:

01/10/201321:

27:

48******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

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

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

ALTERTABLE[dbo].[ticket]WITHCHECKADDCONSTRAINT[ck_tic]FOREIGNKEY([tic_cno],[tic_date])

REFERENCES[dbo].[price]([pr_cno],[pr_date])

GO

ALTERTABLE[dbo].[ticket]CHECKCONSTRAINT[ck_tic]

GO

ALTERTABLE[dbo].[ticket]WITHCHECKADDCONSTRAINT[ck_tic1]FOREIGNKEY([tic_id])

REFERENCES[dbo].[Customer]([cus_id])

GO

ALTERTABLE[dbo].[ticket]CHECKCONSTRAINT[ck_tic1]

4.2数据模型优化

1.sale(sal_no,sal_id,sal_name,sal_pass)

该关系的函数依赖图:

从函数依赖图可以看出,该关系中不存在部分函数依赖、传递函数依赖,且只

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1