飞图元数据平台
admin / 2016-12-27

1. 引言


1.1. 编写目的


此文档是为开发《飞图元数据平台》项目编写的详细设计开发说明书,编写目的是准确地定义和说明《飞图元数据平台》的设计开发,主要包括系统的总体设计、体系架构、功能设计、界面设计数据局设计、技术实现、运行设计、出错处理设计、系统维护等内容。

本文档是《飞图元数据平台测试和验收的依据性技术文件之一。

本文档面向的读者对象主要是:飞图元数据平台甲乙双方的相关领导、项目负责人、技术负责人、需求分析员、程序开发员等。


1.2. 项目背景


作为数据生产部门,业主单位在作业流程中获取大量的空间数据,这些数据包括不同时间段、不同比例尺正射影像DOM)、数字线划图DLG)、数字高程模型DEM数字栅格图(DRG遥感影像等数据。这些数据产品可以用于很多不同的领域,如城市规划、房地产建设等。但是空间数据的获取、提供、共享还存在以下问题:

1行业用户业主单位获取数据的流程还比较繁琐,目前基本还停留在上门查找用户专人查阅成果档案的阶段。

2)数据交易流程繁杂、数据使用的效果不明显

3很多具备测绘资质的数据生产单位也面临着数据利用率不高的问题

针对这些问题,构建了一个公共的空间数据共享交易平台,让更多具备测绘资质的单位在此平台上展示自己的研究成果,使用户单位能够在此平台上一次性获得其工程与建设所需的研究成果。同时,对于平台上没有的数据,用户单位还能够采用招标的方式,预约生产此类数据,以快速获取所需要的数据及服务,促进数据生产单位的优先生产。

本系统适用范围如下表:

11 飞图元数据平台适用范围


1.3. 缩略语


12缩略语列表


1.4. 功能节点编号


1. 功能点编号是以_”为分级符隔开各级别关键词编号,根据实际情况层次不限;

2. _”号前表示当前级别的上一级别编号;

3. 各级编号用该级功能名称中关键词的拼音首字母为缩写编号;

4. 原则上每级最多用四个字母为缩写编码,名称多于四个字母的优先取首位各两个,为避免冲突的地方可以多于四个或者后面再加一级,比如飞图元数据平台”,编号可以用FT 

5. 个别专有名词可以使用英文。

13 Web端功能节点







1.5. 参考资料

14参考资料列表


1.6. 角色和职责


项目角色职责划分对系统的开发具有重要的作用,具体职责划分如下所示:

 

 

 

 

 

1-5角色和职责对应列表


 

2. 总体方案设计


2.1. 需求概述


《飞图元数据平台》是一个基于平台管理模式空间元数据信息共享及空间数据交易系统,面向空间数据共享交易过程中所产生的共性问题提供解决方案,并通过云计算平台,以平台管理模式向数据提供方和需求提供第三方技术支撑服务,通过帮助会员企业单位个人改善空间数据或者元数据管理与共享流程,收取会员费用、广告费用实现相应的盈利。

21系统整体结构图


2.1.1.主要功能需求


系统软件的主要功能需求包括如下内容:

1)实现对计算机存储、迁移归档、备份系统的统一集成;

2)与天地图应用系统紧密地结合,达到无缝集成;

3)支持用户数据元数据资源、需求数据系统公告数据统计数据、日志数据、空间数据等数据资源的统一管理;

4)支持用户数据、角色数据、权限数据的统一管理,实现权限的高效分配与便捷管理;

5)支持行业动态信息、信息通知数据等公告模块数据的统一管理;

6)支持图片、文本形式存在的数据的统一管理;

7)支持统计数据、日志数据、关键字查询的报表统计分析

8)支持空间分析、运算、地图操作。


2.1.2.技术指标


2.1.2.1.性能要求


(1)处理器配置要求:

64位处理器,CPU主频≥2.26GHzCPU数量≥1,内存≥4GB,内置硬盘数量2,内置硬盘单块容量120G

(2)平台性能指标:

支持不少于100人同时进行在线访问、检索查询和数据下载,具备对非法入侵和恶意访问的监测和防护能力。

(3)数据性能指标:

并发:系统允许并发操作用户数大于200

数据管理能力:检索平均响应时间在秒级(GB级数据)


2.1.2.2.可靠性要求


在软硬件的设计实现上要考虑系统长期运行的稳定性和可靠性。软件在运行期间,针对任何一个重要操作,都必须具有判断错误的能力,必要时可以进行恢复性操作,否则要发出报警消息,以便于人工干预。系统业务运行时必须具有较高的可靠性和故障后快速恢复的能力。具体要求如下:

1、应用软件开发中严格遵循软件工程国家标准的开发、测试和集成规范,达到《飞图元数据平台》业务稳定性95%的指标。

2、在支撑平台可靠性的保证下,所有子系统或者模块必须在5分钟内恢复运行状态。


2.1.2.3.安全保密性要求


1、系统的安全保证性。即《飞图元数据平台》的软件不会由于自身的故障或失效导致应用系统的其它部分相继失效甚至崩溃的特性(典型的例子:不正常地持续占用大量CPU、内存、I/O等计算机资源,导致系统的其它成分无法运行)。制定完整的故障隔离、规避和恢复策略,确保全系统业务软件运行的正常与安全;

2、访问的安全保证性,防止外界或内部用户的非法或恶意访问《飞图元数据平台》。为此,必须从访问级别上严格控制不同用户的权限,避免用户越权使用或非法使用系统资源,甚至控制系统操作权力,造成全体系统运行能力下降或数据泄露等损失。

3、口令、密码等身份认证信息,必须以加密形式进行存储和传输


2.1.2.4.系统交互要求


1、界面设计:美观大方、重点突出、易用,能反映元数据平台特点;栏目设置应有条理,能够系统、全面地反映《飞图元数据平台》的全貌。

2、有一定访问权限的信息应采取必要的安全措施加以控制。

3、页面层次:形象页、主页、动态栏目页、内容页。

4、人机交互界面展现:当用户选择的条件,无记录时应返回友好提示;页面设计紧凑,尽量减少出现滚动条。


2.1.2.5.可维护性要求


1、可维护性

除了要求数据共享服务系统本身具有良好的维护性外,还应当拥有离线的维护环境,以便在不影响正常业务的情况下进行软件的维护工作。

2、可管理性

软件具有一个完善的管理机制。系统必须安装方便、灵活配置、使用方便,同时要求有较强的系统管理手段,系统能够合理地被配置、调整、监视及控制,保证系统的良好运作。

3、系统部署灵活可裁减

《飞图元数据平台》部署具备灵活的、可裁减配置功能,可根据需要配置软件系统。


2.1.2.6.可移植性要求


为适应未来空间元数据共享服务的发展,系统应具有较好的可扩展性,为新增业务、新增资料的灵活、快速扩充和改造提供方便。

系统支持 Web ServiceXMLJSON等当前受到普遍支持的开放标准,保证系统能够与其它平台的应用系统、数据库等相互交换数据并进行应用级的互操作性和互连性。


2.2. 系统总体结构


2.2.1.系统逻辑架构


本系统采用多层软件架构体系,其逻辑结构如图3-2所示主要分为数据库层业务逻辑层和表现层三层结构


22 系统逻辑结构图


数据库层:数据库层采用分布式数据库部署架构,包括基础资源数据库、业务数据库、系统资源数据库和空间数据库四个部分。基础资源数据库主要存储系统的基础资料,业务数据库主要存储相关的业务数据系统资源数据库主要存储系统功能权限资源数据,空间数据库主要存储与元数据相关的空间位置数据

业务逻辑层:业务逻辑层集成了《飞图元数据平台》所有业务功能,主要包括数据检索、数据管理需求检索、需求管理、公告管理、用户管理、系统资源管理、统计分析管理等模块;《飞图元数据平台》逻辑上由基础设施层支撑软件层、数据层、系统和用户层等组成。

表现层是指WEB页面表现层。WEB页面表现层分为数据检索子系统资源管理子系统系统管理子系统统计分析子系统四个部分,它们分别为数据提供方、需求方和平台管理员提供相应的服务功能。


2.2.2.系统硬件与网络结构


系统硬件与网络结构主要由PC设备移动Web设备无线网络、互联网Web服务器、数据库服务器系统管理平台和天地图服务器组成。PC或者移动设备通过Web服务器与数据库服务器进行数据交互,系统管理平台整个系统进行统一监控和管理,天地图提供地图展示定位支持无线网络和互联网实现各个设备相互之间的通讯,从而实现一个高效稳定的系统。

23软件网络结构图示意图


2.2.3.系统软件组成、功能结构


系统功能结构主要包括数据检索元数据管理需求管理、统计分析、系统公告、系统管理6个功能模块。

