数据库火车票销售系统

合集下载

数据库--售票系统

数据库--售票系统

大型数据库课程设计报告课 题: 铁路票务系统 专业班级: 计科07101 学 号: 200717010124 姓 名: 毕 于 通 指导教师: 屠 添 翼目 录评阅意见:评定成绩:指导老师签名:年 月 日目录摘要.............................................................................................. 错误!未定义书签。

1.课程设计的目的与意义 (2)2.需求分析 (3)3.系统设计 (5)4.系统实现 (11)5. 系统调试 (18)6.小结 (24)附录源代码 (25)1.课程设计的目的与意义1.1、课程设计的目的数据库课程设计是数据库系统原理实践环节的及为重要的一部分.其目的是:(1)培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,学会设计局部ER,全局ER图;(2)培养学生能够应用数据库系统在概念设计的基础上应用关系规范化理论对系统进行逻辑设计,学会在ER图基础上设计出易于查询和操作的合理的规范化关系模型;(3)培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能够应用事务处理,存储过程,触发器以保证数据库系统的数据完整性,安全性,一致性,保证数据共享和防止数据冲突;(4)培养学生理论与实际相结合能力, 培养学生开发创新能力;(5)培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势;(6)提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。

1.2、课程设计的意义目前,我国在计算机应用、计算机软件和电子类相关专业的人才培养方面,取得了长足的发展,但同时也让我们深刻地感觉到缺乏实际开发设计项目的经验,不善与综合运用所学理论,对知识的把握缺乏融会贯通的能力.尤其是我们计算机专业大学生,由于缺乏具体项目经验,毕业之后普遍感到知识不能转化为能力。

火车票网上购票管理系统数据库系统分析与设计

火车票网上购票管理系统数据库系统分析与设计

火车票网上购票管理系统数据库系统分析与设计一、数据库需求分析1.用户需求:-用户可以通过系统注册和登录账号。

-用户可以查询火车班次及票价信息。

-用户可以选择购买火车票,并完成支付。

-用户可以查看已购买的火车票信息。

2.管理员需求:-管理员可以添加、修改和删除火车班次信息。

-管理员可以查询用户购票信息。

3.系统需求:-系统需要存储用户账号和密码信息。

-系统需要存储火车班次信息,包括班次号、起始站、终点站、出发时间、到达时间、票价等。

-系统需要存储用户购票信息,包括用户ID、班次号、座位号、购票时间等。

二、数据库设计根据以上需求,可以设计以下数据库表结构:1. 用户表(User)- 用户ID(UserID,主键)- 用户名(Username)- 密码(Password)2. 火车班次表(Train)- 班次号(TrainID,主键)- 起始站(StartStation)- 终点站(EndStation)- 出发时间(DepartureTime)- 到达时间(ArrivalTime)- 票价(Price)3. 火车票表(Ticket)- 票号(TicketID,主键)- 用户ID(UserID,外键,关联User表的UserID)- 班次号(TrainID,外键,关联Train表的TrainID) - 座位号(SeatNumber)- 购票时间(PurchaseTime)三、系统架构设计根据数据库设计,可以初步设计系统架构如下:1.前端页面:包括注册、登录、查询火车班次、购票、查看订单等页面。

2.后端服务:实现用户注册、登录、查询火车班次、购票、查看订单等功能,调用数据库进行数据操作。

3.数据库:存储用户信息、火车班次信息、订单信息等数据。

四、数据库操作根据数据库设计,可以设计以下数据库操作:1.用户相关操作:- 用户注册:向User表中插入新的用户信息。

- 用户登录:查询User表中的用户名和密码信息进行验证。

数据库大作业火车订票系统完整版

数据库大作业火车订票系统完整版

数据库大作业火车订票系统HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】中国地质大学(北京)数据库系统概论火车票网上订票系统实验报告小组成员:董威、韦飞阳、李建同、刘厚今学号:联系方式:使用数据库管理系统:SQL server 2012指导老师:宋莉2013年12月28日目录1.小组成员及分工董威:数据库的实施,即在查询分析器下编写代码建立数据库,创建基本表,建立基本表之间的关系、索引,创建存储过程等工作。

