《数据库课程设计20-机票预订信息系统14319》由会员分享,可在线阅读,更多相关《数据库课程设计20-机票预订信息系统14319(16页珍藏版)》请在金锄头文库上搜索。
1、 软 件 学 院 课程设计报告书 课程名称 数据库原理及应用 设计题目 机票预订信息系统 专业班级 学 号 姓 名 指导教师 孙宁 2014 年 6 月 目录 1 设计时间 . 1 2 设计目的 . 1 3 设计任务 . 1 4 设计内容 . 1 需求分析 . 1 系统设计 . 2 概念结构设计 . 2 逻辑结构设计 . 4 物理结构设计 . 5 系统实施 . 7 数据库实现 . 7 数据载入 . 9 运行与测试 . 10 运行与测试 . 10 分析 . 12 5 总结与展望 . 错误!未定义书签。 参考文献 . 14 1 设计时间 2014年 6 月 23 日2012 年 6 月 28 日
2、2 设计目的 数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完数据库原理及应用课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。 3 设计任务 本课程设计任务是通过开发一个数据库机票预订信息系统, 学习数据库系统的设计与开发, SQL 相关的软件为开发工具。通过对计算机
3、硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。 4 设计内容 需求分析 随着社会发展的不断地进步,人民消费水平的不断地提高,致使民航事业不断壮大,乘坐民航的消费者越来越多,因此机票的预定也越显重要,航空公司为方便客户出行,需开发一个机票预定系统。根据预定机票的客户信息,包括姓名、性别、身份证号码、出行时间、出行目的地等,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班。 (1) 某航空公司机票预订管理系统需要如下信息: 航班信息:航班编号、
4、飞机型号、起飞地、目的地、起飞时间、飞行时间等。 飞机信息:飞机编号、座位数。 业务员信息:工号、业务员姓名。 机票信息:航班编号、旅客编号、座位号、票价、当前预售状态等。 旅客信息:姓名、性别、联系电话、身份证号等。 (2) 系统功能的基本要求: 按照一定条件查询、统计符合条件的航班、机票等;并能查询、统计机票预订情况。 系统设计 概念结构设计 分 E-R 图设计: 根据需求分析抽象出信息结构,可得该系统的 E-R 图。 (1) 航班 E-R 图,如图 4-1 所示。 图 4-1 航班 E-R 图 (2) 飞机 E-R 图,如图 4-2 所示。 图 4-2 飞机 E-R 图 (3) 机票 E
5、-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-6 总体概念结构 E-R 图转化成关系模型。 (主键用下划
6、线标出) 飞机(飞机编号,机舱等级,座位数) 航班(航班编号,飞机编号,出发地,目的地,起飞时间,到达时间) 业务员(工号,业务员姓名) 机票(航班编号,旅客编号,机舱等级,座位号,票价,当前预售状态) n 航班 旅客 包含 机票 购买 n 姓名 性别 身份证号联系电话 起飞时间 航班编号 目的地 出发地 座位号 当前预售状态 售出 票价 姓名 工号 1 m m n 有 飞机 1 1 飞机编号 折扣 到达时间 付款状态 数量 座位号 包含 1 n 机舱等级 实付款 业务员 旅客编号 旅客(旅客编号,姓名,性别,身份证号,联系电话) 购买(旅客编号,座位号,折扣,实付款,数量,工号,付款状态)
7、物理结构设计 根据总体结构图设计机票预定系统基本表结构,其相应标的定义如下: 表 4-1 飞机信息 中文名称 类型 长度 是否非空 主关键字 备注 飞机编号 char 10 Y 座位数 int N 总座位 表 4-2 航班信息 中文名称 类型 长度 是否非空 主关键字 备注 航班编号 char 10 Y 飞机编号 char 10 N 机舱等级 char 10 N 起飞地 char 10 N 目的地 char 10 N 起飞时间 datetime 年月日/时分 到达时间 datetime 年月日/时分 表 4-3 业务员信息 中文名称 类型 长度 是否非空 主关键字 备注 工号 char 10
8、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 1
9、0 N 折扣 float(1) 打几折 实付款 float(2) N N 元 购买数量 int N N 购买的机票 工号 char 10 N 付款状态 char 10 N Y/N 系统实施 数据库实现 先建立机票预订数据库,然后根据数据库的基本表结构分别建立六个基本表,这里给出具体的 SQL语句如下。 (1)Create Database 机票预订; (2)创建飞机表 Create table 飞机 ( 飞机编号 char(10) not null, 座位数 int not null, primary key(飞机编号) ); (3)创建航班表 Create table 航班 ( 航班编号 c
10、har(10) primary key, 飞机编号 char(10) not null, 起飞地 char(10) not null, 目的地 char(10) not null, 起飞时间 datetime, 到达时间 datetime, Foreign key(飞机编号) references 飞机(飞机编号) ); (4)创建业务员表 Create table 业务员 ( 工号 char(10) primary key, 业务员姓名 char(10) not null ); (5)创建机票表 Create table 机票 ( 航班编号 char(10) not null, 机舱等级 c
11、har(10) not null, 座位号 char (10)primary key Constraint c2 check(座位号 between 001 and 500), 票价 float(2) not null, 当前预售状态 char(10) not null, Constraint c1 check(机舱等级 in (头等舱,公务舱,经济舱), Foreign key(航班编号) references 航班(航班编号), ); (6)创建旅客表 Create table 旅客 ( 旅客编号 char(10) primary key, 姓名 char(10) not null, 性别
12、 char(10) not null, 身份证号 char(20) not null, 联系电话 char(15) not null ); (7)创建购买表 Create table 购买 ( 旅客编号 char(10) not null, 座位号 char(10) not null, primary key(旅客编号, 座位号), 折扣 float(1), 实付款 float(2) not null, 工号 char(10) not null, 购买数量 int not null, 付款状态 char(10) not null, Foreign key(旅客编号) references 旅客
13、(旅客编号), Foreign key(座位号) references 机票(座位号), Foreign key(工号) references 业务员(工号) ); 数据载入 (1) 图 4-7 飞机表录入 (2) 图 4-8 航班表信息 (3) 图 4-9 业务员表信息 (4) 图 4-10 机票表信息 (5) 图 4-11 旅客表信息 (6) 图 4-12 购买表信息 运行与测试 运行与测试 (1)查询航班 1 的剩余机票总数 select 航班编号, count(座位号)剩余机票总数 from 机票 where 航班编号=航班 1 group by 航班编号,当前预售状态 having
14、当前预售状态=N; 图 4-13 (2)查询航班 1,各机舱剩余机票数 select 航班编号,机舱等级, count(座位号)剩余机票数 from 机票 where 航班编号=航班 1 group by 航班编号,机舱等级,当前预售状态 having 当前预售状态=N; 图 4-14 (3)查询航班 3 各机舱机票的预订情况 select 航班编号,机舱等级,count(座位号)售出票数 from 机票 where 航班编号=航班 3 group by 航班编号,机舱等级,当前预售状态 having 当前预售状态=Y; 图 4-15 (4)北京的李先生想去上海,他可乘坐的航班 select
15、* from 航班 where 起飞地=北京 and 目的地=上海; 图 4-16 (5)查询旅客 1 信息及付款情况 select 姓名,性别,身份证号,联系方式,座位号,折扣,实付款,付款状态 from 旅客,购买 where 购买. 旅客编号=旅客. 旅客编号 and 旅客. 旅客编号=旅客 1; 图 4-17 (6)查询航班 3,座位号 3-01 的旅客信息 select 姓名,性别,身份证号,联系方式 from 旅客,机票,购买 where 机票.座位号=购买.座位号 and 机票.航班编号=航班 3 and 机票.座位号=3-01 and 旅客.旅客编号=购买.旅客编号; 图 4-
16、18 分析 设计数据库时,需要考虑相关功能的实现如,客户发票的打印和结算,员工工资的结算等等,因为只设计数据库,没有相关的前台程序,实现起来有点复杂,所以通过建立视图去实现相应的结算功能,这样也能保证相关数据的安全性。 5 总结与展望 经过一周的努力,本次课程设计终于完成了。通过这次课程设计,我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,同时我明白了理论与实际应用相结合的重要性,掌握并熟练运用 SQL语句,提高了我的综合运用所学知识的能力。 在本次课程设计和过程中,由于时间不是很长,再加上要求独立完成,系统需求分析上可能不是很全面,程序中还存在很多缺,希望老师能给予批评和指
17、导。经过这次课程设计,我的知识得到了很大,经验也更加丰富。希望能在今后的不断的学习中和努力中,把程序做得更好。 最后,感谢指导老师给予的帮助。 参考文献 1 屈辉立,陈可明,石武信.JSP 网站编程教程M.第 1版, 北京:北京希望电子出版社,2005 2 白勇.用 B/S 模式构建在线考试系统J,重庆电力高等专科学校学报,2003,10(4): 100130. 3 Jiang Guo,Yuehong Liao,Behzad Survey of J2EE Application Performance Management SystemsJ,Proceedings of the IEEE International Conference on Web Services (ICWS04),(5):1732. 4 VB 数据库管理范例:&cid=23EB/OL 成绩评定 成绩 教师签字