数据检索管理模块实现对元数据、需求的快速搜索、高级搜索功能,并且能够查看和收藏搜索的结果

元数据管理模块主要针对数据提供方使用,相关用户可以发布元数据、管理员可以进行审核管理;

需求管理模块主要针对需求方使用,相关用户可以发布需求、管理员可以进行审核管理

统计分析模块主要实现元数据、需求和系统运行情况的相关统计分析

系统公告主要由系统管理员发布公告,系统使用者接收并浏览系统公告

系统管理主要实现系统用户管理、系统资源权限和字典库的管理。

 

24  飞图元数据平台功能结构图


飞图元数据平台子模块的各个模块的用途如下表所示。

21飞图元数据平台模块用途表




1.1.1.系统层次划分


《飞图元数据平台》基于SOA的架构思想和分层的思想进行设计,通过对系统功能的分析,抽象相应的功能组件,再在这些功能组件的基础上搭建系统相应的应用功能。从而使系统的层次清晰、结构灵活,可以有效的提高系统的可扩展性与可维护性。

根据SOA的结构思想,系统采用灵活的多层体系结构,即数据库层、数据访问层、中间件层(组件层)、服务层和系统应用层。

《飞图元数据平台》系统软件结构如下图所示



25飞图元数据平台系统软件B/S层次构架图


1.1. 总体界面设计


1.1.1.界面总体结构


《飞图元数据平台》由众多功能模块组成,左边是功能模块的目录树结构,右边工作区域,右边缘菜单导航。其界面结构设计如下图:

 

26飞图元数据平台界面结构图


1.1.2.界面层次关系


打开运行本系统,出现登入界面用户输入相关的登入凭证并点击登入,系统通过识别凭证信息,根据用户角色选择相应的功能模块初始化主界面系统。随后系统使用中,根据不同角色授予的功能权限,选择不同功能模块时,系统动态提取相应的功能项或操作项。具体流程如下图所示。

 

27系统界面层次关系图


1.2. 系统设计思路与原则


(1)飞图元数据平台依托公共地图,以空间元数据服务为导向,保证及时有效地向用户提供数据和产品服务并长期、安全地存储数据,采用在线、近线、离线的三级存储方式,同时结合硬件平台设计备份方案和策略。

(2)飞图元数据平台在设计上采用先进、成熟可靠的开发技术,以有效保障业务系统运行的稳定、可靠性,针对不同的数据类型和数据应用特点,以主流关系数据库系统作为支撑数据库,在空间位置数据管理上采用关系数据库自带的空间数据存储方式进行存储管理。

(3)针对各类数据进行分类设计,分析各类数据进行存储路径设计和迁移归档策略设计。

(4)软件系统设计中:采用B/S的架构实现,支持B/S结构的文件数据归档、数据查询检索和统计功能等。

(5)存储管理和存储迁移依托于成熟的商业软件完成,可以有效的减低系统开发风险,提高系统开发效率。

在与其它分模块的接口设计上依据高内聚、低耦合的设计思想,系统的数据接口主要采用webservice服务的方式实现,具体的交互采用JSON数据

系统的实施采用J2EE的软件架构,J2EE架构是目前主流的、跨平台的多层企业级应用系统构建技术,是开发企业级应用的一种事实上的工业标准。基于J2EE架构,系统设计了包括数据层、数据接口层、基础功能组件层、应用层、用户层的五层软件体系架构。各应用模块通过不同的接口将各个基础功能组件(中间件)有机的集成在一起,形成各具用途的分模块软件。

由于本系统是一个软硬件集成的、众多不同功能集成的、人机协同的业务化平台,因此,在设计和实现时,数据接口遵循整体系统软件架构要求的服务规范,同时,考虑到系统高效、灵活和可扩展性,本系统的体系架构设计为在B/S环境下分层的体系架构。系统的主要工作模块SpringMVC+Hibernate框架形式开发设计,运行时动态加载动态组合;同时,系统是一种分层的结构。在运行机制上,功能的驱动方式有菜单驱动和流程驱动两种


2. 功能模块设计


2.1. 系统管理模块FT_XTGL


2.1.1.角色管理FT_XTGL_JS


2.1.1.1.角色管理


2.1.1.1.1. 功能描述

31角色管理功能描述表



2.1.1.1.2. 设计思路


32设计思路


2.1.1.1.3. 流程逻辑


33角色管理逻辑流程表


2.1.1.1.4. 界面原型


角色管理界面主要由管理员使用,其界面如下


 


                             图 31 角色管理相关界面

2.1.1.2.角色用户


2.1.1.2.1. 功能描述


34角色用户功能描述表


2.1.1.2.2. 设计思路

35 设计思路

2.1.1.2.3. 流程逻辑


                               表 36角色用户逻辑流程表

2.1.1.2.4. 界面原型


角色用户系统管理员使用,其主界面如下

 


                            图 32 角色用户分配界面

2.1.1.3.角色功能


2.1.1.3.1. 功能描述


                           表 37角色功能管理描述表

2.1.1.3.2. 设计思路

38 设计思路

2.1.1.3.3. 流程逻辑


                         39角色功能逻辑流程表

2.1.1.3.4. 界面原型


角色功能管理员使用,为每个角色分配相应的功能权限,其界面如下:

 

33 角色功能分配界面


2.1.2.用户审核(FT_XTGL_YHSH


2.1.2.1.功能描述


                         表 310用户审核功能描述表

2.1.2.2.设计思路


                          表 311设计思路


2.1.2.3.流程逻辑

312用户审核逻辑流程表

2.1.2.4.界面原型

用户审核界面主要由管理员使用,其界面如下

 

34 用户审核主界面


1.1.1.用户管理(FT_XTGL_YHGL


1.1.1.1.功能描述

313用户管理功能描述表

1.1.1.2.设计思路

314设计思路

1.1.1.3.流程逻辑

315用户管理逻辑流程表

1.1.1.4.界面原型


用户管理界面主要由管理员使用,其界面如下

 

35 用户管理主界面


3.1.4.字典管理FT_XTGL_ZDGL


3.1.4.1.功能描述


316字典管理功能描述表

3.1.4.2.设计思路


317设计思路

3.1.4.3.流程逻辑

            

                    表 318字典管理逻辑流程表



3.1.4.4.界面原型


字典管理界面主要由管理员使用,其界面如下

                       图 36 字典管理主界面

3.2. 系统公告FT_XTGG

3.2.1.我的公告FT_XTGG_WD


3.2.1.1.功能描述


319 我的公告功能描述表

3.2.1.2.设计思路

320设计思路

3.2.1.3.流程逻辑

321我的公告流程表

3.2.1.4.界面原型


我的公告,用于查看与当前登入用户相关的系统公告,其界面如下

 

37 我的公告界面


3.2.2.公告管理FT_GGGL_GL


3.2.2.1.功能描述

322公告管理功能描述表

3.2.2.2.设计思路

323设计思路

3.2.2.3.流程逻辑

324公告管理逻辑流程表

3.2.2.4.界面原型


公告管理界面主要由管理员使用,集成地图与表格文本的方式展示数据,其界面如下

 

38 公告管理主界面


3.3. 数据管理(FT_SJGL

3.3.1.我的数据FT_SJGL_WD


3.3.1.1.功能描述

325我的数据功能描述表

3.3.1.2.设计思路

326设计思路

3.3.1.3.流程逻辑

327我的数据逻辑流程表


3.3.1.4.界面原型


我的数据界面主要针对当前登入账户进行设计的,集成地图与表格文本的方式展示数据,其界面如下

 

 

39 我的数据主界面


3.3.2.数据审核FT_SJL_WD


3.3.2.1.功能描述


328数据审核功能描述表

 

功能名称

数据审核                 

功能描述

数据审核页面,主要给管理员使用,用户可以查看、审核、删除数据。

输入

输入操作类型和相关数据

处理

处理相关类型,打包结果并且响应结果

输出

结果展示


3.3.2.2.设计思路

329设计思路

功能名称

数据审核

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示,或者操作数据库。

清除

完成操作,填写相关日志。


3.3.2.3.流程逻辑

330数据审核逻辑流程表

功能名称

数据审核

逻辑流程描述

1)           首先进入数据审核界面;

2)             选择操作类型,并输入数据;

3)             识别操作类型,并进行业务处理;

4)             获取处理结果,并显示。

逻辑流程图


3.3.2.4.界面原型

数据审核界面主要由管理员使用,集成地图与表格文本的方式展示数据,其界面如下:

310 数据审核主界面

