文章信息
- 陈艳, 雷振宇, 张旭.
- Chen Yan, Lei Zhenyu, Zhang Xu.
- 森林资源多维数据模型研究及应用
- Research and Application of Forest Resource Multidimensional Data Model
- 林业科学, 2006, 42(增刊1): 127-132.
- Scientia Silvae Sinicae, 2006, 42(增刊1): 127-132.
-
文章历史
- 收稿日期:2005-06-24
-
作者相关文章
森林资源规划设计调查(简称二类调查)是经营单位(县、林业局、林场)为掌握森林资源现状和动态、分析与评价经营活动效果, 编制或修订经营方案或总体设计而进行的森林资源清查。森林资源规划设计调查数据是森林资源规划设计调查的主要成果之一, 描述了小班内乔木、灌木、草本、地形、地貌、土壤、病虫害等情况, 通常涉及50个以上的字段, 包含非常丰富的属性信息。因此, 作为林业生产、管理、科研的基础数据, 它有着极其重要的作用和意义。它是经营单位制定森林资源采伐限额、林地林权管理、实行森林资源资产化管理及获得森林生态效益补偿基金等的重要依据; 是政府制定有关方针、政策、林业区划规划的重要依据。目前, 我国森林资源二类调查数据的管理主要是在省级以及县级林业主管部门, 而到国家级则没有完整的二类调查数据, 这使国家要基于二类调查数据做出宏观决策缺少依据。
1.2 存在问题如果把全国所有小班数据按部就班统一到国家, 将会产生如下问题: 1)数据量巨大我国森林资源二类调查小班数据都是以传统关系型数据库来管理的, 这些数据若在数据库中每个小班用一条记录来表示, 则需少则几十多至近百个字段来描述。假设每个字段用4个字节, 每条记录50个字段, 则每个记录约200字节, 一个县2~3万个小班, 则每个县5~6 M数据量, 全国有3 000多个县, 总数据量将达到2万M。2)数据库冗余增加我国森林资源分布广泛, 各地区林木生成的条件不同, 林业经营管理所需的数据内容也不完全相同, 因此森林资源调查的内容也不完全相同。如果要把全国的数据纳入到一个统一结构的数据库中, 每条记录还将增加若干字段, 若每个省多2个不同字段, 则全国将增加60个字段, 总数据量将成倍增加, 而数据库的冗余也在成倍扩大(图 1)。显然用一个集中统一的数据库结构管理全国森林资源调查数据是不合理的, 同样也是难以实现的。3)不能实现综合分析传统的关系型数据库系统可以高效地实现数据录入、查询、统计等功能。但是, 在实际决策过程中, 决策者往往希望能从多层次多角度观察某个指标或多个指标的值, 并且找出这些指标之间的关系, 传统的二维数据模型很难实现这种功能(杨倩等, 2004)。自20世纪80年代初以来全国各省陆续开发了一批用于森林资源调查, 特别适用于二类调查的森林资源管理信息系统。他们绝大部分都是基于关系型数据库, 显然用简单的二维数据模型来描述森林资源中复杂的数据关系是困难的, 例如要研究坡度、土层厚度、经营措施类型等多个属性作用下对优势树高的影响, 基于传统的小班二维模型就很难得出完整结论。
为了解决国家迫切需要二类调查数据而按传统数据管理方法又难以实现这一需求的矛盾, 以及如何充分利用森林资源调查数据进行多角度的数据分析的问题, 本文引入了多维数据模型的方法。
2 多维数据模型相关概念及实现 2.1 多维数据模型数据模型一般有2个层次:概念层(逻辑层)和物理层。逻辑数据模型是从概念角度抽象出现实世界的内在规律, 如业务流程、数据架构等; 物理数据模型则侧重于特定环境下的具体实现, 如效率、安全性等。多维数据模型是一个逻辑概念, 该模型主要解决如何对大量数据进行有效管理、快速查询和多角度展示, 以便得出有利于管理决策的信息和知识(刘义等, 2000)。
多维模型的概念来源于联机分析处理(OLAP, on line analytical processing), OLAP由Codd等(1993)提出, 认为联机事务处理(OLTP, on line transactional processing)不能满足终端用户对数据库查询分析的需要, SQL对大数据库进行的简单查询也不能满足用户分析的需求。决策分析需要对关系数据库进行大量计算才能得到结果, 而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念, 即OLAP。
多维数据模型是数据仓库和多维分析的基础, 数据模型的正确选择往往在很大程度上影响和决定着分析系统的最终性能(Li et al., 1996)。
2.2 多维数据模型的相关概念多维数据模型通过引入维、维分层和度量等概念来描述数据间的复杂关系。维:是人们观察数据的特定角度, 是考虑问题时的一类属性。属性的集合构成一个维(如时间维、机构维等)。维成员:维的一个具体取值, 是数据项在某维中位置的描述(例如“某年某月某日”是在时间维上位置的描述)。维分层:同一维度还可以存在细节程度不同的各个描述方面(如时间维可包括年、季度、月、旬和日期等), 这些多个描述方面为维的层次。度量:立方体中的单元格, 用以存放数据。多维分析操作: OLAP的基本多维分析操作有钻取及旋转等。钻取包含向下钻取和向上钻取, 上卷操作钻取的深度与维所划分的层次相对应, 上卷操作通过维层次在数据立方体上进行聚集; 下钻操作是上卷操作的逆操作, 由不太详细的数据到更详细的数据; 旋转(转轴)是变换维的方向, 即在表格中重新安排维的放置(如行列互换), 通过旋转得到不同视角的数据。
2.3 多维数据模型的实现目前多维数据模型主要采用星型和雪花型模式来实现(谢民主等, 2002)。星型模式通常由一个中心表(事实表)和一组维度表组成。星型模式的事实表与所有的维度表相连, 而每一个维度表只与事实表相连, 维度表与事实表的连接是通过键来实现的, 事实表中存储各个维度表的主键, 就将事实表和维度表连接在一起, 形成星型模式。雪花模式是星型模式的扩充, 将星形模式的某个或几个维度表进行分解, 分解成多个具有层次关系的维度表, 比如地域维可以细化为省分表、地市表、县行政区划表等, 结果模式图形呈类似于雪花的形状。
由于目前建立的森林资源多维数据的维度都是由一张表来存储的, 同时基于系统的响应速度、系统的复杂度、系统的维护工作量等方面考虑, 多维数据模型的逻辑结构采用星型结构。
3 森林资源多维数据模型的实现森林资源二类调查小班数据虽然是用二维表来存储, 但实际上是一种多维数据, 包括时间、经营单位、林种、树种、起源、地类等各类信息。本文以1999年广西壮族自治区森林资源规划设计调查数据为基础, 说明多维数据模型的建立过程。
3.1 建立多维源数据建立模型的关键是维度的选取、维度的分割、维度属性的选取、事实数据项的选取(谭明金, 2003), 把森林资源二类调查数据分为空间数据和属性数据, 空间数据表明小班所在地理位置和形状的描述空间信息, 即林相图数据; 属性数据表明小班所具有的各种特性, 将属性数据又分为维度数据和事实数据。各部分的关系如图 2。
在维度体系设计中, 要详细定义维度类型、维度名称、维度成员及维度说明(李琪等, 2002), 将林业决策部门和生产部门关注程度较高的各种二类调查数据中的分类信息如权属、地类、林种等建立维度数据表, 每个维度是有级别的, 如经营单位的省、县、乡。林种有商品林和生态公益林之分, 同时还有更细的用材林、防护林等, 因此按照维度的层次建立维度表。其中星形维度表是描述常见的平衡层次维度的(图 3); 而父子维度表是描述不定层次数且层次不平衡的维度的(图 4), 具体实现是通过维度表中的父Id键(P-id)来标明它们之间的隶属关系。总共设计了21个分类的维度表, 其中星形维度表包括:坡度、坡向、坡位、经营单位等15个表, 父子维度表包括:经营单位、土地种类、树种分类、林种、起源、龄组、散生木主要树种7个表。由于各省二类调查技术规程中都对分类信息的代码作了统一规定, 因此以《广西壮族自治区森林资源规划设计调查技术规程》中规定的代码作为个维度标的主键。如针叶林代码111、阔叶林代码112等。
由于林业数据具有特殊性, 同时由于主客观原因也存在很多漏查数据, 为保证数据的完整性, 本文对这些特异性的地方做了些规定, 把一些和本分类无关的成员定义为“非此类”, 例如某小班的土地种类是“农业用地”, 它在龄组分类中无意义, 分类就应为“非此类”; 还有一些是未做调查的空值, 把它定义为“XX分类未细分” (图 3、4)。
3.1.2 创建事实数据表事实数据指各种表示量度的信息如面积、蓄积、树高等。事实数据表以小班调查表为基础, 除量度值外, 其中的分类信息字段内容用相应维度表的键值填写, 这些键的组合构成事实表的主键。以主外键的形式建立事实表和各维度表之间的关系, 形成多维数据模型的源数据基础。
3.2 建立多维数据模型以元数据为基础, 利用微软公司提供的数据仓库管理体统Analysis Services(邵勇, 2003)构建多维数据模型。选择事实表以及所需的量度值, 根据维度表确定多维数据模型的维度, 对多维数据进行聚合处理和存储分析, 建成雪花构架的多维数据模型(图 5)。
由于国家、省、县级关心的数据粒度不同, 国家级用户的职能主要是宏观控制与全局决策, 对数据粒度要求较粗; 县级用户的职能主要是制订任务、计划实施, 对数据粒度的要求要细得多。因此可根据需要分别建立各级维度。国家级可根据国家的分类需求, 建立国家层的标准维度数据; 各省可按本省的具体情况结合国家标准的维度, 增加或加深维度的层次, 建立各省的标准维度; 在省级标准维度不能满足要求时, 各县也可根据自身生产实践的需求增加省级标准维度的深度, 建立县级维度。这样就形成了自上而下不断扩充的多级树状维度结构(图 6)。
县级数据的维度及维度成员多, 划分细密, 便于指导具体的林业生产设计。虽然维度单元较多, 但由于小班数量相对不多(2万~ 3万), 所以数据量并不大。省级数据的维度及维度成员较少, 划分稍粗, 虽然数据包含的面积扩大了, 但由于对数据进行了维度的减少和维度层次的浅化, 使得维度单元减少很多, 相对于原始小班数据, 数据量小了很多。国家级的维度及维度成员则更少, 它是为国家的林业等部门提供宏观决策使用的, 数据量将小于各省级数据量的总和。
县级数据的维度及维度成员多, 划分细密, 便于指导具体的林业生产设计, 而县级系统多维数据的维度是在上级维度的基础上增加或深化的, 通过减少维度或数据仓库的上卷功能浅化维度就可以满足省级的维度需求; 同样, 通过减少或浅化省级维度也可以满足国家级维度的需求(图 7)。另一方面, 通过数据仓库的下钻功能从国家级可以下钻到县级小班数据(图 8)。
生成各种林业专题图是森林资源二类调查的重要成果之一, 用维度数据结合事实数据可生成各种统计分析信息; 再结合空间数据, 将相邻属性信息相同的斑块融合, 可生成各种专题图。选择不同的维度层次, 可生成不同层次深度的专题图(图 9)。
多维数据模型的重要应用之一就是进行多角度、多层次的数据汇总分析。利用森林资源多维数据模型可以对二类调查各因子之间的关系进行分析。例如, 在森林资源分类经营中, 分析生态公益林按起源、事权、保护等级等因素的分布情况, 就可以通过多维数据查询语句MDX的设计(Pedersen et al., 2001), 以多维表(图 10)的形式将结果显示出来。
通过对森林资源二类调查数据的管理、利用方面存在问题的分析, 将多维数据模型引用森林资源管理, 建立了森林资源二类调查多维数据模型。基于多维数据模型实现了对森林资源二类调查数据的高效、灵活、便捷访问, 同时解决了以下应用问题: 1)实现了对资源数据不同层次、级别数据的统计汇总, 以及聚合、上卷/下钻、嵌套、旋转等操作, 可以满足用户任何可能的数据查询请求, 在最大限度挖掘数据信息的同时, 保证使用的简单性; 2)通过多维属性数据和空间数据结合, 通过维度的层次结构可以生成不同层次粒度的林业专题图; 3)实现了多层次、多角度组合进行数据分析的功能。
对数据进行合理有效的组织, 有利于提高森林资源管理信息系统的效率和解决问题的能力, 但目前多维数据的应用还只是停留在联机分析的较浅层次, 而更深层次的分析要通过数据挖掘来实现, 因此, 研究针对林业特定应用的数据挖掘方法是下一步的重点, 而目前对多维数据模型的探索为今后的森林资源数据挖掘研究创造了有利条件, 具有十分重要的意义。
李琪, 白英彩. 2002. 数据仓库中维的建模和查询. 计算机研究与发展, (5): 612-614. |
刘义, 李亮. 2000. 基于关系数据库构造多维数据模型. 计算机工程, 26(9): 21-23. DOI:10.3969/j.issn.1000-3428.2000.09.009 |
邵勇. 2003. SQL Server 200数据仓库与Analysis Services. 北京: 中国电力出版社.
|
谭明金. 2003. 数据仓库工具箱:维度建模的完全指南. 北京: 电子工业出版社.
|
谢民主, 王加阳, 蒋外文. 2004. 数据仓库的多维数据模型的研究. 计算机工程与应用, 40(25): 182-185. DOI:10.3321/j.issn:1002-8331.2004.25.057 |
杨倩, 邵伟民, 徐启健. 2004. OLAP中一种多维数据模型. 计算机工程, 30(1): 192-194. |
Codd E F, Codd S B, Salley C T.l993. Providing OLAP (online analytical processing) to user-analysis: An mandate
|
Li Chang, Wang X S.1996.A data model for supporting on-line analytical processing.Proc Conf on Information and Knowledge Management, Baltimore, MD: 81-88
|
Pedersen T B, Jensen C S, Dyreson C E. 2001. A foundation for capturing and querying complex multidimensional data. Information Systems, 26: 383-023. DOI:10.1016/S0306-4379(01)00023-0 |