数据库报告

时间:2024.4.5

《数据库原理及应用》课程设计

题 目 民航销售管理子系统数据库设计

专 业 计算机科学与技术 班 级 计算机2111班 姓 名 成 绩 指导教师 刘春燕

2013 年7月1日至20xx年7月5日

课程设计任务书

设计题目:民航销售管理子系统数据库设计 设计目的:

1. 学会分析研究数据对象的特性;

2. 学会数据的组织方法;

3. 选择合适的数据的存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理;

4. 提高学生的运用能力、 提高数据库设计素质 ;

设计任务:(在规定的时间内完成下列任务)

1. 查某代售地某月售出的票数金额。

2. 查航空公司拥有多少航班

3. 查某天某航空还剩多少票或座位

4. 如何查某天某航空还剩甲等座位,乙等座位票价是多少

5. 查某航天公司拥有多少售票点。某月售出总金额为多少某航线售出金额为多少

具体要完成的任务是:

A. 编制完成上述问题的数据库设计并能得出正确的运行结果。

B. 采取统一格式:有问题描述、基本要求、测试数据及实现方法等组成写出规范的课程设计说明书;

时间安排

7月1日 布置课程设计任务;

7月2日 分配题目后,查阅资料、 准备程序;

7月3,4 日 上机调试程序、书写课程设计报告;

7月5日 下午提交课程设计报告及相关文档

具体要求

课程设计报告按统一通用格式书写,具体格式要求请在网络上查阅; 每位学生应独立完成各自的任务;

指 导 教 师 签 名:

数据库报告

13 年 6月29 日

教研室主任(或责任教师)签名: 13 年 6月29日

1实验背景

1.1需求分析

需求分析是管理系统设计的最基础的部分,民航销售管理子系统管理主要是处理售票,机票,票价的管理,航空公司提供航线和飞机资料对在本飞机起飞和降落的机票进行管理,而客户的得到的是查询航班航线和机票,以及机票订购功能。

随着飞机场规模的不断扩大,航班数量也相应的增加,有关航班的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致机场航班管理上的混乱,人力与物力过多浪费,航班管理费用的增加,从而使机场的负担过重,影响整个机场的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的民航销售管理系统,对航班进行集中统一的管理。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。

提高民航工作效率,作到信息的规范管理,科学统计和快速查询,让明航更好的为社会服务。

1.2实验环境

SQL Server 2005

2民航销售管理子系统设计需求

1. 查某代售地某月售出的票数金额。

2. 查航空公司拥有多少航班

3. 查某天某航空还剩多少票或座位

4. 如何查某天某航空还剩甲等座位,乙等座位票价是多少

5. 查某航天公司拥有多少售票点。某月售出总金额为多少,某航线售出金额为多少

2.1事物需求

(1)在航班信息管理部分,要求:

a.可以查询航班信息。

b.可以对航班信息进行添加及删除的操作。

(2 )在机票信息管理部分,要求:

a.可以查看机票信息,要求:

b.可以对机票信息进行维护,包括添加及删除的操作。

(3)在售票信息管理部分,要求:。

a.可以查看售票信息。

b.可以对售票信息进行维护操作。

3 E-R图设计

明航销售管理子系统可以划分的实体有:航班信息实体、机票信息实体、售票点信息实体。用E-R图一一描述这些实体。

3.1航班信息E-R图,如图1

图1

3.2机票信息实体E-R图,如图二

数据库报告

数据库报告

图2

3.3售票点信息实体E-R图,如图三

数据库报告

图3

3.4总的信息实体图,如图四

图4

4数据字典

数据库报告

数据库报告

数据库报告

数据库报告

5关系图

数据库报告

图5—1数据库存表关系图

6源代码

6.1数据库建立

6.1.1创建数据库

create database hangkong

use hangkong

6.1.2航班表的建立

create table hangban(

[航班号] nvarchar(30) primary key not null,

[航班起点] nvarchar(30) NOT NULL,

[航班终点] nvarchar(30) NOT NULL,

[舱型] nvarchar(30) NOT NULL,

[人数] int NOT NULL,--该航班能装的人数的max

)

6.1.3创建机票表