3.3.3.数据管理(FT_SJGL_GL

3.3.3.1.功能描述

331数据管理功能描述表

功能名称

数据管理                 

功能描述

数据管理页面,主要给管理员使用,用户可以新增、编辑、删除数据。

输入

输入操作类型和相关数据

处理

处理相关类型,打包结果并且响应结果

输出

结果展示


3.3.3.2.设计思路

332设计思路

功能名称

数据管理

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示,或者操作数据库。

清除

完成操作,填写相关日志。


3.3.3.3.流程逻辑

333数据管理逻辑流程表

3.3.3.4.界面原型

数据管理界面主要由管理员使用,集成地图与表格文本的方式展示数据,其界面如下:

311 数据审核主界面

3.4.   需求管理(FT_XQGL

3.4.1.我的需求(FT_XQGL_WD

3.4.1.1.功能描述

334我的需求功能描述表

功能名称

我的需求                 

功能描述

我的需求页面,主要给当前用户使用,用户可以为自己新增、编辑、查询和删除需求,并且能够提交审核。

输入

输入操作类型和相关数据

处理

处理相关类型,打包结果并且响应结果

输出

结果展示


3.4.1.2.设计思路

335设计思路

功能名称

我的需求

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示,或者操作数据库。

清除

完成操作,填写相关日志。


3.4.1.3.流程逻辑


336我的需求逻辑流程表

功能名称

我的需求

逻辑流程描述

1)           首先进入我的需求界面;

2)             选择操作类型,并输入数据;

3)             识别操作类型,并进行业务处理;

4)             获取处理结果,并显示。

逻辑流程图

3.4.1.4.界面原型

我的需求界面主要针对当前登入账户进行设计的,集成地图与表格文本的方式展示数据,其界面如下:

312 我的需求主界面

3.4.2.需求审核(FT_XQSH_WD

3.4.2.1.功能描述

337需求审核功能描述表

功能名称

需求审核                 

功能描述

需求审核页面,主要给管理员使用,用户可以查看、审核、删除数据。

输入

输入操作类型和相关数据

处理

处理相关类型,打包结果并且响应结果

输出

结果展示

3.4.2.2.设计思路

338设计思路

功能名称

需求审核

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示,或者操作数据库。

清除

完成操作,填写相关日志。

3.4.2.3.流程逻辑

339需求审核逻辑流程表

功能名称

需求审核

逻辑流程描述

1)           首先进入需求审核界面;

2)             选择操作类型,并输入数据;

3)             识别操作类型,并进行业务处理;

4)             获取处理结果,并显示。

逻辑流程图


3.4.2.4.界面原型


需求审核界面主要由管理员使用,集成地图与表格文本的方式展示数据,其界面如下:

313 需求审核主界面

3.4.3.需求管理(FT_XQGL_GL

3.4.3.1.功能描述

340需求管理功能描述表

功能名称

需求管理                 

功能描述

需求管理页面,主要给管理员使用,用户可以新增、编辑、删除数据。

输入

输入操作类型和相关数据

处理

处理相关类型,打包结果并且响应结果

输出

结果展示

3.4.3.2.设计思路

341设计思路

功能名称

需求管理

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示,或者操作数据库。

清除

完成操作,填写相关日志。

3.4.3.3.流程逻辑

342需求管理逻辑流程表

功能名称

需求管理

逻辑流程描述

1)           首先进入需求管理界面;

2)             选择操作类型,并输入数据;

3)             识别操作类型,并进行业务处理;

4)             获取处理结果,并显示。

逻辑流程图


3.4.3.4.界面原型


需求管理界面主要由管理员使用,集成地图与表格文本的方式展示数据,其界面如下:

314 需求管理主界面

3.5.   数据检索模块(FT_ZL

3.5.1.快速搜索(FT_SJJS_KSSS

3.5.1.1.功能描述

343快速搜索功能描述表

功能名称

快速搜索                 

功能描述

在快速搜索界面,用户可以在搜索框中输入标签,默认选择元数据搜索,如果需要,也可以选择需求搜索,搜索的结果将以简易风格列表模式展示并查看。此外,用户还可以对感兴趣的搜索结果进行收藏。

输入

标签、搜索类型

处理

数据或者需求查询,打包结果并且响应结果

输出

结果展示

3.5.1.2.设计思路

344设计思路

功能名称

快速搜索

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示。

清除

完成操作,填写相关日志。

3.5.1.3.流程逻辑

345快速搜索逻辑流程表

功能名称

快速搜索

逻辑流程描述

1)             首先进入快速搜索界面;

2)             输入标签和查询类型;

3)             系统返回结果;

4)             用户查看结果和收藏结果

逻辑流程图

3.5.1.4.界面原型

快速搜索主要针对元数据和需求进行搜索,其界面如下:

315 快速搜索主界面

316 快速搜索结果查看

3.5.2.数据查询(FT_SJJS_SJCX

3.5.2.1.功能描述

346数据查询功能描述表

功能名称

数据查询                 

功能描述

数据查询界面,主要用于元数据的高级查找,用户可以通过高级条件组合查询相关的元数据,并可对感兴趣的结果进行收藏。

输入

查询条件组合

处理

多条件模糊匹配与精确匹配相结合,打包结果集

输出

返回结果集

3.5.2.2.设计思路

347设计思路

功能名称

数据查询

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统读取用户所填信息,处理结果集

清除

完成操作,填写相关日志


3.5.2.3.流程逻辑

348数据查询逻辑流程表

功能名称

数据查询

逻辑流程描述

1)           首先进入数据查询界面;

2)             输入高级查找条件;

3)             处理组合条件,返回结果;

4)             结果展示;

5)             收藏结果。

逻辑流程图

 

3.5.2.4.界面原型

数据查询用于元数据高级查询,其界面如下所示:

 

317 数据查询界面

3.5.3.需求检索(FT_SJJS_XQJS)

3.5.3.1.功能描述

349需求检索功能描述表

功能名称

需求检索                 

功能描述

需求检索界面,主要用于需求的高级查找,用户可以通过高级条件组合查询相关的需求,并可对感兴趣的结果进行收藏。

输入

查询条件组合

处理

多条件模糊匹配与精确匹配相结合,打包结果集

输出

返回结果集

3.5.3.2.设计思路

350设计思路

功能名称

需求检索

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统读取用户所填信息,处理结果集

清除

完成操作,填写相关日志


3.5.3.3.流程逻辑

351需求检索逻辑流程表

功能名称

需求检索

逻辑流程描述

1)           首先进入需求检索界面;

2)             输入高级查找条件;

3)             处理组合条件,返回结果;

4)             结果展示;

5)             收藏结果。

逻辑流程图

3.5.3.4.界面原型

需求检索用于需求的高级查询,其界面如下所示:

 

318 需求检索界面

3.6.   统计分析(FT_TJFX

3.6.1.元数据统计(FT_TJFX_YSJ

以图形(饼状、柱状、折线等)、表格的方式,展示元数据发布的统计与分析情况。

按周、月、年为汇总的元数据发布情况(条数、面积)。

一定时间内,按行政区划汇总的元数据发布情况(条数、面积)。

一定时间内,按数据类型、分辨率、比例尺、空间参考等汇总的元数据发布情况(条数、面积)

一定时间内,发布元数据最多的前十用户(条数、面积)。

3.6.1.1.功能描述

352元数据统计功能描述表

功能名称

元数据统计              

功能描述

元数据统计页面,主要对数据提供方提供的元数据情况进行统计分析,统计结果可用表格、柱状图、饼状图、折线图展示。

输入

统计条件

处理

处理统计条件,打包结果并且响应结果

输出

结果展示

3.6.1.2.设计思路

353设计思路

功能名称

元数据统计

框架工具

Java WebService /SpingMVC+Hibernate

初始化

测试数据库连接

设计思路

系统根据用户操作,从数据库中提取相应信息进行显示。

清除

完成操作,填写相关日志。

3.6.1.3.流程逻辑

354元数据统计逻辑流程表

功能名称

元数据统计

逻辑流程描述

1)           首先进入元数据统计界面;

2)             输入统计条件;

3)             业务处理;

4)             获取处理结果,并显示。

逻辑流程图

3.6.1.4.界面原型

元数据统计,集成表格、柱状图、饼状图和折线图的方式展示统计结果,其界面如下:

319 元数据统计主界面

