文档库 最新最全的文档下载
当前位置:文档库 › 铁路网上售票系统数据库设计

铁路网上售票系统数据库设计

目录

《数据库课程设计》论文...............................................................................................................................

铁路网上售票系统项目开发背景: (1)

铁路网上售票系统的总目标是: (1)

项目开发的意义: (1)

1.需求分析 (2)

1.1 需求分析阶段目标和任务 (2)

1.1.1 需求分析阶段目标 (2)

1.1.2 需求分析阶段任务 (2)

1.2 需求分析成果 (3)

1.2.1 流程图 (4)

1.2.2 数据字典 (5)

2.数据库结构设计 (5)

2.1 概念设计 (5)

2.1.1 分E-R图建立 (6)

2.1.2 全局/整体E-R图 (6)

2.2 逻辑设计 (6)

2.2.1 建立关系模式 (7)

2.2.2 关系模式规范化处理 (7)

2.2.3 用户子模式建立 (7)

2.2.4 关系模式逻辑结构定义 (6)

3.数据库物理设计 (6)

3.1 物理设计阶段目标和任务 (6)

3.2数据存储方面 (6)

3.2.1 建立索引的原则 (6)

3.2.2 建立索引 (7)

3.2.3 系统功能模块图 (7)

4.数据库实施与测试 (7)

4.1 数据库实施 (7)

4.1.1 数据库及数据库对象建立 (7)

4.1.2 数据入库 (10)

4.2 数据库测试 (10)

5.总结 (10)

6.附录 (11)

附录1: (11)

附录2 (15)

附录3: (18)

铁路网上售票系统项目开发背景:

信息时代的到来,互联网对于企业和事业单位的运营和发展日益重要,网上交易也逐渐被人们认可,并成为未来交易的发展方向。铁路售票系统也不例外。

铁路网上售票系统是铁路旅游服务信息系统的一个重要组成部分,为旅客提供优质便捷的服务。为了提高铁路客运的售票效率,丰富铁路客运的营销手段,火车站售票总站及其下属代售点可以通过公用的互联网资源,实现网上的售票,查询及管理工作。铁路网上售票系统的总目标是:

在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的铁路网上售票系统,为企业的决策层提供准确、精细、迅速的车票销售信息。

项目开发的意义:

信息时代已经来临,信息处理的利器——计算机应用于火车站售票的日常管理为火车站售票的现代化带来了从未有过的动力和机遇,为火车站票务管理领域的飞速发展提供了无限潜力。采用计算机管理信息系统已成为火车站票务管理科学化和现代化的重要标志,给火车站票务带来了明显的经济效益和社会效益。计算机已经成为人们生活不可或缺的一部分。

然而,随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,各大省市的列车都显著的增加,这些都对列车票务管理系统提出了更高的要求,所以要不断的完善更新列车票务管理系统,提高列车售票系统的工作效率。列车在我国的人员流动、物资运输中占据着举足轻重的地位。火车的特殊性及可能经过多个城市,每个城市的车站可以出售此火车的车票。而且同一车站可能有多辆车经过。许多希望以最快的方式选择自己想来乘坐的那一趟列车。所以以人工的方式是不可能实现这种功能的。一种可行的方案是基于客户端服务器的体系结构。服务器为数据库系统,存储所有必要的信息。客户端通过连接到服务的应用程序快速、准确地完成相应的工作,通过网上订购,可以达到高效、便捷的购票。铁路网上售票系统的实施,将会在一定程度上促进铁路客运生产力和生产关系的变革,增强市场竞争能力,提高铁路部门的工作效率,提升管理水平,减少劳动强度,方便广大旅客购票,有一定的社会和经济效益。

1.需求分析

主要包括需求分析阶段目标、任务和成果。

1.1 需求分析阶段目标和任务

1.1.1 需求分析阶段目标

(1) 了解目前铁路网上售票流程和注意事项,通过具体调查了解客户需求并总结业务流程。

(2) 与指导老师沟通交流该项目的可行性,征求老师意见,修改不合理的地方,为以后的设计打下基础。

1.1.2 需求分析阶段任务

