数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告
数据库课程设计
报告
目录
1.概述3
1.1本次课程设计的目的和任务3
1.2目标3
1.3数据库描述4
2.数据库需求分析4
3.数据库概念设计5
4.数据库逻辑设计与物理实现6
1)数据库逻辑设计6
2)数据库物理实现6
5.数据库应用系统编码实现6
5.1系统总体设计7
5.2系统界面设计7
5.3系统功能设计7
5.4系统详细设计7
5.5系统编码实现与功能展示7
6.总结7
7.报告最好不要超过25页。
7
8.封面、报告格式统一见下页。
7
数据库课程设计报告正文规范8
数据库课程设计报告内容
1.概述
数据库是事务处理、信息管理等应用系统的核心和基础,数据库管理系统通过将大量的数据按一定的数据模型组织起来,提供存储、维护和检索数据的功能,使应用系统可以以统一的方式方便、及时、准确地从数据库中获取所需信息。
Microsoft公司推出的SQLServer2005数据库管理系统以其强大的功能在各领域得到广泛应用。
本次课程设计根本目的就是在学习了《数据库原理》及《数据库运用技术》理论课的基础上,深入理解数据库的基本原理和强化SQLServer2005的理论及实践知识,熟练掌握:
数据库设计的需求分析------概念结构设计------逻辑结构设计------数据库的物理设计------数据库的运行和维护整个过程,为大家以后的工作和学习打下坚实的基础。
先导课程为:
《数据库原理》、《数据库运用技术》及《VB程序设计》。
设计环境和开发工具:
操作系统:
Windows2000或WindowsXP。
数据库管理系统:
SQLServer2005。
开发工具:
Visualstudio2005。
1.1本次课程设计的目的和任务
随着社会的发展,人民的生活水平不断提高,人们出行的交通工具也跟着随社会的发展而发展起来了。
乘飞机出行的人越来越多,所以这方面的市场非常大。
所以“机票预订系统”的开发是很有必要。
经过各种资料的调查和分析,决定以“机票预订系统”为数据库课程设计案例。
1.2目标
该系统是要将航空订票管理系统的数据库设计的合理、实用、高效,并且实现各种完整性以确保数据库的可用性、安全性、可维护性和科学性。
系统功能的基本要求:
每个航班信息的输入;
每个航班的坐位信息的输入;
当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;
旅客在飞机起飞前一天凭取票通知交款取票;
旅客能够退订和修改机票;
能够查询每个航班的预定情况、计算航班的满座率。
1.3数据库描述
本数据库是在模拟“机票预订系统”的基础上简化出来的,主要实现用户订票业务的正确完成,数据的正确存储和快速查询以及数据库安全性和备份恢复机制等功能。
2.数据库需求分析
航空公司提供航线和飞机的资料,机场对在本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有查询航班路线和剩余票数,以及网上订票等功能。
客户又可分为两类:
一类是普通客户,对于普通客户只有普通的查询功能和订票功能,没有相应的机票优惠;另一类是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策。
机场还要有紧急应对措施,在航班出现延误时,要发送相应的信息。
退票
3.数据库概念设计
数据关系如下:
客户(编号,ID号,姓名,性别,类型编号,联系电话)
用户类型信息(类型编号,名称,折扣比例)
航班信息(航线编号,出发地,目的地,出发时间,到达时间,实际价格)
舱位等级信息(舱位等级编号,航线编号,舱位等级,座位总数数,当前座位数,价格)
订票信息(流水号,客户编号,航线编号,舱位等级编号,实际票价,时间)
4.数据库逻辑设计与物理实现
4.1数据库逻辑设计
客户信息表:
列名
数据类型
可否为空
说明
客户编号
Char(8)
NOTNULL
主键
身份证号
Char(18)
NOTNULL
客户姓名
Varchar(20)
NULL
性别
Char
(2)
NULL
Check(男或女)
客户类型编号
Char
(2)
NULL
外键
联系电话
Varchar(15)
NULL
订票量
Tinyint
NULL
用户类型信息表:
列名
数据类型
可否为空
说明
客户类型编号
Char
(2)
NOTNULL
主键
类型名称
Varchar(20)
NULL
折扣比例
Tinyint
NULL
航班信息表:
列名
数据类型
可否为空
说明
航线编号
Char(8)
NOTNULL
主键
出发地
Varchar(20)
NULL
目的地
Varchar(20)
NULL
出发时间
Datetime
NULL
到达时间
Datetime
NULL
舱位信息表:
列名
数据类型
可否为空
说明
航线编号
Char(8)
NOTNULL
主键
舱位编号
Char(4)
NULL
座位数
Int
NULL
大于0
当前座位数
Int
NULL
价格
Smallmoney
NULL
大于0
订票信息表:
列名
数据类型
可否为空
说明
流水号
Char(20)
NOTNULL
主键
客户编号
Char(8)
NULL
外键
航线编号
Char(8)
NULL
外键
实际价格为
Smallmoney
大于0
时间
Datetime
NULL
用户账号信息表:
列名
数据类型
可否为空
说明
账号
Char(10)
NOTNULL
主键
密码
varchar(20)
NULL
客户类型
Char(8)
NULL
外键
邮件地址
Varchar(20)
NULL
表之间关系:
4.2数据库物理实现
4.2.1.数据库表
客户信息表(Clients)的建立
C_NO是为以自动增量为1的标示符
客户类型表的建立:
舱位信息表的建立:
.Booking表的建立
4.2.2.数据库视图
航班信息视图:
机票信息视图:
4.2.3.存储过程:
1.Pro_BookingTickes存储过程,需要相关的客户信息和航班信息以及订票的信息存入相应的表中,同一个用户定多张表在Clients表中只增加订票量:
2.Pro_RefundFee存储过程,退票前根据机票的时间和价格计算退票的手续费,当天的票不退手续费等于机票的原价
3.Pro_Refund存储过程,删除票信息
4.Pro_Price存储过程,根据不同类型用户定的不同舱位计算机票的实际价格
5.Pro_FlightInfo存储过程,根据出发地和目的地还有出发时间查询航班信息
4.2.3.触发器:
1.Tri_Book触发器,向Booking表中插入一条数据即客户定了一张票后,当前座位数自加
2.Tri_Book2触发器,在Booking表中删除一条记录即退一张票,舱位信息表中的当前座位数自减并且客户表中的信息也要修改,即如果客户订票数小于1了那么就删除该客户的记录,否则只是修改该客户的订票数。
3.Tri_Booking触发器,在订票的时候先判断是否还有座位,如果有才执行订票操作
4.2.4.数据库登录账号和用户:
1.Admin拥有管理员的权限
2.Person用户只有查询的权限
5.数据库应用系统编码实现
本系统是航空订票系统,以C#为前台应用系统的开发平台,MSSQL2005为数据库的开发平台,主要实现了会员航班查询、订票和票价打折的功能,管理员可以航班查询、订票、退票和改签等功能。
本系统主要用于测试后台数据库的完整性和安全性,基本功能大都是调用数据库存储过程或者通过简单的查询语句,所以功能比较简单。
5.1系统总体设计
本系统采用模块化的设计方法,自顶向下逐步细化,将系统分为两个主要的子系统——管理订票子系统和普通用户子系统,然后实现自己的不同的功能。
如下图:
5.2系统界面设计
界面设计遵循界面友好行型、美观、有条理的原则。
查询界面:
订票界面
登录界面
退票和改签界面
5.3系统功能设计
1.系统管理员的特殊功能:
(1)对数据库的数据的录入:
管理员登录后就可以录入航班信息
(2)退票:
输入客户的登记身份证号,可以查询该用户相关才订票信息和航班信息,从而实现退票功能
(3)改签:
首先修改查询航班,然后修改订票信息
2.普通用户子系统的功能:
(1)查询航班信息,通过出发地和目的地差询航班信息
(2)订票,通过查询后的航班信息可以订票
5.4系统详细设计
(1)普通用户子系统功能的详细设计
查询航班信息:
是通过上输入出发地和目的地还有出发时间就可以查询得到相应的航班信息,并且以表格的形式显示出来(包括航班的一般信息还有会员的价格座位数等),然后通过选择表格中的航班记录把要定的航班选中后,航班信息就被保存下来了,以供订票的时候的需要;
订票:
订票时要输入客户的基本信息,然后就可以把这些信息以参数的形式传给后台的存储过程这样就可以完成订票过程。
一些业务规则都在数据库中设定了的,包括满仓了就不能订票,定了一张票后相应的航班信息里当前座位数要加,一个客户定多张票信息不会重复录入等。
(2)管理员子系统
数据的录入功能主要是在前台调用后台数据库的存储过程来实现的;
退票:
退票的过程是通过输入客户的ID(身份证)号来查询客户的订票信息,然后再选中要退订的票,再通过查找该机票的流水号并以参数的形式传给数据库退票存储过程。
改签:
改签是首先选中要改的机票把它的流水号记录下来并且删除,然后查找新航班再定新的机票就好了。
5.5系统编码实现与功能展示
查询航班信息
退票
改签机票
6.总结
通过这次实验,我觉得收获很多。
不仅加深了我对教学系统的了解与深化以及数据库原理的了解,熟悉了数据库设计的流程,还对软件工程有了初步认识,基本掌握了需求分析的方法。
同时为我以后进入社会打下了基础。
通过本次设计与制作,我的实际动手能力和处理问题的能力有了明显提高。
但同时也存在一些问题。
由于前面需求分析不够准确,导致在进行编码后还在不断地修改需求,所以进行了不少的重复工作,延误了进度。
所以我深深的明白了数据库的设计是非常重要的,也认识到数据可这门学科对于计算机科学的重要性。
这个航空订票系统所需的数据比较繁琐,所以在进行数据和界面的结合需要相当大的功夫,处理更多的异常。
在做系统的过程中经常出现找不出原因的问题,但是通过和同学之间的交流问题还是一一的解决了,所以这次课程设计的另一个收获就是和同学之间交流得到的一些经验和技巧。