2023年7月6日发(作者:)
. . . .
摘要
本文针对火车票的订票实际情况,按照数据库设计思想,经过项目的可行性分析和需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施调试等步骤设计开发了火车票订购系统。并运用数据流图、E-R图对系统的需求分析和数据库等进行了分析和设计。
工具软件利用Visio2007和SQL Sever2000数据库来开发这个火车票订购系统。该系统要解决火车票订购问题,进行车次以与车票信息的查询以与订票容的查询。该系统可以根据用户的需求,设置其权限,并快捷方便的为用户提供服务。
关键词:数据库设计、火车票订购、Visio2007、SQL Sever2000
. . . .
Abstract
After a long time observation of booking a train ticket and
database design thought ,I have built a train ticket booking system
in the following cycle the feasibility of the project analysis
and demand analysis, concept structure design, logic
structuredesign, structural design, database design
implementation debugging . And using the data flow chart, e-r chart
of system toanalysis requirements and design database .
Using Tool software Visio2007 and SQL Sever2000 database to
develop this ticket booking system. This system is to solve train
ticket booking problem and to look up train ticket information
and booking ticket content. According to the user's demand,the
system can set its permission, and provide services for the user
conveniently.
Key Word: Database Design, Train Ticket Booking, Visio2007,
SQL Sever2000
- 2 - / 25 . . . .
目录
一、概述--------------------------------------------------1
1.1 概述--------------------------------------------------------1
1.2 意义---------------------------------------------------------1
1.3 数据库优势------------------------------------------------1
二、 数据库设计----------------------------------------2
2.1 需求分析---------------------------------------------------2
2.1.1 功能要求-------------------------------------------------------------2
2.1.2 数据需求-------------------------------------------------------------- 3 - / 25 . . . .
2
2.1.3 性能需求-------------------------------------------------------------3
2.1.4 数据流程图----------------------------------------------------------3
2.2 概念结构设计----------------------------------------------4
2.2.1 概念结构---------------------------------------------------------------4
2.2.2 E-R图------------------------------------------------------------------4
2.3 逻辑结构设计----------------------------------------------4
2.3.1 关系模型与关系--------------------------------------------------5
码2.4 物理结构设计----------------------------------------------6
2.4.1确定数据的存放-------------------------------------------------7
位置2.5 调试分析-----------------------------------------------------7
2.5.1 建立基本表------------------------------------------------------------8
2.5.2 修改基本表------------------------------------------------------------9
- 4 - / 25 . . . .
2.5.3 查询基本表-----------------------------------------------------------10
2.5.4 数据更新---------------------------------------------------------------13
2.5.5 视图---------------------------------------------------------------------15
三、用户使用说明-----------------------------------------17
3.1 个人说明----------------------------------------------------17
3.2 数据库设计的特点-----------------------------------------17
3.3 其他设计技巧-----------------------------------------------17
四、 实践结果-----------------------------------------------18
五、 附录与参考资料--------------------------------------18
5.1 课程设计心得-----------------------------------------------18
- 5 - / 25 . . . .
5.2 火车票订购系统的发展与展望-------------------------19
5.3 参考资料-----------------------------------------------------19
- 6 - / 25 . . . .
一、概述
1.1 概述
目前火车票的订购仅仅依靠手工操作,已现有的工作人员很难应付车票订购高峰时刻的大量数据处理问题,同时还会出现由此带来的旅客查询问题,导致火车误点情况。本次设计拟开发一个火车票订购系统,可以降低人工操作,提高工作效率,同时方便乘客查询订票。
1.2意义
火车票订购一直是困扰我们的一个老问题,也是社会服务的一个难点,订票的查询以与车票信息的查询时期一个最基本的业务,从便面上看,这只是一个最简单的部分,但是它涉与到管理以与客户服务的多个方面,因此设计了本火车票订购系统来实现票务的查询。
1.3数据库优势
数据库管理的特点很多,它比传统的数据管理拥有很多优点。以下就是数据库的优势。一、数据结构化。所谓“整体”结构化是指在数据库中的数据不再仅仅针对某一个应用,而是面向全组织的;不仅数据部是结构化的,而且整体也是结构化的,数据之间是有联系的。二、数据的共享性高,冗余度低,易扩充。数据共享可以减少数据的冗余,节约存储空间。数据共享还能够避免数据之间的不相容性和不一致性。三、数据独立性高。包括物理独立性和数据的逻辑独立性。物理的独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。四、数据是由DBMS统一管理和控制的。包含(1)数据的安全性保护(2)数据的完整性检查(3)并发控制(4)数据库恢复
. . . .
二、数据库设计
2.1 需求分析
需求分析是整个数据库设计的基础,是最困难、最耗费时间的一步。本阶段对订票系统的所有情况做全面的调查,以确定系统目标,并对系统所需要的基础数据以与数据处理要求进行分析,从而确定用户的需求。
用户对系统的需求我们可以从以下几个方面进行分析。
2.1.1 功能要求
本订票系统需要以下功能:
1. 查询
分为对车次的查询和用户对已订车票的查询。要求:
1) 对车次的查询,可以按照发车车次进行查询。车次信息还包括:车号、发车日期、出发地、目的地、开出时刻、到达、刻、票价、剩余票数、座位类型。车次信息只允许查询不允许修改。
2) 对所定车票的查询,可以按照订单号查询。还包含:号、车号、发车日期、订票日期、订购票数、总价。车票信息可以允许修改。
2.1.2 数据需求
数据需求,即要在系统中需要处理哪些数据。根据火车票订购系统的分析,本系统的信息需求表2-1所示。
信息输入
用户输入所需车次
用户输入个人信息以与
需订购的车票信息
用户输入号或交
易的订单号
信息处理
检索系统数据库
更新系统中的订票信息。
将新的信息存入系统数据库
检索系统数据库
信息输出
符合用户需求的车次
以与相关信息
订票
符合用户需求的订票信
息 . . . .
用户输入自己的号
码
检索系统数据库以得到订票记录,删除 退票
用户请求的订票记录,已更新系统数据库
表2-1信息输入输出表
2.1.3 性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。
1.准确性和与时性
系统处理的准确性和与时性是系统的必要性能。系统应能与时而且准确的根据用户权限与所输入的信息做出响应。由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和与时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和与时性。
2.安全性
网上订票系统中涉与到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以与系统意外崩溃时数据的恢复等工作。同时系统还要保证对数据库进行与时更新,保证数据一致性。
2.1.4 数据流程图
车次查询用户订票请求退票请求订票信息
- 3 - / 25 . . . .
2.2 概念结构设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构的设计。
2.2.1 概念结构
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好的、更准的用某一DBMS实现这些需求。
针对火车站网上订票系统,通过对网上订票工作的过程、容以与数据流程分析,设计如下所示的数据项和数据结构:
1.车次信息包括:车号、出发地、目的地、发车日期、开出时刻、剩余座位数、票价、座位类型。
2.订票记录包括:订单号、号、车号、订购日期、订购票数、总价。
3.用户信息包括:用户名、号、性别、
2.2.2 实体—联系图(E-R图)
身份证号车号发车日期出发地目的地用户名性别电话n开出时间车次信息查询m用户信息1到达时刻剩余票数票价座位类型查询方式1票
方式退订票方式订票退票订单号身份证号车号n订票信息发车日期订购日订购票数总价火车票订购E-R图
2.3逻辑结构设计
逻辑结构的任务就是把概念结构设计阶段设计好的基本E-R图转化- 4 - / 25 . . . .
为与选用DBMS产品所支持的数据模型有相符合的逻辑结构。
2.3.1 关系模型与关系码
将2-2-2的E-R图转化为以下的关系模型。关系的码用横线标出。
用户(号、用户名、性别、)
订票信息(订单号、号、车号、发车时间、订购日期、订购票数)
车次(车号、发车日期、出发地、目的地、开出时刻、到达时刻、剩余票数、票价、座位类型)
以上是实体以与其属性。
查询(号、车号、发车日期、查询方式)
订票(订单号、订票方式)
退票(订单号、退票方式)
以上是联系与其属性。
火车站网上订票系统数据库中各个表格的设计结果如表2-3-1——表2-3-6所示。每个表格表示在数据库中的一个表。
表2-3-1车次信息
字段名
车号
出发地
目的地
发车日期
开出时刻
到达时刻
剩余票数
票价
数据类型
char(10)
char(20)
char(20)
Datetime
Datetime
Datetime
int
Char(10)
是否可空
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
说明
(主键)
(主键)
表2-3-2订票信息
字段名
订单号
号
车号
发车日期
订购日期
订购票数
数据类型
Char(10)
Char(18)
char(10)
datetime
datetime
Int
- 5 - / 25
是否可空
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
说明
(主键)
(外键)
(外键)
(外键)
. . . .
总价 Money NOT NULL
表2-3-3用户表
字段名
号
用户名
性别
表2-3-4 订票表
字段名
订单号
订票方式
数据类型
char(20)
Char(20)
是否可空
NOT NULL
说明
(主键)
数据类型
char(20)
char(20)
Char(2)
char(20)
是否可空
NOT NULL
NOT NULL
说明
(主键)
表 2-3-5 退票表
字段名
订单号
订票方式
数据类型
char(20)
Char(20)
是否可空
NOT NULL
表2-3-6 查询表
字段名
号
车号
发车日期
查询方式
数据类型
char(20)
char(10)
Datetime
char(20)
是否可空
NOT NULL
NOT NULL
NOT NULL
说明
(主键)
(主键)
(主键)
说明
(主键)
2.4 物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库系统。
对于数据库查询事务,需要得到如下信息:
查询的关系。通过连接查询可以将车次和用户之间互联;通过订票和退票可以将用户和订票信息互联,从而将每个表联系在一起,构成一个相关联的数据库。
- 6 - / 25 . . . .
查询条件所涉与到的属性。查询涉与到的属性是(号、车号、发车日期);订票涉与到的属性是(订票号);退票所涉与到的属性(订票号)。
连接条件所涉与到的属性(号、订单号、车号-发车日期、订单号)。
对于数据更新,需要得到如下信息:
被更新的关系。
每个关系上的更新操作条件所涉与的属性。
修改操作要改变的属性值。
需要注意的是,数据库上运行的事务会不断的变化、增加或减少,以后需要根据上述设计信息的变化调整数据库的物理结构。
2.4.1 确定数据库的存储结构
1、确定数据的存放位置
存放于C盘,并且分配2M的空间,而且文件的存储空间可以随着数据库的增大而增大,即文件增长不受限制。文件的增长按百分比进行,增长百分比为10%。
2、确定系统配置
数据库可以公共访问,可以打开任意个数据库对象,存分配高于2M的存空间。
2.5 调试分析
在原有系统的数据有一小部分已经输入到了数据库后,就可以开始对数据库系统进行联合调试,这又成为数据库的试运行。
运行前先要对数据库进行备份,如下:
- 7 - / 25 . . . .
再进行简单的数据库操作,如:
2.5.1 建立基本表
SQL语句为:
create table 订票信息
(订单号 char(10) primary key,
号 char(20),
车号 char(10),
发车日期 datetime,
订购日期 datetime,
订购票数 int,
总价 int,
foreign key (号) references 用户(号),
foreign key (车号) references 车次(车号),
foreign key (发车日期) references 车次(发车日期));
运行结构截图:
- 8 - / 25 . . . .
其余的建表类似,在此不一一列举。
2.5.2 修改基本表
①向用户表增加“地址”列,数据类型为字符串型
SQL语句为:alter table 用户 add 地址 char(20);
运行结构截图:
②将用户表中的的数据类型改为变长字符串型
SQL语句为:alter table 用户 alter column varchar(20);
运行结果截图:
- 9 - / 25 . . . .
2.5.3 数据查询
①查询号为2的个人信息,SQL语句为:
select *
from 用户
where 号=2;
②查询全体用户的号,SQL语句为:
select 用户名,号
from 用户;
运行结果截图:
③查询车票价格低于100元的车次:
SQL语句为:
select 车号
from 车次
where 票价<100;
- 10 - / 25 . . . .
运行结果截图为:
④查询王姓客户的信息
SQL语句为:select *
from 用户
where 用户名 like '%';
运行结果截图:
⑤按总票价的升序将订单号排列
SQL语句为:
select 订单号,总价
from 订票信息
order by 总价 asc;
运行结果截图:
⑥查询从出发的所有车次的总票价
SQL语句为:
select sum(票价)
from 车次
where 出发地='';
运行结果截图:
- 11 - / 25 . . . .
⑦求乘坐车号大于一次的车号
SQL语句为:
select 车号
from 订票信息
group by 车号
having count(*)>=2;
运行结果截图:
⑧连接查询 :查询号为2乘客的车次信息
SQL语句为:
select 车次.*
from 用户,车次,查询
where 用户.号=查询.号 and
车次.车号=查询.车号 and
车次.发车日期=查询.发车日期 and
用户.号='2';
⑨嵌套查询:查询与明同乘一列火车的旅客的号
SQL语句:
select 号
from 订票信息
where 车号 in
(select 车号
from 订票信息,用户
where 订票信息.号=用户.号 and
用户名='明');
2.5.4 数据更新
① 插入数据
向车次表添加一组数据:“T26” 、“2010-12-15”、“”、“”、
“22:10”、“次日06:54”、“硬座”、42、118,SQL语句为:
insert
into 车次
values ('T26',2010-12-15,'','',
'22:10','次日06:54',42,118,'硬座');
- 12 - / 25 . . . .
运行结构截图:
‘
②修改数据
由于雪天路滑将发车日期为2010-12-13车次为T25的到达时可改为次日09:20
SQL语句为:
update 车次
set 到达时刻='次日09:20'
where 车号='T25' and
发车日期='2010-12-13';
③删除数据
乘客2由于个人原因不能乘坐当日车次,他选择退票,请为其删除信息记录。
SQL语句为:
delete
from 用户
where 号='2';
delete
from 订票,订票信息
where 订票.订单号=订票信息.订单号 and
号='2';
运行结果截图:
- 13 - / 25 . . . .
运行结果中已经不含乘客2的信息了
- 14 - / 25 . . . .
2.5.5视图
①建立选择用网络查询车次用户的视图。
SQL语句为:
create view net
as
select 号
from 查询
where 查询方式='网络';
- 15 - / 25 . . . .
②更新视图
将号为2的乘客改为1
SQL语句为:
update net
set 号='';
③删除视图
SQL语句为:
drop view net;
总之,视图的操作与表的操作基本一致,在此不必赘述。
经过一系列验证数据库的调试正常,可以进行数据库的操作。
三、用户使用说明
3.1 个人声明
本系统只是作为一个实际应用的模型,使用中必须借助数据库SQL语言的基本语句来进行简单的查询。只是对数据进行简单的操作,即增删查改排等基本的语句操作。
3.2 数据库设计的特点
数据库建设是硬件、软件的结合 。
三分技术,七分管理,十二分基础数据 。
数据库设计应该与应用系统设计相结合 。
结构(数据)设计:设计数据库框架或数据库结构。
行为(处理)设计:设计应用程序、事务处理等。
结构和行为分离的设计 。
传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计。
3.3 其他设计技巧
1) 避免使用触发器
触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如你确实需要采用触发器,你最好集中对它文档化。
2) 使用常用英语(或者其他任何语言)而不要使用编码
在创建下拉菜单、列表、报表时最好按照英语名排序。假如- 16 - / 25 . . . .
需要编码,可以在编码旁附上用户知道的英语。
3) 保存常用信息
让一个表专门存放一般数据库信息非常有用。在这个表里存放数据库当前版本、最近检查/修复(对 Access)、关联设计文档的名称、客户等信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用。
4) 包含版本机制
在数据库中引入版本控制机制来确定使用中的数据库的版本。时间一长,用户的需求总是会改变的。最终可能会要求修改数据库结构。把版本信息直接存放到数据库中更为方便。
5) 编制文档
对所有的快捷方式、命名规、限制和函数都要编制文档。
采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪修改非常有用。
对数据库文档化,或者在数据库自身的部或者单独建立文档。这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。
6) 测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。
7) 检查设计
在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。
四、实践结果
课程设计只是一个初步的构想,技术还不成熟,并且未能与网络结合,不能做到火车票务的实时更新,所以这对于数据库而言是致命的缺憾,没有数据,没有实时的数据,数据库只能是个摆设,所以未能应用到实践中。
五、附录与参考资料
5.1 课程设计心得
- 17 - / 25 . . . .
经过一周的努力我的数据库课程设计终于完成了,在此我很高兴,无论成绩如何这也是我独立思考的结果,可能由于自己所学不足使得数据库的处理很简单很肤浅,这是我技术层次方面的不足,以后我会努力。
数据库设计包括六个主要步骤:
1、需求分析:了解用户的数据需求、处理需求、安全性与完整性要求;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。
每个步骤我都认真的去做了,虽然做得不好但是通过时间我知道了自己在哪些方面的不足,如:数据的搜集,游泳数据的获取,逻辑结构的设计等等,我会在以后加强的。特别是实体与联系之间的关系等等,都需要我认真的揣摩思考的地方。
5.2火车票订购系统的发展与展望
在未来相当长的时间,火车将成为21世纪最为可靠,快速,便捷的出行方式,同时,随着我国经济快速发展,和经济增长方式逐渐向发展需方向转变,为中国铁路的发展带来了全新的机遇。对火车票预定与管理系统,我认为将会出现以下几种发展趋势:
1:纸质车票将会被电子车票代替:电子车票的出现将乘客的唯一标识例如指纹或RFID技术作为购票和乘车凭证, 因为免去了纸质车票的传递过程,将更大程度的方便乘客选择火车出行,真正的可以做到足不出户就能完成车票的订购。目前已经进入了磁卡火车票,这已经是在原有纸质车票基础上的一个巨大的变化。
2:火车票预定与管理系统功能将更加多元化,系统将更加集中,电子车票的出现将使火车票信息系统的架构发生巨大变化,原来分散的,独立的基于客户机/服务器的结构将转换为浏览器/服务器结构,并且一个主机系统可以服务全国的乘客订票需求。同时因为上百万的用户的在线使用,对火车票预定与管理系统的功能提出一个新的挑战。对系统的可靠性,可用性,性能要求发生质的变化。
5.3 参考资料
[1]萨师煊,王珊.《数据库系统概论》第四版.高等教育,2006
- 18 - / 25 . . . .
[2]于松涛.精通SQL server 2000数据库管理与开发[M] .:人民邮电,2003
[3] 钱雪忠主编.《数据库原理与应用》第二版.邮电大学 2007
[4].Bain T著.《SQL server 2000数据仓库与Analysis Services》.
中国电力.2003
[5].王珊主编.《数据库技术与联机分析处理》.科学. 1998
- 19 - / 25
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688603088a154304.html
评论列表(0条)