大数据库课程设计--机票预订系统

  • 格式:doc
  • 大小:1.19 MB
  • 文档页数:21

word

0 / 21 目 录

1 前言0

2 需求分析1

2.1 课程设计目的1

2.2 课程设计任务1

2.3 设计环境1

2.4 开发语言2

3 分析和设计2

3.1 系统E-R模型2

3.2 表空间与表的设计3

3.3 视图设计7

3.4 存储过程、函数、包的设计12

3.5 触发器设计17

3.6 角色、用户、权限设计18

3.7 备份方案设计19

4 课程设计总结20

参考文献20

致20

1 前言

航空客运业务诞生已有近一个世纪了,作为现有交通工具中最方便快捷的一种,它确确实实地给民众的生活、出行带来了极大的方便。随着社会的进步,人们的生活水平得到很大的提高,民航的开展也很迅速,乘坐飞机的旅客也大大增多。假设现在没有售票系统,民航将也不会存在,人们的出行极大不便。换句话说,一个功能完善的机票预定信息管理系统对人们的日常生活已经显得尤其重要。

现设计一个机票预定信息管理系统的数据库。首先根据问题需求设计E-R模型,word

1 / 21 包括几个主要的实体,如航空公司、飞机、乘客、航班、机票、业务员等以与相关的联系。然后再转根据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系统 word

2 / 21 〔2〕Oracle数据库管理系统

2.4 开发语言

PL/SQL语言

3 分析和设计

3.1 系统E-R模型

经过分析可以知道,机票预定信息管理系统一共有航空公司、飞行、航班、机舱、机票、乘客和业务员这几个实体,航空公司有公司编号、公司名、公司和公司地址这几个属性;飞机有飞机编号、飞机名称两个属性;航班有航班号、出发地、目的地、起飞时刻和飞行时间这几个属性;机舱有机舱等级、座位数、定价和折扣这几个属性;机票有机票编号、登机日期、预定状态、座位号这几个属性;乘客有号、、联系、住址这几个属性;业务员有业务员编号、业务员、业务员号、联系和住址这几个属性。

一个航空公司有多架飞机和多名业务员,一架飞机可有多个航班,一个航班有多种机舱等级,一个机舱可有多机票;乘客、业务员和机票之间有售票联系,售票联系有售票日期这一属性。

根据以上分析可以画出系统E-R图,系统E-R图如图3.1所示:

乘客姓名身份证号联系电话住址业务员姓名业务员编号身份证号住址联系电话航空公司公司名公司编号公司电话公司地址飞机飞机编号飞机名称售票属于机票座位号折扣n属于n1属于n航班航班号出发地目的地起飞时刻飞行时间11属于n1机票编号n销售日期1定价属于n1登机日期购票n1机舱机舱等级座位数属于n1航班号销售日期

图3.1 系统E-R图 word

3 / 21 3.2 表空间与表的设计

〔1〕表空间的设计。经过分析可知,乘客表、机票信息表和机票销售表数据量比拟大,可单独分配表空间,其他的表数据量较少,可一起使用一个表空间。

创建表分配表空间和添加数据文件,SQL语句如下:

CREATE SMALLFILE TABLESPACE "PASSENGER"

DATAFILE 'F:\APP\ORACLE\ORADATA\ORCL\TICKETSALE\passenger.dbf'

SIZE 100M AUTOEXTENDONNEXT 5M MAXSIZEUNLIMITED

LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENT AUTO;

CREATE SMALLFILE TABLESPACE "TICKET"

DATAFILE 'F:\APP\ORACLE\ORADATA\ORCL\TICKETSALE\ticket.dbf'

SIZE 100M AUTOEXTENDONNEXT 5M MAXSIZEUNLIMITED

LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENT AUTO;

CREATE SMALLFILE TABLESPACE "TICKETSALE"

DATAFILE 'F:\APP\ORACLE\ORADATA\ORCL\TICKETSALE\ticketsale.dbf'

SIZE 100M AUTOEXTENDONNEXT 5M MAXSIZEUNLIMITED

LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENT AUTO;

CREATE SMALLFILE TABLESPACE "OTHERS"

DATAFILE 'F:\APP\ORACLE\ORADATA\ORCL\TICKETSALE\others.dbf '

SIZE 100M AUTOEXTENDONNEXT 5M MAXSIZEUNLIMITED

LOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENT AUTO;

表空间结构如图3.2所示:

图3.2 表空间结构图

〔2〕关系模型的设计。根据E-R模型,可以得出相应的关系模型,关系模型如下:

pany〔o,ame,ctel,caddress〕

passenger〔pID,pname,ptel,paddress〕 word

4 / 21 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) NOT NULL ,

PRIMARYKEY ("ANO") VALIDATE , word

5 / 21 FOREIGN KEY ("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" (