大数据库课程设计机票预订系统.docx
《大数据库课程设计机票预订系统.docx》由会员分享,可在线阅读,更多相关《大数据库课程设计机票预订系统.docx(24页珍藏版)》请在冰豆网上搜索。
![大数据库课程设计机票预订系统.docx](https://file1.bdocx.com/fileroot1/2022-10/11/1c3c6bbf-63ce-4c08-8050-5a782a608c19/1c3c6bbf-63ce-4c08-8050-5a782a608c191.gif)
大数据库课程设计机票预订系统
1前言
航空客运业务诞生已有近一个世纪了,作为现有交通工具中最方便快捷的一种,它确确实实地给民众的生活、出行带来了极大的方便。
随着社会的进步,人们的生活水平得到很大的提高,民航的开展也很迅速,乘坐飞机的旅客也大大增多。
假设现在没有售票系统,民航将也不会存在,人们的出行极大不便。
换句话说,一个功能完善的机票预定信息管理系统对人们的日常生活已经显得尤其重要。
现设计一个机票预定信息管理系统的数据库。
首先根据问题需求设计E-R模型,包括几个主要的实体,如航空公司、飞机、乘客、航班、机票、业务员等以与相关的联系。
然后再转根据E-R模型设计出相应的关系模型,对于关系模型的每一个关系,可以设计出相应的表,接着分配表空间、创建视图、设计存储过程、函数和触发器以与设计安全与备份策略。
2需求分析
课程设计目的
通过专业课程设计Ⅱ,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。
本设计要求对实际问题进展需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。
同时要求对数据库的运营、管理与使用上进展必要的规划和实现。
2.2课程设计任务
系统需要管理以下主要信息:
〔1〕航班根本信息,包括航班的编号、飞机名称、机舱等级等。
〔2〕机票信息,包括票价、折扣、当前预售状态与经手业务员等。
〔3〕客户根本信息,包括、联系方式、证件与、付款情况等。
根本要求:
〔1〕根据需求,补充必要的数据库实体,建立ER模型,通过ER图表示。
〔2〕在Oracle中创建该系统的数据库,并在数据库中实现各表,写入一定的数据。
〔3〕从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。
〔4〕从数据检验的角度出发,为相关的表建立至少1个触发器。
〔5〕从数据更新或修改的角度出发,设计至少1个存储过程。
〔6〕从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。
〔7〕预计每个表的大致容量和增长速度,指定备份的方案,写出相关的备份命令。
2.3设计环境
〔1〕WINDOWS2000/2003/XP系统
〔2〕Oracle数据库管理系统
2.4开发语言
PL/SQL语言
3分析和设计
3.1系统E-R模型
经过分析可以知道,机票预定信息管理系统一共有航空公司、飞行、航班、机舱、机票、乘客和业务员这几个实体,航空公司有公司编号、公司名、公司和公司地址这几个属性;飞机有飞机编号、飞机名称两个属性;航班有航班号、出发地、目的地、起飞时刻和飞行时间这几个属性;机舱有机舱等级、座位数、定价和折扣这几个属性;机票有机票编号、登机日期、预定状态、座位号这几个属性;乘客有号、、联系、住址这几个属性;业务员有业务员编号、业务员、业务员号、联系和住址这几个属性。
一个航空公司有多架飞机和多名业务员,一架飞机可有多个航班,一个航班有多种机舱等级,一个机舱可有多机票;乘客、业务员和机票之间有售票联系,售票联系有售票日期这一属性。
根据以上分析可以画出系统E-R图,系统E-R图如图3.1所示:
图3.1系统E-R图
3.2表空间与表的设计
〔1〕表空间的设计。
经过分析可知,乘客表、机票信息表和机票销售表数据量比拟大,可单独分配表空间,其他的表数据量较少,可一起使用一个表空间。
创建表分配表空间和添加数据文件,SQL语句如下:
CREATESMALLFILETABLESPACE"PASSENGER"
DATAFILE'F:
\APP\ORACLE\ORADATA\ORCL\TICKETSALE\passenger.dbf'
SIZE100MAUTOEXTENDONNEXT5MMAXSIZEUNLIMITED
LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;
CREATESMALLFILETABLESPACE"TICKET"
DATAFILE'F:
\APP\ORACLE\ORADATA\ORCL\TICKETSALE\ticket.dbf'
SIZE100MAUTOEXTENDONNEXT5MMAXSIZEUNLIMITED
LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;
CREATESMALLFILETABLESPACE"TICKETSALE"
DATAFILE'F:
\APP\ORACLE\ORADATA\ORCL\TICKETSALE\ticketsale.dbf'
SIZE100MAUTOEXTENDONNEXT5MMAXSIZEUNLIMITED
LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;
CREATESMALLFILETABLESPACE"OTHERS"
DATAFILE'F:
\APP\ORACLE\ORADATA\ORCL\TICKETSALE\others.dbf'
SIZE100MAUTOEXTENDONNEXT5MMAXSIZEUNLIMITED
LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;
表空间结构如图3.2所示:
图3.2表空间结构图
〔2〕关系模型的设计。
根据E-R模型,可以得出相应的关系模型,关系模型如下:
pany〔o,ame,ctel,caddress〕
passenger〔pID,pname,ptel,paddress〕
salesman〔sno,sID,sname,stel,saddress,o〕
airplane〔ano,aname,o〕
flight〔fno,departure,arrival,time,flytime,ano〕
cabin〔fno,cblevel,seats,price〕
ticket〔tno,fno,cblevel,flydate,status,seat,discount〕
ticketsale〔tno,pID,sno,saledate〕
〔3〕表的创建。
对于关系模型的每一个关系,可以得出相应的一表,创建表的SQL语句如下:
CREATETABLE"SYSTEM"."PANY"(
"O"VARCHAR2(10)NOTNULL,
"AME"VARCHAR2(20)NOTNULL,
"CTEL"VARCHAR2(20),
"CADDRESS"VARCHAR2(50),
PRIMARYKEY("O")VALIDATE
)TABLESPACE"OTHERS";
CREATETABLE"SYSTEM"."PASSENGER"(
"PID"VARCHAR2(20)NOTNULL,
"PNAME"VARCHAR2(20)NOTNULL,
"PTEL"VARCHAR2(20),
"PADDRESS"VARCHAR2(50),
PRIMARYKEY("PID")VALIDATE
)TABLESPACE"PASSENGER";
CREATETABLE"SYSTEM"."SALESMAN"(
"SNO"VARCHAR2(10)NOTNULL,
"SID"VARCHAR2(20)NOTNULL,
"SNAME"VARCHAR2(20)NOTNULL,
"STEL"VARCHAR2(20),
"SADDRESS"VARCHAR2(50),
"O"VARCHAR2(10)NOTNULL,
PRIMARYKEY("SNO")VALIDATE,
FOREIGNKEY("O")REFERENCES"SYSTEM"."PANY"("O")VALIDATE
)TABLESPACE"OTHERS";
CREATETABLE"SYSTEM"."AIRPLANE"(
"ANO"VARCHAR2(10)NOTNULL,
"ANAME"VARCHAR2(20)NOTNULL,
"O"VARCHAR2(10)NOTNULL,
PRIMARYKEY("ANO")VALIDATE,
FOREIGNKEY("O")REFERENCES"SYSTEM"."PANY"("O")VALIDATE
)TABLESPACE"OTHERS";
CREATETABLE"SYSTEM"."FLIGHT"(
"FNO"VARCHAR2(10)NOTNULL,
"DEPARTURE"VARCHAR2(20)NOTNULL,
"ARRIVAL"VARCHAR2(20)NOTNULL,
"TIME"DATENOTNULL,
"FLYTIME"INTERVALDAYTOSECONDNOTNULL,
"ANO"VARCHAR2(10)NOTNULL,
PRIMARYKEY("FNO")VALIDATE,
FOREIGNKEY("ANO")REFERENCES"SYSTEM"."AIRPLANE"("ANO")VALIDATE
)TABLESPACE"OTHERS";
CREATETABLE"SYSTEM"."CABIN"(
"FNO"VARCHAR2(10)NOTNULL,
"CBLEVEL"NUMBER
(1)NOTNULL,
"SEATS"NUMBER(3)NOTNULL,
"PRICE"NUMBER(5)NOTNULL,
PRIMARYKEY("FNO","CBLEVEL")VALIDATE,
FOREIGNKEY("FNO")REFERENCES"SYSTEM"."FLIGHT"("FNO")VALIDATE
)TABLESPACE"OTHERS";
CREATETABLE"SYSTEM"."TICKET"(
"TNO"NUMBER(10)NOTNULL,
"FNO"VARCHAR2(10)NOTNULL,
"CBLEVEL"NUMBER
(1)NOTNULL,
"FLYDATE"DATENOTNULL,
"STATUS"NUMBER
(1)DEFAULT1NOTNULL,
"SEAT"NUMBER(3)NOTNULL,
"DISCOUNT"NUMBER(3,2)NOTNULL,
PRIMARYKEY("TNO")VALIDATE,
FOREIGNKEY("FNO","CBLEVEL")REFERENCES"SYSTEM"."CABIN"("FNO","CBLEVEL")VALIDATE
)TABLESPACE"TICKET";
CREATETABLE"SYSTEM"."TICKETSALE"(
"TNO"NUMBER(10)NOTNULL,
"PID"VARCHAR2(20)NOTNULL,
"SNO"VARCHAR2(10)NOTNULL,
"SALEDATE"DATENOTNULL,
PRIMARYKEY("TNO","PID","SNO")VALIDATE,
FOREIGNKEY("TNO")REFERENCES"SYSTEM"."TICKET"("TNO")VALIDATE,
FOREIGNKEY(