3.6.2.需求统计(FT_TJFX_XQ

   以图形(饼状、柱状、折线等)、表格的方式,展示需求发布的统计与分析情况。

   按周、月、年为汇总的需求发布情况(条数、面积,预算)。

   一定时间内,按行政区划汇总的需求发布情况(条数、面积、预算)。

   一定时间内,按数据类型、分辨率、比例尺、空间参考等汇总的需求发布情况(条数、面积、预算)。

   一定时间内,发布需求最多的前十用户(条数、面积、预算)。

   需求统计界面,主要是根据不同的条件统计需求情况,其设计思路、流程逻辑和界面设计与元数据统计类似。


3.6.3.用户相关统计

   以图形(饼状、柱状、折线等)、表格的方式,展示用户祖册、审核及登入统计与分析情况。

   一定时间内(周、月、年),系统用户注册、审核情况。

   一定时间内(周、月、年),系统用户登录情况,在线时长汇总分析。

   用户相关统计界面,主要是根据不同的条件统计用户注册、审核、登入情况,其设计思路、流程逻辑和界面设计与元数据统计类似。


3.6.4.查询统计

   以图形(饼状、柱状、折线等)、表格的方式,展示关键字、字段及行政区域统计与分析情况。

   一定时间内,前十的数据查询关键词。

   一定时间内,查询最多的区域汇总。

   一定时间内,查询的时相、分辨率、比例尺、数据类型次数的情况汇总。

   查询统计界面,主要是根据不同的条件统计关键字、区域、数据字典等条件的查询情况,其设计思路、流程逻辑和界面设计与元数据统计类似。

4.   数据库设计

4.1.   命名规则

4.1.1.总体要求

数据库命名规范总体只采用英文命名的方式,不允许使用中文命名,在创建下拉菜单、列表、报表时按照英语名排序。不能使用毫不相干的单词来命名,当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。

数据库字段命名原则总体上同数据库命名。这里做单独说明主要是强调本系统字段命名需要额外遵循如下规则:

(1)          字段名称的唯一性。即同一含义的字段在整个系统范围内中必须有相同的字段名,不能有类似一个表中的备注字段用“Remark”,另一表中的备注却用 “Desc”“XXRemark”等。

(2)          字段含义唯一性。即系统同一字段名称必须有同一含义,不能有类似“Name”在一个表中表示单位名称,在另外一个表中表示项目名称,这种情况需要加前缀区分。

(3)          空间表中字段顺序以空间信息字段在前,属性信息字段在后原则。

(4)          属性表中,字段顺序以主次顺序设计,用于空间定位的字段放在最后原则。


4.1.2.表属性规范

(1)表名

系统表为:SYS_表标识

业务表为:FLY_表标识

字典表为:DIC_表标识

关联表:表A_B

(2)字段名

字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。


4.1.3.索引规范

(1) 普通索引

前缀为IDX_。索引名称应是前缀+表名+构成的字段名。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀。

(2) 主键索引

前缀为 IDX_PK_。索引名称应是     前缀+表名+构成的主键字段名,在创建表时候用 using index 指定主键索引属性。

(3) 唯一索引

前缀为 IDX_UK_。索引名称应是    前缀+表名+构成的字段名。

(4) 外键索引

前缀为 IDX_FK_。索引名称应是     前缀+表名+构成的外键字段名。

(5) 函数索引

前缀为 IDX_func_。索引名称应是   前缀+表名+构成的特征表达字符。

(6) 蔟索引

前缀为 IDX_clu_。索引名称应是     前缀+表名+构成的簇字段。


4.1.4.约束

(1) 主键名

前缀为 PK_。主键名称应是:前缀+表名(或缩写)+字段名(或缩写)。如果复合主键的构成字段较多,则只包含第一个字段。表名和字段名可以去掉前缀。

(2) 外键名

前缀为 FK_。外键名称应是:前缀+外键表名(或缩写)+外键表字段名(或缩写)。表名和字段名可以去掉前缀。

(3) 唯一键

前缀为UNQ_。唯一键名称应是:前缀+表名(或缩写)+字段名(或缩写)。如果复合主键的构成字段较多,则只包含第一个字段。表名和字段名可以去掉前缀。


4.1.5.视图

后缀为view,按业务操作命名视图。实体化视图后缀为view,按业务操作命名实体化视图。


4.1.6.存储过程

前缀为 P_。按业务操作命名存储过程。


4.1.7.触发器

触发器分为三段:TRG__[A|B]_[I|U|D]_<表名>TRG表示这是一个触发器,后面跟着表示触发器操作条件的英文字母,[A|B][I|U|D]A|B表示after|beforeI|U|D表示insert|update|delete无该项操作则去掉相应的字母),后面再跟使用它的表名或视图名。


4.1.8.函数

前缀为F_,按业务操作命名函数。


4.1.9.数据类型

(1)     字符型

固定长度的字串类型采用Char,长度不固定的字串类型采用Varchar。避免在长度不固定的情况下采用Char类型。如果在数据迁移等出现以上情况,则必须使用trim()函数截去字串后的空格。

(2)    数字型

数字型字段尽量采用Number类型。

(3)    系统时间

由数据库产生的系统时间首选数据库的日期型,如Date类型。

(4)    外部时间

由数据导入或外部应用程序产生的日期时间类型采用Varchar类型,数据格式采用:YYYYMMDDHH24MISS

(5)    大字段

如无特别需要,避免使用大字段(blobcloblongtextimage )

(6)    唯一键

对于数字型唯一键值,尽可能用系列sequence产生


4.2.   逻辑设计

逻辑设计是飞图元数据平台的核心部分,为了阐述方便,后面章节将相关的功能模块数据库集成在一起描述。


4.2.1.角色、用户相关的系统管理模块

4.2.1.1.逻辑设计

角色、用户相关的系统管理模块涉及的逻辑类主要包括用户类、企业组织机构代码证文件类、角色类和功能类,产生的关联类有角色用户类和角色功能类。

其中,一个用户可以拥有多个角色,一个角色可以被多个用户拥有;一个用户只有一个组织结构代码证,一个组织机构代码证只对应一个用户;一个角色可以拥有多个功能,一个功能可以被多个角色拥有。它们的具体逻辑关系如下图:

41 角色、用户相关系统管理逻辑设计图

4.2.1.2.命名设计

角色、用户相关管理模块数据库表命名方式为: SYS+”_”表名(如:SYS_USER)或者FLY+_+表名。

角色、用户相关管理模块涉及到的表格中的字段命名一律用英文全称或者英文简写。


4.2.1.3.表设计


4.2.1.3.1.   系统用户表

系统用户表是系统管理的重要组成部分,它是用户登入系统的凭证,具体信息如下:

41系统用户表(SYS_USER

字段英文名

字段中文名

数据类型

/非空

备注

ID

用户编码

Number

非空

主键

UserName

用户名

Varchar2(20)

非空

唯一

Password

密码

Varchar2(20)

非空


credentialsSalt

密码加密设置

Varchar2(20)

非空

MD5、加盐处理

realName

联系人

Varchar2(20)

非空


companyname

公司名称

Varchar2(20)

非空

公司名称

cellphone

电话

Varchar2(20)



phone

手机

Varchar2(20)



photo_id

组织机构代码证编号

Number

非空

外键,对应FLY_FILE文件表的ID

email

邮箱

Varchar2(20)

非空


inputTime

入库时间

Datetime

非空


comm

审核意见

Varchar2(255)



commTime

审核时间

Datetime



4.2.1.3.2.   角色表

角色表是功能权限管理的中转站,是用户和权限之间的纽带桥梁,某个角色可以用于多个功能权限,具体信息如下:

42角色信息表(SYS_ROLE

字段英文名

字段中文名

数据类型

/非空

备注

ID

角色编号

Number

非空

主键,自动编号

Name

角色名称

Varchar2(20)

非空


des

注释

Varchar2(20)



4.2.1.3.3.   功能权限表

功能权限信息表是权限管理的重要组成部分,,某个功能权限可以被多个角色拥有,具体信息如下:

43功能权限表(SYS_FUNC

字段英文名

字段中文名

数据类型

/非空

备注

ID

功能编号

Number

非空

主键,自动编号

type

角色编号

Tinyint

非空

外键,对应角色信息表中的角色编号

parent_id

父节点编号

Number


外键,对应功能权限表的ID

name

名称

Varchar2(20)



url

资源路径

Varchar2(55)



icon

图标

Varchar2(55)



ord

排序

Number



btn_code

按钮代码

Varchar2(55)


按钮代码

act

功能类型



功能类型: 1->新增;2->更新;3->删除

4.2.1.3.4.   组织机构代码证文件表

组织机构代码证文件信息表是用户的一部分,组织机构代码证与用户是一对一关系,具体信息如下:

44组织机构代码证文件表(FLY_FILE

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

orgName

名称

Varchar2(20)



url

资源路径

Varchar2(55)



size

大小

bigint



4.2.1.3.5.   角色用户表

角色用户表是角色与用户的关联表,具体信息如下:

45角色用户表(USER_ROLE

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

user_id

用户编号

Number

非空

外键,用户表的ID

role_id

角色编号

Number

非空

外键,角色表的ID

4.2.1.3.6.   角色功能表

角色功能表是角色与功能权限的关联表,具体信息如下:

46角色功能表(ROLE_FUNC

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

func_id

功能编号

Number

非空

外键,功能权限表的ID

role_id

角色编号

Number

非空

外键,角色表的ID

4.2.2.字典管理模块

4.2.2.1.逻辑设计

字典管理模块涉及的逻辑类主要包括字典索引类、数据类型类、比例尺类\分辨率类、参考系类、投影类和查询类型类。

此外,形如审核状态的字典,统一在开发程序中建立一个静态字典类,本系统的静态字典类为StaticDic

其中,用字典索引类关联管理所有数据字典。它们的具体逻辑关系如下图:

42 字典管理逻辑设计图

4.2.2.2.命名设计

字典管理模块数据库表命名方式为: DIC+”_”+表名+[其他标识]

字典管理模块涉及到的表格中的字段命名一律用英文全称或者英文简写。


4.2.2.3.表设计

4.2.2.3.1.   字典索引表

字典索引表是管理字典表的纽带,具体信息如下:

47字典索引表(DIC_INDEX

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

Name

字典名称

Varchar2(20)


唯一

table_name

字典表名

Varchar2(20)


唯一

4.2.2.3.2.   数据类型表

数据类型表用于元数据、需求表,具体信息如下:

48数据类型表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

Name

名称

Varchar2(20)


唯一

note

备注

Varchar2(20)



4.2.2.3.3.   比例尺表

比例尺表用于元数据、需求表,具体信息如下:

49比例尺表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

Name

名称

Varchar2(20)


唯一

note

备注

Varchar2(20)



4.2.2.3.4.   分辨率表

分辨率表用于元数据、需求表,具体信息如下:

410分辨率表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

Name

名称

Varchar2(20)


唯一

note

备注

Varchar2(20)



4.2.2.3.5.   投影表

投影表用于元数据、需求表,具体信息如下:

411投影表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

Name

名称

Varchar2(20)


唯一

note

备注

Varchar2(20)



4.2.2.3.6.   坐标系表

坐标系表用于元数据、需求表,具体信息如下:

412坐标系表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

Name

名称

Varchar2(20)


唯一

note

备注

Varchar2(20)



4.2.2.3.7.   查询类型表

查询类型表用于元数据统计的相关表,具体信息如下:

413查询类型表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键,自动编号

Name

名称

Varchar2(20)


唯一

note

备注

Varchar2(20)




4.2.3.元数据、需求管理相关的模块

4.2.3.1.逻辑设计

元数据、需求管理相关的模块主要包括数据检索、数据管理、需求管理模块,其逻辑类包括元数据类、元数据标签类、需求类、需求标签类、收藏夹类。

每个用户可以拥有多条数据和需求,一条数据或需求只能对应一个用户;每条数据或者需求,都包含各个数据字典表中对应记录的id;一条数据有多个标签,一个数据标签记录只属于一条数据;一条需求有多个标签,一个需求标签记录只属于一条需求;一个用户可以收藏多条数据或者多个需求,一条数据或者一个需求可以被多个用户收藏。

它们的具体逻辑关系如下图:

43 元数据、需求相关的数据库逻辑图

4.2.3.2.命名设计


元数据、需求管理相关模块中,主要业务表的命名方式为:FYL+”_”表类型(如:SYS +”_”+表标识。

元数据、需求管理相关模块涉及到的表格中的字段命名一律用英文全称或者英文简写。


4.2.3.3.表设计

4.2.3.3.1.   元数据表

元数据表涉及用户、用户收藏、各个字典表,其具体信息如下:

414元数据表(FLY_MDATA

字段英文名

字段中文名

数据类型

/非空

备注

id

编号

Number

非空

主关键字

userId

用户编号

Number


外键,用户表的ID

title

客户级别

Varchar2(55)


标题

rm

摘要

Varchar2(255)



phone

手机

Varchar2(15)


默认为该条记录所属用户的联系人手机

cellphone

电话

Varchar2(20)


默认为该条记录所属用户的联系人电话

contact

联系人

Varchar2(20)


默认为该条记录所属用户的联系人

typeId

数据类型编号

Number


数据类型,字典表中的Id

phase

时相

Number


时相,即年份

scaleId

比例尺编号

Number


比例尺,字典表中的Id

resolutionId

分辨率编号

Number


分辨率,字典表中的Id

rcsysId

坐标系编号

Number


坐标系,字典表中的Id

projectionId

投影编号

Number


投影,字典表中的Id

province

省份

Varchar2(30)


行政区划,省份名称

city

城市

Varchar2(30)


行政区划,城市名称

district

区县

Varchar2(30)


行政区划,区县名称

gem

空间位置

Geometry


空间数据类型,空间位置

statu

审核状态

Tinyint


状态:1未提交审核   2待审核3审核通过4审核不过

comm

审核意见

Varchar2(255)


审核意见

inputTime

入库时间

Datetime


入库时间

4.2.3.3.2.   需求表

需求表涉及用户、用户收藏、各个字典表,其具体信息如下:

415需求表(FLY_REQUIRE

字段英文名

字段中文名

数据类型

/非空

备注

id

编号

Number

非空

主关键字

userId

用户编号

Number


外键,用户表的ID

title

客户级别

Varchar2(55)


标题

rm

摘要

Varchar2(255)



phone

手机

Varchar2(15)


默认为该条记录所属用户的联系人手机

cellphone

电话

Varchar2(20)


默认为该条记录所属用户的联系人电话

contact

联系人

Varchar2(20)


默认为该条记录所属用户的联系人

typeId

数据类型编号

Number


数据类型,字典表中的Id

phase

时相

Number


时相,即年份

scaleId

比例尺编号

Number


比例尺,字典表中的Id

resolutionId

分辨率编号

Number


分辨率,字典表中的Id

rcsysId

坐标系编号

Number


坐标系,字典表中的Id

projectionId

投影编号

Number


投影,字典表中的Id

province

省份

Varchar2(30)


行政区划,省份名称

city

城市

Varchar2(30)


行政区划,城市名称

district

区县

Varchar2(30)


行政区划,区县名称

gem

空间位置

Geometry


空间数据类型,空间位置

statu

审核状态

Tinyint


状态:1未提交审核   2待审核,3审核通过,4审核不过

comm

审核意见

Varchar2(255)


审核意见

inputTime

入库时间

Datetime


入库时间

timeLimit

需求时限

Datetime


需要时限,也即需求截止日期

priority

优先级

Tinyint


优先级

budget

预算

Double


需求的预算

4.2.3.3.3.   元数据标签表

元数据标签表,用于快速搜索、高级搜索,具体信息如下:

416元数据标签表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

dataId

元数据编号

Number


外键,元数据表的ID

keyword

关键字/标签

Varchar2(20)



flag

标签类型

Tinyint


标签类型:1默认标签,2额外标签

4.2.3.3.4.   需求标签表

需求标签表,用于快速搜索、高级搜索,具体信息如下:

417需求标签表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

requireId

需求编号

Number


外键,需求表的ID

keyword

关键字/标签

Varchar2(20)



flag

标签类型

Tinyint


标签类型:1默认标签,2额外标签

4.2.3.3.5.   收藏夹表

收藏夹表,用于快速搜索、高级搜索的结果收藏,具体信息如下:

418收藏夹表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

itemId

需求或者元数据的编号

Number


对应需求表或者元数据表中的编号

type

收藏类型

Tinyint


收藏类型:1元数据结果,2需求结果


4.2.4.公告管理相关模块

4.2.4.1.逻辑设计

系统公告模块主要包括公告管理、我的公告和首页公告提醒部分,其逻辑类包括公告类、公告角色类和公告阅读类。

每个用户可以发送多个公告,一个公告只能属于一个用户;每个角色可以拥有多个公告,每个公告可以发送给多个角色;每个用户阅读一次公告,记录一条阅读记录,可以重复阅读。

它们的具体逻辑关系如下图:

44 公告管理相关的数据库逻辑图

4.2.4.2.命名设计

公告管理相关模块中,主要业务表的命名方式为:SYS+”_”表类型+”_”+表标识,关联表命名为:表名A+表名B

公告管理相关模块涉及到的表格中的字段命名一律用英文全称或者英文简写。

4.2.4.3.表设计

4.2.4.3.1.   公告表

公告表,用于公告管理、我的公告及公告通知查看等模块,具体信息如下:

419公告表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

title

标题

Varchar2(45)



content

内容

Text


要求用大文本

status

公告状态

Tinyint


状态:1待启用,2启用,3停用

publishTime

发布时间

Datetime



inputTime

入库时间

Datetime



4.2.4.3.2.   公告角色表

公告角色表,用于通知拥有该角色的用户查看公告,具体信息如下:

420公告角色表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

noticeId

公告编号

Number


外键,公告表的ID

roleId

角色编号

Number


外键,角色表的ID

4.2.4.3.3.   公告阅读表

公告阅读表,用于统计公告被阅读的次数和阅读的用户,具体信息如下:

421公告角色表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

noticeId

公告编号

Number


外键,公告表的ID

inputTime

入库时间

Datetime




4.2.5.统计分析与日志相关模块

4.2.5.1.逻辑设计

统计分析与日志模块模块主要包括元数据统计、需求统计、用户相关统计、查询统计和日志管理,涉及的逻辑类包括业务类(元数据类、需求类、用户类)和日志类(系统日志类、用户登入登出类、关键字查询类和普通查询类)。

元数据类、需求类、用户类已经在前文列出。

关键字查询类主要用于记录用户的标签查询情况,普通查询类主要用于记录高级查询的情况,它们的具体逻辑关系如下图:

45 统计分析与日志相关的数据库逻辑图

4.2.5.2.命名设计

统计分析与日志管理相关模块中,主要业务表的命名方式为:SYS+”_”表类型+”_”+表标识。

统计分析与日志管理相关模块涉及到的表格中的字段命名一律用英文全称或者英文简写。


4.2.5.3.表设计

4.2.5.3.1.   系统日志表

系统日志表主要记录用户的关键性操作,如增删改查,具体信息如下:

422系统日志表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

func_id

功能编号

Number


外键,对应功能表的ID

parent_id

当前功能编号的父节点

Number


外键,对应功能表的ID

IP

远程服务器IP

Varchar2(20)


远程服务器IP

description

操作描述

Varchar2(255)



content

修改内容

Longtext



inputTime

入库时间

Datetime



 

4.2.5.3.2.   登入登出表

登入登出表,主要记录用户的登入退出情况,每登入一次记录一次,退出后在上一次登入的记录中填写退出时间,用于统计用户的登入情况统计,如在线时长统计,具体信息如下:

423登入登出表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

IP

远程服务器IP

Varchar2(20)



loginTime

登入时间

Datetime



outTime

退出时间

Datetime



4.2.5.3.3.   关键字查询表

关键字查询表,主要记录用户输入标签/关键字查询的情况,每输入一次标签查询,就记录一条数据,用于统计关键字搜索情况,如统计一年内搜索最多的关键词,具体信息如下:

424关键字查询表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

IP

远程服务器IP

Varchar2(20)



keyword

关键字

Varchar2(20)



queryTypeId

查询类型

Tinyint


字典类,对应查询类型表(dic_qurey_type),分为元数据类关键词、需求类关键词

inputTime

入库时间

Datetime



4.2.5.3.4.   普通查询表

普通查询表,主要记录用户高级查询字段的情况,每查一次就记录一条数据,用于统计查询最多的区域、字段情况,具体信息如下:

 

 

425普通查询表

字段英文名

字段中文名

数据类型

/非空

备注

ID

编号

Number

非空

主键

userId

用户编号

Number


外键,用户表的ID

IP

远程服务器IP

Varchar2(20)



name

字段名称

Varchar2(20)



type

查询字段类型

Tinyint


查询条件类型:1、行政区划;2、投影;3、坐标系;4、分辨率;5、比例尺;6、数据类型;7、时相

queryTypeId

查询类型

Tinyint


字典类,对应查询类型表dic_qurey_type,分为元数据类关键词、需求类关键词

inputTime

入库时间

Datetime




4.3.   飞图元数据平台表汇总

4.3.1.普通表汇总

426 普通表汇总

表名

功能说明

sys_user

用户表,存储用户信息

sys_role

角色表,存储系统角色

user_role

角色用户表,用户和角色的关联表

user_security_code

用户验证码表,用于找回密码

sys_func

功能权限表,用于存储系统功能权限

role_func

角色功能表,角色和功能的关联表

sys_log

系统日志表,用于存储关键操作的日志

sys_log_login

登入登出表,存储用户登入情况

sys_log_common_query

普通查询表,属于日志表,用于存储用户查询的字段、行政区域的情况

sys_log_keyword_query

关键字查询表,属于日志表,用于存储关键字查询的情况

sys_notice

系统公共表,用于存储用户公告

notice_role

公告角色表,公共和角色的关联表

notice_read

公共阅读表,记录公共被阅读的情况

fly_file

组织机构代码证表,用于记录相关的文件

fly_mdata

元数据表,存储元数据

fly_mdata_tag

元数据标签表,存储元数据标签

fly_require

需求表,存储用户需求

fly_require_tag

需求标签表,存储需求标签

fly_favorite

收藏夹表,存储收藏的元数据、需求搜索结果


4.3.2.数据库字典汇总表

427 数据字典汇总表

序号

中文名

英文名

说明

1

查询类型

dic_qurey_type

查询的类型,如关键字查询、区域查询等

2

数据类型

dic_mdata_type

空间数据的类型

3

比例尺

dic_mdata_scale

空间数据比例尺

4

分别率

dic_mdata_resolution

空间数据分辨率

5

参考系

dic_mdata_rcsys

空间数据参考坐标系

6

投影

dic_mdata_projection

空间数据投影类型

7

数据字典表索引

dic_index

由于记录所有的数据字典,包括字典名称和表名


4.3.3.数据库视图汇总表

428 视图汇总表

序号

中文名

英文名

说明

1

元数据收藏视图

fly_favoritemdview

以收藏表为主表,用户表、元数据表为连接表生成的视图

2

需求收藏视图

fly_favoriterqview

以收藏表为主表,用户表、需求表为连接表生成的视图

3

元数据视图

fly_mdataview

以元数据为主表,字典表、收藏夹、元数据标签为关联表生成视图

4

需求视图

fly_requireview

以需求为主表,字典表、收藏夹、元数据标签为关联表生成视图

5

登入登出视图

sys_log_loginview

以登入登出表为主表,用户为关联表生成的视图

6

公共视图

sys_noticeview

以公共表为主表,用户、公共阅读表为关联表生成的视图

7

公共阅读视图

sys_notice_readview

以用户公告视图、公告阅读表为主,公告视图为关联生成的视图

8

公共用户角色视图

sys_notice_user_role

以公共角色为主表,公共阅读、公共角色为关联生成的视图


4.4.   性能设计

4.4.1.系统优化

l   并行处理

利用MYSQL数据库的并行处理能力,包括数据的查询以及插入、修改、删除等DML操作。并行处理可以有效利用服务器的CPU资源,通过多CPU并行处理来提高数据访问的性能与响应速度。

l   表空间规划

对各类数据的SQL表空间进行规划,如将数据与索引表空间分开,数据与图片表空间分开等,关键数据文件可以放在不同的磁盘控制器控制的磁盘上等,以提高数据访问的性能。

l   高速缓存

对于一些频繁使用的数据,如字典数据,通用的背景空间数据等,可以将该数据一次性读入SQL高速缓存的Keep池中,Keep池可以确保指定的数据永久驻留在内存高速缓存中,从而使数据的访问直接在内存中进行,没有读盘的操作,可以极大的提高数据访问的响应速度。

l   物化视图

采用SQL物化视图技术,即数据库快照,它是存储了查询结果的数据库视图。物化视图通过将大量耗时的数据库检索、计算操作的结果预存起来,应用程序直接使用这些存储的结果,极大提升应用程序的性能。同时利用物化视图的刷新功能,可以当数据基表中数据改变的时候及时更新物化视图的数据。

l   分区

可以采用SQL数据分区(Partitioning)技术将大表和索引分成可以管理的小块,从而避免了对每个大表只能作为一个单独的对象进行管理。数据分区是一种“分而置之”的技术,它为海量数据的管理提供了可伸缩的性能。对大表进行数据分区,将能够产生明显的性能上的效果,并可以对数据故障进行有效隔离。SQL的数据分区对应用是透明的,不需对应用程序做任何修改。数据的分区可以带来性能、可用性、可管理性上的提高。

l   数据库集群

采用SQL RAC来构建分布式、冗余的,支持负载平衡的数据库管理系统集群,即使部分节点出现故障,数据库仍能够正常运行,RAC集群可以提供高可靠、高可用、高性能的数据库访问服务。

l   软件监控与优化

综合采用商业数据库子系统平台提供的调优工具及第三方数据库性能监控与优化工具对数据库进行性能优化。同时在信息库管理系统中开发相应性能调优构件,对数据库性能进行优化。


4.4.2.中间件优化

l   缓冲池

在大数据量入库时,通过调整数据库的缓冲池参数,可以有效提高数据加载的性能。

l   直连

对于某些应用,可以采用移动端或者桌面端的数据存储方式来进行数据库的访问操作,减少数据库数据引擎的开销。


4.4.3.应用程序优化

l   缓存

对经常参与查询的参数表或者元数据,缓存到内存,减少数据连接和频繁访问。

l   分页

对于系统查询的结果,进行适当的分页显示,这样在查询时每次返回的数据量比较小,避免一次返回大结果集,可以有效提高响应速度与性能。

l   SQL优化

SQL语句上使用上,尽量利用数据的索引机制,以及数据库提供的相关优化规则。优化程序中的SQL语句,增加where子句上的匹配条件,减少遍历全部的查询。

l   并行处理

目前四核、八核CPU已逐渐成为桌面计算机的主流配置,可以在应用中对密集数据处理采用并行处理的方式,充分利用多核CPU的计算能力,提高系统运行效率。

l   算法优化

应用中优化计算处理的算法,提高处理响应速度。如大数据量多条件的统计是非常耗时间的,除了建好索引外,我们还可以通过建立视图、多维表、存储过程方式,在数据更新时、或者每日批处理方式处理获取多维的统计数据,在统计时就可以快速获取成果,减少客户等待时间。


5.4   安全保密设计

数据库的保护应该从操作系统级、数据库级、网络级和应用程序级同时制定严密的保护措施。作为数据库设计,主要从数据库级考虑。采用如下几个方面的措施来保证数据库的安全。

a)    管理制度:在管理制度上,建议安排固定的数据库管理员维护数据库, syssystem用户的口令只有数据库管理员拥有,并且DBA权限的用户帐号也只应授予数据库管理员。数据库管理员可根据业务需要,创建或撤消用户帐户。

b)    用户管理:在本系统中根据用户业务需求,按业务分区组设置角色,同一区组的用户授予相同的角色,不同角色用户授予操作不同数据的权限。这样来控制不同用户只能访问其权限内的数据。

c)    口令管为保证用户账号的安全性,设置的口令进行复杂性检验。防止用户直接操作的方法

d)   使用本分系统需要先进行账号注册,用户只能用账号登陆到应用软件,通过软件访问数据库,而没有其他途径操作数据库。


5.4.1.用户帐号密码的加密方法

为了安全性,对用户名及用户密码采用MD5加密和加盐处理,确保在任何地方都不会出现密码的明文。


4.5.2.角色与权限

为了保护注册用户的权益和数据库本身的安全性与完整性,需要对用户进行身份认证。不同级别的用户赋予不同的权限,以确保用户只能访问其权限范围内的数据。分系统对用户采用分组的形式进行管理,具有相同访问权限的用户属于一组,以简化权限的分配和用户的管理。主要进行数据库资源访问用户的管理,只有数据库的合法用户才能进行数据库资源的查询检索和获取。


4.6.   管理与维护

4.6.1.数据一致性设计

数据库中的数据一致性是指当用户获取一个共享资源,而资源在不同的操作中显示同样的特征。在设计中,考虑到更新丢失、脏读、非重复读和幻象等现象会影响数据库的一致性,为避免不同事务并发时破坏数据库的一致性,采用SQL中自动锁和系统修改系列号(SCN)来解决一致性问题。

数据完整性也是数据一致性的重要保证,包括域完整性、实体完整性和指引完整性等几个方面。设计上将采用如下几个方面的措施来确保数据的完整性。

a)    域完整性,通过列数据类型约束域完整性,同时还指定每列是否为空属性(NULL/NOT NULL),用来约束该列是否可以出现空值。

b)    实体完整性(又称为行完整性),要求表具有主键约束(主键),根据实际情况决定是否采取其他措施,如唯一索引、UNIQUE约束等;

c)    指引完整性(又称为关系完整性),建立数据库中不同表与列之间的关系,使子表中外键的每个列值都与相关的父表中的主键或候选键相匹配。


4.6.2.数据库日常管理

利用数据库、数据仓库、元数据和网络等技术,建立分布式、集中式或集中加分布式数据管理系统,开展数据接收、组织存储、运行维护、更新、共享交换等工作,实现对数据资源的有效组织和应用。按照减灾应用数据库维护计划定期进行数据资源目录、数据库子系统维护,确保数据库得到经常性的管理监控、维护和优化。主要内容包括:

1)       数据库一致性检查;

2)       数据目录和索引更新与重建;

3)       系统数据库备份以及用户数据库备份;