随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,各大省市的列车都显著的增加,这些都对列车票务管理系统提出了更高的要求,所以要不断的完善更新列车票务管理系统,提高列车售票系统的工作效率。随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。目前社会正处于健保发展方兴未艾的时代,各火车站莫不兢兢业业地改善本身的体制或管理方式,以适应健保越来越严格的规范。列车在我国的人员流动、物资运输中占据着举足轻重的地位。全国有大量的人员通过搭乘火车到达目的地。而与火车的特殊性及可能经过多个城市,每个城市的车站可以出售此火车的车票。而且同一车站可能有多辆车经过。许多希望以最快的方式选择自己想来乘坐的那一趟列车。所以以人工的方式和单纯的列车票务管理系统都不可能实现这种功能的。一种可行的方案是通过网上订购,可以达到高效、便捷的购票。铁路网上售票系统的实施,将会在一定程度上促进铁路客运生产力和生产关系的变革,增强市场竞争能力,提高铁路部门的工作效率,提升管理水平,减少劳动强度,方便广大旅客购票,有一定的社会和经济效益。

(1) 处理对象

系统要处理的对象主要包括票存系统基本信息、票务人员基本信息、客户基本信息、订票单基本信息、退票单基本信息、车票基本信息、车票销售记录基本信息。(详细的信息见于数据查询表)

(2) 功能要求

系统要实现的主要功能:

①查询:可以通过起点站与终点站在进行查询,也可根据具体的车次输入进行查询,同时每次查询都会显示车次号,点击即可显示该趟列车所进过站点的详细信息,其中包括所到达每个站的到达时间与出发时间。

②客户注册、登录:由于要进行网上订购车票,用户需注册,填写有关信息,由由票务人员负责送车票到客户手中。

③订票业务:本系统为网上订票,用户经过查询车次信息、票务信息,找到自己所需的车票通过所关联的账户进行订购。

⑤更新功能:该系统随时跟据车辆的变化情况进行更新,增加车辆时可以在系统中插入该车的详细信息,同时也能根据需要修改某趟车经过的站点与发车时间,当某趟车停止、开行时可以删除该趟车的信息。同时包括对列车信息、站点信息、订票记录等的更新功能。

⑥车票配送:客户在订购了车票之后,管理人员通过后台管理订票记录,然后根据客户的要求由票务人员及时为其配送车票。

(3) 安全性和完整性要求

安全性先通过视图机制,该系统创建了很多视图,不同用户只能访问系统授权的视图,这样可以提供系统数据一定程度上的安全性,也可以通过用户授权机制,根据用户被授权的级别来分配用户权限,从而达到更高层次的安全保密功能。

完整性要求主要用来限制各基本表中信息的真实性和可靠性,满足参照完整性、实体完整性、用户自定义完整性的要求。

1.2 需求分析成果

1.2.1 流程图

铁路网上售票系统业务流程图如下图1.1—图1.3:

(1)客户注册及登录流程图:

图1.1 注册登录流程图(2)订票业务流程图:

图1.2 订票业务流程图

图1.3 退票业务流程图铁路网上售票系统数据流程图如下图1.4—图1.7:(1)顶层数据流程图:

图1.4 顶层数据流程图

图1.5 第一层数据流程图

(3)第二层数据流程图—订票:

图1.6 第二层数据流程图——订票

1.2.2 数据查询

包含数据项、数据结构、数据流、处理逻辑、数据存储定义(详见附录1)。

2.数据库结构设计

主要包括概念设计和逻辑设计两个部分。

2.1 概念设计

概念设计阶段主要是将需求缝隙阶段得到的用户需求抽象为信息结构即概念模型的过程,它是整个数据库设计的关键,设计概念结构通常有四类方法:自顶向下、自底向上、逐步扩张、混合策略。

2.1.1 分E-R 图建立

参照业务流程图和数据流程图,分别画出分E-R 图,如图2.1至2.4所示。 (1) 根据图1.2抽象出的进货分E-R 图:

客户送票n

票务人员

1

订票数量

送票日期

送票时间图2.1 车票配送E-R 图

(2) 根据图1.6抽象出的销售分E-R 图:

客户

车票

订票单

订票

转换1

1

1

n

n

图2.2 客户订票E-R 图

(3) 根据图1.7抽象出的存储分E-R 图:

客户

车票

退票单

退票

转换2

1

1

n

n

图2.3 客户退票E-R 图

(4) 根据图1.4抽象出的存储分E-R 图:

车票票存系统

记录

n 1

记录日期

记录时间出入账类型

记录数量

出入账金额

图2.4 售票记录E-R 图

各E-R 图中的实体属性如下图2.5至图2.10:

(1)车票及其属性:

车票车票编号车票价格

车次座位类型座位编号

发车时间到站时间出发站

目的站

图2.5 车票及其属性

(2)客户及其属性:

客户

客户名客户电话

客户地址登录ID

登录密码