韦飞阳:主要负责逻辑结构的设计,即确定关系模式。

李建同:只要负责物理结构的设计,即确定各个基本表之间的关系,确定主外键。

刘厚今:需求分析模块,主要负责寻找需求,绘制数据流图。

2.需求分析功能需求查询:用户、管理员都可以对车次进行查询:可以按照发车车次进行查询;可以按照出发地、目的地进行查询;可以按照类车类型、座位类型查询。

车次信息包括:车次ID,车号,出发地,目的地,列车类型,座位类型,票价,票数,车次信息只允许用户查询,不能修改。

订票:用户登陆后,通过订票系统,根据自己你的需求找到自己的车次,输入要预订的票数进行订票。

要求订票记录应包括:订票记录ID,车次ID,用户ID,订票数量。

退票:用户登录后,通过退票系统,找到自己的订票信息,输入要退的票数进行退票。

注册:想要订票的用户必须先注册然后登陆订票。

用户信息包括:用户ID,用户名,密码,邮箱。

用户登陆:主要完成用户和管理员的登陆。

用户想订票必须登陆后才能进行订票,如果没有注册的用户应该与注册页面相连接。

修改密码:用户和管理员登陆后可以修改个人信息。

添加车次:管理员登陆后可以添加新的车次。

数据需求性能需求系统应能及时准确的根据用户权限及所输入的信息作出响应。

由于查询功能对于用户来讲很重要,因为这直接影响了用户的订票决策,所以系统的准确性和及时性很重要。

本系统是针对用户直接开放的,所以应该提供良好的接口。

火车票售票管理系统 (3)

火车票售票管理系统 (3)

火车票售票管理系统介绍火车票售票管理系统是一个用于管理火车票售票、订单管理和客户信息的软件系统。

该系统提供了一个方便快捷的平台,使用户能够在线浏览、预订和购买火车票,并对订单进行管理和查询。

功能1. 火车票查询用户可以通过系统提供的火车票查询功能查找目标日期和路线的火车票。

用户可以输入出发地、目的地和日期等信息来查找合适的火车票。

查询结果包括列车的发车时间、到达时间、车次、票价和余票数量等。

2. 火车票预订用户可以查看到的火车票信息后进行预订。

用户需要输入乘车人的信息,并选择座位类型和票数进行预订。

系统会根据用户的选择自动生成订单号,并提供支付链接进行付款。

3. 订单管理用户可以在系统中管理自己的订单。

用户可以查看订单详情,包括订单号、乘车人信息、座位类型、票价和支付状态等。

用户还可以取消未支付的订单,并根据需要重新预订。

4. 客户信息管理系统提供了客户信息管理功能,用户可以在系统中维护个人信息。

用户可以修改个人信息,包括姓名、性别、手机号码和电子邮箱等。

用户也可以查看自己的历史订单和购票记录。

5. 系统管理系统管理员可以对火车票售票管理系统进行管理。

管理员可以管理火车票信息,包括添加新的火车车次、修改票价和调整余票数量等。

管理员还可以管理用户信息,包括添加新用户、修改用户信息和删除用户等。

架构火车票售票管理系统的架构包括前端和后端两部分。

前端前端使用HTML、CSS和JavaScript编写,采用响应式设计,能够在不同终端设备上良好地展示。

前端实现了用户界面和交互逻辑,包括火车票查询、预订、订单管理和客户信息管理等功能。

后端后端使用Java编程语言开发,采用Spring框架和Spring Boot技术,实现了业务逻辑和数据交互。

后端处理用户请求,调用相应的服务进行数据处理和查询,并将结果返回给前端。

数据库设计火车票售票管理系统使用关系型数据库存储数据。

数据库中包括以下主要表:用户表存储用户的个人信息,包括用户ID、姓名、性别、手机号码和电子邮箱等。

网上火车订票系统(sql数据库)_1401191944201279

网上火车订票系统(sql数据库)_1401191944201279

