航空售票系统数据库课设说明书.docx

上传人:wj 文档编号:526481 上传时间:2023-04-29 格式:DOCX 页数:28 大小:180.80KB
下载 相关 举报
航空售票系统数据库课设说明书.docx_第1页
第1页 / 共28页
航空售票系统数据库课设说明书.docx_第2页
第2页 / 共28页
航空售票系统数据库课设说明书.docx_第3页
第3页 / 共28页
航空售票系统数据库课设说明书.docx_第4页
第4页 / 共28页
航空售票系统数据库课设说明书.docx_第5页
第5页 / 共28页
航空售票系统数据库课设说明书.docx_第6页
第6页 / 共28页
航空售票系统数据库课设说明书.docx_第7页
第7页 / 共28页
航空售票系统数据库课设说明书.docx_第8页
第8页 / 共28页
航空售票系统数据库课设说明书.docx_第9页
第9页 / 共28页
航空售票系统数据库课设说明书.docx_第10页
第10页 / 共28页
航空售票系统数据库课设说明书.docx_第11页
第11页 / 共28页
航空售票系统数据库课设说明书.docx_第12页
第12页 / 共28页
航空售票系统数据库课设说明书.docx_第13页
第13页 / 共28页
航空售票系统数据库课设说明书.docx_第14页
第14页 / 共28页
航空售票系统数据库课设说明书.docx_第15页
第15页 / 共28页
航空售票系统数据库课设说明书.docx_第16页
第16页 / 共28页
航空售票系统数据库课设说明书.docx_第17页
第17页 / 共28页
航空售票系统数据库课设说明书.docx_第18页
第18页 / 共28页
航空售票系统数据库课设说明书.docx_第19页
第19页 / 共28页
航空售票系统数据库课设说明书.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

航空售票系统数据库课设说明书.docx

《航空售票系统数据库课设说明书.docx》由会员分享,可在线阅读,更多相关《航空售票系统数据库课设说明书.docx(28页珍藏版)》请在冰点文库上搜索。

航空售票系统数据库课设说明书.docx

内蒙古科技大学课程设计论文

内蒙古科技大学

本科生课程设计论文

题目:

机票预订系统

学生姓名:

安静

学号:

1376807343

专业:

2013级计算机

班级:

三班

指导教师:

丁雨

2015年12月31日

内蒙古科技大学课程设计任务书

课程名称

数据库原理课程设计

设计题目

机票预售系统

指导教师

丁雨

时间

2015.12.21--2015.12.31

一、教学要求

1、培养学生运用所学课程《数据库原理》的理论知识和技能以及对数据库组织、管理和使用能力。

2、掌握数据库应用系统的整个设计过程(包括需求分析、概念结构设计、逻辑结构设计与物理设计与实施)

二、设计资料及参数

1、系统功能的基本要求:

每个航班信息的输入。

每个航班的坐位信息的输入;当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;旅客在飞机起飞前一天凭取票通知交款取票;旅客能够退订机票;能够查询每个航班的预定情况、计算航班的满座率。

2、数据库要求:

在数据库中至少应该包含下列数据表:

航班信息表;航班坐位情况表;旅客订票信息表;取票通知表;帐单。

三、设计要求及成果

根据数据库应用系统设计过程,通过需求分析和系统分析,进行数据库的概念结构设计、逻辑结构设计等工作:

1、概念结构设计的E-R图

2、数据库逻辑结构设计是以表格的形式说明数据库中有几个表,每个表的表名以及每个表的各字段名,类型和约束(主、外键);

3、确定表之间的关联(一对一、一对多、多对多)

4、运用数据库理论确定每个表至少属于3NF。

5、编写课程设计说明书

四、进度安排

需求分析(1天)

ER模型设计(2天)

编写课程设计说明书和验收(2天)

五、评分标准

1、数据库结构正确性(30%)

2、数据库结构复杂性,由题目等级决定(30%)

3、设计说明书完成的质量(30%)

4、出勤(10%)

5、成绩采用五级分制评定

目录

内蒙古科技大学课程设计任务书 2

第一章前言 4

第二章需求 5

2.1需求分析 5

2.1.1课程设计目的 5

2.1.2课程设计任务 5

2.1.3设计环境 5

2.1.4实训进度安排 5

第三章概念结构设计 6

