数据库课程设计报告学号课程设计报告课程名称数据库原理与应用课程设计题目火车站售票管理系统院系专业班级姓名指导教师2014年1月3日数据库课程设计报告摘要近年来,随着我国国民经济的飞速发展和人民生活水平的提高,铁路旅客运输面临着增加运能、提高卖票服务质量、提高竞争能力的迫切需要。基于网络自主的火车票售票管理系统替代传统的人工售票,实现自动化售票和对票务的自动化管理,极大的方便了乘客购票,也提高了铁路部门的管理效率和运营效率。本论文围绕铁路运输售票的现状,引入火车站售票管理系统,并对该系统的开发及原理进行详细的介绍。要求:①具有方便、快速的售票功能,包括车票的购买和退票功能,情况提供多种查询和统计功能,如车次的查询、时刻表的查询等;②能准确地了解售票情况,提供多种查询和统计功能,如车次的查询、时刻表的查询等;③能按情况所需实现对车次的查询、时刻表的查询等;④系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;本次实习的题目是火车站售票管理系统,主要的目的是如何处理车站中票务的流通。根据系统所需功能,决定以windows7为开发平台,采用选择功能强大的MicrosoftSQLServer2005/2008为开发工具,利用软件工程思想和方法,开发该系统的所需要的功能。本系统由车辆、车次、乘客、车票、售票员等模块组成,对车站中的各种信息进行分类管理,统筹规划。功能较为全面。关键字:火车票;售票系统;SQLServer2005;管理系统数据库课程设计报告目录1绪论........................................11.1背景、现状.......................................11.2研究内容及框架...................................12项目整体规划与设计..........................32.1招聘系统的总体需求分析...........................32.2整体结构分析,及功能分析.........................32.3数据库系统的具体设计.............................43数据库设计与分析............................63.1数据库的整体设计的E-R图.........................63.2数据库的整体概念模型设计.........................63.3数据库的整体物理模型设计.........................73.4数据库表的设计.....................................83.5数据库的脚本sql语句..............................104数据库完整性约束.............................164.1实体完整性约束说明...............................164.2参照完整性约束说明...............................174.3用户自定义完整性约束说明.........................19数据库课程设计报告5总结与展望.................................21参考文献......................................22数据库课程设计报告11绪论1.1背景、现状随着经济社会的不断发展。人们的生活方式和习惯的多样化,出行已经成为人们生活的一个重要组成部分。通过最近这几年的观察,每到春节的时候,因为过年,大量的人口流动给我们的交通系统带来了不小挑战,其中火车这种交通工具因输送量大、速度较快、价钱合理受到广大回家市民的青睐,因此车票票务市场也在快速发展。人们希望车票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的车票表现出极大的关注。随着社会的不断进步,国内外铁路运输事业的飞速发展,各国铁路运营部门对票务管理的要求也在不断的提高,现如今乘车已是必不可少的交通手段,各种类型的车辆到处可见,公共交通不仅在城市中随处可见,随着国家“村村通”政策的执行,农村、偏远山区等地均有了公路、汽车。因此,车站管理已为交通运输中的重中之重。火车成为了许多人选择出行的重要交通工具,而车站售票是预订车票、售票、退票及车次查询、报表以及其他各种服务,车站售票组织庞大,服务项目多,信息量大,传统的手工处理方式已经不能满足管理活动的需要。要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息。从而催生了我关于火车站售票管理信息系统的探讨。我们对本市附近的汽车站进行了初步的了解,发现其功能主要是集中在对车票的购买、售出和退换上。对车票的管理工作量较大,采用新的操作方式,不仅能满足乘客对车辆的详细的查询功能,还能增加效率,减少乘客滞留弊端。本系统在设计中考虑和充分分析了上诉的诸多问题,设计的程序内容简单出错率小,增强了实用性。1.2研究内容及框架此项目主要研究的内容是用高级语言及SQLSERVER2008/2005开发的火车站售票管理,包括旅客查询,购买火车票、管理员对火车票的管理等。框架结构如图1.1数据库课程设计报告2图1.1功能结构图数据库课程设计报告32项目整体规划与设计2.1招聘系统的总体需求分析系统应具有售票、查询、管理和维护等功能,系统管理员可以进行对车次的更改、票价的变动及调度功能,票价的修改可以通过修改运价来进行,车次调度可通过对发车时刻表的修改来进行,维护功能即可对表进行修改。2.2整体结构分析,及功能分析整体结构是设计的综合设计,有各小的结构的汇总,整体结构图如图2.1所示图2.1整体结构图数据库课程设计报告4系统是为实现某种功能,其整体功能有个各个能能模块组成下面是对各功能分析:售票功能模块(1)服务人员可以进行售票、订票、退票等操作(2)购票:游客可以购买自己想买的票(3)订票:游客想预订票时可以订票(4)退票:游客想放弃此次行程,可以退票查询功能模块(1)购票者可以请求服务人员完成车次、时间或地点完成查询操作,并浏览查询信息(2)车次查询:游客可以查询想乘坐的车次信息(3)时间查询:游客可以查询出发时间(4)地点查询:游客可以查询起始地点管理统计模块(1)系统管理员可以对运价、车次、终点站以及售票员的信息进行删除、添加、修改。售票员和系统管理员均可浏览车票统计情况。(2)运价修改:管理员对车票的价格的调整(3)车次修改:管理员对车次调整(4)地点修改:游客可以查询起始地点2.3数据库系统的具体设计2.3.1用户对该系统的功能需求能根据不同查询条件(如车牌号、车次等)车辆表信息,包括车牌号、车次、开车时间、车型、座位号、站名、里程等。能根据不同查询条件(如id、终点站等)买票表信息,包括id、终点站、车牌号、车票数量、车票日期等。能根据不同查询条件(如票号、退款额等)退票表信息,包括票号、退款额、手续费、退票时间等。数据库课程设计报告5能根据不同查询条件(如票号、车次等)车票表信息,包括票号、车次、站点、票价、座位号等。能根据不同查询条件(如车型、票价等)计费表信息,包括车型、票价等。管理车辆基本信息,包括浏览、增加、修改、和删除车辆表信息。管理买票基本信息,包括浏览、增加、修改、和删除买票表信息。管理退票基本信息,包括浏览、增加、修改、和删除退票表信息。管理车票基本信息,包括浏览、增加、修改、和删除车票表信息。管理计费基本信息,包括浏览、增加、修改、和删除计费表信息。2.3.2数据需求车辆表=车次+开车时间+到达时间+车型+里程买票表=买票号+起点站+终点站+车票数量+车票日期+乘客编号退票表=票号+退款额+手续费+退票时间+乘客编号车票表=票号+车次+起点站+终点站+票价+座位号+乘客编号乘客表=乘客编号+身份证号+姓名售票员表=工号+姓名+年龄+性别数据库课程设计报告63数据库设计与分析3.1数据库的整体设计的E-R图数据库的整体设计的E-R图如图3.1所示图3.1整体E_R图3.2数据库的整体概念模型设计数据库课程设计报告7车辆(车次,开车时间,车型,里程,票价)主键为(车次);买票(买票号,起始站,终点站,车票数量,车票日期,乘客编号)主键为(买票号),外键为(乘客编号);退票(票号,退款额,手续费,退票时间,乘客编号)主键为(票号)外键为(乘客编号);车票(票号,车次,起点站,终点站,票价,座位号,工号,乘客编号)主键为(票号),外键为(乘客编号),外键为(车次)外键为(工号);乘客(乘客编号,身份证号,姓名)主键是(乘客编号);售票员(工号,姓名,年龄,性别)主键是(工号)。3.3数据库的整体物理模型设计数据库的整体物理模型设计如图3.3所示表3-1车辆表列名数据类型长度是否主键说明车次varchar50是主键开车时间datetime否到达时间datetime否到达时间大于开车时间车型varchar50否里程varchar50否表3-2买票表列名数据类型长度是否主键说明买票号varchar50是主键起始站varchar50否终点站varchar50否车票数量varchar50否车票日期datetime否乘客编号varchar50否来自乘客表的外键数据库课程设计报告8表3-3退票表列名数据类型长度是否主键说明票号varchar50是主键退款额float50否手续费float50否退票日期datetime否乘客编号varchar50否来自乘客表的外键表3-4车票表列名数据类型长度是否主键说明票号varchar50是主键车次varchar50否来自车辆表的外键起点站varchar50否终点站varchar50否票价float50否座位号varchar50否工号varchar50否来自售票员表的外键乘客编号varchar50否来自乘客表的外键表3-5乘客表列名数据类型长度是否主键说明乘客编号varchar50是主键身份证号char()18否必须为18位姓名varchar50否表3-6售票员表列名数据类型长度是否主键说明工号varchar50是主键姓名varchar50否年龄varchar50否性别char2否取值为男或女3.4数据库表的设计数据库是按照数据结构组织、存储和管理数据的仓库,数据管理不仅仅是存储和管理数据,而是转化成所需要的各种数据管理方式。结构的好坏影响系统的效率及实现的效果、以及它的完整性和一致性。数据库课程设计报告9车辆表如图3.4所示图3.4车辆表买票表如图3.5所示图3.5买票表退票表如图3.6所示图3.6退票表数据库课程设计报告10乘客表如图3.7所示图3.7乘客表车票表如图3.7所示图3.8车票表售票员表如图3.9图3.9售票员表3.5数据库的脚本sql语句数据库课程设计报告111.车辆表sql语句如下所示:CREATETABLE[dbo].[车辆表]([车次][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[开车时间][datetime]NOTNULL,[到达时间][datetime]NOTNULL,[车型][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[里程][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,CONSTRAINT[PK_车辆表]PRIMARYKEYCLUSTERED([车次]ASC)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOUSE[zc]GOALTERTABLE[dbo].[车辆表]WITHCHECKADDCONSTRAINT[CK_车辆表]CHECK(([到达时间][开车时间]))2.买票表sql语句如下所示:CREATETABLE[dbo].[买票表]([买票号][va