铁路网上售票系统数据库设计Word格式.docx

上传人:b****3 文档编号:16806389 上传时间:2022-11-26 格式:DOCX 页数:27 大小:554.46KB
下载 相关 举报
铁路网上售票系统数据库设计Word格式.docx_第1页
第1页 / 共27页
铁路网上售票系统数据库设计Word格式.docx_第2页
第2页 / 共27页
铁路网上售票系统数据库设计Word格式.docx_第3页
第3页 / 共27页
铁路网上售票系统数据库设计Word格式.docx_第4页
第4页 / 共27页
铁路网上售票系统数据库设计Word格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

铁路网上售票系统数据库设计Word格式.docx

《铁路网上售票系统数据库设计Word格式.docx》由会员分享,可在线阅读,更多相关《铁路网上售票系统数据库设计Word格式.docx(27页珍藏版)》请在冰豆网上搜索。

铁路网上售票系统数据库设计Word格式.docx

同时包括对列车信息、站点信息、订票记录等的更新功能。

⑥车票配送:

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

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

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

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

需求分析成果

流程图

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

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

(2)订票业务流程图:

(3)退票业务流程图:

铁路网上售票系统数据流程图如下图—图:

(1)顶层数据流程图:

(2)第一层数据流程图:

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

数据查询

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

2.数据库结构设计

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

概念设计

概念设计阶段主要是将需求缝隙阶段得到的用户需求抽象为信息结构即概念模型的过程,它是整个数据库设计的关键,设计概念结构通常有四类方法:

自顶向下、自底向上、逐步扩张、混合策略。

分E-R图建立

参照业务流程图和数据流程图,分别画出分E-R图,如图至所示。

(1)根据图抽象出的进货分E-R图:

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

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

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

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

(1)车票及其属性:

(2)客户及其属性:

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

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

(5)订票单及其属性:

全局/整体E-R图

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

逻辑设计

概念设计阶段是独立于任何一种数据模型的,而逻辑设计阶段则与现实结合起来,逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为与项目所支持的数据模型相符合的逻辑结构。

具体任务包括将E-R图转换成关系模型、模型优化、数据库模式定义、用户模式设计。

建立关系模式

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

对于实体间的联系则有不同的情况:

一个1:

1联系可以转换为一个独立关系模式,也可以与任意一端关系模式合并;

N联系可以转换为一个独立关系模式,也可以与n端实对应的关系模式合并;

一个M:

N联系转换为一个独立关系模式,具有相同码的关系模式可以合并。

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

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

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

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

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

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

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

关系模式规范化处理

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

用户子模式建立

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

表用户子模式

编号

用户子模式名称

定义

作用

V-01

Ticket_view

车票信息视图

方便用户查询车票信息

V-02

Customer_view

客户信息视图

方便票务人员查询客户信息

V-03

Book_view

订票单信息视图

方便票务人员查询订票信息

V-05

Record_view

记录信息视图

方便票务人员查询记录信息

关系模式逻辑结构定义

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

3.数据库物理设计

物理设计阶段目标和任务

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

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

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

数据存储方面

建立索引的原则

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

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

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

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

建立索引

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

表索引表

所在表名

索引名称

索引类型

建立引用的基项

客户信息表

Customer_index

唯一

Cno

车票信息表

Ticket_index

Tno

系统功能模块图

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

4.数据库实施与测试

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

数据库实施

数据库及数据库对象建立

主要包括:

数据库、基本表、视图、索引、触发器以及存储过程。

详细DDL语句以及相关代码,见附录3。

(1)建立索引:

createuniqueindexCustomer_indexonCustomer(Cno);

createuniqueindexTicket_indexonTicket(Tno);

createuniqueindexBook_indexonBook(Bno);

createuniqueindexDishonour_indexonDishonour(Dno)

(2)创建的视图如表所示

表视图表

视图编号

视图名称

V-04

Dishonour_view

退票单信息视图

方便票务人员查询退票信息

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

表存储过程表

存储过程名称

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)创建的触发器如表所示:

表触发器表

触发器名

T-01

delete_TicketStaff

删除票务人员信息级联删除客户信息

T-02

delete_Customer

删除客户信息级联删除客户订票及退票信息

T-03

delete_Book

删除订票信息级联删除车票信息

T-04

delete_Dishonour

删除退票信息级联删除车票信息

T-05

delete_Ticket

删除车票信息级联删除记录信息

T-06

DoNotDishonour

车票价格低于2元不予退票

数据入库

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

数据库测试

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

5.总结

通过这次课程设计的感触很多。

第一感觉就是理论和实践的差距远远大于人的想象;

课堂上觉得很简单的东西,真到了要做的时候,会发现很难。

在这次实习之前我感觉数据库就像一种语言一样,学会它的语法就应该可以了,不过现在才明白数据库重点在于设计,设计的过程才是最有价值,最有意义也是最难的。

通过这次实习,我收获了很多。

首先是在需求分析阶段,这个阶段的任务可以说是整个数据库设计任务量最大的阶段,我花了大量时间在业务流程图和数据流程图的创建上,不断的修改,不断的和指导老师交流。