3.1系统ER图 6

3.2数据字典 7

第四章逻辑结构设计 9

4.1E-R图向关系模式转换:

9

4.2符合3NF标准 10

4.3数据库关系图 11

第五章数据库的物理设计 11

5.1表的建立 11

5.2插入数据 19

5.3视图、规则、索引、事物的建立 22

5.3.1视图的建立 22

5.3.2规则的建立 22

5.3.3索引的创建 23

5.3.4事物的建立 23

5.4查询与更新 24

5.4.1多表连接查询 24

5.4.2统计查询,分组查询 25

5.4.3简单查询 25

5.4.4数据的更改 26

5.4.5数据的插入 26

5.4.6数据的删除 26

5.5触发器和存储过程的建立 27

5.5.1触发器 27

5.5.2存储过程 27

第六章心得 28

参考文献 28

第一章前言

航空客运业务诞生已有近一个世纪了,作为现有交通工具中最方便快捷的一种,它确确实实地给民众的生活、出行带来了极大的方便。

随着社会的进步,人们的生活水平得到很大的提高,民航的发展也很迅速,乘坐飞机的旅客也大大增多。

假如现在没有售票系统,民航将也不会存在,人们的出行极大不便。

换句话说,一个功能完善的机票预定信息管理系统对人们的日常生活已经显得尤其重要。

现设计一个机票预定信息管理系统的数据库。

首先根据问题需求设计E-R模型,包括几个主要的实体,如航空公司、飞机、乘客、航班、机票、业务员等以及相关的联系。

然后再转根据E-R模型设计出相应的关系模型,对于关系模型的每一个关系,可以设计出相应的表,接着分配表空间、创建视图、设计存储过程、函数和触发器以及设计安全与备份策略。

第二章需求

2.1需求分析

2.1.1课程设计目的

通过专业课程设计Ⅱ,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。

本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。

同时要求对数据库的运营、管理及使用上进行必要的规划和实现。

2.1.2课程设计任务

系统需要管理以下主要信息:

根据数据库应用系统设计过程,通过需求分析和系统分析,进行数据库的概念结构设计、逻辑结构设计等工作:

1、概念结构设计的E-R图

2、数据库逻辑结构设计是以表格的形式说明数据库中有几个表,每个表的表名以及每个表的各字段名,类型和约束(主、外键);

3、确定表之间的关联(一对一、一对多、多对多)

4、运用数据库理论确定每个表至少属于3NF。

5、编写课程设计说明书

2.1.3设计环境

SQLSERVERMANAGEMENTSTUDIO2008开发版

2.1.4实训进度安排

实训进度安排如下表所示:

表2.1实训进度安排

实训内容

所需学时

提交文档

实训一:

建立数据库结构

4

T-SQL源文件

实训二:

添加测试数据

6

T-SQL源文件

实训三:

综合查询

6

T-SQL源文件

实训四:

业务统计

8

T-SQL源文件

第三章概念结构设计

3.1系统ER图

经过分析可以知道,机票预定信息管理系统一共有航空公司、航班、机票、售票员、旅客和业务员这几个实体,航空公司有公司编号、公司名、公司电话和公司地址这几个属性;航班有航班号、出发地、目的地、起飞时刻和飞行时间这几个属性;机票有机票编号、出发地、目的地、起飞时刻和飞行时间、状态、座位号这几个属性;乘客有身份证号、姓名、联系电话、住址这几个属性;业务员有业务员编号、业务员姓名、出生日期、联系电话这几个属性。

售票员有售票员编号、业务员姓名、出生日期、联系电话这几个属性。

一个航空公司有多架飞机和多名业务员和有多个航班,一个航班可有多张机票;业务员和机票之间有售票联系,售票联系有售票时间和收益金额属性,旅客和机票有购买联系,购买联系有订单号、取票时间、购买时间、实付款、折扣等属性。

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

旅客

购买

退票

数量

实付款

购买时间

折扣

取票时间

退票时间

M M

卖票时间

N N

机票

属于

航班

拥有

属于

乘务人员

公司

售票员

售票

包含

座位

属于

收益金额

N

N

M

1

N 1

1 N

N 1

N 1

图3.1系统E-R图

3.2数据字典

表3.1旅客信息表

列名

数据类型

允许NULL值

描述