create table jipiao(

[机票号] nvarchar(30) primary key not null, --primary key -- 设为自增长

[航班号] nvarchar(30) foreign key references hangban([航班号]),

[票型] char(2) not null,--check(甲,乙)--票型为甲,乙两种,甲靠窗贵些,乙不靠便宜

[票价]numeric(6,1) not null,

[日期] datetime not null--该日期为飞机的起飞时间

)

6.1.4创建售票表

create table shoupiao(

id int identity(1,1)primary key, --primary key?

[售票地点] nvarchar(30),

[售票日期] datetime not null,--票卖出去时候的日期

[机票号] nvarchar(30) foreign key references jipiao([机票号]) ,--外键约束--唯一 )

6.2数据的初始化

6.2.1 对航班表进行初始化

insert into hangban values('dy001','襄阳','法国','贵宾舱','8')

insert into hangban values('dy002','襄阳','美国','贵宾舱','8')

insert into hangban values('dy003','襄阳','美国','普通舱','8')

insert into hangban values('dy004','襄阳','日本','普通舱','8')

6.2.2对售票表进行初始化

--机票 机票的票数已决定 等待购买

--法贵

insert into jipiao values('r001','dy001','甲','1000.0','2013-1-1')

insert into jipiao values('r002','dy001','甲','1000.0','2013-1-1')

insert into jipiao values('r003','dy001','甲','1000.0','2013-1-1')

insert into jipiao values('r004','dy001','甲','1000.0','2013-1-1')

insert into jipiao values('r005','dy001','乙','800.0','2013-1-1')

insert into jipiao values('r006','dy001','乙','800.0','2013-1-1')

insert into jipiao values('r007','dy001','乙','800.0','2013-1-1')

insert into jipiao values('r008','dy001','乙','800.0','2013-1-1')

--美贵

insert into jipiao values('r009','dy002','甲','2000.0','2013-1-2')

insert into jipiao values('r010','dy002','甲','2000.0','2013-1-2')

insert into jipiao values('r011','dy002','甲','2000.0','2013-1-2')

insert into jipiao values('r012','dy002','甲','2000.0','2013-1-2')

insert into jipiao values('r013','dy002','乙','1800.0','2013-1-2')

insert into jipiao values('r014','dy002','乙','1800.0','2013-1-2')

insert into jipiao values('r015','dy002','乙','1800.0','2013-1-2')

insert into jipiao values('r016','dy002','乙','1800.0','2013-1-2')

--美普

insert into jipiao values('r017','dy003','甲','1500.0','2013-1-3')

insert into jipiao values('r018','dy003','甲','1500.0','2013-1-3')

insert into jipiao values('r019','dy003','甲','1500.0','2013-1-3')

insert into jipiao values('r020','dy003','甲','1500.0','2013-1-3')

insert into jipiao values('r021','dy003','乙','1300.0','2013-1-3')

insert into jipiao values('r022','dy003','乙','1300.0','2013-1-3')

insert into jipiao values('r023','dy003','乙','1300.0','2013-1-3')

insert into jipiao values('r024','dy003','乙','1300.0','2013-1-3')

--日普

insert into jipiao values('r025','dy004','甲','800.0','2013-1-3')

insert into jipiao values('r026','dy004','甲','800.0','2013-1-3')

insert into jipiao values('r027','dy004','甲','800.0','2013-1-3')

insert into jipiao values('r028','dy004','甲','800.0','2013-1-3')

insert into jipiao values('r029','dy004','乙','700.0','2013-1-3')

insert into jipiao values('r030','dy004','乙','700.0','2013-1-3')

insert into jipiao values('r031','dy004','乙','700.0','2013-1-3')

insert into jipiao values('r032','dy004','乙','700.0','2013-1-3')

6.2.3 对售票表进行初始化

-x 截止到分机起飞各站所卖出去的票

--北站卖出去的票

insert into shoupiao values('襄阳北站','2012-12-1','r001')

insert into shoupiao values('襄阳北站','2012-12-1','r002')

insert into shoupiao values('襄阳北站','2012-12-2','r003')

insert into shoupiao values('襄阳北站','2012-12-2','r004')

--南站卖出去的票

insert into shoupiao values('襄阳南站','2012-10-1','r005')

