Oracle机票预定信息系统数据库设计Word文档格式.docx

上传人:b****3 文档编号:17132496 上传时间:2022-11-28 格式:DOCX 页数:14 大小:134KB
下载 相关 举报
Oracle机票预定信息系统数据库设计Word文档格式.docx_第1页
第1页 / 共14页
Oracle机票预定信息系统数据库设计Word文档格式.docx_第2页
第2页 / 共14页
Oracle机票预定信息系统数据库设计Word文档格式.docx_第3页
第3页 / 共14页
Oracle机票预定信息系统数据库设计Word文档格式.docx_第4页
第4页 / 共14页
Oracle机票预定信息系统数据库设计Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Oracle机票预定信息系统数据库设计Word文档格式.docx

《Oracle机票预定信息系统数据库设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle机票预定信息系统数据库设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

Oracle机票预定信息系统数据库设计Word文档格式.docx

根据总体结构图设计机票预定系统基本表结构,其相应标的定义如下:

表4-1飞机信息<

plain>

字段名称

类型

长度

是否非空

主关键字

备注

plain_id

VARCHAR2

10

Y

飞机编号

model

N

飞机型号

seat

int

2

总座位

表4-2航班信息<

flight>

flight_id

航班编号

start

起飞地

end

目的地

departure_time

datetime

起飞时间

duration

4

飞行时间

表4-3机票信息<

tickets>

tickets_id

机票编号

traveler_id

旅客编号

seating_list

座位号

cabin_rating

机舱等级

updata_time

更新时间

status

状态

表4-4旅客信息<

traveler>

name

sex

1

性别

id_value

20

phone

11

联系方式

表4-5账单信息<

bill>

bill_id

账单编号

payment

float

(2)

价格

付款状态

二、结构设计

E-R图

根据需求分析抽象出信息结构,可得该系统的E-R图。

飞机E-R图,如图4-1所示。

图4-1飞机E-R图

航班E-R图,如图4-2所示。

图4-2航班E-R图

机票E-R图,如图4-3所示。

图4-3机票E-R图

旅客E-R图,如图4-4所示。

图4-4旅客E-R图

账单E-R图,如图4-5所示。

图4-5账单E-R图

航班坐位E-R图,如图4-6所示。

图4-6航班坐位E-R图

取票通知E-R图,如图4-7所示。

图4-7取票通知E-R图

总E-R图,如图4-8所示。

图4-8总E-R图

关系模式

基本表

飞机信息表(飞机编号、飞机型号、飞机座位)

航班信息表(航班编号、飞机编号、起飞地、目的地、起飞时间、飞行时间)

机票信息表(机票编号、航班编号、旅客编号、机舱等级、座位号、更新时间、状态)

旅客信息表(旅客编号、、性别、联系、号)

账单表(账单编号、旅客编号、机票编号、价格、更新时间、状态)

虚表(视图)

航班坐位情况表(机票信息表.航班编号、机票信息表.座位号、机票信息表.状态)

取票通知表(机票信息表.航班编号、机票信息表.旅客编号、机票信息表.座位号、机票信息表.状态)

三、数据库实现

创建表空间与赋权限

createtemporarytablespaceHKSP_TEMP

tempfile'

C:

\oraclexe\app\oracle\oradata\XE\HKSP_TEMP.dbf'

size50M

autoextendon

next50Mmaxsize1048M

extentmanagementlocal;

createtablespaceHKSP_DATA

atafile'

\oraclexe\app\oracle\oradata\XE\HKSP_DATA.dbf'

createuserHKSPidentifiedby123456

defaulttablespaceHKSP_DATA

temporarytablespaceHKSP_TEMP;

grantconnect,resource,dbatoHKSP;

飞机信息表建立

CREATETABLE"

HKSP"

."

plain"

"

plain_id"

VARCHAR2(10BYTE)NOTNULLprimarykey,

model"

VARCHAR2(10BYTE)NOTNULL,

seat"

NUMBERNOTNULL

航班信息表建立

flight"

flight_id"

VARCHAR2(10BYTE)NOTNULLprimarykey,

start"

VARCHAR2(20BYTE)NOTNULL,

end"

departure_time"

DATENOTNULL,

duration"

机票信息表建立

tickets"

tickets_id"

traveler_id"

seating_list"

NUMBERNOTNULL,

cabin_rating"

updata_time"

status"

旅客信息表建立

traveler"

VARCHAR2(10BYTE)NOTNULLprimarykey,

name"

sex"