PASSAGER_NAME

Varchar(50)

主键

旅客姓名

PASSAGER_ID

Varchar(50)

身份证

PASSAGER_TELEPHONE

Varchar(50)

旅客电话

PASSAGER_SEX

Varchar(50)

旅客性别

CONTACT_NAME

Varchar(50)

联系人姓名

CONTACT_TELEPHONE

Varchar(50)

联系人电话

表3.2机票信息表

列名

数据类型

允许NULL值

描述

TICKET_ID

INT

主键

机票编号

FIGHT_NUMBER

VARCHAR(50)

外键

航班号

TICKET_TYPE

VARCHAR(50)

机票类型

TICKET_PRICE

VARCHAR(50)

定价

状态

VARCHAR(50)

售票状态

S_TICKET

VARCHAR(50)

剩余票数

表3.3售票信息表

列名

数据类型

允许NULL值

描述

SELL_TIME

varchar(50)

售票时间

TICKET_SUM

varchar(50)

收益金额

EmployeeNumber

varchar(50)

主键

员工号

TICKET_ID

decimal(18,0)

主键

机票编号

表3.4买票信息表

列名

数据类型

允许NULL值

描述

TICKET_COUNT

varchar(50)

票数

DISCOUNT

varchar(50)

折扣

GET_TICKETS_TIME

Date

取票时间

BUY_TICKETS_TIME

Date

买票时间

REAL_PAY

varchar(50)

实付款

PASSAGER_ID

varchar(50)

主键

身份证号

TICKET_ID

Int

主键

机票编号

表3.5退票信息表

列名

数据类型

允许NULL值

描述

REFUND_TIME

varchar(50)

退票时间

PASSAGER_ID

varchar(50)

主键

身份证号

TICKET_ID

Int

主键

机票编号

表3.6航班信息表

列名

数据类型

允许NULL值

描述

FIGHT_NUMBER

varchar(50)

主键

航班号

FIGHT_DepartureCity

varchar(50)

出发城市

FIGHT_DestinationCity

varchar(50)

抵达城市

FIGHT_DepartureTime

varchar(50)

出发时间

FIGHT_ArrialTime

varchar(50)

抵达时间

CAMPANY_NUMBER

varchar(50)

外键

公司编号

SEAT_COUNT

varchar(50)

座位总数

表3.7乘务员信息表

列名

数据类型

允许NUL值

描述

EmployeeNumber

varchar(50)

主键

员工号

FIGHT_NUMBER

varchar(50)

外键

航班号

CREW_NAME

varchar(50)

乘务员姓名

CREW_SEX

varchar(50)

乘务员性别

BirthOfDate

Date

出生日期

CREW_TELEPHONE

varchar(50)

乘务员电话

CAMPANY_NUMBER1

varchar(50)

外键

公司编号

表3.8售票员信息表

列名

数据类型

允许NULL值

描述

EmployeeNumber

varchar(50)

主键

员工号

COMPANY_NUMBER

varchar(50)

外键

公司编号

CLERK_NAME

varchar(50)

售票员姓名

CLERK_SEX

varchar(50)

售票员性别

BirthOfDate

Date

出生日期

CLERK_TELEPHONE

varchar(50)

售票员电话

表3.9公司信息表

列名

数据类型

允许NULL值

描述

CAMPANY_NUMBER

varchar(50)

主键

公司编号

COMPANY_NAME

varchar(50)

公司名

COMPANY_TELEPHONE

varchar(50)

公司电话

COMPANY_ADDRESS

varchar(50)

公司地址

TICKET_ID

Int

主键

机票编号

第四章逻辑结构设计

4.1E-R图向关系模式转换:

①旅客实体对应的关系模式:

l旅客(身份证号,姓名,性别,电话,联系人姓名,联系人电话)

②航班实体对应的关系模式:

航班(航班号,起飞地点,目的地,起飞时间,抵达时间,总座位数,公司编号)

③卖票联系对应的关系模式:

卖票(卖票时间,收益金额,员工号,机票编号)

④退票信息实体对应的关系模式:

退票(订单号,退票时间,身份证号,机票编号)

⑤购买联系的关系模式:

购买(订单号,购买时间,取票时间,折扣,数量,实付款,身份证号,机票编号)

⑥机票实体对应的关系模式:

机票(航班号,机票编号,机票类型,座位号,定价,起飞地点,目的地,起飞时间,抵达时间)

⑦乘务员实体对应的关系模式:

乘务人员(员工号,航班号,姓名,性别,出生日期,电话,公司编号)

⑧公司实体对应的关系模式:

公司(公司编号,公司名,电话,地址)

⑨售票员实体对应的关系模式:

售票员(员工号,姓名,性别,出生日期,电话,公司编号)

4.2符合3NF标准

将转化的关系模式进行优化,最终达到第三范式。

航班编号→出发城市,航班编号→目的城市,航班编号→出发时间,航班编号→到达时间,航班编号→公司编号,航班编号→状态。

因为航班表中的非主属性不存在部分依赖和传递依赖,所以航班表是3NF的。

公司编号→公司名,公司编号→电话,公司编号→地址。

因为公司表中的非主属性不存在部分依赖和传递依赖,所以公司表是3NF的。

身份证号→客户姓名,身份证号→性别,身份证号→姓名,身份证号→电话。

因为旅客表中的非主属性不存在部分依赖和传递依赖,所以旅客表是3NF的。

业务员工号→业务员姓名,业务员工号→年龄,业务员工号→联系电话。

业务员工号→性别,业务员工号→公司编号。

因为业务员表中的非主属性不存在部分依赖和传递依赖,所以业务员表是3NF的。

等等。

综上所述,机票预定管理系统是属于3NF的,存在较少的插入异常。

4.3数据库关系图

图3.1数据库关系图

第五章数据库的物理设计

5.1表的建立

CREATETABLEFIGHT--航班表

FIGHT_NUMBERVARCHAR(50)NOTNULLPRIMARYKEY,--航班号

FIGHT_DepartureCityVARCHAR(50)NOTNULL,--出发城市

FIGHT_DestinationCityVARCHAR(50)NOTNULL,--抵达城市

FIGHT_DepartureTimeVARCHAR(50)NOTNULL,--起飞时间

FIGHT_ArrialTimeVARCHAR(50)NOTNULL,--抵达时间

CAMPANY_NUMBERVARCHAR(50)NOTNULL,--公司编号

SEAT_COUNTVARCHAR(50)NOTNULL,--座位总数

CONSTRAINTFK_CAMPANY_NUMBER2FOREIGNKEY(CAMPANY_NUMBER)referencesCAMPANY(CAMPANY_NUMBER),

);

CREATETABLECrew--乘务员表

EmployeeNumberVARCHAR(50)NOTNULLPRIMARYKEY,--员工号

FIGHT_NUMBERVARCHAR(50)NOTNULL,--航班号

CREW_NAMEVARCHAR(50)NOTNULL,--乘务员姓名

CREW_SEXVARCHAR(50)NOTNULL,--性别

BirthOfDateDATENOTNULL,--出生日期

CREW_TELEPHONEVARCHAR(50)NOTNULL,--电话

CAMPANY_NUMBER1VARCHAR(50)NOTNULL,--公司编号

CONSTRAINTFK_Crew_CAMPANY_NUMBERFOREIGNKEY(CAMPANY_NUMBER1)referencesCAMPANY(CAMPANY_NUMBER),

CONSTRAINTFK_Crew_FIGHT_NUMBERFOREIGNKEY(FIGHT_NUMBER)referencesFIGHT(FIGHT_NUMBER),

);

ALTERTABLECREW

ADD

CONSTRAINTck_CREW_SEXCHECK(CREW_SEXin('男','女'))

ALTERTABLECREW

ADD

CONSTRAINTCK_CREW_LENCHECK(LEN(CREW_TELEPHONE)=11)

CREATETABLECAMPANY--航空公司表

CAMPANY_NUMBERVARCHAR(50)NOTNULLUNIQUE,--公司编号

COMPANY_NAMEVARCHAR(50)NOTNULL,--公司名

COMPANY_TELEPHONEVARCHAR(50)NOTNULL,--电话

COMPANY_ADDRESSVARCHAR(50)NOTNULL,--地址

CONSTRAINTFK_CAMPANY_NUMBERPRIMARYKEY(CAMPANY_NUMBER),

);

ALTERTABLECAMPANY

ADD

CONSTRAINTCK_CAMPANY_LANCHECK(LEN(COMPANY_TELEPHONE)=11)