客户银行卡号

客户身份证号

图2.6 客户及其属性

(3)票务人员及其属性:

票务人员票务人员编号

票务人员姓名

票务人员工作地点

图2.7 票务人员及其属性

(4)票存系统及其属性:

票存系统

票存分系统编号

票存分系统地址

图2.8 票存系统及其属性

(5)订票单及其属性:

订票单

订票时间

订票日期

订票数量

订票手续费

订票单号

图2.9 订票单及其属性

2.1.2 全局/整体E-R 图

根据各分E-R 图合并整体E-R 图,具体方法是将4个E-R 图中相同的实体,进行合并,消除属性冲突、命名冲突、结构冲突之后得到总E-R 图如图2.11所示。

车票

客户

订票

退票票务人员

送票

订票单

退票单转换1

转换2n

1

1

1

n

n

n

1

1

n 记录

票存系统

n

1图2.11 全局E-R 图

2.2 逻辑设计

概念设计阶段是独立于任何一种数据模型的,而逻辑设计阶段则与现实结合起来,逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为与项目所支持的数据模型相符合的逻辑结构。具体任务包括将E-R图转换成关系模型、模型优化、数据库模式定义、用户模式设计。

2.2.1 建立关系模式

E-R图向关系模型的转换遵循如下规则,一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。

对于实体间的联系则有不同的情况:一个1:1联系可以转换为一个独立关系模式,也可以与任意一端关系模式合并;一个1:N联系可以转换为一个独立关系模式,也可以与n端实对应的关系模式合并;一个M:N联系转换为一个独立关系模式,具有相同码的关系模式可以合并。

根据以上原则,对于该系统的E-R图进行转换,从而得到本E-R图向关系模型的转换如下:

票存系统(票存分系统编号、票存分系统地址)

票务人员(票务人员编号、票务人员姓名、票务人员工作地点)

客户(客户身份证号、客户名、客户银行卡号、客户电话、客户地址、登录ID、登录密码、票务人员编号)

订票单(订票单号、订票日期、订票时间、订票数量、订票手续费、客户身份证号)

车票(车票编号、车票价格、车次、座位类型、座位编号、出发站、目的站、发车时间、到站时间、订票单号、退票单号)

记录(车票编号、出入账类型、票存分系统编号、记录日期、记录时间、出入账金额)

2.2.2 关系模式规范化处理

以上关系模式中的各实体和联系之间不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。

2.2.3 用户子模式建立

用户子模式的建立如表2.1所示。

表2.1用户子模式

编号用户子模式名称定义作用

V-01 Ticket_view 车票信息视图方便用户查询车票信息

V-02 Customer_view 客户信息视图方便票务人员查询客户信息

V-03 Book_view 订票单信息视图方便票务人员查询订票信息

V-05 Record_view 记录信息视图方便票务人员查询记录信息

2.2.4 关系模式逻辑结构定义

详细的逻辑结构定义见附录2。

3.数据库物理设计

3.1 物理设计阶段目标和任务

数据库的物理设计是为逻辑数据模型选取一个最合适应用需求的物理结构的过程,在这个阶段中需要完成的任务是:

(1) 确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;

(2) 对物理结构进行评价,评价的重点是时间和空间效率。

3.2数据存储方面

3.2.1 建立索引的原则

建立索引一般有以下三个原则:

(1) 如果一个或一组属性经常在查询条件中出现,则考虑在这个属性上建立索引。

(2) 如果一个经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。

(3) 如果一个或一组属性经常在连接操作的连接条件中出现,则考虑在这个属性上建立索引。

3.2.2 建立索引

根据系统和用户的的需要,由于客户信息、车票信息、订票单编号、退票单编号等属性查询操作比较平凡,所以对其所在表建立唯一索引,索引见表3.1。

表3.1索引表

所在表名索引名称索引类型建立引用的基项

客户信息表Customer_index 唯一Cno

车票信息表Ticket_index 唯一Tno

3.2.3 系统功能模块图

系统基本功能模块图如3.1所示。

铁路网上售票系统

车票信息管理订

退

图3.1 功能模块图

4.数据库实施与测试

主要包括数据库实施和测试两个部分。

4.1 数据库实施

4.1.1 数据库及数据库对象建立

主要包括:数据库、基本表、视图、索引、触发器以及存储过程。详细DDL语句以及相关代码,见附录3。

(1) 建立索引:

create unique index Customer_index onCustomer(Cno); create unique index Ticket_index on Ticket(Tno); create unique index Book_index on Book(Bno);