insert into shoupiao values('襄阳南站','2012-10-1','r006')

insert into shoupiao values('襄阳南站','2012-10-2','r009')

insert into shoupiao values('襄阳南站','2012-10-2','r010')

--西站卖出去的票

insert into shoupiao values('襄阳西站','2012-10-1','r011')

insert into shoupiao values('襄阳西站','2012-10-1','r012')

insert into shoupiao values('襄阳西站','2012-10-2','r017')

insert into shoupiao values('襄阳西站','2012-10-2','r018')

--东站卖出去的票

insert into shoupiao values('襄阳东站','2012-10-1','r007')

insert into shoupiao values('襄阳东站','2012-10-1','r008')

insert into shoupiao values('襄阳东站','2012-10-2','r025')

insert into shoupiao values('襄阳东站','2012-10-2','r026')

7结果数据处理

7.1对设计任务书的解决

7.1.1查某代售地某月售出的票数金额

SQL语言: select sum(dbo.tpiao(机票号)) 收入 from shoupiao where 售票地点='襄阳北站' and month(售

票日期)='12' and year(售票时间)='2012'

sum(dbo.tpiao(机票号)*票数)

--(票价(机票号))*票数)

--创建一个返回机票价的函数

create function tpiao(@id nvarchar(30)) returns numeric(6,1)

as

begin

declare @piao numeric(6,1)

select @piao=票价

from jipiao

where 机票号=@id

return @piao

end

drop function tpiao

说明:创建了一个函数通过机票号能返回该机票价格,用到了系统函数“sum”,“month”,“year”

测试:取“襄阳北站”在20xx年12月份售出的票数金额

数据库报告

图7-1-1某地某月售票金额

7.1.2查航空公司拥有多少航班

SQL语言:

select count(航班号) 航班数量 from hangban

说明:计算‘航班号’的个数即可,航班号为主键不存在重复

数据库报告

图7-1-2该航空公司航班数量

7.1.3查某天某航空还剩多少票或座位

SQL语言:

select (select 人数 from hangban where 航班号='dy001')-count(*) 剩余票数

from shoupiao where 机票号 in (select 机票号 from jipiao

where 航班号='dy001') and datediff(day,售票日期,'2013-10-3')>=0

说明:1.查寻出某航班的座位数

2.查寻出截止到某月已经售出的该航班的票数

3.将两者相减即可

测试:'2013-10-3,航班‘dy001’剩余座位数

数据库报告

图7-1-3 两者相减得到剩余的票

7.1.3.1如何查某天某航班还剩甲等座位

SQL语言:

select (select 人数 from hangban where 航班号='dy001')- count(*) 剩余票数

from shoupiao

where dbo.tpxin(机票号)='甲' and

机票号 in (select 机票号 from jipiao where 航班号='dy001')

and datediff(day,售票日期,'2012-12-1')>=0

说明:此问题类似与4.1.3 只要知道某座位号对应的票型即可,故写了一个同机票号返回对

应票型的函数,如下:

create function tpxin(@phao nvarchar(30)) returns char(2)

as

begin

declare @pxin char(2)

select @pxin=票型

from jipiao

where 机票号=@phao

return @pxin

end

drop function tpxin

测试:2012-12-1,航班号='dy001' 所剩余甲票数量

数据库报告

图7-1-3-1某天某航班剩余甲等座位

7.1.3.2某天某航班乙等座位票价是多少 SQL语言:

select distinct dbo.tpiao(机票号) 票价格

from shoupiao where dbo.tpxin(机票号)='乙' and

机票号 in (select 机票号 from jipiao where 航班号='dy001') 说明:同上例,用到了通过机票号返回对应的票型的函数 测试:2012-12-1,航班号='dy001' 乙票价格

数据库报告

图7-1-3-2 某天某航班乙等座位票价

7.1.4.1查航天公司拥有多少售票点

SQL语言:

select count( distinct 售票地点) 售票点数 from shoupiao 说明:计算出售票点的个数即可

数据库报告

图7-1-4-1航空公司拥有的售票点数

7.1.4.2某月售出总金额为多少

SQL语言:

select * from shoupiao

select sum(dbo.tpiao(机票号)) 这个月的售出额 from shoupiao

