《数据库原理》课程设计机票预订管理系统学院:计算机与信息科学学院专业:计算机科学与技术班级:计科1303姓名学号:XXX13203403XX指导教师:高金华职称讲师完成时间:2015年12月《数据库原理》课程设计........................................................................121系统概述............................................................................................32数据库设计........................................................................................42.1需求分析.....................................................................................42.2概念结构设计.............................................................................72.3逻辑结构设计...........................................................................102.4物理结构设计...........................................................................112.5设计小结...................................................................................153应用程序设计..................................................................................163.1需求分析...................................................................................163.2概要设计...................................................................................193.3详细设计...................................................................................203.4系统测试...................................................................................323.5设计小结...................................................................................3831系统概述随着全球进入信息化时代,航空公司为了适应当前越来越激烈的竞争,增强公司的信息化程度,提高公司的售票管理的效率,就建立起了相应的航空预订票系统,成功实现提高了航空系统的售票效率和管理水平。在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。根据可行性研究的结果和客户的要求,分析现有情况及问题。随着社会发展的不断地进步,人民消费水平的不断地提高,致使民航事业不断壮大,乘坐民航的消费者越来越多,因此机票的预定也越显重要,航空公司为方便客户出行,需开发一个机票预定系统。根据预定机票的客户信息,包括姓名、性别、身份证号码、出行时间、出行目的地等,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班42数据库设计2.1需求分析2.1.1数据流图数据库用户用户信息录入机票订票、改签、退票机票信息录入管理员更新航班信息航班52.1.2数据词典表2-1plane飞机信息表表中列名数据类型可否为空说明flightNumvarchar2primarykey飞机编号seatsnumbernotnull座位数表2-2flight航班信息表表中列名数据类型可否为空说明flightNumvarchar2primarykey航班编号planeNumvarchar2notnull飞机编号startPointvarchar2notnull出发地detinationvarchar2notnull目的地startTimevarchar2notnull起飞时间endTimevarchar2notnull到达时间表2-3ticket机票表表中列名数据类型可否为空说明flightNumvarchar2primarykey航班号gradevarchar2notnull机舱等级seatNumvarchar2notnull座位号ticketPricenumbernotnull机票价格presellvarchar2notnull预售状态表2-4passenger旅客表表中列名数据类型可否为空说明namevarchar2primarykey旅客名sexvarchar2notnull旅客性别idNumvarchar2notnull身份证phoneNumvarchar2notnull手机号passwordvarchar2notnull密码表2-5buy购买表表中列名数据类型可否为空说明namevarchar2foreignkey旅客名flightNumvarchar2foreignkey航班号greadvarchar2notnull机舱等级6seatNumvarchar2notnull座位号paymoneynumbernotnull机票价格buyNumvarchar2notnull购买数量表2-6manager管理员表表中列名数据类型可否为空说明mnamevarchar2notnullunique管理员编号mpwdvarchar2notnull管理员姓名2.1.3加工说明我们的系统需要六个实体:(1)飞机实体实体名:plane角色:关于飞机的信息属性:飞机编号,座位数主键:飞机编号(2)航班实体实体名:flight角色:航班信息属性:航班编号,出发地,目的地,起飞时间,到达时间主键:航班编号(3)机票实体实体名:ticket角色:机票信息属性:航班号,机舱等级,座位号,机票价格,余票数7主键:座位号(4)旅客实体实体名:passenger角色:旅客信息属性:旅客名,旅客性别,身份证,手机号,密码主键:旅客名(5)机票购买实体实体名:buy角色:旅客购买机票后的信息属性:旅客名,航班号,机舱等级,座位号,机票价格,购买数量(6)管理员实体实体名:manager角色:管理员信息属性:管理员名,密码2.2概念结构设计2.2.1E-R图根据需求分析抽象出信息结构,可得该系统的E-R图。8(1)航班实体属性图,航班的信息由航班号、飞机编号、出发地、目的地、起飞时间、到达时间等属性组成如图所示。图(1)航班信息实体属性图(2)飞机是实体属性图,飞机信息由飞机编号和座位数属性组成如图所示。图(2)飞机信息实体属性图(3)管理员实体属性图,管理员信息由姓名和登录密码属性组成如图所示图(3)管理员信息实体属性图(4)机票实体属性图,机票信息有:航班号、机舱等级、座位号、票价、预售状态等属性如图所示。目的地航班号起飞时间出发地到达时间飞机编号航班信息机舱等级座位号票价飞机信息飞机编号座位数管理员信息姓名登陆密码9图(4)机票信息实体属性图(5)旅客属性图,旅客信息有:身份证号、姓名、性别、联系方式、密码等属性如图所示。图(5)旅客信息实体属性图(6)订单属性图,订单信息有:姓名、航班号、座位号、机舱等级、金额、订单数等属性如图所示。图(6)订单信息实体属性图根据属性图和需求分析,可得到总E-R图,如图所示。机票信息航班号旅客信息身份证号姓名性别联系方式订单信息姓名航班号座位号金额预售状态密码机舱等级订单数10图(7)总的E-R图2.3逻辑结构设计2.3.1关系模式将总体概念结构E-R图转化成关系模型。(主键用下划线标出)飞机(飞机编号,座位数)航班(航班编号,飞机编号,出发地,目的地,起飞时间,到达时间)管理员(管理员姓名,密码)机票(航班编号,机舱等级,座位号,票价,当前预售状态)旅客(身份证号,姓名,性别,密码,联系电话)购买(姓名,航班号,座位号,机舱等级,实付款,数量)112.4物理结构设计根据总体结构图设计机票预定系统基本表结构,其相应标的定义如下:表1飞机信息中文名称类型长度是否非空主关键字备注飞机编号varchar210Y座位数numberN总座位表2航班信息中文名称类型长度是否非空主关键字备注航班号varchar210Y飞机编号varchar210N机舱等级varchar210N起飞地varchar210N目的地varchar210N起飞时间varchar2年月日/时分到达时间varchar2年月日/时分表3管理员信息中文名称类型长度是否非空主关键字备注管理员姓名char10Y登陆密码char10N表4机票信息中文名称类型长度是否非空主关键字备注航班号char10N机舱等级char10N座位号char10Y票价float(2)N元当前预售状态char10NY/N表5旅客信息中文名称类型长度是否非空主关键字备注旅客姓名char10Y身份证号char10N12性别char10N联系方式char10N密码char15N表4-6购买信息中文名称类型长度是否非空主关键字备注旅客姓名char10Y座位号char10N航班号float(1)机舱等级float(2)NN实付款intNN购买数量char10N数据库实现:--飞机信息表planecreatetableplane(flightNumvarchar2(10),--航班号seatsnumber(8)notnull--座位数);insertintoplanevalues('航班1',5);insertintoplanevalues('航班2',5);insertintoplanevalues('航班3',5);insertintoplanevalues('航班4',5);select*fromplane;--航班表flightcreatetableflight(flightNumvarchar2(10)primarykey,--航班编号planeNumvarchar2(10),--飞机编号startPointvarchar2(20)notnull,--出发地detinationvarchar2(10)notnull,--目的地startTimevarchar2(20)notnull,--起飞时间endtimevarchar2(20)notnull--到达时间);--插入数据到航班表(flight)中insertintoflightvalues('航班1','长沙','武汉','2015-12-2908:1300','2015-12-2910:00');insertintoflightvalues('航班2','北京','台湾','2015-12-3008:30','2015-12-2911:00');insertintoflightvalues('航班3','北京','上海','2016-01-0111:30','2016-01-115:00');insertintoflightvalues('航班4','广州','杭州','2016-01