4)       文件大小检查;

5)       系统冲突性检查;

6)       监测批处理、数据查询作业是否正确执行;

7)       数据库子系统日常运行记录管理,包括值班记录、系统故障及排除记录。

8)       查看日常运行记录的错误;

9)       复制日常运行记录代理的运行情况;

10)   复制分发清除作业是否正确执行;

11)   整理数据库碎片,监测数据库大小、增长情况;

12)   监测磁盘自由空间、释放磁盘空闲空间;

13)   监控用户操作和使用数据情况;

14)   定期对数据库子系统进行升级,以提高其性能;

15)    处理示范工程数据库子系统紧急情况的预案。发生重大故障造成系统停机,应向用户作出通告说明。


4.6.3.数据库维护

数据库维护是指当一个数据库被创建以后的工作都叫做数据库维护。包括备份系统数据、恢复数据库系统、产生用户信息表,并为信息表授权、监视系统运行状况,及时处理系统错误、保证系统数据安全,周期更改用户口令数据库维护比数据库的创建和使用更难

数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分:

1.备份系统数据

数据库系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。

(1).备份数据库

每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排固定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。

除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。

(2).备份事务日志

如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master数据库和小于4M的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用DUMPTRAN命令单独备份日志。备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。

(3).备份数据库及其日志间的相互作用