网上火车订票系统(SQL数据库)摘要1:针对火车站的订票实际情况,按照软件工程的结构化设计思想,本次课程设计经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车站网上订票系统。

并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计。

本次课程设计利用JSP开发工具和SQL Server 2000数据库来开发这个火车站网上订票系统。

该系统要解决的是火车站网上订票工作所要解决的问题,可以满足火车站网上订票的基本要求,包括查询、订票、退票等三个方面的功能。

该系统能运用到火车站订票的工作中,根据用户的需求,设置其权限,并快捷方便的为用户提供服务。

目录第一章概述 11.1概述11.2意义11.3任务1第二章系统的可行性研究与需求分析22.1可行性研究22.1.1经济可行性22.1.2技术可行性22.1.3操作可行性22.2需求分析22.2.1功能需求22.2.2数据需求32.2.3性能需求42.2.4数据流图52.2.5数据字典52.2.6实体-联系图62.2.7数据库逻辑结构7第三章系统的总体设计83.1系统软件结构设计83.1.1软件结构83.1.2模块算法83.2系统流程图9第四章系统的详细设计124.1接口设计124.1.1用户接口124.1.2外部接口124.1.3内部接口124.1.4软件接口124.1.5模块内部124.2过程设计124.2.1程序流程图12第五章系统的实现与调试195.1应用系统的开发及测试195.1.1系统首页195.1.2产品说明195.1.3用户登录及访问权限195.1.4车次信息查询215.1.5订票信息查询225.1.6订票235.1.7退票265.2部分代码285.2.1登陆界面285.2.2主界面305.2.3车次查询条件选择界面325.2.4精确车次信息355.2.5搜索车次信息365.2.6订票信息查询395.2.7订票——用户信息405.2.8订票——订票信息425.2.9退票43结束语45参考文献45功能需求本网上订票系统应该具备如下功能:1.查询分为对车次信息的查询和客户对已订车票信息的查询。

数据库火车票销售系统

数据库火车票销售系统

长沙学院课程设计说明书题目火车票预定管理系统系(部) 数学与计算机科学系专业(班级)姓名学号指导教师起止日期2016.05.16—05.27课程设计任务书课程名称:数据库系统原理课程设计题目:火车票预订管理系统1、某铁路局火车票预订管理系统需要如下信息:车次信息:车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数等。

车票信息:座位号、价格、当前预售状态、座位类型等。

客户:姓名、联系电话、身份证号码等。

业务员:姓名、工号。

其业务规则描述如下:一个客户可以预订(退订)多张火车票,但一张火车票只能被一个客户预订(退订);一个业务员能销售多张车票,但一张车票只被一个业务员销售。

一辆列车包含多张车票,但一张车票只属于一辆列车。

2、系统功能的基本要求:按照一定条件查询、统计符合条件的火车、车票、客户信息等。

例如火车车次查询、时刻表查询、剩余座位数、同一路线可选火车信息、客户购买历史等,能够在车票售出时更新可用火车票数,模拟完成火车票订票、退订业务。

各阶段具体要求:1、需求分析阶段●定义数据项的含义和取值●定义目标系统的数据流2、概念结构设计阶段●画出实体模型E-R图3、逻辑结构设计阶段●将实体模型转化为关系模型●给出每个关系的主关键字和函数依赖集●分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段●确定所有字段的名称、类型、宽度、小数位数及完整性约束●确定数据库及表的名称及其组成●确定索引文件和索引关键字5、数据库安全及维护设计阶段●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)●为了实现复杂的数据完整性约束,设计适当的触发器●设计一个适合的数据库备份策略6、实施阶段●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

●对于学有余力的同学,可以使用嵌入式SQL语句结合高级语言开发完成。

设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。

(2)论文:要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。

数据库课程设计实验报告-火车票售票管理系统

数据库课程设计实验报告-火车票售票管理系统

