杨勤 周辉 郭啓倩 马亮
从大地形变流动数据库的设计谈监测基础数据库的建设
杨勤周辉郭啓倩马亮
杨勤,博士,高级工程师,中国地震局第二监测中心科技信息室副主任。1982年毕业于武汉测绘学院大地测量系,1999年获日本东京大学博士学位,随后在该校进行博士后研究工作,并被聘为客座研究员。2000年至2009年期间,曾从事大型数据库设计与系统开发商业服务工作。现主要从事地震流动监测、数据信息等研究与管理工作。作为负责人,先后承担中国地震局《大地形变流动观测数据库结构》地震行业标准编制和地震科技星火计划攻关课题《大地形变流动观测标准数据库建库软件开发》等项目,参与中国地震局监测预报规制体系和管理信息系统设计工作,在大地形变流动观测、数据库开发等方面积累了丰富的实践经验。先后在国内期刊发表多篇学术论文。
随着现代化科学技术的发展,丰富的科学活动产生了庞大的科学数据。如何有效管理这些日益膨胀的大量数据,是摆在数据工作者面前的一道难题。
地震系统的数据管理,基本上是伴随着地震科学活动而逐步发展的。最初,一般用人工记账的方式管理纸质数据,随着电子数据的产生与数据管理技术的进步,对电子化数据,尝试了不同的管理方式,最后形成电子载体和人工记账相结合的管理模式。
在地震科学各学科中,数据库的建设、发展参差不齐。例如在地震科学的数据共享方面,大地形变学科,没有一个统一、标准格式的数据,供共享者使用。因此,地震科学数据管理与数据共享,要求我们建设一个统一标准格式的大地形变流动标准数据库,以满足不同观测单位的数据管理、数据汇交、数据共享之需要。
另一方面,各课题建设的数据库,也是形式多种多样。最主要的潮流是,对观测数据进行一定的清洗后,将其结果做一个结构化处理,然后存放在数据库里。其目的一是存储数据,二是向数据使用者提供数据下载。我们暂且把这种数据库称作数据仓库。我们认为,这种数据仓库的功能是比较单一的,除了建设主体(如课题组)自己使用之外,很难推广应用。鉴于这样的现状,我们自然而然地提出一个问题:能否建设一个基础数据库来满足各方面的要求呢?
2014年,我们承担了中国地震局法规司下达的《大地形变流动观测数据结构》行业标准立项任务。在此基础上,我们同时承担了相对应的中国地震局科技司地震科技星火计划项目《大地形变流动观测标准数据库软件开发》课题。通过课题的深入研究,我们对设计构建基础数据库有了一些更好的经验与体会。
构建《大地形变流动观测数据结构》行业标准,首先需要一个大地形变流动观测标准数据库,用于验证行业标准的可执行性。而标准数据库又需要有一个大地形变流动观测基础数据库作为数据源。
在这里,我们首先要回答什么是标准数据库,什么是基础数据库。
标准数据库,是指数据库的结构是经过标准化的数据结构,具有固定的格式,要求大家统一遵守。例如我们需要保存的数据范围、数据种类、数据类别等等,都不是随意记述。具体举例来说,水准观测点标石类别,观测规范上有基岩综合标石、土层综合标石、混凝土基本水准标石、钢管基本水准标石等,建点者就不能简单地记述为“钢筋混凝土标石”。
因此,标准数据库的最直接目的,是解决数据共享、解决各观测单位汇交什么样的数据的问题。
基础数据库,应该是最基本、最全面的观测信息数据集。为了达到这一目的,基础数据库必定以观测信息的大量化、多样化、复杂化为特点。随着存储技术的不断发展,对于大地形变流动观测数据而言,高速、大容量、廉价的存储介质,早已解决了数据库设计中存储空间的节约问题。因此我们设计基础数据库的注重点,应该放在信息的合理分类和信息的完整上,同时要求数据库里存储的数据信息能够被快速利用。
新理念:基础数据库应该是业务信息资源库
相对于基于观测数据的仓库类型数据库,我们提出了一个新的数据库设计理念:基础数据库应该以流动观测业务为核心,将数据库建成一个涵盖整个地震大地形变流动观测业务的信息资源库。我们采用关系数据库构建大地形变流动观测基础数据库。关系数据库最大优点在于它非常适合存储相关联的全部信息。在数据库里,我们不仅仅要存储数据,还要存储业务。这是与单一数据仓库最大的不同之处。将业务存储于数据库之中,其最大的好处是业务不会随着业务人员的岗位调整或变动而改变;其次,可以促进业务及流程的规范化。举例来说,基础数据库不仅仅包含观测结果数据,而是从观测基础信息,如观测点的点之记、观测任务来源、观测任务下达、观测小组构成、观测仪器信息、观测过程信息、观测数据记录等全业务范围着眼,记录和存储所有的档案信息。
业务信息资源的完整性需求
实现对数据的永久保存,这个由数据库技术本身来解决。设计中我们不需要考虑磁盘存储的牢固性和存储数据的丢失问题。但是业务数据的完整性,需要我们在设计中予以规定。哪些是业务数据、业务数据的完整性如何来定义?这些需要我们在数据库建设的前期,进行大量、充分的需求分析调查来确立,以防止重要信息的选择性遗忘。
对于保证业务信息资源的完整性要求,实践中数据管理者颇有微词。他们从过去存储资源昂贵、存储磁盘空间容量有限等习惯性思维中,时常提出某些数据存起来到底有什么用的问题。我们认为,数据组织者对观测实践中出现的各类信息,报一种有用还是无用的判别心态,是十分有害的。在这里我们讲一个很能说明问题的例子。
1983年国家地震局(现中国地震局)组织编写了一套《中国大地形变测量成果表》,共有十三册。非常遗憾的是,这样一套数据集,点位信息中没有经度坐标。推测当时的理由是纬度坐标可以用于计算正高改正值,而经度坐标没有什么用。但是从今天的需求来看,清理大地测量点位,定义一个水准点是不是历史上曾经存在过的那个水准点,可信赖的一个重要参数就是点位坐标,经度、纬度缺一不可。
实现对数据的科学管理
定义了基础数据库的基本属性为业务信息资源库,就要规划业务信息资源的数据分类以及各类数据的相互关联关系,将业务信息结构化。同时还要依据关系数据库技术,科学设计数据库,以实现对复杂信息的科学管理,最大限度地保证数据库效率。对此我们提出了数据库应该具有以下的基本功能:
(1)信息的合理分类性:各个子数据库按业务和数据库要求合理分类,构成结构化关系数据集。
(2)信息的全面、完整性:由信息的完整性定义以及数据库库表设计和数据结构来保证。尽量保证信息没有遗漏。
(3)信息的正确性:由字段属性来防止错误和非法的数据流入。
(4)信息的一致性:同一信息只在一个地方存在,其他地方需要该数据时均予以引用,消除数据冗余,以保证同一信息不会产生矛盾数据。
(5)信息的非重复性:对同一信息记录,要设立唯一键标识,以防止重复性录入。
(6)相关信息的关联性:数据之间的关联,需要有建立清晰的数据逻辑关系。
(7)存储的简洁性:对可枚举分类数据,设立对应代码表,用代码代替文字记录。
(8)高效信息提取:数据库存储的目的之一是为了信息数据的提取利用。基础数据库必须保证能够大量、高速抽取到任何所需信息。
另外,数据库的数据备份、数据安全策略等,由数据库自身技术实现,不在我们的数据结构设计范围之内。
明确了大地形变流动观测数据库的理念、功能,接下来就要解决数据库的设计问题。这里讲述一下我们的设计原则和设计内容。
基础数据库的建设应密切贴近大地形变监测业务
首先,确定数据库的内容需求。数据库内容的确定,要求项目组广泛阅读大地形变流动观测业务的相应文献、规范,在大范围内实行调研、考察,尽可能地了解历史观测状况和现行观测规定、实际操作等细节性的每一个环节,最终形成一种设计方案。
1.基础数据库存储内容来源于业务各部门的调研
关于存储内容,我们多次组织了中国地震局和国家测绘地理信息局有关专家、大地形变流动观测业务单位的各业务部门,如业务管理部门(监测处)、业务实施部门(监测队)、业务档案部门(科技信息室),进行调查研究,共同讨论数据库的设计方案。
专家们提出,基础数据库,不仅仅要存储观测结果数据,也要存储观测过程数据,甚至是观测过程中出现的相关文件、产出的观测技术报告和技术档案等等。专家们给出的理由是,在地震预报和地震基础研究中,由于观测结果的不确定性,经常需要用到观测数据的环境资料进行全面分析,从而使得过程数据与观测数据同等重要。
2.监测现场调研
数据库的设计离不开实际观测业务活动。比如,对仪器的使用状况、天气和风力的判断、实际观测操作过程等,通过实际参与可以了解到观测数据的产出全过程。
基础数据库设计依据
大地形变流动观测业务,在几十年的实践中,一直根据相对严格的业务标准或规范予以实施。因此数据库的设计,也必须遵循这些业务标准或规范。对于业务数据库的设计,最理想的状况,是先有业务标准(观测、管理规范等),然后依据业务标准进行数据库设计。但是,我国的现实情况是,标准的制定远远落后于业务实践。大家的习惯一是根据以往的传统,二是依据红头文件。因此,业务上的规则,有时随意性比较强。
尽管如此,我们也不能等到业务标准或规范完全建立并成熟以后,再去制定数据库标准。我们应在不违反现有标准、规范的前提下,尽可能地做到有章可循,排除困惑,构建一个尽可能符合业务标准或规范的基础数据库。
1.各种规范的引用
数据库设计中,我们所引用的业务标准或规范如下:
(1)流动水准测量:依据《国家一、二等水准测量规范》(GB/T 12897-2006)和《地震水准测量规范》(DB/T 5-2014);
(2)流动GNSS 观测:依据《地壳运动监测技术规程》(地壳运动监测工程中心2014);
(3)跨断层测距观测:依据《中、短程光电测距规范》(GB/T 16818-2008)(全站仪测距);
(4)基础信息:将地点地址信息分解为行政区划+乡镇街道详细门牌号码的两部分管理,行政区划部分可以用《中华人民共和国行政区划代码》(GB/T 2260-2007)来规范;将机关单位统一编码标识,单位代码采用国家颁布的《全国组织机构代码与名称》(GB/T 31286-2014);
业务人员的唯一标识码,采用身份证号码,这样解决了人员识别的唯一性问题。
2.规范中没有规定或规定模糊的应对
对于没有业务标准或规范的数据内容,我们采用如下原则设计:
(1)虽然没有业务标准或规范,但在业务实现中形成了行业上传统习惯的,按照传统习惯设计。例如跨断层测距观测中的《跨断层基线场地图》、《跨断层短程测距观测手簿》、《跨断层短程测距观测仪器检验手簿》和《跨断层距离测量成果及精度统计表》等。
(2)完全没有先例可循的内容,自己设立标准进行设计。比如观测点位废弃原因分类,我们就自主规定为①废止;②破坏;③其他(含遗失等)三类。
数据库的性能设计必须满足数据库3NF范式
关系数据库技术对数据存储,有范式要求。第一范式1NF:字段为最小信息属性,信息不可拆分(原子性);第二范式2NF:每条记录都有主键,且每一个非主属性都完全依赖于主键;第三范式3NF:每个非关键字段都独立于其他非关键字段,并依赖于关键字。通俗地讲,满足第三范式,就是说同一信息不能有两种以上的表示,不能有重复,一个字段不能用其他字段导出,如[单价]×[数量]=[金额],有了单价和数量,金额就不能在数据库中出现。
大地形变流动数据库在数据库性能方面,应该严格按照第三范式3NF原则设计,并且对相关关系数据要建立严格的约束和索引,确保数据的准确性、一致性、简洁性和非重复性,使得数据库在数据满负荷的时候,亦能达到整体效果最优。
数据库设计人员现场参与观测数据的获取过程
基础数据库的涵盖范围和设计内容
通过大量的调研,项目组将大地形变流动数据库的信息内容归结为流动水准观测信息子库、流动GNSS观测子库、跨断层测距观测子库,其内容包括观测点位或观测场地基础信息、观测仪器基本信息、观测手簿和观测结果数据等。相关联的,还设计了监测任务管理信息子库、数据产品子库以及每个子库都要用到的共通基础信息等。
1.共通基础信息子库
包含定义地点地址的全国行政区划信息表、定义全国业务单位的机关单位信息表、定义业务人员的人员信息表,以及全局档案文件资源信息表,全局代码分类信息表等。
2.监测管理信息子库
包含监测管理中对项目、任务、子任务以及作业小组的信息定义,以及子任务详情信息表和项目任务完成状态表等。
项目信息表主要定义监测任务的项目或课题信息。项目(课题)信息表中存放项目来源、起止年月、完成状况以及项目任务书和验收报告等档案文件。
任务定义从项目分解到某一观测年度、以某种观测方法的可执行任务。例如地震系统的喜马拉雅项目,它是跨多年度、具有多种观测手段的重大行业专项。喜马拉雅二期项目的2014年水准观测,就是一个任务。任务信息表中存放技术设计书、实施方案、部门技术总结等档案文件。
子任务是指将任务分解,由某个观测小组实施其中的一部分任务。包括观测任务对象、实施观测小组、小组技术总结报告等信息。
观测小组信息表定义观测小组管理单位、小组成员、观测手段等信息。
3.流动水准观测信息子库
流动水准观测子库包括水准观测点之记、水准区域信息、水准观测仪器信息等基础信息表和表示观测数据的观测手簿信息表、表示观测结果数据的水准高差表和表示水准观测仪器检验结果的观测仪器检验表等。将观测手簿和高差表完整导入数据库,是该数据库的特点之一。
4.流动GNSS观测信息子库
流动GNSS观测子库包括GNSS观测点之记、GNSS观测网信息、GNSS观测仪器信息等基础信息表,和表示观测数据的观测手簿信息表、表示GNSS观测仪器检验结果的仪器检验表等等。
5.跨断层场地测距观测信息子库
跨断层场地测距观测子库包括测距观测场地、测点及测边信息、测距观测仪器信息等基础信息表,和表示观测数据的观测手簿信息表、观测成果表以及表示测距观测仪器检验结果的仪器检验表等。
6.数据产品管理子库
将各种大地形变流动观测产出的研究报告、数据图形、论文等数据产品和引用的原始数据文件等信息进行分类,归类管理,以便于其他研究者快速查询。
大地形变流动观测基础数据库建成后,实现了对大地形变流动业务数据、档案的永久保存和对业务数据进行高速检索、快速抽取这一数据库的基本功能。除此之外,本数据库还实现了几项特别有意义的功能。
观测档案资料查询功能
方便、及时的调阅数据库中的档案文件,替代了档案保管员繁重的工作和工作时间的限制,奠定了实现档案资料管理的电子化的基础。
观测点位点之记的动态管理与电子打印
一个过时的点之记,往往会导致观测员找不到点位,承担的观测任务无功而返。今后的观测点位等基础资料不再以固定不变的纸质格式记录,取而代之的是随时更新的最新点之记信息。由此做成电子格式的点之记图表。这样的好处显而易见,可以将变化了的信息,比如周边环境、交通路线、参照物位置变更等,及时更新在点之记表里,然后打印出最新点之记。
观测手簿的数据库入库,可望直接产出
由于观测成果表由直接观测数据经过改正、计算而来。我们完全可以通过程序计算,用手簿观测值计算观测成果表。例如,高差表的数据成果表。这样得到的结果更加准确与快速,可减轻观测一线的工作负担和成果检查人员的工作量,极大提高观测数据的质量检查效率。
观测点的建点、遗失、破坏时间等属性的数据库管理
对观测点的建点、遗失、破坏时间等属性的数据库管理,使观测点变迁历史得以可追溯和还原。这对历史观测数据的清理有极大的帮助。一切变化都会被记录在案。
完成数据共享任务
对数据库中的敏感信息进行脱密处理,将不涉密的部分公布于互联网上,实现地震科学数据共享。
野外监测业务的电子化管理
由于将监测业务(例如,某年度某个观测小组的观测任务和任务完成状态)存入了数据库中,系统可对当年实施任务的观测小组工作状态进行实时跟踪,及时汇总任务完成情况,实现野外监测任务的电子化追踪管理。
(1)基础数据库应是一个完整的数据资源库,尽可能满足各方面对数据的需求。
(2)各种系统的应用,数据库是核心。而基础数据库,业务是核心。
(3)数据库设计需求,必须来自全面的调查研究。
(4)数据库的设计必须以各种相应的业务规范作为依据,以保证存储的信息
不偏离业务。
(5)数据库的设计必须严格依照数据库范式要求,以保证数据库效率的最优。
(6)数据库的设计,应该考虑应用场景,起到改善和促进业务活动的作用。
另外,现在建设的大地形变流动数据库,还存在一定的缺陷。在数据库的应用推广中,大家普遍提出一个问题,为什么缺少了流动地磁与流动重力部分?对数据管理者来说,可能会有诸如学科分类等的限制,但是对于应用的人来说,难道监测管理工作需要上几套不同的系统?监测资料文件需要存放在不同的数据库里?我们认为,这个意见是非常中肯、切中要害的。因此有必要开发大地形变流动数据库2.0版,将所有流动观测信息数据都纳入统一的数据库管理。