铁路网上售票系统数据库设计_第1页
铁路网上售票系统数据库设计_第2页
铁路网上售票系统数据库设计_第3页
铁路网上售票系统数据库设计_第4页
铁路网上售票系统数据库设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录数据库课程设计论文铁路网上售票系统项目开发背景:1铁路网上售票系统的总目标是:1项目开发的意义:11需求分析21.1 需求分析阶段目标和任务21.1.1 需求分析阶段目标21.1.2 需求分析阶段任务21.2 需求分析成果31.2.1 流程图41.2.2 数据字典52数据库结构设计52.1 概念设计52.1.1 分E-R图建立62.1.2 全局/整体E-R图62.2 逻辑设计62.2.1 建立关系模式72.2.2 关系模式规范化处理72.2.3 用户子模式建立72.2.4 关系模式逻辑结构定义73 数据库物理设计73.1 物理设计阶段目标和任务73.2数据存储方面73.2.1 建立索引的原则73.2.2 建立索引73.2.3 系统功能模块图84数据库实施与测试84.1 数据库实施84.1.1 数据库及数据库对象建立84.1.2 数据入库104.2 数据库测试105总结106附录11附录1:11附录215附录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)客户注册及登录流程图:(2)订票业务流程图:(3)退票业务流程图:铁路网上售票系统数据流程图如下图1.4图1.7:(1)顶层数据流程图:(2)第一层数据流程图:(3)第二层数据流程图订票:1.2.2 数据查询包含数据项、数据结构、数据流、处理逻辑、数据存储定义(详见附录1)。2数据库结构设计主要包括概念设计和逻辑设计两个部分。2.1 概念设计概念设计阶段主要是将需求缝隙阶段得到的用户需求抽象为信息结构即概念模型的过程,它是整个数据库设计的关键,设计概念结构通常有四类方法:自顶向下、自底向上、逐步扩张、混合策略。2.1.1 分E-R图建立参照业务流程图和数据流程图,分别画出分E-R图,如图2.1至2.4所示。(1) 根据图1.2抽象出的进货分E-R图:(2) 根据图1.6抽象出的销售分E-R图:(3) 根据图1.7抽象出的存储分E-R图:(4) 根据图1.4抽象出的存储分E-R图:各E-R图中的实体属性如下图2.5至图2.10:(1)车票及其属性:(2)客户及其属性:(3)票务人员及其属性:(4)票存系统及其属性:(5)订票单及其属性:2.1.2 全局/整体E-R图根据各分E-R图合并整体E-R图,具体方法是将4个E-R图中相同的实体,进行合并,消除属性冲突、命名冲突、结构冲突之后得到总E-R图如图2.11所示。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-01Ticket_view车票信息视图方便用户查询车票信息V-02Customer_view客户信息视图方便票务人员查询客户信息V-03Book_view订票单信息视图方便票务人员查询订票信息V-05Record_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唯一Tno3.2.3 系统功能模块图系统基本功能模块图如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-01Ticket_view车票信息视图方便用户查询车票信息V-02Customer_view客户信息视图方便票务人员查询客户信息V-03Book_view订票单信息视图方便票务人员查询订票信息V-04Dishonour_view退票单信息视图方便票务人员查询退票信息V-05Record_view记录信息视图方便票务人员查询记录信息(3) 创建的存储过程如表4.2所示:表4.2存储过程表编号存储过程名称作用N-01Ms_Insert向票存系统基本信息表中插入一个元组N-02Ts_Insert向票务人员基本信息表中插入一个元组N-03C_Insert向客户基本信息表中插入一个元组N-04B_Insert向订票单基本信息表中插入一个元组N-05D_Insert向退票单基本信息表中插入一个元组N-06T_Insert向车票基本信息表中插入一个元组N-07R_Insert向记录基本信息表中插入一个元组N-08B_Delete从订票单基本信息表中删除一个元组N-09D_Delete从退票单基本信息表中删除一个元组N-10R_Delete从记录基本信息表中删除一个元组(4) 创建的触发器如表4.3所示:表4.3触发器表编号触发器名作用T-01delete_TicketStaff删除票务人员信息级联删除客户信息T-02delete_Customer删除客户信息级联删除客户订票及退票信息T-03delete_Book删除订票信息级联删除车票信息T-04delete_Dishonour删除退票信息级联删除车票信息T-05delete_Ticket删除车票信息级联删除记录信息T-06DoNotDishonour车票价格低于2元不予退票4.1.2 数据入库系统包括7张基本表,在Excel中录入数据,然后使用SQL Server 2000数据导入功能,直接将数据导入到相应的基本表中。4.2 数据库测试主要内容是对建立的数据库及数据库对象进行测试,详细的测试情况见附录3。5总结通过这次课程设计的感触很多。第一感觉就是理论和实践的差距远远大于人的想象;课堂上觉得很简单的东西,真到了要做的时候,会发现很难。在这次实习之前我感觉数据库就像一种语言一样,学会它的语法就应该可以了,不过现在才明白数据库重点在于设计,设计的过程才是最有价值,最有意义也是最难的。通过这次实习,我收获了很多。首先是在需求分析阶段,这个阶段的任务可以说是整个数据库设计任务量最大的阶段,我花了大量时间在业务流程图和数据流程图的创建上,不断的修改,不断的和指导老师交流。在这个过程中真切的了解了业务的分析的重要性。在概念设计阶段,主要的任务就是抽象出E-R图。然后就是逻辑设计阶段了,这个阶段是要把让我头疼的E-R图转换为关系模式,这一阶段我花费的时间相对较少。经过不断的尝试和修改,很快就完成了逻辑结构的设计,得到了该建立的表。这个时候到了数据库实施阶段了,以前我认为创建基本表、视图、存储过程、触发器是数据的重点,现在看来这些都是皮毛,这些都是数据库设计过程中最简单最基础的问题。真正需要能力和时间的是前面的需求分析、概念设计、逻辑设计阶段,把实际问题抽象成计算机能够实现解决的问题才是最重要的,这是数据库可以实施的必要条件。这次课程设计的任务,我完成的不是很好,有些方面还没有实现其功能。人无完人我知道我做出的系统不是很全面,即便如此,我还是从其中学到了很多技巧。在以后的学习中,我会多实践,多练习,书本上知识的学习毕竟没有实践来的有效,在此,我要感谢我的指导老师这么久对我的指点。6附录附录1:数据查询表:(1) 数据项如表6.1所示。表6.1 数据项数据项编号数据项名称数据项含义简述类型宽度(位)取值范围I1Tno车票编号车票的编号char60I2Tprice车票价格车票的售价intI3Trainno车次某次列车的编号char8I4Tstype座位类型包括硬座、软卧、无座等char8I5Tpno座位编号车厢号和座位编号char8I6Tsta出发站车票上所示乘客从何处出发char20I7Tdes目的站车票上所示乘客要到达的地方char20I8Tstatime发车时间列车从该站出发的时间datetimeYYYY:MM:DD hh:mmI9Tdestime到站时间列车终到目的站的时间datetimeYYYY:MM:DD hh:mmI10Bno订票单号订购火车票单据的编号char14I11Bdate订票日期订购火车票的日期datetimeYYYY:MM:DDI12Btime订票时间订购火车票的时间datetimehh:mmI13Bqua订票数量一次性订购的数量int1-50I14Bpou订票手续费订购火车票所支付的额外费用int5I15Sno售票单号销售火车票单据的编号char14I16Sdate开售单日期开出销售火车票单据的日期datetimeYYYY:MM:DDI17Stime开售单时间开出销售火车票单据的时间datetimehh:mmI37Cname客户名客户的姓名char10I38Cno客户身份证号客户的身份证号码char20I39Ccano客户银行卡号客户的银行卡号码char20I40Cphone客户电话客户的电话号码char12I41Cadd客户地址客户的住址char30I42Cid登录ID客户办理网上业务的名称char14I43Cpwd登录密码客户办理网上业务的名称对应的密码char20I44Tsno票务人员编号各车站票务人员的编号char14I45Tsname票务人员姓名各车站票务人员的姓名char10I46Tsadd票务人员工作地点票务人员所在的工作地char20I47Msno票存分系统编号票存系统分系统的编号char14(2) 数据结构如表6.2所示。表6.2 数据结构DS01 客户信息I38 客户身份证号I37 客户姓名I39 客户银行卡号I40 客户电话I41 客户地址I42 登录IDI43 登录密码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+I121000份/天10000份/天售票单服务器开出销售火车票的单据服务器客户I3+I37+I38+I39+I18+ I19+I13+I21+I16+I17+I20+I44+I451000份/天10000份/天即时退票单业务人员开出的即时退票的单据票务人员服务器I37+I38+I1+I44+I45+ I2+I25+I26+I27+I23+ I2410份/天100份/天退票申请单客户向服务器申请退票的单据客户审理模块I37+I38+I39+I1+I2+ I31+I29+I30200份/天2000份/天未通过单服务器不同意客户退票申请的单据审理模块服务器I37+I38+I1+I2+I31+ I29+I3020份/天200份/天拒绝退票单服务器拒绝客户退票的单据服务器客户I37+I38+I1+I2+I31+ I29+I3020份/天200份/天通过单服务器同意客户退票申请的单据审理模块票存模块I1+I2+I31+I29+I30180份/天1800份/天退票单服务器开出的客户退票的单据服务器客户I37+I38+I39+I6+I7+I2+I31+I35+I36+I8+I33+I34+I44+I45180份/天1800份/天(4) 处理逻辑如表6.4所示。表6.4处理逻辑处理逻辑编号处理逻辑名称简述输入的数据流处理输出的数据流处理频率P1.1售票服务器向客户销售火车票F1 订票单,来源于客户发出的订票单据根据客户订单信息,向客户开出售票单销售火车票并进行登记记录F2 售票单,向客户售票发出的售票单据;S1 票存系统、S2 流水账,每次售票都要有详细记录1000次/天P2.2录入系统服务器的火车票销售记录F7 通过单,来源于服务器退票审理系统开出的同意单据根据通过单将退票信息录入系统以作记录S1 票存系统、S2 流水账,每次退票都要有详细记录180次/天附录2基本表的建立:1. 创建铁路网上售票系统create database RTSO2. 创建票存系统基本信息表:create table MemorySystem(Msno char(14) primary key, Msadd char(20) unique not null)3. 创建票务人员基本信息表:create table TicketStaff(Tsno char(14) primary key, Tsname char(10) not null, Tsadd char(20) not null)4. 创建客户基本信息表:create table Customer(Cno char(20) primary key, Cname char(10) not null, Ccano char(20), Cphone char(12) not null, Cadd char(30) not null, Cid char(14) not null, Cpwd char(20) not null, Tsno char(14) not null, foreign key (Tsno) references TicketStaff(Tsno)5. 创建订票单基本信息表:create table Book(Bno char(14) primary key, Bdate datetime not null, Btime datetime not null, Bqua int check(Bqua0 and Bqua51) not null, Bpou int not null, Cno char(20) not null, foreign key (Cno) references Customer(Cno)6. 创建车票基本信息表:create table Ticket(Tno char(60) primary key, Tprice int not null, Trainno char(8) not null, Tstype char(8) not null, Tpno char(8) not null, Tsta char(20) not null, Tdes char(20) not null, Tstatime datetime not null, Tdestime datetime not null, Bno char(14) not null, Dno char(14), foreign key (Bno) references Book(Bno), foreign key (Dno) references Dishonour(Dno)7. 创建售

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论