数据库课程设计--机票预订系统.doc
《数据库课程设计--机票预订系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计--机票预订系统.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数据库课程设计-机票预订系统.精品文档.目 录1 前言12 需求分析12.1 课程设计目的12.2 课程设计任务12.3 设计环境22.4 开发语言23 分析和设计23.1 系统E-R模型23.2 表空间及表的设计33.3 视图设计83.4 存储过程、函数、包的设计123.5 触发器设计173.6 角色、用户、权限设计183.7 备份方案设计194 课程设计总结20参考文献21致 谢211 前言航空客运业务诞生已有近一个世纪了,作为现有交通工具中最方便快捷的一种,它确确实实地给民众的生活、出行带来了极大的方便。随着社会的进步,人们的生活水平得
2、到很大的提高,民航的发展也很迅速,乘坐飞机的旅客也大大增多。假如现在没有售票系统,民航将也不会存在,人们的出行极大不便。换句话说,一个功能完善的机票预定信息管理系统对人们的日常生活已经显得尤其重要。现设计一个机票预定信息管理系统的数据库。首先根据问题需求设计E-R模型,包括几个主要的实体,如航空公司、飞机、乘客、航班、机票、业务员等以及相关的联系。然后再转根据E-R模型设计出相应的关系模型,对于关系模型的每一个关系,可以设计出相应的表,接着分配表空间、创建视图、设计存储过程、函数和触发器以及设计安全与备份策略。2 需求分析2.1 课程设计目的通过专业课程设计,即大型数据库系统课程设计,有助于培
3、养学生综合运用数据库相关知识解决实际问题的能力。本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。同时要求对数据库的运营、管理及使用上进行必要的规划和实现。2.2 课程设计任务系统需要管理以下主要信息:(1)航班基本信息,包括航班的编号、飞机名称、机舱等级等。(2)机票信息,包括票价、折扣、当前预售状态及经手业务员等。(3)客户基本信息,包括姓名、联系方式、证件及号码、付款情况等。基本要求:(1)根据需求,补充必要的数据库实体,建立ER模型,通过ER图表示。(2)在Oracle中创建该系统的数据库,并在数据库中实现各表,写入一定的数据。(3)从实际
4、查询应用出发,为一些主要的应用模块设计至少3个参数化视图。(4)从数据检验的角度出发,为相关的表建立至少1个触发器。(5)从数据更新或修改的角度出发,设计至少1个存储过程。(6)从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。(7)预计每个表的大致容量和增长速度,指定备份的方案,写出相关的备份命令。2.3 设计环境(1)WINDOWS 2000/2003/XP系统(2)Oracle数据库管理系统2.4 开发语言PL/SQL语言3 分析和设计3.1 系统E-R模型经过分析可以知道,机票预定信息管理系统一共有航空公司、飞行、航班、机舱、机票、乘客和业务员这几个实体,航空公司有
5、公司编号、公司名、公司电话和公司地址这几个属性;飞机有飞机编号、飞机名称两个属性;航班有航班号、出发地、目的地、起飞时刻和飞行时间这几个属性;机舱有机舱等级、座位数、定价和折扣这几个属性;机票有机票编号、登机日期、预定状态、座位号这几个属性;乘客有身份证号、姓名、联系电话、住址这几个属性;业务员有业务员编号、业务员姓名、业务员身份证号、联系电话和住址这几个属性。一个航空公司有多架飞机和多名业务员,一架飞机可有多个航班,一个航班有多种机舱等级,一个机舱可有多张机票;乘客、业务员和机票之间有售票联系,售票联系有售票日期这一属性。根据以上分析可以画出系统E-R图,系统E-R图如图3.1所示:图3.1
6、 系统E-R图3.2 表空间及表的设计(1)表空间的设计。经过分析可知,乘客表、机票信息表和机票销售表数据量比较大,可单独分配表空间,其他的表数据量较少,可一起使用一个表空间。创建表分配表空间和添加数据文件,SQL语句如下:CREATE SMALLFILE TABLESPACE PASSENGER DATAFILE F:APPORACLEORADATAORCLTICKETSALEpassenger.dbfSIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE
7、MANAGEMENT AUTO;CREATE SMALLFILE TABLESPACE TICKET DATAFILE F:APPORACLEORADATAORCLTICKETSALEticket.dbf SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITEDLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;CREATE SMALLFILE TABLESPACE TICKETSALE DATAFILE F:APPORACLEORADATAORCLTICKETSALEticket
8、sale.dbf SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;CREATE SMALLFILE TABLESPACE OTHERS DATAFILE F:APPORACLEORADATAORCLTICKETSALEothers .dbf SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT S
9、PACE MANAGEMENT AUTO;表空间结构如图3.2所示:图3.2 表空间结构图(2)关系模型的设计。根据E-R模型,可以得出相应的关系模型,关系模型如下:company(cno,cname,ctel,caddress)passenger(pID,pname,ptel,paddress)salesman(sno,sID,sname,stel,saddress,cno)airplane(ano,aname,cno)flight(fno,departure,arrival,time,flytime,ano)cabin(fno,cblevel,seats,price)ticket(tno,
10、fno,cblevel,flydate,status,seat,discount)ticketsale(tno,pID,sno,saledate)(3)表的创建。对于关系模型的每一个关系,可以得出相应的一张表,创建表的SQL语句如下:CREATE TABLE SYSTEM.COMPANY (CNO VARCHAR2(10) NOT NULL , CNAME VARCHAR2(20) NOT NULL , CTEL VARCHAR2(20), CADDRESS VARCHAR2(50), PRIMARY KEY (CNO) VALIDATE ) TABLESPACE OTHERS;CREATE
11、TABLE SYSTEM.PASSENGER ( PID VARCHAR2(20) NOT NULL , PNAME VARCHAR2(20) NOT NULL , PTEL VARCHAR2(20), PADDRESS VARCHAR2(50), PRIMARY KEY (PID) VALIDATE ) TABLESPACE PASSENGER;CREATE TABLE SYSTEM.SALESMAN ( SNO VARCHAR2(10) NOT NULL , SID VARCHAR2(20) NOT NULL , SNAME VARCHAR2(20) NOT NULL , STEL VAR
12、CHAR2(20), SADDRESS VARCHAR2(50), CNO VARCHAR2(10) NOT NULL , PRIMARY KEY (SNO) VALIDATE ,FOREIGN KEY (CNO) REFERENCES SYSTEM.COMPANY (CNO) VALIDATE) TABLESPACE OTHERS;CREATE TABLE SYSTEM.AIRPLANE ( ANO VARCHAR2(10) NOT NULL , ANAME VARCHAR2(20) NOT NULL , CNO VARCHAR2(10) NOT NULL ,PRIMARY KEY (ANO
13、) VALIDATE ,FOREIGN KEY (CNO) REFERENCES SYSTEM.COMPANY (CNO) VALIDATE) TABLESPACE OTHERS;CREATE TABLE SYSTEM.FLIGHT ( FNO VARCHAR2(10) NOT NULL , DEPARTURE VARCHAR2(20) NOT NULL , ARRIVAL VARCHAR2(20) NOT NULL , TIME DATE NOT NULL , FLYTIME INTERVAL DAY TO SECOND NOT NULL , ANO VARCHAR2(10) NOT NUL
14、L , PRIMARY KEY (FNO) VALIDATE ,FOREIGN KEY (ANO) REFERENCES SYSTEM.AIRPLANE (ANO) VALIDATE ) TABLESPACE OTHERS;CREATE TABLE SYSTEM.CABIN ( FNO VARCHAR2(10) NOT NULL , CBLEVEL NUMBER(1) NOT NULL , SEATS NUMBER(3) NOT NULL ,PRICE NUMBER(5) NOT NULL , PRIMARY KEY (FNO, CBLEVEL) VALIDATE ,FOREIGN KEY (
15、FNO) REFERENCES SYSTEM.FLIGHT (FNO) VALIDATE) TABLESPACE OTHERS;CREATE TABLE SYSTEM.TICKET ( TNO NUMBER(10) NOT NULL , FNO VARCHAR2(10) NOT NULL , CBLEVEL NUMBER(1) NOT NULL , FLYDATE DATE NOT NULL , STATUS NUMBER(1) DEFAULT 1 NOT NULL , SEAT NUMBER(3) NOT NULL , DISCOUNT NUMBER(3, 2) NOT NULL ,PRIM
16、ARY KEY (TNO) VALIDATE ,FOREIGN KEY (FNO, CBLEVEL) REFERENCES SYSTEM.CABIN (FNO, CBLEVEL) VALIDATE) TABLESPACE TICKET;CREATE TABLE SYSTEM.TICKETSALE ( TNO NUMBER (10) NOT NULL , PID VARCHAR2(20) NOT NULL , SNO VARCHAR2(10) NOT NULL , SALEDATE DATE NOT NULL , PRIMARY KEY (TNO, PID, SNO) VALIDATE ,FOR
17、EIGN KEY (TNO) REFERENCES SYSTEM.TICKET (TNO) VALIDATE , FOREIGN KEY (PID) REFERENCES SYSTEM.PASSENGER (PID) VALIDATE , FOREIGN KEY (SNO) REFERENCES SYSTEM.SALESMAN (SNO) VALIDATE) TABLESPACE TICKETSALE;(4)为表添加数据由于表company、salesman、airplane、flight和cabin是公司管理员通过应用程序的管理端预先录入的,因此应用程序需要为这些表添加一定数据,应用程序将会
18、执行INSERT语句对表进行插入数据。company的数据如表3.1所示:CNO CNAMECTELCADDRESSC0001朝云航空15173913883广东省广州市C0002北京航空18601088888北京市C0003长沙航空18607318888湖南省长沙市表3.1 company表的数据salesman的数据如表3.2所示:SNO SIDSNAMESTELSADDRESSCNOS0001440902198811111111邓春国06682888888广东省茂名市茂南区C0001S0002440902198811111111王军01022888888福建省漳州市C0002S000344
19、0902198822222222丁磊07398888888湖南省邵阳市C0003S0004440902198811111118暮云06682888886广东省茂名市茂南区C0001表3.2 salesman表的数据airplane的数据如表3.3所示:ANO ANAMECNOA0001波音737C0001A0002波音777C0001A0003波音737C0002A0004麦道82C0003表3.3 airplane表的数据flight的数据如表3.4所示:FNO DEPARTUREARRIVALTO_CHAR(TIME,HH-MI-SS)FLYTIMEANOF0001广州北京07-50-00
20、0 3:30:0.0A0001F0002北京广州12-30-000 3:30:0.0A0001F0003广州长沙08-00-000 1:5:0.0A0002F0004长沙广州10-20-000 1:5:0.0A0002F0005北京长沙09-10-000 2:50:0.0A0003F0006长沙北京12-50-000 2:50:0.0A0003F0007长沙广州07-35-000 1:10:0.0A0004F0008广州长沙10-05-000 1:10:0.0A0004表3.4 flight表的数据cabin的数据如表3.5所示:FNO CBLEVELSEATSPRICEF0001150900
21、F0001280700F0002150900F0002280700F0003130500F0003250400F0003370300F0004130500F0004250400F0004370300F0005150800F0005270600F0006150800F0006270600F00071120400F00081120400表3.5 cabin表的数据3.3 视图设计应用程序需要查询航班信息,因此需要创建一个航班信息的视图,根据参数航班号或者出发地以及目的地查询航班信息,显示航班号、公司名、飞机名称、出发时间、到达时间、出发地和目的地。由于oracle的视图不支持参数,但可以利用临时表
22、作为参数进行传递,因此需要创建一个临时表,创建临时表的SQL语句如下: CREATE GLOBAL TEMPORARY TABLE SYSTEM.INPUT_TO_FLIGHT ( T_FNO VARCHAR2(10), T_DEPARTURE VARCHAR2(20), T_ARRIVAL VARCHAR2(20),T_FLYDATE DATE) ON COMMIT PRESERVE ROWS;创建参数化视图的SQL语句如下:CREATE OR REPLACE VIEW SYSTEM.FLIGHT_VIEW_BYFNO (FNO,CNAME,ANAME,TIME,ARRIVAL_TIME,D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 机票 预订 系统
限制150内