数据库课设计火车票卧铺预订系统课件.docx
《数据库课设计火车票卧铺预订系统课件.docx》由会员分享,可在线阅读,更多相关《数据库课设计火车票卧铺预订系统课件.docx(12页珍藏版)》请在冰豆网上搜索。
数据库课设计火车票卧铺预订系统课件
课程设计
课程名称___数据库______
题目名称____火车票卧铺预订系统_____
学生学院_____计算机学院______
专业班级__
学号_________
学生姓名_____________
指导教师________左亚尧_________
2013年1月15日
1设计时间:
2013-01-10到2013-01-15
2设计目的
:
数据库课程设计是一个十分好的实践项目,可以把书本的知识充分应用到实践中。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。
3设计任务
通过开发一个数据库火车票卧铺预订信息系统,学习数据库系统的设计与开发,SQL相关的软件为开发工具。
建立相关的数据库和表,联系之间的关系,达到能够搜索火车票预订情况的系统。
用户可以根据自己想知道的情况来进行相关的搜索来进行预订火车票。
4设计内容
4.1需求分析
随着乘坐火车的人群越来越多,要处理的事务越来越来多,传统的柜台式购票已经不能适应这个大社会了,因此需要互联网的帮助来解决这一问题,需开发一个火车票预定系统。
根据预定的客户信息,包括姓名、性别、身份证号码、出行时间、出行目的地等,系统经过查询火车公司内的数据服务器后,为旅客安排班次。
(1)某火车公司车票预订管理系统需要如下信息:
班次信息:
班次编号、火车型号、起点、终点、出发时间、旅程时间等。
火车信息:
火车编号、座位数。
业务员信息:
工号、业务员姓名。
车票信息:
火车编号、卧铺类型、旅客编号、座位号、票价、当前预售状态等。
旅客信息:
姓名、性别、联系电话、身份证号等。
(2)系统功能的基本要求:
按照一定条件查询、统计符合条件的班次和车票等;并能查询、统计火车票预订情况。
4.2系统设计
4.2.1概念结构设计
分E-R图设计:
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1)航班E-R图,如图4-1所示。
图4-1航班E-R图
(2)火车E-R图,如图4-2所示。
图4-2飞机E-R图
(3)车票E-R图,如图4-3所示。
图4-3车票E-R图
(4)旅客E-R图,如图4-4所示。
图4-4旅客E-R图
(5)业务员E-R图,如图4-5所示。
图4-5业务员E-R图
根据分E-R图和需求分析,可得到总E-R图,如图4-6所示。
图4-6系统总体结构E-R图
4.2.2逻辑结构设计
将图4-6总体概念结构E-R图转化成关系模型。
(主键用下划线标出)
火车(火车编号,座位数)
班次(班次编号,火车编号,出发地,目的地,出发时间,到达时间)
业务员(工号,业务员姓名)
车票(班次编号,旅客编号,卧铺类型,座位号,票价,当前预售状态)
旅客(旅客编号,姓名,性别,身份证号,联系电话)
购买(旅客编号,座位号,折扣,实付款,数量,工号,付款状态)
4.2.3物理结构设计
根据总体结构图设计车票预定系统基本表结构,其相应标的定义如下:
表4-1火车信息
中文名称
类型
长度
是否非空
主关键字
备注
火车编号
char
10
Y
座位数
int
N
总座位
表4-2班次信息
中文名称
类型
长度
是否非空
主关键字
备注
班次编号
char
10
Y
班次编号
char
10
N
出发地
char
10
N
目的地
char
10
N
出发时间
datetime
年月日/时分
到达时间
datetime
年月日/时分
表4-3业务员信息
中文名称
类型
长度
是否非空
主关键字
备注
工号
char
10
Y
业务员姓名
char
10
N
表4-4车票信息
中文名称
类型
长度
是否非空
主关键字
备注
班次编号
char
10
N
卧铺类型
char
10
N
座位号
char
10
Y
票价
float
(2)
N
元
当前预售状态
char
10
N
Y/N
表4-5旅客信息
中文名称
类型
长度
是否非空
主关键字
备注
旅客编号
char
10
Y
姓名
char
10
N
性别
char
10
N
身份证号
char
10
N
联系方式
char
15
N
表4-6购买信息
中文名称
类型
长度
是否非空
主关键字
备注
旅客编号
char
10
Y
座位号
char
10
N
折扣
float
(1)
打几折
实付款
float
(2)
N
N
元
购买数量
int
N
N
购买的车票
工号
char
10
N
付款状态
char
10
N
Y/N
4.3系统实施
先建立火车卧铺预订数据库,然后根据数据库的基本表结构分别建立六个基本表,这里给出具体的SQL语句如下。
(1)CreateDatabasehuoche;
(2)创建火车表
Createtable火车
(火车编号char(10)notnull,
座位数intnotnull,
primarykey(火车编号)
);
(3)创建班次表
Createtable班次
(班次编号char(10)primarykey,
火车编号char(10)notnull,
出发地char(10)notnull,
目的地char(10)notnull,
出发时间datetime,
到达时间datetime,
Foreignkey(火车编号)references火车(火车编号)
);
(4)创建业务员表
Createtable业务员
(工号char(10)primarykey,
业务员姓名char(10)notnull
);
(5)创建车票表
Createtable车票
(班次编号char(10)notnull,
卧铺类型char(10)notnull,
座位号char(10)primarykey
Constraintc2check(座位号between'001'and'500'),
票价float
(2)notnull,
当前预售状态char(10)notnull,
Constraintc1check(卧铺类型in('硬铺','软铺','空调软铺')),
Foreignkey(班次编号)references班次(班次编号),
);
(6)创建旅客表
Createtable旅客
(旅客编号char(10)primarykey,
姓名char(10)notnull,
性别char(10)notnull,
身份证号char(20)notnull,
联系电话char(15)notnull
);
(7)创建购买表
Createtable购买
(旅客编号char(10)notnull,
座位号char(10)notnull,
primarykey(旅客编号,座位号),
折扣float
(1),
实付款float
(2)notnull,
工号char(10)notnull,
购买数量intnotnull,
付款状态char(10)notnull,
Foreignkey(旅客编号)references旅客(旅客编号),
Foreignkey(座位号)references车票(座位号),
Foreignkey(工号)references业务员(工号)
);
(1)
火车表录入
(2)
图4-8班次表信息
(3)
图4-9业务员表信息
(4)
图4-10车票表信息
(5)
图4-11旅客表信息
(6)
图4-12购买表信息
4.4运行与测试
(1)查询班次001的剩余车票总数
select班次编号,count(座位号)剩余机票总数
from车票
where班次编号='1'
groupby班次编号,当前预售状态
having当前预售状态='未满
';
(2)查询班次1,各卧铺剩余车票数
select班次编号,卧铺类型,count(座位号)剩余车票数
from车票
where班次编号='1'
groupby班次编号,卧铺类型,当前预售状态
having当前预售状态='未满';
(3)查询班次2各卧铺车票的预订情况
select班次编号,卧铺类型,count(座位号)售出票数
from车票
where班次编号='2'
groupby班次编号,卧铺类型,当前预售状态
having当前预售状态='已满
';
(4)广州的李先生想去香港,他可乘坐的班次
select*
from班次
where出发地='广州'and目的地='香港';
(5)查询旅客1信息及付款情况
select姓名,性别,身份证号,座位号,折扣,实付款,付款状态
from旅客,购买
where购买.旅客编号=旅客.旅客编号and旅客.旅客编号='001';
(6)查询班次1,座位号200的旅客信息
select姓名,性别,身份证号,联系电话
from旅客,车票,购买
where车票.座位号=购买.座位号and车票.班次编号='1'
and车票.座位号='200'and旅客.旅客编号=购买.旅客编号;
5总结与展望
一番的努力之后,终于完成了这次课程设计。
通过这次课程设计,真心觉得数据库是一门实践性较强的课程,有时候不是看看书本就能够把数据库的知识完成弄懂,要真正弄懂还是需要实际上机操作,更加明白了理论与实际应用相结合的重要性。
当要实践数据库的时候碰到了不少问题,例如在设计的时候应该先设计E-R图,因为这是可以帮助你理清思路的一步,很重要很关键,然后就是主键外键的建立是很重要的,而且在插入删除的时候也要注意限制。
感觉经验是要积累的,在这次课程设计中我都积累了不少经验,相信能为我以后的计算机之路铺上坚实的一个台阶。