数据库课程设计机票预订系统文档格式.docx
《数据库课程设计机票预订系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计机票预订系统文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
需求分析
随着社会发展的不断地进步,人民消费水平的不断地提高,致使民航事业不断壮大,乘坐民航的消费者越来越多,因此机票的预定也越显重要,航空公司为方便客户出行,需开发一个机票预定系统。
根据预定机票的客户信息,包括姓名、性别、身份证号码、出行时间、出行目的地等,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班。
(1)某航空公司机票预订管理系统需要如下信息:
航班信息:
航班编号、飞机型号、起飞地、目的地、起飞时间、飞行时间等。
飞机信息:
飞机编号、座位数。
业务员信息:
工号、业务员姓名。
机票信息:
航班编号、旅客编号、座位号、票价、当前预售状态等。
旅客信息:
姓名、性别、联系电话、身份证号等。
(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航班信息
航班编号
机舱等级
起飞地
目的地
起飞时间
datetime
年月日/时分
到达时间
表4-3业务员信息
工号
业务员姓名
表4-4机票信息
座位号
票价
float
(2)
元
当前预售状态
Y/N
表4-5旅客信息
旅客编号
姓名
性别
身份证号
联系方式
15
表4-6购买信息
折扣
float
(1)
打几折
实付款
购买数量
购买的机票
付款状态
系统实施
4.3.1数据库实现
先建立机票预订数据库,然后根据数据库的基本表结构分别建立六个基本表,这里给出具体的SQL语句如下。
(1)CreateDatabase机票预订;
(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业务员(工号)
4.3.2数据载入
(1)
图4-7飞机表录入
(2)
图4-8航班表信息
(3)
图4-9业务员表信息
(4)
图4-10机票表信息
(5)
图4-11旅客表信息
(6)
图4-12购买表信息
运行与测试
4.4.1运行与测试
(1)查询航班1的剩余机票总数
select航班编号,count(座位号)剩余机票总数
from机票
where航班编号='
航班1'
groupby航班编号,当前预售状态
having当前预售状态='
N'
;
图4-13
(2)查询航班1,各机舱剩余机票数
select航班编号,机舱等级,count(座位号)剩余机票数
groupby航班编号,机舱等级,当前预售状态
图4-14
(3)查询航班3各机舱机票的预订情况
select航班编号,机舱等级,count(座位号)售出票数
航班3'
groupby航班编号,机舱等级,当前预售状态
Y'
图4-15
(4)北京的李先生想去上海,他可乘坐的航班
select*
from航班
where起飞地='
北京'
and目的地='
上海'
图4-16
(5)查询旅客1信息及付款情况
select姓名,性别,身份证号,联系方式,座位号,折扣,实付款,付款状态
from旅客,购买
where购买.旅客编号=旅客.旅客编号and旅客.旅客编号='
旅客1'
图4-17
(6)查询航班3,座位号3-01的旅客信息
select姓名,性别,身份证号,联系方式
from旅客,机票,购买
where机票.座位号=购买.座位号and机票.航班编号='
and机票.座位号='
3-01'
and旅客.旅客编号=购买.旅客编号;
图4-18
4.4.2分析
设计数据库时,需要考虑相关功能的实现如,客户发票的打印和结算,员工工资的结算等等,因为只设计数据库,没有相关的前台程序,实现起来有点复杂,所以通过建立视图去实现相应的结算功能,这样也能保证相关数据的安全性。
5总结与展望
经过一周的努力,本次课程设计终于完成了。
通过这次课程设计,我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,同时我明白了理论与实际应用相结合的重要性,掌握并熟练运用SQL语句,提高了我的综合运用所学知识的能力。
在本次课程设计和过程中,由于时间不是很长,再加上要求独立完成,系统需求分析上可能不是很全面,程序中还存在很多缺,希望老师能给予批评和指导。
经过这次课程设计,我的知识得到了很大,经验也更加丰富。
希望能在今后的不断的学习中和努力中,把程序做得更好。
最后,感谢指导老师给予的帮助。