数据库课程设计报告 -------火车售票管理信息系统软件学院软件工程2013级x班姓名: xx学号:2013xxxxxxxx目录一、系统开发平台 (1)四、需求分析 (2)4.1 用户需求说明 (2)4.1.1 数据需求 (2)4.1.2 事务需求 (3)4.2 系统需求说明 (4)五、数据库逻辑设计 (4)5.1 ER图 (4)5.2 数据字典 (5)5.3 关系表 (7)六、数据库物理设计 (7)6.1 索引 (7)6.2 视图本节可选 (8)6.3 安全机制 (8)七、应用程序设计 (8)7.1 功能模块 (8)7.2 界面设计 (15)7.3 事务设计 (15)八、测试和运行 (16)九、总结 (16)一、系统开发平台题目:对火车站的售票进行管理。

主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。

开发工具:eclipse数据库:mysql操作系统:windows8.1二、数据库规划2.1 任务陈述:做一个火车票售票管理系统:对火车站的售票进行管理。

主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。

2.2 任务目标完成一个火车票售票管理系统,要实现管理员对车票的增添以及删改功能,同时需要实现用户对车票的查询购买,以及出现调整之后的退票服务。

三、系统定义3.1 系统边界管理员:可以对车票以及车次进行删改操作。

用户:可以买票,但是不可以对火车票进行添加操作3.2 用户视图3.2.1 管理员视图(1)列车管理:包括列车的录入、查询、修改和删除。

(2)用户管理:包括系统使用用户的添加、查询、修改、删除等。

在线支付用户身份信息用户注册车次设置管理员车次信息录入用户信息管理票务系统车站实际情况(3)系统数据处理:数据查询,根据关键字过滤,查看当前车次信息,车票信息,用户信息以及处理历史。

铁路售票系统应用Sybase数据库成功案例数据仓库解决方案

铁路售票系统应用Sybase数据库成功案例数据仓库解决方案
上述种种特殊性说明,中国铁路客票系统的复杂程度远远高于国外的售票系统。
系统目标
中国铁路客票发售和预订系统的最终目标是建立一个覆盖全国铁路的计算机售票网络,实现客票管理和发售工作现代化,从而方便旅客购票和旅行,提高铁路客运经营水平和服务质量,达到国际先进水平,成为世界上规模最大的铁路客票发售和预订系统。具体目标如下:
计算机售票也为加快客运营销机制改革创造了良好的契机,如西安车站由过去单一的窗口售票改变为多点、多形式的售票,在城市内开设代售处;增设热线电话订票,过去只能向少数合同单位提供预订服务,现在可向全社会服务;车票预订期由原来提前 3 天改变为提前 3 - 30 天,在售票窗口也可购买 30 天以内的车票。现在广大旅客不仅在西安车站,而且在家中,甚至全国各地都可通过电话订购西安至全国各地的车票,可以说买票难的问题在西安车站已得到解决,由于这是涉及千家万户的大事,人民群众从中获得了方便,因而受到社会的广泛赞誉。
根据我国地域辽阔,铁路点多线广的特点,考虑到我国铁路客运管理体制和通信基础设施的实际情况,借鉴国外的成功经验,特别是欧洲各国铁路联网售票模式,经过充分讨论和反复论证,认为我国铁路客票发售和预订系统的总体结构应采用集中与分布相结合的方案。综合考虑各地区数据库所覆盖的客运量、列车数、快车营业站数的均衡性,全路需建立一个全路中心数据库和 23 个地区中心数据库。(如图1所示)
目前,中国的铁路客票发票和预订系统在全国建立起23个地区客票中心和铁道部客票中心,有几万个窗口联网售票,每年客运量超过10亿人次,平均每天发售量300万张,高峰期达420~460万张。已成为世界上规模最大的铁路客票发售和预订系统。
票务管理复杂:中国是一个发展中国家,人口众多,铁路旅客运输是主要的交通运输方式。从整体上讲,客票的发售和预订在数量上是供不应求,因此,每一张客票均要精确地确定座席,并且是当日当次有效。加上票种繁多、票价复杂、票额预分、座席复用和规章众多等等,给数据组织和数据库管理增加很多约束条件和困难。而国外发达国家由于铁路运输能力是供远大于求,其主要客流集中在市郊和地铁,客运管理简单,对系统功能要求不高,除部分国家在预约客票中考虑了座席外,大量的售票业务都不必处理座席信息,其系统开发的难度则比中国小得多。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长沙学院课程设计说明书题目火车票预定管理系统系(部) 数学与计算机科学系专业(班级)姓名学号指导教师起止日期2016.05.16—05.27课程设计任务书课程名称:数据库系统原理课程设计题目:火车票预订管理系统1、某铁路局火车票预订管理系统需要如下信息:车次信息:车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数等。

