旅游信息管理系统
发布时间:2019-12-08 09:48:45
发布时间:2019-12-08 09:48:45
Shanghai Dianji University
课程设计报告
课程名称:___数据库课程设计报告______
姓 名:________张广琪___________
班级学号:______BX0901___________
指导教师:___________沈学东 ________
完成日期:_______2011-12-16_________
电 子 信 息 学 院
Electronic Information School
2011年 12 月
1概述
1.1设计要求
1、需求分析:根据自己的选题,绘制数据流图。
2、概念结构设计:绘制所选题目详细的E-R图。
3、逻辑结构设计:将E-R图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。
4、设计小结:总结课程设计的过程、体会及建议。
5、其他:参考文献、致谢等。
1.2设计报告要求
1、问题描述。包括此问题的理论和实际两方面。
2、解决方案。包括:E-R模型要设计规范、合理,关系模式的设计至少要满足第三范式,数据库的设计要考虑安全性和完整性的要求。
3、解决方案中所设计的E-R模型、关系模式的描述与具体实现的说明。
4、具体的解决实例。
1.3课程设计的一般步骤
课程设计大体分五个阶段:
1、选题与搜集资料:选择课题,进行系统调查,搜集资料。
2、分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。
3、程序设计:运用掌握的语言,编写程序,实现所设计的模块功能。
4、调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况。
5、验收与评分:指导教师对每个的数据库系统进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。
2设计内容
2.1 需求分析
随着旅游行业的快速发展,旅游行业的工作人员每天都要面对大量的游客信息、旅游路线信息以及与旅游相关的交通、食宿等方面的信息。如何科学地管理这些信息是旅游行业急需解决的问题。本课程设计通过对某旅行社的调查,以用户需求为依据,完成了对一个小型的国内旅游管理信息系统的数据库设计。
2.11 功能实现
通过对旅游行业业务的了解,与该行业的工作人员的交谈,旅游管理信息系统需要完成的功能主要有:
•有关旅游基本信息的输入,包括旅游线路、旅游班次、旅游团、游客、导游、交通工具、宾馆以及保险等基本信息的输入。
•对旅游线路基本信息的查询、修改。
•对旅游班次基本信息的查询、修改。
•对旅游团基本信息的查询、修改。
•对游客基本信息的查询、修改。
•对导游基本信息的查询、修改。。
•对宾馆基本信息的查询、修改。
•对保险基本信息的查询、修改。
由以上需求分析可画出旅游管理系统数据流图:
图1-1 旅游管理系统数据流图
2.12 具体实体需求分析
针对旅游管理信息系统的需求,设计如下面所示的数据项和数据结构:
•旅游路线基本信息,包括的数据项有:路线号、起点、终点、天数、主要景点等。
•旅游班次基本信息,包括的数据项有:班次号、出发日期、回程日期、旅游标准、报价等。
•旅游团基本信息,包括的数据项有:团号、团名、人数、联系人、地址、电话等。
•游客基本信息,包括的数据项有:游客编码、姓名、性别、年龄、身份证号码、住址、电话等。
•导游基本信息,包括的数据项有:导游编号、姓名、性别、年龄、身份证号码、住址、电话、语种、等级、业绩等。
•宾馆基本信息,包括的数据项有:宾馆编号、宾馆名、城市、星级、标准房价、联系人、职务、地址、电话等。
•保险单基本信息,包括的数据项有:保险单编号、保险费、投保日期等。
2.2 划分功能模块
根据系统功能的需求分析和具体旅游管理系统的特点,经过模块化的分析,得到如下图所示的系统功能模块结构图。
图1-2 系统功能模块结构图
2.3数据字典
2.31 数据项
数据字典是各类数据描述的集合,是进行详细的数据收集和数据分析所获得主要的成果,数据字典是对系统所用到的所有表结构的描述,旅游管理系统的主要数据如下列各表所示:
表1-1 旅游路线基本信息Roadline
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Rnum | 路线号 | char | 10 | Y |
2 | Rstart | 起点 | varchar | 20 | N |
3 | Rend | 终点 | Varchar | 20 | N |
4 | Rdays | 天数 | smallint | N | |
5 | Rscenery | 主要景点 | varchar | 20 | N |
表1-2 旅游班次基本信息Batch
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Bnum | 班次号 | char | 10 | Y |
2 | Bstart | 出发日期 | datetime | N | |
3 | Breturn | 返程日期 | datetime | N | |
4 | Bstandard | 旅游标准 | varchar | 10 | N |
5 | Bprice | 报价 | Int | N | |
6 | Rnum | 路线号 | char | 10 | F |
7 | Traffictools | 交通工具 | Varchar | 10 | N |
表1-3 旅游团基本信息Team
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Tnum | 团号 | char | 10 | Y |
2 | Tname | 团名 | varchar | 20 | N |
3 | Tpersons | 人数 | int | N | |
4 | Tlinkman | 联系人 | varchar | 20 | N |
5 | Ttelephone | 电话 | Char | 11 | N |
6 | Taddr | 地址 | Varchar | 50 | N |
7 | Bnum | 班次号 | char | 10 | F |
8 | Gnum | 导游编号 | Char | 10 | F |
9 | Hnum | 宾馆编号 | Char | 10 | F |
表1-4 游客基本信息Visitor
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Vnum | 游客编号 | Char | 10 | Y |
2 | Vname | 姓名 | Varchar | 20 | N |
3 | Vsex | 性别 | Char | 2 | N |
4 | Vage | 年龄 | Smallint | N | |
5 | Vstatusnum | 身份证号码 | Char | 18 | N |
6 | Vaddr | 住址 | Varchar | 50 | N |
7 | Vtelephone | 电话 | Char | 11 | N |
8 | Tnum | 团号 | char | 10 | F |
9 | Inum | 保险单编号 | Char | 10 | F |
表1-5 导游基本信息Guide
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Gnum | 导游编号 | Char | 10 | Y |
2 | Gname | 姓名 | Varchar | 20 | N |
3 | Gsex | 性别 | Char | 2 | N |
4 | Gage | 年龄 | Smallint | N | |
5 | Gstatusnum | 身份证号码 | Char | 18 | N |
6 | Gaddr | 住址 | Varchar | 50 | N |
7 | Gtelephone | 电话 | Char | 11 | N |
8 | Gkind | 语种 | Varchar | 10 | N |
9 | Glevel | 等级 | Char | 5 | N |
10 | Gachievement | 业绩 | Varchar` | 50 | N |
表1-6 宾馆基本信息Hotel
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Hnum | 宾馆编号 | Char | 10 | Y |
2 | Hname | 宾馆名 | Varchar | 20 | N |
3 | Hcity | 城市 | varchar | 20 | N |
4 | Hlevel | 星级 | Char | 5 | N |
5 | Hprice | 标准房价 | Int | N | |
6 | Hlinkman | 联系人 | Varchar | 10 | N |
7 | Hposition | 职务 | Varchar | 10 | N |
8 | Haddr | 地址 | Varchar | 50 | N |
9 | Htelephone | 电话 | Char | 11 | N |
表1-7 保险单基本信息Insurence
序号 | 字段 | 别名 | 数据类型 | 数据长度 | 码 |
1 | Inum | 保险单编号 | Char | 10 | Y |
2 | Iprice | 保险费 | Int | N | |
3 | Idate | 投保日期 | Datetime | N | |
4 | Ieffecttime | 有效期限 | Datetime | N | |
2.32 数据结构
数据结构反映了数据之间的组合关系。一个数据结构可以有若干个数据项组成,也可以有若干个数据结构组成,或若干个数据项和数据结构混合组成。经过数据项和需求分析,本系统费数据结构表可设计如下:
表1-8 数据结构表
数据结构名 | 含义说明 | 组成部分 |
游客信息管理 | 描述游客基本信息 | 游客编码+姓名+性别+年龄+身份证号码+住址+电话 |
团体信息管理 | 描述旅游行程信息 | 团号+团名+人数+联系人+地址+电话+班次号+导游编号 |
班次信息管理 | 描述旅游细节信息 | 班次号+出发日期+回程日期+旅游标准+报价+交通工具+路线号 |
系统管理 | 用户信息更改,帮助 | |
2.33 数据流
数据流是数据结构在系统中传输的途径。通过对用户的需求分析以及数据项和数据流的设计,得出相应的数据流描述如下:
表1-9 数据流定义表
编号 | 数据流名 | 组成 | 流量 | 备注 |
01 | 游客信息 | 游客编码+姓名+性别+年龄+身份证号码+住址+电话 | 大 | 游客基本信息 |
02 | 团体信息 | 团号+团名+人数+联系人+地址+电话 | 一般 | 团体信息 |
03 | 班次信息 | 班次号+出发日期+回程日期+旅游标准+报价+交通工具 | 一般 | 行程班次信息 |
04 | 路线信息 | 路线号+起点+终点+天数+主要景点 | 一般 | 路线信息 |
05 | 宾馆信息 | 宾馆编号+宾馆名+城市+星级+标准房价+联系人+职务+地址+电话 | 一般 | 宾馆基本信息 |
06 | 导游信息 | 导游编号+姓名+性别+年龄+身份证号码+住址+电话+语种+等级+业绩 | 一般 | 导游基本信息 |
07 | 保险信息 | 保险单编号+保险费+投保日期+有效期截止 | 一般 | 保险信息简介 |
2.4概念结构设计
2.41 实体E-R图
图1-3 保险单实体E-R图
图1-4 宾馆实体E-R图
图1-5 游客实体E-R图 图1-6 旅游班次实体E-R图
图1-7 导游实体E-R图 图1-8 旅游路线实体E-R图
图1-9 旅游团实体E-R图
2.42 系统E-R图
图1-10 系统E-R图
2.5逻辑结构设计
2.51 关系模型
将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:
1.Roadline实体可转换为:
Roadline(Rnum,Rstart,Rend,Rdays,Rscenery)
Rnum-路线号、Rstart-起点、Rend-终点、Rdays-天数、Rsc;‘;enery-主要景点等。
2.Batch实体可转换为:
Batch(Bnum,Bstartdate,Bredate,Bstandard,Bprice,Traffictools)
Bnum-班次号、Bstartdate-出发日期、Bredate-回程日期、Bstandard-旅游标准、Bprice-报价, Traffictools-交通工具等。
3.Team实体可转换为:
Team(Tnum,Tname,Tpersons,Tlinkman,Taddr,Ttelephone,Bnum,Hnum,Gnum)
Tnum-团号、Tname-团名、Tpersons-人数、Tlinkman-联系人、Taddr-地址、
Ttelephone-电话,Bnum-班次编号,Gnum-导游编号,Hnum-旅馆编号等。
4.Visitor实体可转换为:
Visitor(Vnum ,Vname,Vsex,Vage,Vstatusnum,Vaddr,Vtelephone,Tnum,Inum)Vnun-游客编码、Vname-姓名、Vsex-性别、Vage-年龄、Vstatusnum-身份证号码、Vaddr-住址、Vtelephone-电话,Tnum- 团号,Inum-保险单号等。
5.Guide实体模型可转化关系模式:
Guide(Gnum,Gname,Gsex,Gage,Gstatusnum,Gaddr,Gtelephone,Gkind,Glevel,Gachievement)
Gnum-导游编号、Gname-姓名、Gsex-性别、Gage-年龄、Gstatusnum-身份证号码、Gaddr-住址、Gtelephone-电话、Gkind-语种、Glevel-等级、Gachievement-业绩等。
6.Hotel实体模型可转化关系模式:
Hotel(Hnum,Hname,Hcity,Hlevel,Hprice,Hlinkman,Hposition,Haddr,Htelephone,)
Hnum-宾馆编号、Hname-宾馆名、Hciy城市、Hlevel星级、Hprice标准房价、Hlinkman-联系人、Hposition-职务、Haddr地址、Htelephone-电话等。
7.Isurence实体模型可转化关系模式:
Isurence(Inum,Iprice,Idatetime,Ieffectdate)
Inum-保险单编号、Iprice-保险费、Idatetime-投保日期,Ieffectdate-有效期截止日期等。
2.52 物理模型
将生成概念模型通过在PowerDesigner工具选择Tools—Generate Physical Model命令就可以转换成物理模型,由于条件限制,本次设计未能实现这种转换,因而这里不再赘述。
2.6物理结构设计
2.61 确定数据库的存储结构
由于本系统建立的数据库不是很大,所以数据存储采用的是磁盘的一个分区。
2.62 存取方法和优化方法
常用的存取方法主要有三种:第一种是索引方法;第二种是聚簇方法;第三种方法是HASH法。使用索引法可以大大减少数据的查询时间。但要根据数据库的需求对各种方法进行择优寻求,视情况而定。
2.7数据的实施和维护
2.71数据库的实施
数据库的实施主要是根据逻辑结构和物理结构设计的结果,在计算机系统上建立实际的数据库结构,导入数据并进行程序调试。
由于没有PowerDesigner工具的支持,故这里直接在SQL server中直接创建旅游管理系统基本表的信息。
图1-11 Batch表的创建信息结构图
图1-12 Guide表的创建信息结构图
图1-13 Hotel表的创建信息结构图
图1-14 Insurence表的创建信息结构图
图1-15 Roadline表的创建信息结构图
图1-16 Team表的创建信息结构图
图1-17 Visitor表的创建信息结构图
图1-18 在Team中创建Bnum为外键
图1-19 创建属性约束
图1-20 在Batch实体中创建Rnum为外键
2.72数据的载入
图1-21 Batch实体部分基本信息数据图
图1-22 Guide实体部分基本信息数据图
图1-23 Roadline实体部分基本信息数据图
图1-24 Team实体部分基本信息数据图
图1-25 Visitor实体部分基本信息数据图
图1-26 Hotel实体部分基本信息数据图
图1-27 Insurence实体部分基本信息数据图
2.73数据的试运行
(1)数据基本信息查询
图1-28 数据基本信息查询
(2)数据基本信息的插入
图1-29 数据基本信息的插入
(3)数据基本信息的删除
图1-30 数据基本信息的删除
(4)数据基本信息的更新
图1-31数据基本信息的更新
2.74数据库的运行和维护
数据库试运行合格后,数据库开发工作就基本完成,即可以投入正式运行了。但是,由于环境不断在变化,数据库运行过程中物理存储业会不断变化,对以数据库设计进行评价、调整、维修和改善等工作是一个长期的任务,也是设计工作的继续和提高。
在数据库运行阶段。对数据经常性的维护工作主要是有DBA完成的,主要包括:
数据库的存储和恢复
数据库的安全性、完整性控制
数据库性能的监督、分析和改造
数据库的重组与重构造。
3课程设计小结
3.1设计自我评价和结果分析
首先对自己这次设计的这个数据库进行做一下诚恳的评价。总的来说,这次课设的效果不好,主要是因为平时理论没跟能跟得上实践,从而造成了两手都不抓,什么都抓不住的现状!从数据库的物理结构来讲,没能实现其很好的存取和优化方法,其功能中也没有涉及使用触发器的,其实我根本不知道触发器是用来干嘛的。对数据库的安全机制,角色管理使用权限我也模棱两可的,不知道究竟这些功能实现了没有。其次,从数据库概念结构来看,我觉得(我是说我自认为,我不敢肯定的)我这方面做的还可以,基本上关系模式可以达到第三范式了,我实在发不现里面有哪些因素不具备3范式的遗传特性,因而我就私下里这么认为了。最后,从外形框架上看,我的数据库其实不配叫数据库了,如果是,他也就像人群中的木偶一样,只具有数据库最原始的模样,而没有其现代化的功能模块调用机制。说我不会设计前台吧,我觉得有点亏,毕竟我对C#情有独钟,即使是不能顺利设计出来,但经历了风雨,总归能看见彩虹。可我就是没有心思去做,那就恭维一下自己力有余而心不足吧。
结果分析,对于这次的数据库实现的功能,我觉得还算行吧。不会做和不想做的也就算了,凡是做过了的总归有点成果吧。本数据库可以进行一些简单的查询、插入、删除、更新等小操作,而且做起来也很简单。但是对数据库运行和维护做的不好,因为我根本就是不知道如何运行和维护,更何况数据库的运行在我看来是要以软件来作为精神寄托的,没有软件的依托,再好的数据库也是空中楼阁,不屑一顾的。因而,对其运行我不多做解释。至于维护,那就更好说了。压根就没有投入使用数据库,那何来对其进行维护呢?
3.2致谢
首先我们先好好感谢一下我们敬爱的老师,是他每周不拉课的给我们教授每一章节的内容,让我们有机会坐在这里优哉游哉的做着数据库的课程设计。我依然清晰的记得,老师想教授幼儿园小学生那样一遍遍的问我们听懂了没有,对不对啊?很好……当时我觉得是很搞,但事后自行想想,是老师含辛茹苦,不辞辛劳的培育,让我们收敛一下那张狂的个性,从新像小学生那样好好听课,多学点东东。其次我要感谢一下同甘共苦的同学,是他们时时刻刻在帮助我成长和学习,在此次课设过程中,多亏了他们的大力支持帮助,我才顺利完成实验报告和数据库设计。总之,要感谢还有很多,这里纸张有限,不再赘述。
参考文献
《数据库应用与技术》中国铁道出版社,贾铁军主编;
《SQL sever2005经典实例教程》电子工业出版社,袁然,王诚梅编著;