create unique index Dishonour_index on Dishonour(Dno) (2) 创建的视图如表4.1所示

表4.1视图表

视图编号视图名称定义作用

V-01 Ticket_view 车票信息视图方便用户查询车票信息

V-02 Customer_view 客户信息视图方便票务人员查询客户信息V-03 Book_view 订票单信息视图方便票务人员查询订票信息V-04 Dishonour_view 退票单信息视图方便票务人员查询退票信息V-05 Record_view 记录信息视图方便票务人员查询记录信息

(3) 创建的存储过程如表4.2所示:

表4.2存储过程表

编号存储过程名称作用

N-01 Ms_Insert 向票存系统基本信息表中插入一个元组

N-02 Ts_Insert 向票务人员基本信息表中插入一个元组

N-03 C_Insert 向客户基本信息表中插入一个元组

N-04 B_Insert 向订票单基本信息表中插入一个元组

N-05 D_Insert 向退票单基本信息表中插入一个元组

N-06 T_Insert 向车票基本信息表中插入一个元组

N-07 R_Insert 向记录基本信息表中插入一个元组

N-08 B_Delete 从订票单基本信息表中删除一个元组

N-09 D_Delete 从退票单基本信息表中删除一个元组

N-10 R_Delete 从记录基本信息表中删除一个元组

(4) 创建的触发器如表4.3所示:

表4.3触发器表

编号触发器名作用

T-01 delete_TicketStaff 删除票务人员信息级联删除客户信息

T-02 delete_Customer 删除客户信息级联删除客户订票及退票信息

T-03 delete_Book 删除订票信息级联删除车票信息

T-04 delete_Dishonour 删除退票信息级联删除车票信息

T-05 delete_Ticket 删除车票信息级联删除记录信息

T-06 DoNotDishonour 车票价格低于2元不予退票

4.1.2 数据入库

系统包括7张基本表,在Excel中录入数据,然后使用SQL Server 2000数据导入功能,直接将数据导入到相应的基本表中。

4.2 数据库测试

主要内容是对建立的数据库及数据库对象进行测试,详细的测试情况见附录3。5.总结

通过这次课程设计的感触很多。第一感觉就是理论和实践的差距远远大于人的想象;课堂上觉得很简单的东西,真到了要做的时候,会发现很难。在这次实习之前我感觉数据库就像一种语言一样,学会它的语法就应该可以了,不过现在才明白数据库重点在于设计,设计的过程才是最有价值,最有意义也是最难的。

通过这次实习,我收获了很多。首先是在需求分析阶段,这个阶段的任务可以说是整个数据库设计任务量最大的阶段,我花了大量时间在业务流程图和数据流程图的创建上,不断的修改,不断的和指导老师交流。在这个过程中真切的了解了业务的分析的重要性。在概念设计阶段,主要的任务就是抽象出E-R图。然后就是逻辑设计阶段了,这个阶段是要把让我头疼的E-R图转换为关系模式,这一阶段我花费的时间相对较少。经过不断的尝试和修改,很快就完成了逻辑结构的设计,得到了该建立的表。这个时候到了数据库实施阶段了,以前我认为创建基本表、视图、存储过程、触发器是数据的重点,现在看来这些都是皮毛,这些都是数据库设计过程中最简单最基础的问题。真正需要能力和时间的是前面的需求分析、概念设计、逻辑设计阶段,把实际问题抽象成计算机能够实现解决的问题才是最重要的,这是数据库可以实施的必要条件。

这次课程设计的任务,我完成的不是很好,有些方面还没有实现其功能。人无完人我知道我做出的系统不是很全面,即便如此,我还是从其中学到了很多技巧。在以后的学习中,我会多实践,多练习,书本上知识的学习毕竟没有实践来的有效,在此,我要感谢我的指导老师这么久对我的指点。

6.附录

附录1:

数据查询表:

(1) 数据项如表6.1所示。

表6.1 数据项

数据项编号数据项名

数据项含义简述类型

宽度

(位)

取值范围

I1 Tno 车票编号车票的编号char 60

I2 Tprice 车票价格车票的售价int

I3 Trainno 车次某次列车的编号char 8

I4 Tstype 座位类型

包括硬座、软卧、无座

char 8

I5 Tpno 座位编号车厢号和座位编号char 8

I6 Tsta 出发站

车票上所示乘客从何处

出发

char 20

I7 Tdes 目的站

车票上所示乘客要到达

的地方

char 20

I8 Tstatime 发车时间列车从该站出发的时间datetime