车票信息:座位号、价格、当前预售状态、座位类型等。

客户:姓名、联系电话、身份证号码等。

业务员:姓名、工号。

其业务规则描述如下:一个客户可以预订(退订)多张火车票,但一张火车票只能被一个客户预订(退订);一个业务员能销售多张车票,但一张车票只被一个业务员销售。

一辆列车包含多张车票,但一张车票只属于一辆列车。

2、系统功能的基本要求:按照一定条件查询、统计符合条件的火车、车票、客户信息等。

例如火车车次查询、时刻表查询、剩余座位数、同一路线可选火车信息、客户购买历史等,能够在车票售出时更新可用火车票数,模拟完成火车票订票、退订业务。

各阶段具体要求:1、需求分析阶段●定义数据项的含义和取值●定义目标系统的数据流2、概念结构设计阶段●画出实体模型E-R图3、逻辑结构设计阶段●将实体模型转化为关系模型●给出每个关系的主关键字和函数依赖集●分析你所设计的关系数据库模式是否属于3NF4、物理设计阶段●确定所有字段的名称、类型、宽度、小数位数及完整性约束●确定数据库及表的名称及其组成●确定索引文件和索引关键字5、数据库安全及维护设计阶段●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)●为了实现复杂的数据完整性约束,设计适当的触发器●设计一个适合的数据库备份策略6、实施阶段●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

●对于学有余力的同学,可以使用嵌入式SQL语句结合高级语言开发完成。

设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。

(2)论文:要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。

工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;1) 选定题目2) 需求分析3) 概念结构设计4) 逻辑结构设计5) 物理设计6) 数据库安全及维护设计7) 数据库上机实现8) 答辩注意事项⏹提交电子文档➢长沙学院课程设计任务书(每学生1份)➢长沙学院课程设计论文(每学生1份)➢长沙学院课程设计鉴定表(每学生1份)指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表目录一、引言 (5)1.1编写目的 (5)1.2参考资料 (5)二、需求规约 (6)2.1业务描述 (6)2.1.1经济可行性 (6)2.1.2技术可行性 (6)2.1.3操作可行性 (6)2.1.4 业务流程图 (6)2.1.5系统框架 (8)2.2需求分析 (11)2.2.1功能需求 (11)2.2.2数据需求 (12)2.2.3性能需求 (12)三、数据库环境说明 (13)四、数据库的命名规则 (13)4.1数据库对象命名规则 (13)4.2数据项编码规则 (13)五、逻辑设计 (14)六、物理设计 (15)6.1表汇总 (15)6.2表的基本信息 (16)6.3视图的设计 (18)6.4存储过程、函数及触发器的设计 (19)七、安全性设计 (26)7.1防止用户直接操作数据库的方法 (26)7.2用户帐号密码的加密方法 (27)7.3角色与权限 (27)八、数据库管理与维护说明 (27)一、引言1.1 编写目的随着时代的发展,计算机软件和系统的成熟,火车票的正当管理成为一个影响铁路部门正常运营的因素之一,而建立火车票订票管理系统是一个很好的解决办法。

作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好等,这些优点能够极大的提高火车票信息管理的效率,也正体现了火车票的科学化正规化管理现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。

本论文就是通过SQL的整体设计把数据库与应用程序相连接,做成一个火车票的订票管理系统,使得火车票管理员能够有效的管理车次信息、旅客信息、退票信息等。

同时用户可以通过查询到相关的火车票信息,选择是否适合自己,也可以在网上直接订票、退票,省时省力。

1.2 参考资料二、需求规约2.1 业务描述该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。