where year(售票日期)='2012' and month(售票日期)='12' 说明:用到了通过机票号返回机票价格的函数 测试:2012-12 售出金额

数据库报告

图7-1-4-2某月的售出总额

7.1.4.3某月某航线售出金额为多少

SQL语言:

select sum(票价) 该航线收入

from hangban,jipiao,shoupiao

where shoupiao.机票号=jipiao.机票号 and jipiao.航班号=hangban.航班号

and year(售票日期)='2012' and month(售票日期)='10' and 航班终点='美国'

说明:某航线,由于是单选故只要给出航班终点即可,由于查询的数据涉及三张表 故采用链接查询

1. 连接三张表

2. 选择终点,年月份

3. 求和

测试:2012-12,由‘襄阳’到‘美国航线’售出金额。

数据库报告

图7-1-4-3 某月某航线售出总额

更多相关推荐:
数据库系统报告五

数据库系统原理实验报告实验名称数据库备份与恢复数据库安全性关系数据库完整性实验任课教师霍纬纲学号120xx1110姓名黄帅完成日期数据库备份与恢复一实验目的1通过ORACLE环境理解关系数据库的备份与恢复概念2...

数据库实践报告

中南大学数据库实验报告课题数据库原理及应用姓名林一新指导老师张祖平一实验目的与要求1熟悉ORACLE的运行环境在CLIENT端进行联接设置与服务器联通进入ORACLE的SQLPLUS的操作环境进一步建立表格并考...

数据库实施报告

数据库实施报告数据库设计好就该实施了一创建数据库1有两种方法创建数据库第一使用sqlservermanagementstudio创建数据库第二使用transactsql语言创建数据库代码USEmasterGOC...

数据库设计报告完整

数据库课程设计指导书昆明理工大学自动化系20xx年12月数据库技术是近年来计算机科学技术中发展最快的领域之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。《数据库原理及应用》课程设计重视实践环节,对于…

数据库检查报告模版

数据库系统远程性能监测报告模版文档控制修改记录审阅分发ii目录文档控制概述数据库配置非缺省的数据库参数Sga占用情况数据文件使用情况表空间管理方式和碎片TablespacesFreeSpace排序区的使用情况回...

数据库实验报告——

实验一SQLServer基本使用与数据定义一实验目的1掌握企业管理器及查询的定义方法使用方法2熟悉数据库建模及ER图的画法3掌握SQLServer中数据库及数据表的建立与管理方法4掌握数据的导入导出及数据库备份...

数据库软件调研报告

数据库软件调研报告卢文涛清华大学水工01北京100084摘要从理论和实践两方面作为切入点采用查询资料的调研方法明晰了数据库软件的基本定义并总结出OracleSybaseMicrosoftSQL三款数据库软件的共...

数据库压力测试报告

数据库压力测试报告目录123测试环境2测试目的2测试工具和测试方法231测试工具232测试方法2测试结果2测试结果分析3故障分析3总结445671测试环境2测试目的测试数据库在高并发压力下CPU内存和磁盘IO的...

网站数据库分析报告

数据库分析报告指导教师姓名学号所在专业所在班级成绩0目录一目的与要求211目的212要求2二系统分析321需求分析322开发及运行软件3221运行环境3222操作环境3223关系数据库3224开发平台3225使...

oracle数据库巡检报告模板

系统oracle数据库巡检报告文档控制修改记录审阅分发目录文档控制2检查总结5概要5总体概况5优化建议5介绍6目标6检查方法6检查范围6数据库配置分析7硬件配置7软件配置7数据库参数8控制文件9Temporar...

数据库开发报告

水电工程隧洞围岩分类专家系统的开发与应用1概述目前水电工程隧洞围岩分类在预可研主要采用定性的方法在可研阶段主要采用定性与定量相结合的方法定性分类是在现场对影响围岩稳定性的诸因素进行鉴别判断或对某些指标作出评判打...

数据库设计报告模板

1引言引言是对这份软件系统详细设计报告的概览是为了帮助阅读者了解这份文档如何编写的并且应该如何阅读理解和解释这份文档11编写目的说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告哪份软件产品概要设计报告...

数据库报告(29篇)