id_value"

phone"

VARCHAR2(11BYTE)NOTNULL

账单信息表建立

bill"

bill_id"

payment"

FLOAT(10)NOTNULL,

航班坐位视图

CREATEORREPLACEFORCEVIEW"

seating_view"

AS

SELECT

HKSP."

FROM

;

取票通知视图

notice_view"

WHERE

=2;

外键语句

ALTERTABLE"

ADDFOREIGNKEY("

REFERENCES"

("

)ONDELETECASCADE;

四、数据库实施

添加飞机

INSERTINTO"

VALUES('

F-T1235'

'

T12306'

100'

);

F-T1236'

F-T1237'

F-T1234'

添加航班

MH370'

'

马来西亚'

TO_DATE('

2016-01-1810:

12:

09'

YYYY-MM-DDHH24:

MI:

SS'

),'

5'

MH371'

2016-01-1909:

20:

13'

4'

MH372'

2016-01-2020:

14:

17'

11'

MH373'

2016-01-1905:

29:

21'

3'

添加用户

LK00001'

小明'

1'

123456781'

LK00002'

小红'

2'

123456782'

LK00003'

小芳'

123456783'

LK00004'

小小'

123456784'

LK00005'

小亮'

123456785'

LK00006'

小心'

6'

123456786'

预定机票(存储过程)

CREATEORREPLACE

PROCEDUREbook_tickets(flight_idINVARCHAR2,traveler_idINVARCHAR2,seatingINNUMBER)

AS

ticketsid"

%TYPE;

test_ticketsidNUMBER;

test_cabin"

tempvarchar(32);

test_valueNUMBER:

=0;

BEGIN

--生成机票ID

temp:

=sys_guid();

ticketsid:

=substr(temp,1,6)||substr(temp,28,4);

--测试座位是否被预定

SELECTcount(*)INTOtest_ticketsid

FROM"

WHERE"

=seating;

--查看结果

IFtest_ticketsid=0THEN

--座位未被预定

--判断仓位等级

test_value:

=seating/10;

CASE

WHENtest_value<

1THEN

test_cabin:

='

商务舱'

2THEN

二等舱'

ELSE

BEGIN

test_cabin:

经济舱'

END;

ENDCASE;

--预定机票

INSERTINTO"

VALUES(ticketsid,flight_id,traveler_id,seating,test_cabin,SYSDATE,1);

DBMS_OUTPUT.PUT_LINE('

预定成功'

ELSE

--座位已被预定

座位已被预定'

ENDIF;

END;

打印取票通知(存储函数)

FUNCTIONget_voucher(flight_idINVARCHAR2,traveler_idINVARCHAR2)

RETURNVARCHAR2

test_tickets"

--获得机票ID

SELECT"

INTOtest_tickets

=flight_idAND"

=traveler_id;

--更新状态

UPDATE"

SET"

=2

=test_tickets;

--返回机票ID

RETURNtest_tickets;

EXCEPTION

WHENOTHERSTHEN

RETURN'

你没有预定机票'

生成账单(触发器和存储过程)

――插入账单 存储过程

PROCEDUREinsert_bill(traveler_idINVARCHAR2,tickets_idINVARCHAR2,statusINNUMBER)

tempvarchar2(32);

uuidvarchar2(10);

temp:

uuid:

=substr(temp,1,10);

IFstatus=2THEN

"

)VALUES(uuid,traveler_id,tickets_id,100,SYSDATE,1);

ENDIF;

――机票状态触发器

CREATEORREPLACETRIGGERbill_add

AFTERUPDATEOF"

ON"

FOREACHROW

INSERT_BILL(:

OLD."

:

NEW."

五、总结

经过一周的努力,本次课程设计终于完成了。

通过这次课程设计,我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,同时我明白了理论与实际应用相结合的重要性,掌握并熟练运用SQL语句,提高了我的综合运用所学知识的能力。

1.独立创建表空间,创建用户,并赋予权限。

2.创建表,指定主键,指定外键。

3.Select,include,update,delect等语句的使用。

4.存储过程,存储函数,触发器的使用。

5.对数据库的创建过程有了一个系统的理解。

在本次课程设计和过程中,由于时间不是很长,再加上要求独立完成,系统需求分析上可能不是很全面,程序中还存在很多缺,希望老师能给予批评和指导。

经过这次课程设计,我的知识得到了很大,经验也更加丰富。

希望能在今后的不断的学习中和努力中,把程序做得更好。

最后,感指导老师给予的帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1