我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。

2.1.1经济可行性本系统其他应用软件、硬件系统也易于获得.因此,开发成本较低。

而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。

所以,从经济的角度来看,该系统可行。

2.1.2技术可行性开发工具:VS2005数据库环境:SQL Server 2008系统环境:Microsoft Windows 2000或以上版本。

系统实现依靠相对熟悉的c语言和SQL Server2008数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。

2.1.3操作可行性系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便。

2.1.4 业务流程图经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出旅客信息、订票信息和取票通知的具体需求。

图2.1 旅客购票流程图⑴调查用户需求①售票处需求●功能:旅客持个人证件去火车站购买火车票。

希望能通过旅客姓名查到该旅客的列车车次并记录旅客基本信息。

●统计功能:◆按火车票统计买票人数◆按姓名统计火车票数②旅客购票需求●交费功能:◆交费◆退费③取票需求●通知功能:◆通知旅客取票●统计功能:◆统计通过验证的人数◆统计可以取票的人◆统计未通过验证的人数●查询功能:◆购票旅客查询购票旅客姓名购票旅客身份证号购票旅客订单号④列车车次信息需求●查询功能:◆车次◆始发站◆终点站◆始发时间2.1.5系统框架在调查完了用户需求之后,就要开始分析用户需求。

在此,我们们采用自顶向下的结构化分析方法(SA方法)。

首先,定义全局概念结构的框架,如图2.2所示。

图2.2火车票预定系统总框架图各子系统需要进一步细化。

旅客信息系统为例进一步细化,如图2.3所示。

图2.3旅客信息系统细化以其中的查询旅客信息功能为例进一步细化,如图2.4所示。

图2.4查询旅客信息功能图2.5列车车次信息系统细化图2.6取票通知系统细化图2.7旅客信息系统能查询到的内容图2.8火车票信息系统能查询到的内容图2.9退票信息系统细化将所有子系统全部细化。

将所有用户需求分析完毕之后,就要开始构造数据字典了。

经分析之后,本系统要用到五个基本表:退票信息表,旅客信息表,列车车次信息表,取票通知信息系统,列车座位信息表。

数据结构定义如表2.1所示。

表2.1 数据结构定义2.2 需求分析需求分析是软件设计的一个重要的环节。

本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。

用户对系统的需求我们从以下几方面进行分析。

2.2.1功能需求本网上订票系统应该具备如下功能:1.查询分为对车次信息的查询和客户对已订车票信息的查询。

要求:1)对车次的查询,可以按照发车车次进行查询;2)车次信息包括:车号、出发地、目的地、发车日期、开出时刻、票价。

3)座位类型设定。

2.订票通过查询系统,客户根据自己的需求找到满意的车次,再输入个人信息后直接通过网上订票确定已预订选中的车票。

要求:订票记录应包括:会员名、车号、发车日期、订购日期、订购票数、总价。

3.退票可退票,通过查询系统,客户可以自己的名字找到自己的订票信息,通过退票模块退去已购车票。

2.2.2数据需求信息需求,即在系统中需要处理哪些数据。

根据对火车站网上订票系统的分析,本系统的信息需求如表2-1所示。

2.2.3性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。

1.准确性和及时性系统处理的准确性和及时性是系统的必要性能。

系统应能及时而且准确的根据用户权限及所输入的信息做出响应。

由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。

作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。

在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。

2.易用性本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。

这就要求系统能够提供良好的用户接口,易用的人机交互界面。

要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。

3.安全性网上订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。

同时系统还要保证对数据库进行及时更新,保证数据一致性。