在至少卸出一次数据库前,卸出事务日志是毫无意义的万一系统失败时恢复数据库系统如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库

2.监视系统运行状况,及时处理系统错误

系统管理员的另一项日常工作是监视系统运行情况。主要有以下几个方面:

(1).监视当前用户以及进程的信息

(2).监视目标占用空间情况

(3).监视SQL数据库统计数字

3.保证系统数据安全,周期更改用户口令

为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。

5.   系统实现设计

5.1.  实现技术

5.1.1.开发环境

采用Intellij IDEA作为系统开发平台,利用Maven作为项目管理工具,使用JDK1.7、Tomcat6.0及以上、Windows7作为开发环境,利用Java、Javascript、Jquery作为开发语言。


5.1.2.Web前端实现

Web前端采用Boostrap3.3.5、EasyUI1.5、天地图全国和天地图福建作为前端框架。前端网页将CSS、JS、jsp页面进行分离开发,系统部署运行再将其集成。


5.1.3.后端实现

后端采用SpingMVC进行接口分层、切面管理,利用Spring-shiro作为系统安全框架(包括登入登出、资源权限控制等)、Hibernate作为数据访问框架,并通过注解实现参数配置。

后端接口的实现主要分为三层:controller控制层、service业务逻辑层和dao数据服务层,每一层都有接口定义和接口实现。

controller层:是与前端交互的接口控制层,处理前端请求,并能够相应请求,采用Json作为数据传输模型。

service业务层:是系统的业务逻辑处理层,并且在该层做数据库事务管理,以保证数据库的一致性和数据安全。

dao数据服务层:通过Hibernate与数据库交互,以实体Projo对象为主接收数据,为业务逻辑层提供基础数据服务。


5.2.  实现原理

前端采用ajax作为数据请求访问工具,后端利用SpringMVC框架进行控制,其原理如下图所示。首先由客户端发出请求,Controller接收请求,然后将请求参数交由Service层处理,Service层根据业务情况向Dao层获取相关数据,Dao层使用Hibernate访问数据库,并以Projo实体作为数据载体获取数据。

51 角色、用户相关系统管理逻辑设计图

5.3.  实例展示

根据上述系统设计和技术实现原理,开发了一套面向测绘、测量、地理信息相关行业的元数据平台。下文以用户管理为例,进一步阐述系统的实现过程。


5.3.1.Hibernate数据库表与实体映射原则

采用注解映射配置,实体名称对应表名,实体字段与数据库字段一一对应。此外如果业务需要,可以需要增加临时字段的,可以在Hibernate管理下的实体中加一个临时字段(以注解的方式标识为临时字段),如果只需要某几张表中的几个字段,也可以直接建立一个临时实体(不需要指定数据库表和字段的注解配置),采用Hibernate的临时数据转换接口可以实现临时数据的接受转换。

例如,用户管理中用户表SYS_USER,可以建立一个User的POJO实体对象模型,通过表名注解、字段注解进行映射匹配,用于接收和转换查询的数据


5.3.2.SpringMVC接口设计原则

Controller层、Service层和Dao层接口的设计遵循简单化、模块化、精细化原则,使系统实现最大的可维护性,首先抽象出系统各模块公用的接口,其他模块的接口尽量精确对接,一般一个业务模块有其一一对应的接口层,尽量避免不同模块之间的接口共用。

以用户管理模块为例,Controller控制层命名为UserController、Service业务层命名为UserService、Dao数据层命名为UserDao。要实现一个新增用户的功能,UserController新增一个save的接口,UserService新增一个save接口,Dao新增一个save数据接口。


