车票管理系统数据库.docx
- 文档编号:19251254
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:18
- 大小:88.53KB
车票管理系统数据库.docx
《车票管理系统数据库.docx》由会员分享,可在线阅读,更多相关《车票管理系统数据库.docx(18页珍藏版)》请在冰豆网上搜索。
车票管理系统数据库
车票管理系统数据库
实验报告
题目:
车票管理系统数据库
指导老师:
邱 骋
班级:
2011 年(秋)计算机
学号:
1131001251845
姓名:
张 彪
1 实验目的
以车票订票管理数据库为例,完成用户需求分析、概念设计阶段的 E/R 图绘制、逻辑
设计、物理设计,并通过 SQL 实现数据库设计。
通过上述过程,理解并掌握数据库设计
的有关知识。
2 实验要求
1)需求分析阶段要求明确数据库应用系统设计的具体需求。
2)概念设计阶段要求设计针对数据库应用系统的 E/R 图。
3)逻辑设计阶段要求明确这个阶段的目的和任务,方法和步骤。
4)物理设计阶段根据前面的内容,给出具体的数据库表结构。
3 需求分析
3.1需求分析的任务
调查火车票管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和
操作要求进行详细分析,形成需求分析说明书。
最重要的是调查、收集信息、分析购票
人信息和流程。
处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面
要简单明了,易于操作,服务器程序利于维护
3.2需求分析的过程
铁路局为方便旅客,需开发一个机票车票管理系统。
为便于旅客由旅行社代替铁路
局把预定车票的旅客信息,包括身份证号码、身高、年龄、旅行时间、旅行目的地,输
入火车票预定系统的客户端程序,系统经过查询管理系统内的车次数据服务器后,为旅
客安排车次。
系统校对无误后即印出车票给旅客。
如果某方面出现问题,旅客可以持有
效证件去火车站退票。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面
要简单明了,易于操作,服务器程序利于维护。
3.3数据字典与流程图
经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,
给出旅客信息、车票信息的具体需求。
票
图 1 旅客购票流程图
窗口核对相关
打印车票
3.3.1 调查用户需求
3.3.1.1火车站办公需求
功能:
旅客持个人证件去火车站购买车票。
希望能通过旅客车票查到该旅客的车票
编号及基本信息。
统计功能:
按车票统计买票人数
3.3.1.2旅客购票需求
交费功能:
交费、退费
3.3.1.3车次信息需求
查询功能:
车次号 (始发站、终到站、发车时间)
3.4系统框架
在调查完了用户需求之后,就要开始分析用户需求。
在此,我们采用自顶向下的结
构化分析方法(SA 方法)。
首先,定义全局概念结构的框架,如图 2 所示。
火车票管理系统
乘客信息系
退票信息系
统 补票信息系统
图 2 车票管理系统总框架图
各子系统需要进一步细化。
旅客信息系统为例进一步细化,如图 3 所示。
旅客信息系统
统计人数查询旅客信
息
图 3 旅客信息系统细化
以其中的查询旅客信息功能为例进一步细化,如图 4 所示。
乘客信息
身份证号身高年龄工作单位
图 4 查询乘客信息功能
车次信息
车次号始发站终到站发车时间
图 5 车票信息系统能查询到的内容
退票信息
车次号上车地下车地价格
图 6 退票信息系统细化
补票信息
车次号上车地下车地价格
图 7 退票信息系统细化
将所有子系统全部细化。
将所有用户需求分析完毕之后,就要开始构造数据字典了。
经分析之后,本系统要用到五个基本表:
退票信息表,乘客信息表,车次信息表,补票
信息表,车次座位信息表。
数据结构定义如表 1 所示。
表 1 数据结构定义
数据结构名含义说明组成
退票信息定义了乘客退票的有关信息车次,上车地,下车地,价格
乘客定义了乘客有关信息身份证号,年龄,
工作单位,身高
车次信息表定义了车次
补票信息定义了乘客补票的有关信息车次,上车地,下车地,价格
车票座位息表定义了座位有关信息车次,座位号,身份证号,车票类型
4概念结构设计
4.1概念结构设计的方法与步骤
4.1.1 概念结构设计的方法
概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向
上的进行概念结构设计。
对已经细化到无法再分的阶段逐步集成在一起,最终合成一个
全局概念模式。
4.1.2 概念结构设计的步骤
第一步是进行局部视图的设计:
由于高层的数据流图只能反映系统的概貌,而中层
流图能较好的反映系统中各局部应用的子系统组成。
因此我们先逐一的设计分 E-R 图。
第二步是进行视图的集成:
各子系统的 E-R 图设计好之后,下一步就是要将所有的
分 E-R 图合成一个系统的总 E-R 图,一般有两个方式,多个分 E-R 图一次集成,另一种
是一次集成两个分 E-R 图。
我想采用一次集成两个分 E-R 图的方式。
4.2数据抽象与局部视图设计
按照图 2 火车票管理系统总框架图,设计实体属性图以及局部 E-R 图。
车次号
上车地
补票信息
下车地
价格
图 9 补票信息实体属性图
车次号
上车地
退票信息
下车地
价格
图 10 退票信息实体属性图
身份证号
身高
乘客信息
年龄
工作单位
图 11 乘客实体属性图
上车地
下车地
补票信息
车次
价格
图 12 补票实体属性图
图 13 车次实体属性图
车票类型
座位号
座位信息
车次
身份证号
图 14 座位实体属性图
图 15 乘客购票局部 E-R 图
图 16 乘客退票局部 E-R 图
去火车站
补票
补票信息
图 17 乘客补票局部 E-R 图
车次
包含
座位信息
图 18 乘客座位局部 E-R 图
4.2.1 视图的集成
经过逐步细化再进行每两个一集成初步形成一个 E-R 图,最后得到图 3.4 总体概念
结构 E-R 图。
上车地
车次
身份证号
工作单位
身高
车次 始发站
终到站
下车地
退票信息
n 1 m
购买
n
车次信息
1
发车时间
价格
年龄
包含
车票类型
车次
补票信息
上车地 下车地
价格 车次
座位信息
座位号 身份证号
图 19 系统总体结构 E-R 图
5 逻辑结构设计
5.1E-R 图向关系模型的转换
将图 19 总体概念结构 E-R 图转化成关系模型。
乘客(身份证号,工作单位,身高,年龄)
车次信息(车次,始发站,终到站,发车时间)
退票信息(下车地,车次,上车地,价格)
补票信息(上车地,车次,下车地,价格)
座位信息(座位号,身份证号,车次,车票类型)
5.2数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
1、确定数据依赖
乘客信息(身份证号,工作单位,身高,年龄)根据这个关系写出数据依赖
身份证号→工作单位,身份证号→年龄
车次信息(车次,始发站,终到站,发车时间)
车次→始发站,车次→终到站,车次→发车时间
退票信息(下车地,车次,上车地,价格)
(下车地,车次)→上车地,(下车地,车次)→价格
补票信息(上车地,车次,下车地,价格)
(上车地,车次)→下车地,(上车地,车次)→价格
座位信息(座位号,身份证号,车次,车票类型)
座位号→身份证号,座位号→车次,座位号→车票类型
2、 对各关系模式间数据依赖进行极小化处理,消除冗余
身份证号→工作单位,身份证号→年龄
车次→始发站,车次→终到站,车次→发车时间
(下车地,车次)→上车地,(下车地,车次)→价格
(上车地,车次)→下车地,(上车地,车次)→价格
座位号→身份证号,座位号→车次,座位号→车票类型
3、 看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解
最终分解成第三范式:
(身份证号,工作单位,年龄)(车次,始发站,终到站,发车时间)
(下车地,车次)(下车地,价格)(上车地,车次)(上车地,价格)
(座位号,身份证号,车次,车票类型)
5.3数据库的结构
给出机票预定系统基本表结构图。
退票信息车次信息
Get off
place
Get on
place
Train
number
Take off destinat
place ion
Train
time
乘客信息
Id
补票信息
age status Work
department
Get on
place
Train
number
Get off
place price
座位信息
Seat
number
Train ticket
type
图 20 各表的结构
根据总体结构图设计各表的结构,其相应标的定义如下:
表 2 乘客信息系统的结构
字段名数据类型长度约束描述
iddecimal20主键身份证号
agedecimal3不为空年龄
statusvarchar50不为空身高
Work_departmentVarchar50工作单位
表 3 退票信息系统的结构
字段名数据类型长度约束描述
Trainnumberdecimal5主键车次
Get_on_placevarchar50不为空上车地
Get_off_placedecimal50主键下车地
pricedecimal4不为空价格
表 4 车次信息表系统的结构
字段名数据类型长度约束描述
Trainnumberdecimal5主键车次
Take_off_placevarchar50不为空始发站
destinationvarchar50不为空终到站
Train_timetimetime不为空发车时间
表 5 补票通知单系统的结构
字段名数据类型长度约束描述
Trainnumberdecimal10000主键车次
Get_on_placevarchar50主键上车地
Get_off_placedecimal50不为空下车地
pricedecimal1000不为空价格
表 6 车次座位信息表
字段名数据类型长度约束描述
Seat_numberdecimal6主键座位号
Trainnumberdecimal5不为空车次
Iddecimal20不为空身份证号
Trian_ticket_typevarchar50不为空车票类型
6 数据库的实施
6.1表的建立与数据的载入
CREATE TABLE ADMINISTRATOR.
PASSENGER ( ID DECIMAL (20, 0) NOT NULL ,
AGE DECIMAL (2, 0) NOT NULL ,
STATAS VARCHAR (50) NOT NULL ,
"WORK DEPARTMENT" VARCHAR (50) ,
CONSTRAINT IDNO PRIMARY KEY ( ID) )
CREATE TABLE ADMINISTRATOR.TUIPIAO
( "TRAIN NUMBER" DECIMAL (5, 0) NOT NULL ,
"GET ON PLACE" VARCHAR (50) NOT NULL ,
"TAKE OFF PLACE" VARCHAR (50) NOT NULL ,
PRICE DECIMAL (5, 0) NOT NULL ,
CONSTRAINT CC1230206137906 PRIMARY KEY ( "TRAIN NUMBER") )
CREATE TABLE ADMINISTRATOR.CHECI ( "TRAIN NUMBER" VARCHAR (5) NOT NULL , "GET
ON PLACE" VARCHAR (50)NOT NULL , "TAKE OFF PLACE" VARCHAR (50)NOT NULL ,
TIME TIME NOT NULL , CONSTRAINT CC1230206022062 PRIMARY KEY ( "TRAIN NUMBER") )
CREATE TABLE ADMINISTRATOR.BUPIAO ( "TRAIN NUMBER" DECIMAL (5, 0)NOT NULL ,
"GET ON PLACE" VARCHAR (50) NOT NULL , "TAKE OFF PLACE" VARCHAR (50) NOT NULL ,
PRICE DECIMAL (5, 0)NOT NULL, CONSTRAINT CC1230206289890 PRIMARY KEY (
"TRAIN NUMBER") )
CREATE TABLE ADMINISTRATOR.ZUOWEI ( "SEAT NUMBER" DECIMAL (6, 0)NOT NULL ,
"TRAIN NUMBER" DECIMAL (5, 0) NOT NULL , ID DECIMAL (20, 0) NOT NULL , "TRAIN SEAT
NUMBER" VARCHAR (50)NOT NULL, CONSTRAINT CC1230206478093 PRIMARY KEY (
"SEAT NUMBER") )
需要明确数据库需要建立几张表,以及每个表中所要包括的属性。
在建立表的过程中。
要对每个
表进行字段属性的设置。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车票 管理 系统 数据库