三、数据库环境说明四、数据库的命名规则4.1 数据库对象命名规则4.2 数据项编码规则五、逻辑设计(1)关系模式:车次信息(车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数)车票信息(座位号、价格、当前预售状态、座位类型)客户(姓名、联系电话、身份证号码)业务员(姓名、工号)(2)关系图:图5.2逻辑关系图六、物理设计6.1 表汇总表名功能说明车次表存储车次的相关信息及其数据类型以及相关的约束车票信息表存储车票的相关信息及其数据类型以及相关的约束客户表存储客户的相关信息及其数据类型以及相关的约束业务员表存储业务员的相关信息及其数据类型以及相关的约束6.2 表的基本信息6.3 视图的设计图6.3.1 车票信息视图图6.3.1 售票信息视图6.4存储过程、函数及触发器的设计触发器1:修正票价和票价对应的座位类型[insert_or_upadte_sal_2]USE[火车票]GO/****** Object: Trigger [dbo].[insert_or_upadte_sal_2] Script Date:05/28/2016 06:22:30 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger[dbo].[insert_or_upadte_sal_2]on[dbo].[Che_ticket]for insertasbeginDECLARE@ti_seatNo VARCHAR(10),@ti_seatPrice FLOAT(2),@ti_seatTypeVARCHAR(10),@t_no varchar(10)SELECT@ti_seatNo=T_seat,@ti_seatPrice=T_price,@ti_seatType=T_type,@t_no=C_ci FROM insertedIF(@ti_seatNo LIKE'A%')UPDATE Che_ticket SET T_price=200IF(@ti_seatNo LIKE'A%')UPDATE Che_ticket SET T_price='一等座'IF(@ti_seatNo LIKE'B%')UPDATE Che_ticket SET T_price=100IF(@ti_seatNo LIKE'B%')UPDATE Che_ticket SET T_price='二等座'IF(@ti_seatNo LIKE'A%'AND@t_no LIKE'G-%')UPDATE Che_ticket SET T_price=900 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'B%'AND@t_no LIKE'G-%')UPDATE Che_ticket SET T_price=600 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'C%'AND@t_no LIKE'G-%')UPDATE Che_ticket SET T_price=300 WHERE@ti_seatNo=T_seat AND@t_no=C_ciIF(@ti_seatNo LIKE'A%'AND@t_no LIKE'K-%')--K是普快UPDATE Che_ticket SET T_price=400 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'B%'AND@t_no LIKE'K-%')UPDATE Che_ticket SET T_price=200 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'C%'AND@t_no LIKE'K-%')UPDATE Che_ticket SET T_price=100 WHERE@ti_seatNo=T_seat AND@t_no=C_ciIF(@ti_seatNo LIKE'A%'AND@t_no LIKE'T-%')UPDATE Che_ticket SET T_price=600 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'B%'AND@t_no LIKE'T-%')UPDATE Che_ticket SET T_price=400 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'C%'AND@t_no LIKE'T-%')UPDATE Che_ticket SET T_price=200 WHERE@ti_seatNo=T_seat AND@t_no=C_ciIF(@ti_seatNo LIKE'A%'AND@t_no LIKE'D-%')UPDATE Che_ticket SET T_price=900 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'B%'AND@t_no LIKE'D-%')UPDATE Che_ticket SET T_price=600 WHERE@ti_seatNo=T_seat AND@t_no=C_ci IF(@ti_seatNo LIKE'C%'AND@t_no LIKE'D-%')UPDATE Che_ticket SET T_price=300 WHERE@ti_seatNo=T_seat AND@t_no=C_ci end图213215触发器2:火车类型和对应的座位数剩余[Insert_Or_Update_Sal_1]USE[火车票]GO/****** Object: Trigger [dbo].[Insert_Or_Update_Sal_1] Script Date:05/28/2016 07:11:02 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER TRIGGER[dbo].[Insert_Or_Update_Sal_1]ON[dbo].[Checi]FOR INSERTASDECLARE@t_no VARCHAR(10),@t_seatNumber INT,@t_trainType VARCHAR(10)SELECT@t_no=C_ci,@t_seatNumber=C_seatNumber,@t_trainType=C_type FROM inserted --第一部分IF(@t_no LIKE'G-%')UPDATE Checi SET C_type='高铁',C_seatNumber=200WHERE@t_no=C_ciIF(@t_no LIKE'T-%')UPDATE Checi SET C_type='特快',C_seatNumber=200WHERE@t_no=C_ciIF(@t_no LIKE'D-%')UPDATE Checi SET C_type='动车',C_seatNumber=300WHERE@t_no=C_ciIF(@t_no LIKE'K-%')UPDATE Checi SET C_type='普快',C_seatNumber=400WHERE@t_no=C_ci存储过程1:客户买票USE[火车票]GO/****** Object: StoredProcedure [dbo].[kh] Script Date: 05/28/2016 07:12:03 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC[dbo].[kh]@K_id VARCHAR(20),@K_name VARCHAR(10),@K_tel VARCHAR(10),@C_ci VARCHAR(10),@T_seat VARCHAR(10)ASIF@C_ci IS NULLBEGINROLLBACK;RETURN;ENDIF@T_seat IS NULLBEGINROLLBACK;RETURN;ENDIF@K_id IS NULLBEGINROLLBACK;RETURN;ENDIF@K_name IS NULLBEGINROLLBACK;RETURN;ENDIF@K_tel IS NULLBEGINROLLBACK;RETURN;ENDELSEBEGINUPDATE Che_ticketSET T_sale='已售'WHERE C_ci=@C_ci AND T_seat=@T_seatUPDATE CheciSET C_seatNumber=C_seatNumber-1WHERE C_ci=@C_ciINSERT INTO Kehu(K_id,K_name,K_tel,T_seat,C_ci)VALUES(@K_id,@K_name,@K_tel,@T_seat,@C_ci)DELETE FROM YewuyuanWHERE C_ci=@C_ci AND T_seat=@T_seatPRINT'买票成功!'END图6.4.1存储过程买票的实现存储过程2:业务员退票USE[火车票]GO/****** Object: StoredProcedure [dbo].[ywy] Script Date: 05/28/2016 07:33:15 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC[dbo].[ywy]@y_id varchar(10),@y_name varchar(10),@C_ci varchar(10),@T_seat varchar(10),@Y_tel varchar(10)asif@y_name is nullbeginrollback;return;endif@c_ci is nullbeginrollback;return;endif@y_id is nullbeginrollback;return;endif@T_seat is nullbeginrollback;return;endelsebeginupdate Checiset T_sale='待售'where C_ci=@C_ci and T_seat=@T_seatupdate Checiset C_seatNumber=C_seatNumber+1where C_ci=@C_ci and C_seatNumber<1000delete from Kehuwhere C_ci=@C_ci and T_seat=@T_seatinsert into Yewuyuan(Y_id,Y_name,Y_tel,T_seat,C_ci) values(@Y_id,@Y_name,@Y_tel,@T_seat,@C_ci)print'退票成功'end图6.4.1存储过程退票的实现存储过程:查票信息USE[火车票]GO/****** Object: StoredProcedure [dbo].[piao] Script Date: 05/27/2016 08:47:29 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC[dbo].[piao]@C_goTime datetime,@C_chufaadd VARCHAR(10),@C_fanhuiadd VARCHAR(10),@C_type VARCHAR(10),@T_type VARCHAR(10)ASIF@C_goTime IS NULLBEGINROLLBACK;RETURN;ENDIF@C_chufaadd IS NULLBEGINROLLBACK;RETURN;ENDIF@C_fanhuiadd IS NULLBEGINROLLBACK;RETURN;ENDIF@C_type IS NULLBEGINROLLBACK;RETURN;ENDIF@T_type IS NULLBEGINROLLBACK;RETURN;ENDELSEBEGIN--查找规定时间,车次类别,座位类别,处于待售,出发地,目的地,的票.SELECT*FROM Che_ticket AS OINNER JOIN Checi AS S ON O.C_ci=S.C_ciWHERE (@C_goTime BETWEEN S.C_goTime AND S.C_return)ANDS.C_type=@C_type AND O.T_type=@T_typeAND S.C_chufaadd=@C_chufaadd AND S.C_fanhuiadd=@C_fanhuiadd ANDO.T_sale='待售'END图6.4.1存储过程查票的实现七、安全性设计7.1 防止用户直接操作数据库的方法(1)用户标识和鉴定用户标识和鉴别是系统提供的最外层安全保护措施。

相关文档
最新文档