在这个过程中真切的了解了业务的分析的重要性。

在概念设计阶段,主要的任务就是抽象出E-R图。

然后就是逻辑设计阶段了,这个阶段是要把让我头疼的E-R图转换为关系模式,这一阶段我花费的时间相对较少。

经过不断的尝试和修改,很快就完成了逻辑结构的设计,得到了该建立的表。

这个时候到了数据库实施阶段了,以前我认为创建基本表、视图、存储过程、触发器是数据的重点,现在看来这些都是皮毛,这些都是数据库设计过程中最简单最基础的问题。

真正需要能力和时间的是前面的需求分析、概念设计、逻辑设计阶段,把实际问题抽象成计算机能够实现解决的问题才是最重要的,这是数据库可以实施的必要条件。

这次课程设计的任务,我完成的不是很好,有些方面还没有实现其功能。

人无完人我知道我做出的系统不是很全面,即便如此,我还是从其中学到了很多技巧。

在以后的学习中,我会多实践,多练习,书本上知识的学习毕竟没有实践来的有效,在此,我要感谢我的指导老师这么久对我的指点。

6.附录

附录1:

数据查询表:

(1)数据项如表所示。

表数据项

数据项编号

数据项名称

数据项含义

简述

类型

宽度(位)

取值范围

I1

车票编号

车票的编号

char

60

I2

Tprice

车票价格

车票的售价

int

I3

Trainno

车次

某次列车的编号

8

I4

Tstype

座位类型

包括硬座、软卧、无座等

I5

Tpno

座位编号

车厢号和座位编号

I6

Tsta

出发站

车票上所示乘客从何处出发

20

I7

Tdes

目的站

车票上所示乘客要到达的地方

I8

Tstatime

发车时间

列车从该站出发的时间

datetime

YYYY:

MM:

DDhh:

mm

I9

Tdestime

到站时间

列车终到目的站的时间

I10

Bno

订票单号

订购火车票单据的编号

14

I11

Bdate

订票日期

订购火车票的日期

DD

I12

Btime

订票时间

订购火车票的时间

hh:

I13

Bqua

订票数量

一次性订购的数量

1-50

I14

Bpou

订票手续费

订购火车票所支付的额外费用

5

I15

Sno

售票单号

销售火车票单据的编号

I16

Sdate

开售单日期

开出销售火车票单据的日期

I17

Stime

开售单时间

开出销售火车票单据的时间

I37

Cname

客户名

客户的姓名

10

I38

客户身份证号

客户的身份证号码

I39

Ccano

客户银行卡号

客户的银行卡号码

I40

Cphone

客户电话

客户的电话号码

12

I41

Cadd

客户地址

客户的住址

30

I42

Cid

登录ID

客户办理网上业务的名称

I43

Cpwd

登录密码

客户办理网上业务的名称对应的密码

I44

Tsno

票务人员编号

各车站票务人员的编号

I45

Tsname

票务人员姓名

各车站票务人员的姓名

I46

Tsadd

票务人员工作地点

票务人员所在的工作地

I47

Msno

票存分系统编号

票存系统分系统的编号

(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订票单号

I13订票数量

I14订票手续费

I11订票日期

I12订票时间

DS05售票单的数据结构

I15售票单号

I16开售单日期

I21交款金额

I17开售单时间

I38客户电话

I20交款日期

I18领票人姓名

I19领票人身份证号

(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

即时退票单

业务人员开出的即时退票的单据

票务人员

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份/天

拒绝退票单

服务器拒绝客户退票的单据

通过单

服务器同意客户退票申请的单据

票存模块

I1+I2+I31+I29+I30

180份/天

1800份/天

退票单

服务器开出的客户退票的单据

I37+I38+I39+I6+I7+I2+I31+I35+I36+I8+I33+I34+I44+I45

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

表处理逻辑

处理逻辑编号

处理逻辑名称

输入的数据流

处理

输出的数据流

处理频率

售票

服务器向客户销售火车票

F1订票单,来源于客户发出的订票单据

根据客户订单信息,向客户开出售票单销售火车票并进行登记记录

F2售票单,向客户售票发出的售票单据;

S1票存系统、S2流水账,每次售票都要有详细记录

1000次/天

录入系统

服务器的火车票销售记录

F7通过单,来源于服务器退票审理系统开出的同意单据

根据通过单将退票信息录入系统以作记录

S1票存系统、S2流水账,每次退票都要有详细记录

180次/天

附录2

基本表的建立:

1.创建铁路网上售票系统

createdatabaseRTSO

2.创建票存系统基本信息表:

createtableMemorySystem

(Msnochar(14)primarykey,

Msaddchar(20)uniquenotnull

3.创建票务人员基本信息表:

createtableTicketStaff

(Tsnochar(14)primarykey,

Tsnamechar(10)notnull,

Tsaddchar(20)notnull

4.创建客户基本信息表:

createtableCustomer

(Cnochar(20)primarykey,

Cnamechar(10)notnull,

Ccanochar(20),

Cphonechar(12)notnull,

Caddchar(30)notnull,

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

当前位置:首页 > 医药卫生 > 临床医学

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

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