YYYY:MM:DD

hh:mm

I9 Tdestime 到站时间列车终到目的站的时间datetime

YYYY:MM:DD

hh:mm

I10 Bno 订票单号订购火车票单据的编号char 14

I11 Bdate 订票日期订购火车票的日期datetime YYYY:MM:DD I12 Btime 订票时间订购火车票的时间datetime hh:mm

I13 Bqua 订票数量一次性订购的数量int 1-50

I14 Bpou 订票手续费

订购火车票所支付的额

外费用

int 5

I15 Sno 售票单号销售火车票单据的编号char 14

数据项编号数据项名

数据项含义简述类型

宽度

(位)

取值范围

I16 Sdate 开售单日期

开出销售火车票单据的

日期

datetime YYYY:MM:DD I17 Stime 开售单时间

开出销售火车票单据的

时间

datetime hh:mm

I37 Cname 客户名客户的姓名char 10

I38 Cno

客户身份证

客户的身份证号码char 20

I39 Ccano

客户银行卡

客户的银行卡号码char 20

I40 Cphone 客户电话客户的电话号码char 12

I41 Cadd 客户地址客户的住址char 30

I42 Cid 登录ID

客户办理网上业务的名

char 14

I43 Cpwd 登录密码

客户办理网上业务的名

称对应的密码

char 20

I44 Tsno

票务人员编

各车站票务人员的编号char 14

I45 Tsname

票务人员姓

各车站票务人员的姓名char 10

I46 Tsadd

票务人员工

作地点

票务人员所在的工作地char 20

I47 Msno

票存分系统

编号

票存系统分系统的编号char 14

(2) 数据结构如表6.2所示。

表6.2 数据结构

DS01 客户信息

I38 客户身份证号I37 客户姓名

I39 客户银行卡号

I40 客户电话

I41 客户地址

I42 登录ID

I43 登录密码

DS02 车票信息

I1 车票编号I3 车次I2 车票价格I8 发车时间

I4 座位类型I9 到站时间

I5 座位编号

I6 出发站

I7 目的站

DS03 票务人员信息

I44 票务人员编号I45 票务人员姓名

I46 票务人员工作地点

DS04 订票单的数据结构

I10 订票单号I37 客户姓名I2 车票价格I8 发车时间

I38 客户身份证号I13 订票数量I9 到站时间

I39 客户银行卡号I14 订票手续费I11 订票日期

I40 客户电话I12 订票时间

I41 客户地址

I3 车次

I4 座位类型

I6 出发站

I7 目的站

DS05 售票单的数据结构

I15 售票单号I3 车次I13 订票数量I16 开售单日期I37 客户姓名I21 交款金额I17 开售单时间

I38 客户电话I20 交款日期

I41 客户地址

I18 领票人姓名

I19 领票人身份证号

I44 票务人员编号

I45 票务人员姓名

(3) 数据流如表6.3所示。

表6.3数据流数据流

名称简述

数据流

来源

数据流

去向

数据流组成

数据流

高峰流

订票单客户网上欲

订购火车票

的单据

客户服务器

I37+I38+I39+I40+I41+

I3+I4+I6+I7+I2+I13+

I14+I8+I9+I11+I12

1000份

/天

10000份

/天

售票单服务器开出

销售火车票

的单据

服务器客户

I3+I37+I38+I39+I18+

I19+I13+I21+I16+I17+

I20+I44+I45

1000份

/天

10000份

/天

即时退票单业务人员开

出的即时退

票的单据

票务人

服务器

I37+I38+I1+I44+I45+

I2+I25+I26+I27+I23+

I24

10份/

100份/

退票申请单客户向服务

器申请退票

的单据

客户

审理模

I37+I38+I39+I1+I2+

I31+I29+I30

200份/

2000份/

未通过单服务器不同

意客户退票

申请的单据

审理模

服务器

I37+I38+I1+I2+I31+

I29+I30

20份/

200份/

拒绝退票单服务器拒绝

客户退票的

单据

服务器客户

I37+I38+I1+I2+I31+

I29+I30

20份/

200份/

通过单服务器同意

客户退票申

请的单据

审理模

票存模

I1+I2+I31+I29+I30

180份/

1800份/

退票单服务器开出

的客户退票

的单据

服务器客户

I37+I38+I39+I6+I7+I2

+I31+I35+I36+I8+I33+

I34+I44+I45

180份/

1800份/

(4) 处理逻辑如表6.4所示。

相关文档
相关文档 最新文档