火炬数据库课设.docx
《火炬数据库课设.docx》由会员分享,可在线阅读,更多相关《火炬数据库课设.docx(39页珍藏版)》请在冰豆网上搜索。
火炬数据库课设
一、系统分析2
1.1系统目标3
1.2系统功能分析3
二、需求分析3
2.1业务流程4
2.1.1火炬手的选拔流程为:
4
2.1.2火炬手分配的流程为:
5
2.1.3火炬分配的流程为:
5
2.2系统功能模块6
2.2.1系统管理模块6
2.2.2火炬手申报选拔分配管理模块6
2.2.3查询管理模块6
2.2.4火炬存储管理模块7
2.3数据流程图7
2.3.1火炬手申报数据流程图7
2.3.2火炬手选拔、分配数据流程图7
2.3.2火炬配送数据流程图7
2.3.4总的数据流图8
2.4数据字典8
2.4.1数据项8
2.4.2数据结构13
三、概念结构设计14
3.1目的与任务14
3.2实体属性14
3.3E-R实体模型图15
3.3.1各实体的E-R图15
3.3.2分E-R图17
3.3.3系统总的E-R图为19
四、逻辑结构设计20
4.1任务与目的20
4.2关系模式的转换20
4.3数据模型的优化20
4.4优化后的模型21
4.5设计用户子模式21
4.5.2关系模式城市:
21
五、物理结构设计22
六、数据库实施24
6.1建表插入记录结果24
6.1.2建立城市信息表25
6.1.3建立城市归属信息表25
6.1.5建立仓储中心信息表27
6.1.8建立路程归属信息表29
6.1.9建立推荐单位表29
6.1.10建立传递表30
6.2查询操作30
6.2.2查询英国传递的城市信息30
6.2.3查询火炬使用的燃料信息30
6.2.4查询仓储中心信息30
6.2.5查询仓储燃料信息31
6.2.7查询所有火炬手信息31
6.2.8查询来自英国的火炬手31
6.3主要功能的SQL语句实现32
6.4数据更新33
七、设计体会34
八、参考文献35
一、系统分析
引言
伦敦奥运火炬传递作为一种传递奥林匹克精神和和平友谊精神的全世界范围内的、是活动奥运会必不可少的项目之一,越来越受到人们的关注。
而在信息高速发展的今天,公众期望十分直观方便的查看火炬传递信息,而作为主办方的伦敦奥组委期望所有火炬传递的相关信息直观的管理。
所以建立火炬传递信息管理显得十分必要。
本次课程设计正是为此开发一个具有高效率、人性化、操作简单的火炬传递信息管理系统数据库,使得奥组委相关工作人员能够方便的完成火炬传递信息的管理。
1.1系统目标
1、系统基本要求:
1)增删火炬手和火炬信息
2)可以查询火炬火炬传递信息(包含传递路线,传递时间,火炬手信息等)
2、数据库要求:
在数据库中至少要包含下列数据表:
1)城市信息表
2)火炬手信息表
3)路程信息表
1.2系统功能分析
伦敦奥运会火炬传递信息管理系统主要功能是对传递路线、火炬手信息、火炬信息等进行录入、删除、修改、浏览、查找和排序等操作。
火炬手选拔:
在奥组委确认火炬手名单后,系统录入火炬手信息。
传递城市:
在奥组委选出传递城市后,系统录入传递城市信息。
传递路程:
在每个城市中的具体传递路线确定后,系统录入路程信息。
盘存管理:
系统的使用用户根据自己的相应权限查询权限范围内的各种记录。
二、需求分析
奥运火炬传递工作经国际奥委会和伦敦奥组委共同进行决策,伦敦奥组委具体实施,包括奥运火炬手的选拔规则,选拔流程,火炬手在各城市的分配,传递顺序的安排;奥运火炬传递路线的制定,各传递地点传递时间的分配。
北京奥运会后,国际奥委会已经禁止主办者到外国举办火炬传递活动,但由于英国当地实际背景,本次奥运会国际奥委会特批可以进入爱尔兰。
也即按惯例在希腊采集圣火并完成希腊境内的传递之后,火炬将直接进入英国和爱尔兰进行传递。
经过详细调查,搜集相关文件及报道,得到了以下信息:
伦敦奥运会火炬传递路线:
境外传递城市1个:
都柏林(爱尔兰)
境内传递城市69个:
兰兹角-普利茅斯-埃克塞特-汤顿-布里斯托尔-格洛斯特-伍斯特-卡迪夫-斯旺西-阿伯里斯特威斯-博马里斯-切斯特-特伦特河畔斯托克-博尔顿-利物浦-贝尔法斯特-班恩河-伦敦德里-纽里-纽卡斯尔-斯特兰拉尔-格拉斯哥-柯克沃尔(奥克尼群岛)-斯通诺威-阿伯丁-圣安德鲁斯-爱丁堡-阿尼克-盖茨黑德-达勒姆-米德尔斯堡-赫尔-约克-邓弗里斯州-肯德尔-林瑟姆圣安妮斯-索尔福德-利兹-谢菲尔德-格里姆斯-林肯-诺丁汉-德比-伯明翰-考文垂-莱切斯特-彼得伯勒-诺维奇-伊普斯威奇-切姆斯福德-剑桥-卢顿-牛津-雷丁-索尔兹伯里-波特兰-伯恩茅斯-南安普顿-朴茨茅斯-布赖顿和霍夫-黑斯廷斯-迪尔-梅德斯通-格林威治-雷德布里奇-刘易舍姆-金斯顿-哈罗-卡姆登
2.1业务流程
2.1.1火炬手的选拔流程为:
火炬手的产生方式:
先是由公众自由推荐,再由奥运会赞助商推荐。
最终名单由伦敦奥运会组委会确定。
2.1.2火炬手分配的流程为:
国内和国外的火炬手分配将由奥组委统一分配,英国本土火炬手一般采用就近原则,对体育事业或国家有特殊贡献的人由奥组委统一另外安排到有特殊意义的地点。
而由赞助商推荐的外国火炬手则统一由奥组委安排。
2.1.3火炬分配的流程为:
在火炬传递过程中,火炬均有统一编号且统一存放在伦敦奥组委指定的地点,在火炬传递开始,火炬手的火炬就被唯一指定。
2.2系统功能模块
2.2.1系统管理模块
1、超级用户登录:
实现系统最高管理员登录
2、管理员登录:
实现一般管理员登录
3、用户登录:
实现系统管理人员授予的用户名和密码
4、密码修改:
实现所有用户的密码修改功能
5、退出系统:
实现正常退出火炬传递信息管理系统
2.2.2火炬手申报选拔分配管理模块
1、火炬手申报:
记录由赞助商推荐的名单
2、火炬手选拔:
记录由奥组委确定的火炬手名单
3、火炬手分配:
记录火炬手详细的传递火炬信息
2.2.3查询管理模块
1、火炬所在地查询:
查询当前火炬所处位置
2、火炬手查询:
包括火炬手自身信息查询,路程查询等
3、路线查询:
包括火炬完整的、在英国境内以及各城市的具体路线
2.2.4火炬存储管理模块
1、火炬存储:
记录火炬存储状况
2、火炬运送:
记录火炬运送信息
2.3数据流程图
2.3.1火炬手申报数据流程图
2.3.2火炬手选拔、分配数据流程图
2.3.2火炬配送数据流程图
2.3.4总的数据流图
2.4数据字典
2.4.1数据项
1、数据项名:
国家编号
数据项含义说明:
传递国家编号
存储代码:
c_id
数据类型:
char
长度:
10
2、数据项名:
国家名称
数据项含义说明:
传递国家名称
存储代码:
c_name
数据类型:
char
长度:
50
3、数据项名:
火炬传递时间
数据项含义说明:
在国家内传递时间
存储代码:
c_data
数据类型:
char
长度:
20
4、数据项名:
城市编号
数据项含义说明:
传递城市编号
存储代码:
city_id
数据类型:
char
长度:
10
5、数据项名:
城市名称
数据项含义说明:
传递城市名称
存储代码:
city_name
数据类型:
char
长度:
20
6、数据项名:
火炬传递时间
数据项含义说明:
火炬在该城市传递时间
存储代码:
city_data
数据类型:
char
长度:
20
7、数据项名:
单位编号
数据项含义说明:
推荐单位编号
存储代码:
sid
数据类型:
char
长度:
10
8、数据项名:
单位名称
数据项含义说明:
推荐单位名称
存储代码:
sname
数据类型:
char
长度:
50
9、数据项名:
人数
数据项含义说明:
推荐火炬手人数
存储代码:
sno
数据类型:
int
长度:
10
10、数据项名:
火炬编号
数据项含义说明:
火炬唯一编号
存储代码:
torch_id
数据类型:
int
长度:
10
11、数据项名:
燃料名称
数据项含义说明:
火炬使用的燃料名称
存储代码:
torch_fuel
数据类型:
char
长度:
20
12、数据项名:
仓库号
数据项含义说明:
来自仓库号
存储代码:
torch_no
数据类型:
char
长度:
10
13、数据项名:
火炬手编号
数据项含义说明:
奥委会分配的火炬手编号
存储代码:
torchbearers_id
数据类型:
char
长度:
10
14、数据项名:
姓名
数据项含义说明:
火炬手姓名
存储代码:
torchbearers_name
数据类型:
char
长度:
20
15、数据项名:
性别
数据项含义说明:
火炬手性别
存储代码:
sex
数据类型:
char
长度:
6
16、数据项名:
年龄
数据项含义说明:
火炬手年龄
存储代码:
age
数据类型:
char
长度:
6
17、数据项名:
国籍
数据项含义说明:
火炬手的国籍
存储代码:
nationality
数据类型:
char
长度:
10
18、数据项名:
所用火炬编号
数据项含义说明:
火炬手所用火炬编号
存储代码:
tid
数据类型:
char
长度:
10
19、数据项名:
被推荐单位编号
数据项含义说明:
火炬手被推荐单位编号
存储代码:
tsid
数据类型:
char
长度:
10
20、数据项名:
被安排的城市编号
数据项含义说明:
火炬手被安排到的城市编号
存储代码:
cid
数据类型:
char
长度:
10
21、数据项名:
路程编号
数据项含义说明:
城市内火炬手所跑路程的编号
存储代码:
jid
数据类型:
char
长度:
10
22、数据项名:
所在城市编号
数据项含义说明:
路程所在城市编号
存储代码:
jcid
数据类型:
char
长度:
10
23、数据项名:
长度
数据项含义说明:
路程的长度
存储代码:
jlen
数据类型:
char
长度:
10
24、数据项名:
对应火炬编号
数据项含义说明:
该段对应火炬编号
存储代码:
jtid
数据类型:
char
长度:
10
25、数据项名:
仓库编号
数据项含义说明:
火炬和燃料存放指定仓库的编号
存储代码:
wno
数据类型:
char
长度:
10
26、数据项名:
仓库名称
数据项含义说明:
火炬和燃料存放指定仓库名称
存储代码:
wname
数据类型:
char
长度:
10
27、数据项名:
仓库地址
数据项含义说明:
火炬和燃料存放指定仓库的地址
存储代码:
wadd
数据类型:
char
长度:
20
28、数据项名:
火炬存量
数据项含义说明:
火炬在仓库中的余量
存储代码:
wtnom
数据类型:
char
长度:
10
29、数据项名:
燃料种类
数据项含义说明:
仓库中存放的燃料种类
存储代码:
wfuel
数据类型:
char
长度:
10
30、数据项名:
员工数
数据项含义说明:
在仓库中员工数
存储代码:
wt
数据类型:
char
长度:
10
2.4.2数据结构
1、名称:
国家
说明:
伦敦奥委会确认选出的火炬传递到达的国家
数据结构组成:
国家编号
国家名称
火炬传递时间
2、名称:
城市
说明:
伦敦奥委会确认选出的火炬传递到达的城市
数据结构组成:
城市编号
城市名称
所属国家编号
火炬传递时间
3、名称:
推荐单位
说明:
伦敦奥委会确认合法的推荐单位
数据结构组成:
推荐单位编号
推荐单位名称
推荐人数
4、名称:
火炬
说明:
伦敦奥运会官方设计的火炬
数据结构组成:
火炬编号
燃料名称
仓库号
5、名称:
火炬手
说明:
伦敦奥委会确认选出的火炬手
数据结构组成:
火炬手编号
姓名
性别
年龄
国籍
火炬编号
单位编号
路程编号
6、名称:
路程
说明:
每位火炬手所跑的一段距离
数据结构组成:
路程编号
所在城市编号
长度
火炬手编号
火炬编号
7、名称:
仓储中心
说明:
伦敦奥组委指定的火炬存放地点
数据结构组成:
仓库编号
仓库名称
仓库地址
火炬存量
燃料名称
员工数
三、概念结构设计
3.1目的与任务
模型是对现实世界的模拟和抽象,概念模型是对现实世界的第一层抽象。
是用户与数据库设计人员之间进行交流的语言。
概念结构设计是将需求分析后得到的用户需求抽象为反映用户观点的概念模型。
根据需求分析,可以得出七个实体:
国家,城市,推荐单位,火炬手,火炬,路程,仓储中心。
3.2实体属性
国家:
{国家编号,国家名称,火炬传递时间}城市:
{城市编号,城市名称,火炬在该城市传递时间}
推荐单位:
{推荐单位编号,推荐单位名称,推荐火炬手人数}
火炬:
{火炬编号,火炬燃料名称}
火炬手:
{火炬手编号,火炬手姓名,性别,年龄,国籍,火炬编号,所推荐的单位编号,所跑城市的编号}
路程:
{路程编号,所在城市编号,长度,该段对应火炬手编号}
仓储中心:
{仓库编号,仓库名称,仓库地址,火炬存量,燃料种类,火炬进货量}
3.3E-R实体模型图
3.3.1各实体的E-R图
1、国家的E-R图为
2、城市的E-R图为
3、推荐单位的E-R图
4、火炬的E-R图为
5火炬手的E-R图为
6路程的E-R图为
7、仓储中心的E-R图为
3.3.2分E-R图
火炬手申报、选拔管理子系统
传递信息查询
仓储信息管理子系统
3.3.3系统总的E-R图为
四、逻辑结构设计
4.1任务与目的
逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
4.2关系模式的转换
E-R图向关系模型的转换,实现将实体型和实体间的联系转换为关系模式。
把E-R图转换为关系模型如下:
国家:
{国家编号,国家名称,火炬传递时间}城市:
{城市编号,城市名称,火炬在该城市传递时间,所属国家编号}
推荐单位:
{推荐单位编号,推荐单位名称,推荐火炬手人数}
火炬:
{火炬编号,火炬燃料名称,仓库号}
火炬手:
{火炬手编号,火炬手姓名,性别,年龄,国籍,火炬编号,所推荐的单位编号,所跑城市的编号,路程编号}
路程:
{路程编号,所在城市编号,长度}
仓储中心:
{仓库编号,仓库名称,仓库地址,火炬存量,燃料种类,员工数}
传递:
{火炬手编号,火炬编号}
4.3数据模型的优化
国家关系:
国家名称和传递时间完全函数依赖于主码国家编号,为第三范式;
城市关系:
城市名称和传递时间完全函数依赖于主码城市编号,为第三范式;
但国家关系和城市关系存在数据冗余,在英国境内时,伴随城市名称的不同会出现多次国家名。
每个城市拥有很多路程规划,伴随路程的不同会出现多次城市名。
推荐单位关系:
单位名称和人数完全函数依赖于主码推荐单位编号,为第三范式。
火炬关系:
燃料和仓库号对主码编号是完全函数依赖的,为第三范式。
火炬手关系:
火炬手姓名完全函数依赖于火炬手编号,火炬手性别完全函数依赖于火炬手编号,火炬手年龄完全函数依赖于火炬手编号,火炬编号完全函数依赖于火炬手编号,所推荐的单位编号完全函数依赖于火炬手编号,所跑城市的编号完全函数依赖于火炬手编号,路程编号完全函数依赖于火炬手编号。
为第三范式
路程关系:
所在城市编号,长度,该段对应火炬手编号均完全函数依赖于主码路程编号。
属于第三范式,但此关系有数据冗余。
仓储中心关系:
仓库名称,仓库地址,火炬存量,燃料种类,员工数均对主码仓库编号完全函数依赖,为第三范式。
传递关系:
为BC范式,是优化后的关系模型。
4.4优化后的模型
国家:
{国家编号,国家名称,火炬传递时间}
城市:
{城市编号,城市名称,火炬在该城市传递时间}
城市归属:
{城市编号,所属国家编号}
路程:
{路程编号,长度}
路程归属:
{路程编号,所在城市编号}
推荐单位:
{推荐单位编号,推荐单位名称,推荐火炬手人数}
火炬:
{火炬编号,火炬燃料名称,仓库号}
仓储中心:
{仓库编号,仓库名称,仓库地址,火炬存量,燃料种类,员工数}
传递:
{火炬手编号,火炬编号}
火炬手:
{火炬手编号,火炬手姓名,性别,年龄,国籍,火炬编号,所推荐的单位编号,所跑城市的编号,路程编号}
4.5设计用户子模式
4.5.1关系模式国家
1、为公众建立试图:
国家1(国家编号,国家名称,传递时间)
2、为管理人员建立视图:
国家2(国家编号,国家名称,传递时间,组织单位,组织流程)
公众视图只包含允许公众查询到的属性,管理人员视图中只包含管理人员查询的属性,组委会可以查询到所有数据。
这样可以保证数据的安全性。
4.5.2关系模式城市:
1、为公众建立视图:
城市1(城市编号,城市名称,传递日期,路程信息)
2为管理人员建立视图:
城市2(城市编号,城市名称,传递日期,路程信息,组织单位,组织流程)
公众视图只包含允许公众查询到的属性,管理人员视图中只包含管理人员查询的属性,组委会可以查询到所有数据。
这样可以保证数据的安全性。
4.5.3关系模式路程:
1、为公众建立视图:
路程1(路程编号,长度,火炬手编号)
2、为管理人员建立视图:
路程2(路程编号,长度,火炬手编号,组织单位,组织流程)
公众视图只包含允许公众查询到的属性,管理人员视图中只包含管理人员查询的属性,组委会可以查询到所有数据。
这样可以保证数据的安全性。
4.5.4关系模式火炬手
1、为公众建立视图:
火炬手1:
{火炬手编号,火炬手姓名,路程编号}
2为管理人员建立视图:
火炬手2:
{火炬手编号,火炬手姓名,性别,年龄,国籍,火炬编号,所推荐的单位编号,所跑城市的编号,路程编号}
公众视图只包含允许公众查询到的属性,管理人员视图中只包含管理人员查询的属性,组委会可以查询到所有数据。
这样可以保证数据的安全性。
4.5.5关系模式推荐单位
1、为公众建立视图:
推荐单位1:
{推荐单位编号,推荐单位名称,推荐火炬手人数}
2、为管理人员建立视图:
推荐单位2:
{推荐单位编号,推荐单位名称,推荐火炬手人数,推荐流程}
公众视图只包含允许公众查询到的属性,管理人员视图中只包含管理人员查询的属性,组委会可以查询到所有数据。
这样可以保证数据的安全性。
五、物理结构设计5.1对以上E-R图所需的实体以及联系需要的表设计如下
1、国家信息表
属性含义
属性名
数据类型
国家编号
c_id
char(10)
国家名称
c_name
char(50)
火炬传递时间
c_data
char(20)
2、城市信息表
属性含义
属性名
数据类型
城市编号
city_id
char(10)
城市名称
city_name
char(20)
火炬在该城市传递时间
city_data
char(20)
3、城市归属信息表
属性含义
属性名
数据类型
城市编号
city_id
char(10)
所属国家编号
c_id
char(10)
4、路程信息表
属性含义
属性名
数据类型
路程编号
jid
char(10)
长度
jlen
char(10)
5、路程归属信息表
属性含义
属性名
数据类型
路程编号
jid
char(10)
所属城市编号
city_id
char(10)
6、推荐单位信息表
属性含义
属性名
数据类型
推荐单位编号
sid
char(10)
推荐单位名称
sname
char(50)
推荐火炬手人数
sno
int(10)
7、火炬信息表
属性含义
属性名
数据类型
火炬编号
torch_id
char(10)
火炬燃料名称
torch_fuel
char(20)
来自仓库号
torch_no
char(10)
8、火炬手信息表
属性含义
属性名
数据类型
火炬手编号
torchbearers_id
char(10)
火炬手姓名
torchbearers_name
char(20)
性别
sex
char(6)
年龄
age
char(6)
国籍
nationality
char(10)
火炬编号
torch_id
char(10)
所推荐的单位编号
sid
char(10)
路程编号
jid
char(10)
所跑城市的编号
city_id
char(10)
9、仓储中心信息表
属性含义
属性名
数据类型
仓库编号
wid
char(10)
仓库名称
wname
char(20)
仓库地址
wadd
char(20)
火炬存量
wtnom
char(10)
燃料种类
wfuel
char(10)
员工数
wt
char(10)
10、传递信息表
属性含义
属性名
数据类型
火炬手编号
torchbearers_id
char(10)
火炬编号
torch_id
char(10)
六、数据库实施
6.1建表插入记录结果6.1.1建立国家信息表
createtablecountry
(c_idchar(10)primarykey,
c_namechar(50)notnull,
c_datachar(20)notnull,
)
插入记录如下:
insertintocountryvalues('c01','希腊','2012.5.10-2012.5.17');
insertintocountryvalues('c02','爱尔兰','2012.6.6');
insertintocountryvalues('c03','英国','2012.5.19-2012.7-27')
6.1.2建立城市信息表
createtablecity
(city_idchar(10)primarykey,
city_namechar(20)notnull,
city_datachar(20)notnull,
)
插入记录如下:
insertintocityvalues('ct00','奥林匹亚','2012.5.10');
insertintocityvalues('ct01','兰兹角','2012.5.19');
insertintocityvalues('ct02','普利茅斯','2012.5.20');
insertintocityvalues('ct03','埃克塞特','2012.5.21');
insertintocityvalues('ct04','汤顿','2012.5.22');
insertintocityvalues('ct05','布里斯托尔','2012.5.23');
insertintocityvalues('ct06','格洛斯特','2012.5.24');
insertintocit