CREATETABLEClerk--业务员

EmployeeNumberVARCHAR(50)NOTNULLPRIMARYKEY,--员工号

COMPANY_NUMBERVARCHAR(50)NOTNULL,--公司编号

CLERK_NAMEVARCHAR(50)NOTNULL,--乘务员姓名

CLERK_SEXVARCHAR(50)NOTNULL,--性别

BirthOfDateDATENOTNULL,--出生日期

CLERK_TELEPHONEVARCHAR(50)NOTNULL,--电话

CONSTRAINTFK_Clerk_COMPANY_NUMBERFOREIGNKEY(COMPANY_NUMBER)referencesCAMPANY(CAMPANY_NUMBER),

);

ALTERTABLECLERK

ADD

CONSTRAINTck_CLERK_SEXCHECK(CLERK_SEXin('男','女'))

ALTERTABLECLERK

ADD

CONSTRAINTCK_CLERK_LANCHECK(LEN(CLERK_TELEPHONE)=11)

CREATETABLEBUY_TICKETS--买票表

TICKET_COUNTVARCHAR(50)NOTNULL,--数量

DISCOUNTVARCHAR(50)NOTNULL,--折扣

GET_TICKETS_TIMEDATE,--取票时间

BUY_TICKETS_TIMEDATENOTNULL,--购买时间

REAL_PAYVARCHAR(50)NOTNULL,--实付款

PASSAGER_IDVARCHAR(50)NOTNULL,--旅客身份证号

TICKET_IDintNOTNULL,--机票编号

CONSTRAINTPK_旅客机票PRIMARYKEY(PASSAGER_ID,TICKET_ID),

CONSTRAINTFK_BUY_PASSAGER_IDFOREIGNKEY(PASSAGER_ID)referencesPASSAGER(PASSAGER_ID),

CONSTRAINTFK_BUY_TICKET_IDFOREIGNKEY(TICKET_ID)referencesTICKET(TICKET_ID),

);

ALTERTABLEBUY_TICKETS

ADD

CONSTRAINTCK_REAL_PAYCHECK(REAL_PAY>=0)

ALTERTABLEBUY_TICKETS

ADD

CONSTRAINTCK_BUY_TICKETS_LENCHECK(LEN(PASSAGER_ID)=18)

CREATETABLEREFUND--退票表

REFUND_TIMEVARCHAR(50),--退票时间

PASSAGER_IDVARCHAR(50),--旅客身份证号

TICKET_IDINTIDENTITY(1,1)NOTNULL,--机票编号

CONSTRAINTPK_退旅客机票PRIMARYKEY(PASSAGER_ID,TICKET_ID),

CONSTRAINTFK_REFUND_PASSAGER_IDFOREIGNKEY(PASSAGER_ID)referencesPASSAGER(PASSAGER_ID),

CONSTRAINTFK_REFUND_TICKET_IDFOREIGNKEY(TICKET_ID)referencesTICKET(TICKET_ID),

);

ALTERTABLEREFUND

ADD

CONSTRAINTCK_REFND_LENCHECK(LEN(PASSAGER_ID)=18)

CREATETABLESELL_TICKETS--售票表

SELL_TIMEVARCHAR(50)NOTNULL,--卖票时间

TICKET_SUMVARCHAR(50)NOTNULL,--收益金额

EmployeeNumberVARCHAR(50)NOTNULL,--员工号

TICKET_IDINTIDENTITY(1,1),--机票编号

CONSTRAINTPK_员工机票PRIMARYKEY(EmployeeNumber,TICKET_ID),

CONSTRAINTFK_SELL_TICKETS_EmployeeNumberFOREIGNKEY(EmployeeNumber)referencesClerk(EmployeeNumber),

CONSTRAINTFK_SELL_TICKETS_TICKET_IDFOREIGNKEY(TICKET_ID)referencesTICKET(TICKET_ID),

);

ALTERTABLESELL_TICKETS

ADD

CONSTRAINTCK_TICKET_SUMCHECK(TICKET_SUM>=0)

USE航空机票预售系统

CREATETABLEFIGHT--航班表

FIGHT_NUMBERVARCHAR(50)NOTNULLPRIMARYKEY,--航班号

FIGHT_Depa

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

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2