当前位置:文档之家› SQL数据库课程设计

SQL数据库课程设计

长沙学院课程设计说明书

题目机票预订管理系统

系(部) 计算机科学与技术系

专业(班级) 软件7班

姓名黄炫皓

学号 2010022506

指导教师毛伟

起止日期 2011.12.19-2011.12.31

课程设计任务书

课程名称:数据库系统原理

设计题目:

●机票预定管理系统

1、某航空公司机票预订管理系统需要如下信息:

航班:航班编号、出发地、目的地、出发时间、飞行时间、飞机型号等。

飞机:飞机型号、座位数等。

机票:航班编号、客户编号、价格、折扣、总座位数、已售票数等。

客户:姓名、性别、联系电话、身份证号码等。

业务员:工号、姓名、性别等。

一架飞机能飞多趟航班,一趟航班只能由一架飞机飞。

一趟航班将根据座位数目出售多张机票,一张机票只能登上一趟航班。

一个客户可以购买多张机票,一张机票只能被购买一次。

一个业务员可以同时对多个客户进行营销,一个客户可能是多个业务员的营销对象。

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

按照一定条件查询、统计符合条件的航班、机票、客户信息等。例如航班剩余舱位数目、同一航线可选航班信息、客户购买历史等,能够模拟完成机票预订业务。

(如果这里用存储过程完成,成绩会给高点)

各阶段具体要求:

1、需求分析阶段

●定义数据项的含义和取值

●定义目标系统的数据流

2、概念结构设计阶段

●画出实体模型E-R图

3、逻辑结构设计阶段

●将实体模型转化为关系模型

●给出每个关系的主关键字和函数依赖集

●分析你所设计的关系数据库模式是否属于3NF

4、物理设计阶段

●确定所有字段的名称、类型、宽度、小数位数及完整性约束

●确定数据库及表的名称及其组成

●确定索引文件和索引关键字

5、数据库安全及维护设计阶段

●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)●为了实现复杂的数据完整性约束,设计适当的触发器

●设计一个适合的数据库备份策略

6、实施阶段

●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

指导教师签名:日期:

教研室主任签名:日期:

系主任签名:日期:

长沙学院课程设计鉴定表

目录

1、需求分析阶段......................................................................................................................................................... I

2、概念结构设计阶段................................................................................................................................................. I

3、逻辑结构设计阶段................................................................................................................................................. I

4、物理设计阶段......................................................................................................................................................... I

5、数据库安全及维护设计阶段................................................................................................................................ I I

6、实施阶段................................................................................................................................................................ I I

一、引言 (2)

1.1编写目的 (2)

1.2参考资料 (2)

二、需求规约 (2)

2.1业务描述 (2)

2.2需求分析 (3)

三、数据库环境说明 (3)

四、数据库的命名规则 (3)

4.1数据库对象命名规则 (3)

4.2数据项编码规则 (4)

五、逻辑设计 (4)

六、物理设计 (5)

6.1表汇总 (5)

6.2表 (5)

6.3存储过程的设计 (8)

七、安全性设计 (11)

7.1防止用户直接操作数据库的方法 (11)

7.2角色与权限 (11)

八、数据库管理与维护说明 (12)

一、引言

1.1 编写目的

本文档是机票预订管理系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。

1.2 参考资料

二、需求规约

2.1业务描述

(1)数据库系统创建背景:随着因特网的出现,其自身所具有的开发性、全球性、低成本、高效率的特点,使得跨企业,跨地区,跨行业进行管理成为可能。全球信息系统发展到世界的各个角落、各个领域。通过企业间跨地区的合作,使得业务集成,可以降低成本,提高企业的竞争力。但是目前,随着航空运输业的快速发展,传统的人工售票模式不能满足新时期的航空客运发展的要求,约束了航空客运的发展,因此提出了网上飞机票预订信息系统。

(2)查询业务:根据客户提出的要求查询航班、机票、客户信息。

订票业务:根据客户信息和客户所预定的航班信息产生机票预定信息。

改订业务:修改客户所预定的机票信息。

退订业务:删除掉客户的预订信息。

(3)数据库的资源需求:航班信息、飞机信息、机票信息、客户信息、业务员信息。

(4)数据库的设计约束:

航班:航班编号、出发地、目的地、出发时间、飞行时间、飞机型号。

飞机:飞机型号、座位数。

机票:航班编号、座位编号、客户编号、价格、当前预售状态。

客户:姓名、联系电话、客户编号。

业务员:姓名、工号。

2.2需求分析

(1)机票预定管理系统业务流程的内在联系:客户可以根据自己的需要来查询航线以及相应的航班信息和票务信息,以此来满足自己的出行要求。本系统有一定的检索功能,乘客可以根据需要,输入自己的查询条件,这样就可以得到满足条件的航线信息、航班信息,还可以对自己需要的机票进行预定。客户在预订之后如果出现什么情况可以进行机票改订和退订处理。

(2)在机票预订管理系统中,航班信息中的飞机型号依赖于飞机信息中的飞机型号;机票信息中的航班编号依赖于航班信息的航班编号、客户编号依赖于客户信息的客户编号。

三、数据库环境说明

四、数据库的命名规则

4.1 数据库对象命名规则

4.2 数据项编码规则

五、逻辑设计

(1)创建与数据库相关的那部分实体关系图(ERD)。

(2)创建数据库系统的关系模型。

航班(航班编号、出发地、目的地、出发时间、飞行时间、飞机型号)

飞机(飞机型号、座位数)