5.3.3.前端请求设计原则

前端设计尽量简洁大方,操作性强,采用Ajax+Json的模式作为数据请求机制,并在请求结束时返回精确的提示信息,以达到前端友好界面设计。


5.3.4.成果展示

以用户管理的新增用户为例,成果如下图所示:

52用户管理主界面

53新增用户界面

 

6.   系统出错处理设计

6.1.   出错信息

61系统出错处理表

序号

出错情况

出错形式

补救措施

1.            

不能访问系统

无法访问系统

重新启动应用服务

2.            

不能访问数据库

不能执行查询,新增等业务

重新启动数据库,检查网络是否畅通

3.            

登录出错

用户名不存在或密码错误

重新输入正确信息后,在登录

4.            

密码修改出错

原始密码输错,两次新密码不一志

重新输入正确的密码

5.            

业务执行错误

业务办理错误

按照正确的业务办理规则进行办理

6.            

请选择处理的数据

没有选择数据,直接进行数据处理

选择确实存在的数据

7.            

请设置正确的路径

没有选择输出路径或者没有设置正确的输出路径,直接进行数据处理

选择确实存在的路径

8.            

请输入文件名

输出文件名为空

为输出文件键入文件名

9.            

请输入搜索条件

在查询模块中进行数据的搜索时没有输入搜索条件

输入搜索条件

10.      

连接参数不正确!

数据入库时连接参数不正确

检查连接参数

11.      

服务器名不能为空!

数据入库时没有输入服务器名

输入服务器名

12.      

实例名不能为空!

数据入库时没有输入实例名

输入实例名

13.      

输入内容不能含有特殊字符!

在进行信息修改时,输入了特殊字符

输入正确的名称(中文及英文字符)

14.      

用户名不能为空!

数据入库时没有输入用户名

输入用户名

15.      

文件不存在,请检查!

打开的文件不存在

重新打开一个已存在的图像文件

16.      

用户名和密码有误!

在登录时用户输入的用户名或密码错误

检查用户名及密码是否正确

17.      

连接参数不正确

空间数据连接参数填写不正确

填写正确的连接参数

18.      

拒绝存取。

检查用户的权限

为用户分类相关的权限

19.      

无法移除目录

检查用户的权限和目录权限设置

为用户分类相关的权限或取消目录相关限制

20.      

指定的计算机名称错误

数据库连接时的输入的计算名不存在

检查要连接的计算机名称

21.      

指定的服务名称错误

连接postgres数据库时的SID错误

检查postgres数据的SID

22.      

指定的服务用户密码名称错误

连接postgres数据库时的用户密码错误

检查postgres数据的用户名密码

23.      

请选择数据集!

归档、入库等操作时没有选择目标数据

选择操作的目标数据

24.      

数据库连接失败!

系统不能连接数据库

检查数据库连接参数是否正确

25.      

数据打包失败!

目标数据集不能提取打包

检查该目标数据是否存在

26.      

数据格式转换失败!

矢量数据格式转换失败

检查转换参数是否正确

27.      

时间格式不正确!

时间检索时输入的时间格式不正确

改为正确的时间格式

28.      

查询条件不能为空!

进行查询检索必须字段为空

将查询的必须条件按规范输入

29.      

请检查当前网络连接!

当前网速较慢或者网络断开

网络连接

30.      

该用户名已存在!

向系统中添加已存在的用户

不再重复添加或者添加新的用户

31.      

该用户已登陆!

用已登陆系统的用户账号再次登陆系统

当前用户退出系统或者选择另一用户账号

32.      

无效的sql语句

高级查询检索时输入的sql语句不合法

检查语法是否正确

33.      

无效的格式文件!

试图打开或者保存系统不支持的文件格式

选择系统支持的文件格式

34.      

查询的字段不存在

查询检索时输入的字段在相应表中不存在

检查查询语句中的字段是否都村在表中,或者是否拼写错了字段名

35.      

文件正在使用中!

其他程序打开了相应的文件

其他程序关闭对此文件的打开即可

36.      

存在不合法的参数信息!

某些参数不合法,比如存在全角字符等

修改参数信息使之合法


6.2.   补救措施

从错误的类型出发,以上的错误可以分为:系统配置项错误、用户输入错误、用户操作错误、系统异常错误、操作系统级别错误。针对不同的错误,需要采用不同的补救措施。

1)对于“系统参数”类型的错误,系统将根据各个界面中的不同参数配置,显示在相应的系统设置中,若有错误即可进行再次修改配置文件的参数信息;

2)对于“用户输入错误”类型的错误,系统将根据各个界面中的不同参数类型,设置不同的检验规则,直接在用户界面上提示用户错误信息,并在相应的位置强制其修改;

3)对于“用户操作错误”类型的错误,系统将在逻辑上验证流程步骤的正确性,提示用户必要的先决条件;

4)对于“系统异常错误”类型的错误,系统将采取手动获取的方式,将所需的数据下载到本地,根据本地工程文件的形式继续完成相应的工作。

5)对于“操作系统级别错误”类型的错误,系统将采取手动处理解决的方式,重新打开计算机并再次运行该系统。


7.   系统维护设计


7.1.   可扩展性设计

1.      在框架上采用可拆卸机制,菜单功能以动态库的形式进行挂接;

2.      在具体算法设计上,每个算法都考虑了海量数据处理和小数据处理。算法与底层的数据显示相分离;

3.      在模块设计上,采用组件化的设计,各种功能都作到动态可拆卸,形成松散耦合的关系,使得模块的可扩展性得到保证;

4.      模块采用算法与界面分离的策略,大大提高系统可扩展性。

7.2.   可靠性设计

1.      系统的算法遵循尽量利用公认的、成熟的算法进行开发、设计的原则;

2.      软件包软件容错集中在对于异常数据、操作和流程的处理和严格的质量保证上,保障软件对任何不符合业务逻辑和内在限制的操作提供必要的保护措施;

3.      对于用户误操作和不合规程的随意操作而造成死机、不可控制的异常,及可能的意外和超过模块处理能力的操作有必要的防护措施;

4.      对于数据的限制在界面层和算法层进行分别。

7.3.   可维护性设计

本软件是一个大型综合数据管理系统。因此,方便合理的系统维护设计是保证系统安全可靠运行的必要条件。维修性的设计措施如下:

1.      简化产品设计与维修:在满足规定功能的前提下,系统各部分力求做到简单,合并相同或相似功能,消除不必要功能。

2.      通用性设计:最大限度地采用标准部件,尽量减少品种、规格。

3.      系统模块化设计:功能系统采用模块化设计,同时尽量减少相邻模块间的连接,力求实现总体设计合理,功能独立,以便于人员操作和维护。

4.      开发软件可维护设计:根据相关管理、测试规范,对软件进行组件化设计、模块松耦合设计等措施,并统一软件接口标准以及尽可能采用国军标、国家规定的数据格式等。主要的维护内容包括硬件设备的维护、软件系统及程序的维护、操作系统的维护以及数据维护。


7.3.1.软件系统及程序的维护

保证系统安全可靠的运行是软件维护的重要任务之一,系统管理员所采取的最重要的维护措施就是建立一个有效的安全环境,使用户认识到每天二十四小时维护的重要性。


7.3.2.操作系统的维护

1.             建立用户帐户安全制度:确保进入计算机系统的所有人都是合法用户,每一个操作人员都有自己的计算机账户和口令。

2.             物理安全性保证:考虑避免各种人为和自然环境的影响,包括:设备可能的人为损坏、环境因素(灰尘、电子噪声、爆炸、极端温度以及振动)可能造成的损坏。

3.             系统日志管理:做好服务器的日志记录,以便在系统崩溃时恢复系统和数据的使用。

4.             网络安全管理:实行口令管理,防止非法用户进入。利用反病毒软件防止病毒侵入。

5.             程序维护:利用系统提供的维护程序,定期进行系统维护。

6.             检查跟踪系统:当管理任务繁多时,可把有关系统的安全工作利用计算机的系统检查跟踪功能自动进行处理。


7.3.3.数据的维护

定期进行系统及其数据库数据的备份,防止人为或自然灾害等造成数据不可恢复的破坏。

8.   系统配置

8.1.   硬件配置

系统的硬件配置主要包括数据库服务器、WEB服务器、移动PC端、PC机、网络设备、存储设备。


8.2.   软件配置

系统支持的软件主要包括:

服务器操作系统:如Unix/LinuxWindowsSUN SOLARISIBM AIXHP UNIX等;

数据库软件:MySQL;

中间件软件:Java运行环境,Tomcat等。

厦门网赢集团

www.anyidc.com

TEL:13275007163(微信)

 

 


查看完整内容