机票(航班编号、座位编号、客户编号、价格、当前预售状态)

客户(姓名、联系电话、客户编号)

业务员(姓名、工号)

六、物理设计

6.1表汇总

6.2表

表A:航班表

表B:飞机表

表C:客户表

表D:业务员表:

表E:机票表

6.3存储过程的设计

--创建存储过程

----------------------------------------------------------------

--管理客户信息

--查询所有客户信息

create procedure Proc_selectclientinfo

as

begin

select*from Table_Client

end

--查询特定客户信息

create procedure Proc_selectneedclientinfo

@client_id char(18)

as

begin

select*from Table_Client where Client_id=@client_id

end

--修改客户信息

create procedure Proc_updateclientinfo

@client_id char(18),@client_name nvarchar(20),@client_telephone nvarchar(50) as

begin

update Table_Client set

Client_name=@client_name,Client_telephone=@client_telephone

where@client_id=Client_id

end

-------------------------------------------

--查询业务

--查询航班信息

create procedure Proc_selectflight

@flight_no char(20)

as

begin

select*from Table_Flight

end

--查询飞机信息

create procedure Proc_selectair

@air_no char(20)

as

begin

select*from Table_Air

end

--查询客户信息

create procedure Proc_selectneedclientinfo

@client_id char(18)

as

begin

select*from Table_Client where@client_id=Client_id

end

--查询机票信息

create procedure Proc_selectticket

@flight_no char(20)

as

begin

select*from Table_Ticket where Flight_no=@flight_no

end

--查询航班剩余座位数

create procedure Proc_selectremainseat

@flight_no char(20)

as

begin

select

(select a.Air_seatnum from Table_Flight f,Table_Air a

where Flight_no=@flight_no and f.Air_no=a.Air_no)-count(*)Remainseat from Table_Ticket

where Flight_no=@flight_no

end

--根据客户的要求查询航班信息

create procedure Proc_selectneedfilght

@start_place nvarchar(50),@end_place nvarchar(50)

as

begin

select*from Table_Flight

where Start_place=@start_place and End_place=@end_place

end

--------------------------------------

--预订业务

create procedure Proc_bookticket

@flight_no char(20),@seat_num int,@Client_id char(18)

as

begin

insert into Table_Ticket values(@flight_no,@seat_num,@Client_id,500,'已预售') end

--------------------------------------

--改订业务

create procedure Proc_changeticket

@flight_no char(20),@client_id char(18)

as

begin

update Table_Ticket

set Flight_no=@flight_no

where Client_id=@client_id and Flight_no=@flight_no

end

-------------------------------------

--退订业务

create procedure Proc_deleteticket

@flight_no char(20),@client_id char(18)

as

begin

delete from Table_Ticket

where Client_id=@client_id and Flight_no=@flight_no

end

---------------------------------------------------------------------------- ---------------------------------------------------------------------------- --整个操作过程

--客户管理

EXEC Proc_selectclientinfo

EXEC Proc_selectneedclientinfo'kevin1'

EXEC Proc_updateclientinfo'430521************','kevin8','133********'

--查询

EXEC Proc_selectflight'CS1122'

EXEC Proc_selectair'A111'

EXEC Proc_selectneedclientinfo'kevin1'

EXEC Proc_selectticket'CS1122'

EXEC Proc_selectremainseat'CS1122'

EXEC Proc_selectneedfilght'长沙','北京'

--预定

EXEC Proc_bookticket'CS1122',1,'430521************' --改订

EXEC Proc_changeticket'CS1122','430521************' --退订

EXEC Proc_deleteticket'CS1122','430521************'

七、安全性设计

7.1防止用户直接操作数据库的方法

给用户设置权限:

1)管理员具有对整个数据库的操作权限。

2)业务员可访问客户信息表,对客户信息表可以修改,增加,删除。

7.2角色与权限

--创建登录账号

create login kevin with password='123456'

--创建业务员角色

create role yuan

--可访问可、修改客户表,访问业务员表,机票表、航班表、飞机表:

--授予权限

grant select on Table_Flight to yuan

grant select,update on Table_Client to yuan

grant select on Table_Ticket to yuan

grant select on Table_Air to yuan

grant select on Table_Emp to yuan

--创建客户角色

create role client

--可访问可、修改客户表,访问机票表、航班表、飞机表:

--授予权限

grant select on Table_Flight to yuan

grant select,update on Table_Client to yuan

grant select on Table_Ticket to yuan

grant select on Table_Air to yuan

--创建管理员角色

create role adm

--可进行所有操作:

--授予权限

grant select,insert,delete,update on Table_Flight to yuan

grant select,insert,delete,update on Table_Client to yuan

grant select,insert,delete,update on Table_Ticket to yuan

grant select,insert,delete,update on Table_Air to yuan

grant select,insert,delete,update on Table_Emp to yuan

八、数据库管理与维护说明

为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:系统处理的准确性和及时性:

系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间够满足企业对信息处理的需求。

由于机票预定系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而机票数量和时间又影响企业的决策活动,其准确性很大程度上决定了机票预定系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。

系统的开放性和系统的可扩充性:

机票预定系统在开发过程中,应该充分考虑以后的可扩充性。例如订票系统的方式的改变(网上订票),

用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。系统的易用性和易维护性:

机票预定系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。

机票预定系统中涉及到的数据是航空公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。

系统的标准性

系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。

系统的先进性:

目前计算系统的技术发展相当快,做为机票预定系统工程,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。

系统的响应速度

机票预定系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。

相关主题
文本预览
相关文档 最新文档