数据采集模型(精选12篇)
数据采集模型 篇1
在一个应用系统中, 需要持久保存的数据应该采用数据库来存储和管理。
在为系统建立数据库之前, 首先要对数据库进行总体设计, 设计过程产生的结果就是数据模型。
数据模型主要包含数据表以及数据表之间的关系。用面向对象方法建立数据模型, 依据是类模型。从类模型建立数据模型, 主要工作是:依次将类映射到数据表、将类属性映射到数据表的列、将类之间的关联映射到关系数据库, 最后将得到的数据表、表之间的关系画在一张图上, 数据模型便大功告成。
1 设计方法
数据模型从层次上可以分为3类:概念数据模型、逻辑数据模型和物理数据模型。
概念数据模型是面向用户、面向现实世界的数据模型, 与数据库管理系统 (DBMS) 无关;逻辑数据模型反映了DBMS的存储结构, 是用户从数据库看到的数据模型;物理数据模型是特定的DBMS, 它定义实际中的数据如何存储在持久存储设备 (例如磁盘) 上。
项目实例要设计的数据模型是逻辑数据模型。本讲座后面提到的数据模型, 除特别说明外, 均指逻辑数据模型。
用传统方法设计数据模型, 依据是ER图。用面向对象方法设计数据模型, 除依据UML类图外, 其他与用传统方法设计数据模型差别不大。
1.1 UML中的实体与E-R图中的实体
目前, 传统的数据库设计是采用实体-关系E-R (EntutyRelationship) 图。E-R图中的实体表示系统中持久的元素。UML中的实体除表示系统中持久的元素外, 还具有行为特性———操作。因此, 可以认为, UML中的实体是E-R图中的实体所提供的内容的超集。
1.2 UML类图与E-R图
由上述1可知, UML类模型的描述功能更强, 它在本质上是扩展的实体-关系 (E-R) 模型。
1.3 建模依据
由上述1.2可知, 将UML类图转换为数据模型是很方便的, 可以用类图为数据库中持久存在的数据结构建立模型。
1.4 选择数据库系统
持久性数据库层可以是关系型的数据库, 也可以是对象关系型的数据库或者对象数据库。从关系型数据库技术到对象数据库技术是一个演化过程, 对象关系数据库技术是这个演化过程的中间阶段。尽管未来将属于对象数据库, 但关系型数据库在目前的数据库软件市场中仍占主流。因此, 仍为项目实例选择关系型数据库作为持久性数据库层的数据库管理系统。
对于关系数据库来说, 可以用类图描述数据库模式 (Database Schema) , 用类描述数据表, 用类的操作描述触发器和存储过程。将UML类图用于数据库建模可以看作是类图具体应用的一个例子。
2 关系数据库术语
前面选择关系型数据库为项目实例建立数据模型。在建模过程中要涉及关系数据库的几个术语, 本节对这几个术语进行介绍。
2.1 主键和外键
主键和外键涉及关系表。关系表是由它的固定列集定义的, 列具有系统内建的或用户定义的数据类型。表可以有任意多行, 但没有重复的行。特定行的值可以是NULL, NULL意味着“值目前不知道”或“值不明确”, NULL值不等同于零或空格。
由于关系数据模型要求“没有重复的行”, 所以每个表都有一个主键 (Primary Key) 。键是列值可以用来唯一地标识表中一行的列的最小集合 (也可能只有一列) 。一个表可以有多个这样的键, 可以任意选择其中一个作为用户最重要的主键, 其他的键则称为备用键 (Alternate Keys) 。
2.2 参照完整性
在关系数据库中, 表之间的关系不是固定的行到行的连接, 而是当用户请求系统发现关系时, 才去发现行到行的连接。这种发现是通过比较一个表的主键值与另一个表的外键值来实现的。外键 (Foreign Key) 被定义为表中列的集合, 其值或者为NULL, 或者匹配同一个表或另一个表中的主键值。主、外键的一致性被称作参照完整性。参照完整性中的主键和外键必须是同一种数据类型, 但可以有不同的名字。
2.3 范式
在关系数据库中, 表与表之间的关系要满足一定的条件, 不同的范式 (Normal Forms) 指的是满足不同级别条件的关系。范式被分为6种:
(1) 第一范式
(2) 第二范式
(3) 第三范式
(4) BC范式 (Boyce-Codd范式)
(5) 第四范式
(6) 第五范式
第一范式是满足最基本条件的关系, 而这个最基本条件是指表的每个列都是不可再分的数据项。对于第一范式, 如果它又继续满足一定的条件, 就称它属于第二范式。以此类推, 可以得到其他规范程度更高的形式。高一级的范式是低一级的范式的子集, 低一级的范式则包含了高一级的范式。
3 类之间多重性向关系数据库转换的规则
数据模型是通过将关联映射到关系数据库来建立的。
在将关联映射到关系数据库之前, 首先介绍一下由关联的多重性向关系数据库转换的一些规则。
类之间的多重性可以分为:一对一、一对多和多对多3种情况。对3种多重性的处理已经有一些一般的转换规则, 如表1所示。
4 设计数据模型
如前所述, 数据模型是通过将关联映射到关系数据库来建立的。现在按照前几节介绍的方法或原则, 再依据第二讲设计的结果, 为系统设计数据模型。
4.1 将类映射为关系数据表
将类映射为关系数据表, 必须遵循表的第一范式, 列必须是不可再分的数据项。
从类到表的映射可以是一对一, 即一个类映射为一个表。但是, 一对一映射可能会导致一些问题, 如表太多、连接太多、表丢失以及对泛化关系处理不合理等, 在设计中要灵活调整。
第二讲1节2小节为本项目实例已经定义了3个类。这里将3个类分别映射为一个关系数据表。表的名称以T_打头, 其后紧跟相应的类的名称, 如表2所示。
4.2 将类的属性映射为表的列
第二讲4节已经为3个类分别定义了属性, 现在将类的属性映射为表的列。
4.2.1 项目信息表T_Project
项目信息表T_Project用于保存项目的信息。T_Project除了包含由Project类属性映射的列:项目大类、项目小类、项目经费、已报销金额、报销部门和报销人, 还要插入一个主键项目号。此外, 公司财务室还要求每个项目应有一个备注, 用于保存项目的文字描述信息。这样, 表T_Project包含的列如表3所示。
4.2.2 票据信息表T_Invoice
票据信息表T_Invoice用于保存票据的信息。
在表T_Invoice中, 由Invoice类属性映射的列有:供应商、报销内容、报销金额、报销时间、报销人、付款方式、是否附合同、是否附通知、凭证号和票据张数。其中“报销内容”公司财务室要求有大类、小类之分, 因此将列“报销内容”拆分为“报销内容大类”和“报销内容小类”两列。为了区分票据的不同状态, 还要增加一列“状态”。其次, 插入一个主键票据号。最后, 考虑到表T_Project与T_Invoice的关系, 再插入一个外键“项目号”以与表T_Project中的主键“项目号”匹配。这样, 表T_Invoice包含的列如表4所示。
4.2.3 用户信息表T_User
用户信息表T_User用于保存用户的注册信息。
表T_User包含由User类属性映射的列:账户、姓名、权限、部门和密码。其中账户对每一用户都是唯一的, 可以作为主键。这样, 表T_User包含的列如表5所示。
4.3 将关联映射到关系数据库
从第二讲2、3节知道, 3个类中包含两种类与类之间的关系。这两种关系都是关联关系。下面分别分析这两种关系向关系数据库的转换。
(1) Project与Invoice之间关系的转换
Project类与Invoice类之间存在着一到0或多的双向关联。在表T_Project和T_Invoice中, 可以通过表T_Invoice中外键“f7” (项目号) 匹配表T_Project中的主键“f0” (项目号) 来模拟类Project与Invoice之间的关系。
(2) Project与User之间关系的转换
Project类与User类之间存在着0或多到一或多的双向关联。
从表1看到, 对于类之间多对多关系向关系数据库转换, 是通过创建另外一个交叉表来解决的。这里采取一种变通的办法来处理:不增加交叉表, 而在表T_Project中的列“f5” (报销人) 中保存多个报销人的账户, 每个账户用空格‘’隔开。这样处理后, 虽然为编码增加了一点负担, 但是减少了存储空间。
⒋4数据模型
归纳以上设计结果, 可以得到系统的数据模型如图1所示。
5 结语
在传统方法中创建数据模型的依据是实体-关系 (E-R) 模型。在面向对象方法中, 创建数据模型的依据是类模型。类模型在本质上是扩展的实体-关系 (E-R) 模型。
将类模型映射到数据模型时, 要处理两种映射:由类映射到表 (包括由类属性映射到表的列) , 将关联映射到关系数据库。
为项目实例建立的数据模型表很简单, 只包含3个数据表。
回顾前面的工作, 会有两点缺憾:
(1) 在处理类Project与User之间多对多关系的转换时, 没有创建另外一个交叉表, 而是采取了一种变通的办法来处理, 即:在表T_Project中的列“f5” (报销人) 中保存多个报销人的账户, 每个账户用空格“”隔开。这样的处理虽然减少了存储空间, 但是违背了第一范式:表的每个列都是不可再分的数据项。
(2) 公司的部门被作为用户表T_User的一个列将导致公司的部门如果有变动, 系统维护会涉及修改程序代码。合理的做法是:在建立类模型时, 将部门识别为一个类, 进而在本讲将这个类映射为一个数据表, 这样, 公司的部门如果有变动, 系统维护只涉及修改数据。
参考文献
[1]范晓平.ASP.NET2.0项目开发第一步UML+VB+C#+Crystal Reports.清华大学出版社, 2008.
[2]冀振燕.UML系统分析设计与应用案例.人民邮电出版社, 2003.
数据采集模型 篇2
通常学校图书馆的图书藏书量比较大,管理工作繁琐,手工进行管理往往费时费力,而且无法达到很好的效果。因此图书管理系统应用十分广泛,具有重要意义。如果使用关系数据模型设计一个图书管理系统数据库来管理图书,可以达到快捷,高效,准确的效果。图书管理系统数据库的主要功能是处理书籍信息,包括书籍的类别、出版社信息、书籍的作者、借出信息、图书的查询、相关借出书籍的学生信息等等功能。
在图书管理系统中典型的查询操作包括查看某种类型的图书、浏览指定出版社出版的图书、检索指定作者的图书等,典型的更新操作包括登记新书信息、作者信息等。作为一个在存储几百万图书和大学图书馆,如果没有管理图书的信息系统,那么借阅一本书的时间可能需要一个星期。这种管理大量图书的管理系统的技术基础是使用关系数据库技术。
图书管理系统的任务是用计算机管理和维护书籍信息,提供各种查询功能。
l 实现图书馆图书自动化管理。减轻工作人员和借书人员等工作量。
l 采用窗体程序设计方法,便于系统功能的各种组合和修改,又便于补充和维护。
l 具备数据库查询和报表打印功能,及时根据需求进行数据的检索、打印各种基础报表等操作。
如图所示是本书示例数据库图书管理系统数据库的E-R图。在该图中显示了图书管理中所要使用实体集、实体属性和实体之间的关联等重要信息。
图书管理系统E-R图
建立图书管理系统数据库主要任务是用计算机对图书馆的图书进行管理。依据系统的总体要求及系统概述,图书管理系统需要完成的主要功能有:
l 采购新书时,将新入库的图书登记入数据库。
l 图书借出时,记录相关信息。
l 浏览库存图书信息,提供各种方式的查询。
l 提供指定需求报表的打印,例如,打印出所有已借图书信息。
l 在借书和还书之间进行关联,删除预定需求,并在图书明细信息上做记录。
大数据安全防御模型构建研究 篇3
大数据是指携带巨量信息的高增长率和多样化的信息资产,正处蓬勃发展阶段,怎样保证其安全可靠是一个亟待解决的问题。病毒探测、主动防御等传统安全防护体系,无法适用大数据的可靠性管理[1]。大数据安全防御的重点是构建可行的防御模型。本文基于大数据可靠性需求,提出一种动态安全算法,构建了大数据安全防御模型。
大数据安全防御模型的构建
安全架构层次设计。本文将大数据安全架构划分为以下4个层次:
数据拆分层,主要按照数据拆分策略对大数据进行分布式管理,通过聚类算法对所获取的数据集进行分类和预处理。
数据分析层,主要分析预处理之后的大数据,分析目标包括可疑病毒、非法任务等。发现的风险因素会被立即隔离。
数据包装层,主要实现大数据的有效封装。封装时要充分考虑信息的加密需求,确保封装后数据的隐私性、准确性和安全性。
客户应用层,主要是大数据的使用者和分析报告的上传者。
安全防御体系的定义。本文以粒子群算法为基础,构建大数据安全防御体系。
首先为计算出大数据的信任度,提出以下4个定义:
定义1:如果信任度的起始与个体最好值 相等,则进行迭代操作的时候不再改变;假若信任度的起始值比上一值更优,则根据粒子群算法的规则,以起始值替换上一值: 。
定义2:为提升寻优效果,引入进化度θ: ,当经过多次迭代且θ=1时,表示寻优能力已经符合要求。
定义3:粒子群所有成员的个数以 表示,因此可以把动态因子的耦合度以 表示,耦合度的大小与数据的分散程度有关,当耦合度接近于1的时候,证明局部最优解已经形成。
定义4:结合以上3个定义,能够将动态信任因子表示为:
基于上述研究成果,为描述大数据安全防御行为,提出以下5个定义:
定义5:假若大数据可靠度处在信任因子范围内,则可以视为大数据是强安全的,表示为:
定义6:假若大数据可靠度处在信任因子范围内,但对于其他的访问者处在“开放访问”状态,则被视为弱安全,表示为:
定义7:在合法性方面,假若大数据处在最高合法水平,并且对于其他的访问者处在“不可访问”状态,则大数据被视为强合法状态。表示为:
定义8:假若大数据处在最高合法水平,并且对于其他的访问者处在“验证访问”状态,则大数据被视为弱合法状态。表示为:
定义9:假若大数据处在“开放访问”状态,则大数据被视为不合法状态。表示为:
最后,客户的操作请求与大数据可靠度间的关系表示为:
安全防御体系证据分析。为保证大数据的“强安全”与“合法状态”,假设大数据服务信息系统共拥有m台服务器,在m台服务器中,提取n台作为构建安全防御体系的数据样本。进一步假设,从n台服务器所获取的样本数据α∈泊松分布,则这些样本在服务器输入端以排队的方式等候处理和传输,等候时间为1/α[2]。如果一段数据信息的等候时间超时,则可视为信息已被丢弃。此时会生成一个反馈信息,通知信息的发送者重发信息。结合马尔科夫定律,在这种数据传输环境中,可靠度不足的信息识别是符合遍历准则的[3]。
安全防御模型实现流程。综上所述,完整的大数据可靠性防御模型实现流程为:
安全防御的初始化过程,新任务加入等待队列。如果轮到该任务进行处理,便将其信息从数据存储区提取出来,按照数据预处理策略进行分布式管理和数据集分类。
当判定数据为有效信息之后,将任务提交数据拆分层进行信息拆分处理。在信息拆分之前,系统预置了信息判定单元,这个单元的功能是对所有的信息处理过程引入来自云端的可靠性监控。
如果信息中所含有的任务之和能够进行分解,使之成为n个子任务,则分割函数可以表示为:
将拆分形成的子任务提交数据分析层进行分析处理。如果子任务信息已经在任务数据库中存在,则判断为重复任务,将其删除以保证数据库的低冗余。
分析处理完毕的子任务,提交到数据包装层。依据其独有的索引代码,形成哈希表,将其重新连接为一个整体的任务单元,并进行加密封装,之后传输至客户应用层。
判断是否存在下一个需要处理的任务;如果存在,则转至第一步。
本文提出的大数据安全防御模型,基于动态安全算法,能够克服传统网络安全管理体系不足,在信息安全受到威胁之前定位和清除隐患。该模型成功实现了基于云计算环境下的大数据安全隐私保护,符合大数据可靠性管理要求,具有较高推广价值。大数据时代,现有的数据隐私保护技术还不够完善,需要从科研和技术层面加大对云平台的大数据安全隐私保护的研究。
可靠实时数据采集模型设计与开发 篇4
生产数据是各类电力信息系统的应用基础,从厂级监控信息系统(Supervisor Information System,SIS)到集团/ 区域(省级)公司级实时监管系统,实时数据采集始终是实时系统不可或缺的部分[1,2]。在以往的数据采集软件开发中,功能模块重复开发较为严重,开发效率不高,软件质量管控工作量大;在工程应用中,数据采集软件测点配置多采用本地方式,无法进行统一管理,不便于配置、查询,不支持冗余配置,故障恢复能力不足。本文以实时监管系统中的数据采集为基础,结合实时数据采集的特性,针对数据抽取、转换、传输、数据缓存及冗余传输等相关环节进行分析,给出了较为通用的设计模型。
1 数据采集软件的功能需求
在集团/ 区域(省级)公司实时监管系统中,绝大多数的基础数据来自于下辖电厂实时生产系统。实时监管系统中的数据监测、数据报警、性能指标计算,污染物排放定量分析及经济运行等相关功能都围绕一次生产数据展开[1,2,3]。数据采集软件需要完成对监管电厂海量实时生产数据的筛选,完成筛选后数据的网络传输,最终汇总到公司侧的数据库,实现生产数据的持久化。
实时监管系统中,因监管电厂数量众多,各个电厂信息化程度差异大,接入的数据源差异很大。对于已有厂级监控信息系统(Supervisory Information System,SIS)、管理信息系统(Management Information System,MIS)的电厂,数据源主要包括实时数据库和关系数据库。实时数据库应用较为广泛的包括PI、e DNA、open Plant、Rython[4]等;关系数据库主要包括MS Sqlserver、Oracle等。 部分厂站侧没有集成后的信息系统,需要从生产系统中直接采集,通信协议包括用于过程控制的OLE(OLE for Process Control,OPC)协议,IEC101、IEC104、CDT、Mod Bus等规约,少数系统需要采用自定义用户数据报协议(User Datagram Protocol,UDP)。基于这种现状,数据采集软件必须要解决多种数据源的数据抽取。
实时监管系统在构建中需要兼顾数据完整性和数据规模2 方面,既要保证采集数据能满足性能计算、分析的需要,又要避免采集数据规模过大,给主站侧系统带来不必要的压力。数据在采集中还需要完成筛选,及源测点和目标测点的映射;在传输中完成实时数据及时戳转换,同时要为工程实施提供易用的测点检索、维护功能等。
在大多数实时监管系统中,从电厂的数据源到主站侧服务器,地域跨度较大,中间网络状况较为复杂。这种情况要求在出现网络异常时,软件能及时缓存数据,待通信恢复后,按照数据回补策略重新发送,保证实时数据的完整性。因此,数据采集软件必须能保证数据的可靠、高效传输,要能满足实时系统的相关功能指标要求。
综上所述,实时数据采集软件必须涵盖的功能包括:支持多种类型数据源的采集;支持数据抽取筛选,自动完成测点的映射,支持测点和数据的标准化转换;完成实时数据的可靠、高效传输,具备一定的故障恢复能力,支持数据缓存,支持通信的冗余配置。
2 数据采集模型的设计
2.1 总体架构
数据采集模型采用C/S模式,基于TCP/IP协议开发[5]。按照模块功能划分,模型架构如图1 所示。
2.1.1 服务器端的主要功能
1)测点管理。基本测点属性见表1 所列。通过测点的基本属性配置,完成了源测点与目标测点的映射,为客户端进行数据抽取、数据校验、转换提供了所需的配置信息。为了便于管理、查询,测点属性通常保存在服务器侧实时数据库或本地配置文件中,客户端仅保留一份配置副本,不需进行手动修改。当测点配置更改时,服务器会主动推送信息到客户端或由客户端在下一次连接时发起请求,主动获取更新本地副本。
2)客户端管理。客户端管理包括客户端配置管理和状态管理,配置管理包括对每个客户端的基本信息配置,对互为冗余的客户端进行成组配置;状态管理主要检测当前客户端绑定的socket信息,完成当前数据链路的流量统计,完成客户端工作状态判定,通过对网络通信状态及工作超时检测,实现对冗余客户端的自动管理。在数据采集预处理时,服务器端通过测点配置项中的标识字符串或客户端标识,自动完成测点与客户端的逻辑关联,生成每个客户端的工作点集。
3)网络通信管理。完成指定端口侦听,处理网络连接请求,完成数据接收、数据拼包,实现对基本数据指令的解析处理、处理网络异常检测等。
4)数据存储管理。完成实时数据解析、处理,完成目标数据库配置、目标数据库自动连接,实现实时、历史数据入库速率控制等。
5)数据缓存管理。在数据存储异常时自动完成数据缓存,同时通过缓存读取管理实现对历史数据回补的限速处理。
2.1.2 客户端的主要功能
1)数据源管理:完成数据源基本配置,实现数据源自动连接等。
2)数据采集管理:维护采集测点副本,完成配置项验证,实现数据测点映射,实现数据及时戳转换等。
3)网络通信管理:完成配置信息接收,实现传输数据组包,维持通信链路,处理网络异常等。
4)数据缓存管理:处理在网络通信异常时的数据缓存以及实时数据流量控制等。
以较为典型的数据抽取流程为例,数据处理流程如图2 所示。
2.2 数据采集
2.2.1 配置预处理
配置预处理是数据采集的基础,客户端在获取到配置信息后,要完成2 部分的预处理。
1)核对下发测点配置信息,主要包括测点名称和测点类型验证。通过测点名称验证,剔除数据源中不存在的点;完成测点数据类型验证,避免由于服务器端与数据源测点类型不一致导致的类型转换异常,特别是Float、Double等高精度类型被错误配置为Byte、Short等存储字节较小的类型时,类型验证尤为重要。
2)重构源测点与目标测点映射表。在测点信息配置时,数据索引常采用字符串类型(如测点名称)的属性作为键值,在进行数据检索、处理时,效率较低,在测点数量较大时,对性能影响明显。在预处理时,选择整型(如测点ID)等基本属性进行映射表重构,可以显著提供检索效率,缩小数据包长度,提高传输效率。
2.2.2 数据转换
从源数据库读取实时数据后,通常需要根据测点配置完成3 类转换:数值二次计算、一对多标签转换及数据时戳处理。
1)数值的二次计算主要是为了解决源数据采用非标准工业单位、数据基准值需要补偿等问题,基本数据转换见表2 所列。
2)数值的一对多转换是为了处理单一源测点对应多个目标测点的情况,通过转换,保证了数据采集的完整性。
3)数据时戳直接影响到数据过滤、压缩和存储。时戳转换主要包括:对时戳大幅超前的数据进行修正,大多数实时数据库对此类数据均采用抛弃策略,如果数据源无法修正,则会导致数据丢失;针对时区进行处理,部分控制系统采用格林尼治时间,在采集时需要根据时区进行调整,少量数据源所在地与服务器所在地跨时区,需要对时间进行修正;增加时戳,少数数据源提供的数据不携带时戳,需要增加。
2.2.3 数据过滤和压缩
实时监管系统中涉及的网络传输往往需要跨网段,由于多种网络设备的引入,导致数据链路质量无法优化;同时,大多数情况下,数据链路被多种业务共享,实时监管系统的数据采集是持续、稳定的网络业务。因此,必须在保证数据传输效率的基础上,尽可能降低网络带宽占用,减少对其他业务的影响。
为提高网络传输效率,客户端采集数据在传输前,对数据采取了过滤和压缩策略。数据过滤是指基于数据值和时戳对实时数据进行过滤,采用“变则发,不变不发”的原则;数据压缩是指采用Deflate、GZip等无损压缩算法对过滤后的数据进行二次处理。通过过滤和压缩,显著节约了网络带宽,降低或减少了实时数据采集对其他业务的影响。
2.3 数据传输
数据采集模型的核心功能是数据传输,为提高数据传输效率,保证数据可靠性,从以下几方面进行处理。
2.3.1 网络链路采用长连接
在实时监管系统中,数据源与目标服务器大多跨网段,传输距离较远。为了提高传输效率,数据传输采用长连接模式。当发送数据量较少时,采用周期性发送心跳包的方式维持链路,减少由于路由器、防火墙等网络设备的超时策略导致数据连接频繁中断。客户端在数据传输中的状态转换如图3 所示。
客户端为保证数据通信的可靠性,重点处理网络连接超时、数据发送超时、数据应答超时等异常情况。当链路状态转入网络重连后,立即启用数据缓存,保证发送数据被及时保存;对于发送超时、应答超时发送时,主动关闭现有连接,切换到网络重连状态。
2.3.2 使用变长数据包
根据数据包头信息,易于完成数据完整性校验,实现数据拼包、分包及解析。数据包格式如图4所示。
2.3.3 传输模块内嵌数据缓存
根据数据实时采集的特性,在传输模块中内嵌数据缓存。数据缓存分为为内存队列和缓存文件两级。短时间的网络故障,数据被缓存到队列中,系统处理无I/O操作开销,效率较高;如果故障时间较长,为保证可靠性,自动将数据转存到本地文件。数据缓存结构如图5 所示。
当数据获取线程从数据源抽取数据后,在异步发送数据中,如果发送速率低于数据获取速率,导致实时数据队列超长,数据自动转入缓存队列;如果网络异常或其他原因导致发送失败,则数据从发送队列转存至本地缓存。当异常时间过长,数据队列超过上限,则被持久化到本地文件。本地文件以保存到文件中的首笔数据时戳命名,当文件大小超过配置设定上限时,自动切换,生成新的文件。
在实时系统中,实时数据优先级最高,在网络链路恢复后,优先发送实时数据,对于历史数据采取限速发送的策略。
2.3.4 通信链路冗余配置
为了提高数据传输的可靠性,在采集模型设计中,采用2 路并行通信的冗余策略。2 个客户端部署在独立的接口机上,从同一数据源采集数据,共同组成一个冗余数据组,当某一个客户端出现硬件故障或网络异常时,自动切换到冗余客户端。
服务器侧对客户端的管理采用客户端Session和Socket动态绑定的方法,每路客户端首先创建客户端Session,在客户端连接成功后,通过客户端标识将Session与底层的Socket ID映射绑定。通过对Session类的操作,完成冗余状态判定、工作状态判定、数据流量统计及链路超时判定等。客户端Session基本信息见表3 所列。
其中,链路状态分为中断和工作2 种,为区分冗余组中2 个客户端的状态,发送数据的客户端(主客户端)标识为工作,发送心跳数据的客户端(从客户端)标识为连接。
冗余客户端时序如图6 所示。
冗余组中的客户端,在连接服务器成功后,首先向服务器发送冗余组标识,该标识为每个冗余组的唯一标识。服务器根据冗余组标识动态管理多路客户端,同时根据客户端接入的先后顺序来动态确定主从:先连接的客户端为主,后连接的为从。被判定为主的客户端,接收状态信息后,循环向服务器发送实时数据,判定为从的客户端连接成功后仅发送心跳包以维持链路。
服务器端启用专门的检测线程管理客户端。当主客户端连接超时(即未发送数据的时间间隔超过了设定时限)或异常中断时,如果从客户端处于连接在线状态,则服务器向从客户端推送冗余切换指令,实现主从客户端的切换。
2.4 数据存储
1)数据分包。服务器侧接收到数据后,通信功能模块完成数据包头解析。在完成数据校验后,根据包头定义的数据长度,判定当前接收数据是否完整。数据包根据长度不同,分为3 种情况:接收的数据包完整,包长度和数据定义长度一致;接收数据包长度小于定义长度;接收数据包长度大于定义长度。针对后2 种情况,使用数据缓存暂存数据,后续接收到数据后完成数据分包。在获取到完整的数据包后,将数据包转至线程池进行解析。通过将数据通信与数据解析异步化,保证了服务器的处理效率和并发能力。
2)数据解析与存储速率控制。对于接收到的完整数据包,按照通信协议,依次进行数据解压、数据解密及数据存储。在实时传输系统中,优先保证实时数据存储,历史数据被首先写入本地缓存,根据配置调整写入线程速率,实现了数据入库时的速率控制。
2.5 异常处理及日志系统
数据采集传输涉及多个环节,异常情况多样。在每个功能模块,都需要处理异常并给出较为详细的日志信息。通过完备的日志系统,帮助工程人员对数据传输中的各个环节进行检查,方便准备定位异常,及时处理。
在日志系统处理时,将信息划分为信息、警告及调试3 个等级,每个等级输出的信息量逐次增加,既保证了调试模式输出信息完整,又保证在正常运行时,日志模块不会影响正常的数据处理。
3 数据采集模型开发涉及的主要技术
3.1 插件技术
从不同的数据源抽取数据的方式差异很大,无法在开发时处理完所有的数据接口。针对这种情况,采用组件式插件[6]解决。针对不同数据源,根据已定义的数据访问接口,开发实时数据抽取插件,通过简单配置完成不同数据源的切换。在使用C# 进行开发时,通过反射方式加载数据抽取DLL[7],实现了多种数据源的统一。
3.2 异步网络通信
数据传输模块基于.Net中Socket Async Event Args类[8,9]封装,Socket Async Event Args类为高性能网络服务器应用程序设计,基于高性能异步Socket实现[9],Socket Async Event Args从设计上避免了在异步套接字I/O量非常大时,需要重复进行对象分配和数据同步,避免频繁进行垃圾回收,降低了系统开销。
借鉴内存池的处理思想,对高频使用的数据缓冲区(Buffer)管控进行优化。在网络通信模块初始化时完成Buffer数组创建,按照最大连接数乘以单个最大Buffer大小初始化,在使用中以客户端ID为索引完成快速检索,同时将发送Buffer和接收Buffer分离,保证了数据处理的效率。
3.3 多线程
服务器端接收、处理数据,客户端采集、发送数据等功能均基于多线程实现。根据线程的生命周期长短和工作频率,把线程分为长、短两大类。长期工作线程的生命周期和应用程序几乎等长,此类线程使用单独线程来处理。对于短线程,如完成数据解析的线程,执行需要时间短,不需要指定线程优先级,不需要对线程进行睡眠、挂起等操作,适合采用线程池来实现。.Net中Thread Pool类[7]针对大量运行线程设计,通过有限的固定线程能为大量并发操作服务,通过使用线程池减少了创建、销毁线程所需的系统开销,提高了系统的整体效率。
为了保证数据安全,在处理数据时,通过锁、信号量等机制进行数据同步[7,10]。在多个功能模块之间进行交互时,使用线程安全队列,实现读、写线程处理异步化,降低了系统各个功能模块间的耦合度,兼顾了处理效率和数据安全。
4 结语
本文以实时监管系统中的实时数据采集为研究基础,对可靠数据采集中涉及的主要问题进行了讨论,该数据采集模型中的主要功能模块易于复用。基于该模型开发的实时数据采集软件具有配置查询简单、数据转换方便、网络传输可靠等特点,已在多个工程中得到应用。
参考文献
[1]徐创学,刘鲁清,王智微,等.区域(省级)发电公司生产实时监管系统的研发[J].热力发电,2012,41(3):7-11.XU Chuang-xue,LIU Lu-qing,WANG Zhi-wei,et al.Development of real time supervisory system for regional(provincial level)power generation company[J].Thermal Power Generation,2012,41(3):7-11.
[2]黄志勇,赖菲,王智微,等.粤电集团生产实时监测系统[J].热力发电,2012,41(7):105-107.HUANG Zhi-yong,LAI Fei,WANG Zhi-wei,et al.Realtime monitoring system manufactured from YUEDIAN group[J].Thermal Power Generation,2012,41(7):105-107.
[3]范奇,王文庆,刘超飞,等.火电机组在线性能计算与性能实验对比分析[J].热力发电,2013,42(8):86-89.FAN Qi,WANG Wen-qing,LIU Chao-fei,et al.Relative analysis of online calculation and performance test for a thermal power unit[J].Thermal Power Generation,2013,42(8):86-89.
[4]葛新,杨东,王毅,等.面向电力企业的实时/历史数据库系统研究与开发[J].热力发电,2010,39(4):91-94.GE Xin,YANG Dong,WANG Yi,et al.Study and development of real time/historic database system oriented to power industry[J].Thermal Power Generation,2010,39(4):91-94.
[5]琼斯.Windows网络编程[M].杨合庆,译.2版.北京:清华大学出版社,2002.
[6]孙玉钰.基于.Net组件技术的插件式框架的研究[J].计算机应用与软件,2009,26(6):143-145.SUN Yu-yu.On Plug in framework based on.Net component technology[J].Computer Applications and Software,2009,26(6):143-145.
[7]内格尔.Csharp高级编程[M].李铭,译.6版.北京:清华大学出版社,2010.
[8]KIRK S.C#SocketAsyncEventArgs high performance socket code[EB/OL].[2010-12-14].http://www.codeproject.com/Articles/83102/C-SofketAsyncEventArgs-High-PerformanceSocket-Cod.
[9]Microsoft.SocketAsyncEventArgs Class[EB/OL].[2011-06-02].https://msdn.microsoft.com/en-us/library/system.net.sockets.socketasynceventargs(v=vs.100).aspx.
地籍管理中时空数据模型研究 篇5
地籍管理中时空数据模型研究
地籍信息系统是一种典型的`时态地理信息系统,其技术关键就是在于用适当的时空数据模型来组织地籍数据库.本文简要介绍了几种主流的时空数据模型,重点从建模方法、时空数据组织和时空数据操作三个方面阐述了地籍管理领域时空数据模型的研究进展,探讨了存在的问题,提出了未来发展方向的建议.
作 者:樊雅婷 杨建宇 朱德海 FAN Ya-ting YANG Jian-yu ZHU De-hai 作者单位:中国农业大学信息与电气工程学院,北京,100083刊 名:测绘科学 ISTIC PKU英文刊名:SCIENCE OF SURVEYING AND MAPPING年,卷(期):34(5)分类号:P273关键词:地籍信息系统 时态地理信息系统 时空数据模型 空间数据库
数据采集模型 篇6
关键词:土地调查历史数据;时空数据模型;面向对象;土地时空信息
中图分类号: S127文献标志码: A文章编号:1002-1302(2014)09-0387-04
收稿日期:2013-11-28
基金项目:国家科技支撑计划(编号:2012BAJ23B04)。
作者简介:胡彦波(1987—),男,河南濮阳人,硕士研究生,主要从事时态数据模型方面研究。
通信作者:朱华吉,山东潍坊人,博士,副研究员,主要从事时态GIS理论方面研究。E-mail:zhuhuaji@126.com。自全国土地第1次调查以来,我国进行了全面的土地调查工作。到目前為止,共获得了第1次全国土地调查、过渡期、第2次全国土地调查3个时期的土地调查资料,得到了海量的土地调查历史数据,特别是农村土地调查数据。如何有效地管理这些数据,需找到一种合适的时空数据模型,关键问题是时空数据模型的构建方法。一种合理时空数据模型要能有效地组织、管理和完善时态地理数据的空间、属性和时间语义,提高时空数据的输入、检索、查询和更新及操作效率,以便重建历史状态、跟踪变化、预测未来[1]。
农村土地调查数据具有显著的时态特征,信息变更频繁、复杂,但相对缓慢。包含有明显的土地对象,即地类图斑、线状地物和零星地物。本研究结合面向对象的思想,在基态修正模型的基础上,提出了一种适合农村土地调查数据面向对象的建模方法,对农村土地调查数据进行组织管理,自然、充分地表示了农村土地的的真实面貌。
1时空数据建模理论
时空数据建模是针对如何合理有效地表达、记录和管理现实世界时空变化实体及其关系与行为的研究,是建立时态地理信息系统的重要基础。而时态地理信息系统是面向时空数据进行组织、管理和分析,任何信息系统的表达能力在很大程度上取决于底层数据模型的设计。因此,一个合理的数据模型必须考虑:节省存储空间、加快存取速度、表现时空语义[2]。
1.1时空建模层次
数据模型设计目的是将客观事物抽象成计算机可以表示的形式。通过对地理实体从现实世界到计算机内部表示的不断抽象,GIS数据模型由概念模型、逻辑模型、物理模型3个有机联系的层次组成[3]。对现实世界的抽象和概括综合,逻辑模型通过一系列表格和数据记录实现概念模型与用计算机语言描述实体之间的转换,而物理模型则涉及存储设备、文件格式、访问方法、数据位置等,从物理上来实现这些描述的方法(图1)。
1.2地理实体建模成分分析
地理空间是由具有各种关系的地理实体组成的,地理实体不断发生着各种变化,具有空间特征、时间特征、属性特征。时空数据模型就应该是对地理实体的空间特征、时间特征、属性特征及其关系的完整描述。分析地理实体的3种成分的基本语义,以便形成正确、语义丰富的数据模型。(1)空间特征。地理实体存在于地理空间中,其位置、形状、大小等由空间特征表达,是GIS系统描述的主要内容。(2)时间特征。通过对时间描述来表达地理实体随时间变化的特性。(3)属性特征。表达了地理实体具体的领域语义,如果没有属性特征,则地理实体在GIS中的表达是没有意义的几何图形,无法描述地理空间中纷繁复杂的地理现象。
2面向对象时空数据模型
2.1基态修正模型
农村土地调查数据现实性比较强,变更频繁,但变化相对缓慢,因此存储时,为了减少数据冗余,选择基态修正模型。设立使用最为频繁的现在的状态作为基态,每次变化后将前一状态相对于最新状态的变化部分存入历史库。它经存储或入库后,其数据内容会被变更数据不断修正。而差文件主要描述局部地区的变更数据,包括土地空间变化信息、土地属性变化信息、创建时间、土地对象操作和与其他差文件的关联信息。基态修正模型对变更数据的有效组织显得尤为重要,它关系到时空信息的快速更新和历史数据的高效查询。
2.2基于面向对象的基态修正模型
在基态修正模型的基础上,引入面向对象技术,对时空数据模型进行进一步扩展,设计基于基态修正的面向对象时空数据模型,是构建土地信息时空数据模型的关键。面向对象技术数据组织方式更符合客观世界的本质特征,为时空数据组织提供了有效方法,从而解决了时空数据的存储问题。
每个时空数据对象由空间信息、属性信息、时间信息3部分构成,在时空数据库中它作为一条记录被存储,方便了时空对象的查找。该模型为地理对象赋予时态属性,建立一个有效的时间类,来描述该对象在现实世界中的实际变化历史。从地理信息更新或历史时空信息查询的角度来看,操作都是针对具体的时空数据对象,这些操作的实现一般都借助于对象的 ID 和时间信息。不同数据对象被标志以不同的 ID,整个生命周期其 ID 也将保持不变[1]。基于基态修正的面向对象时空数据模型理论在时空数据建模中具有指导性的作用,时空数据模型组成见图2。
3农村土地调查时空数据建模过程
3.1农村土地对象
本研究中以农村土地信息管理为例,建立农村土地调查时空数据模型。农村土地信息作为土地对象,将空间信息、属性信息、时间信息封装起来,构成一个不可分割的独立单元,与其他对象发生联系。土地对象可以分为面状土地对象(地类图斑)、线状土地对象(线状地物)和点状土地对象(零星地物),土地对象构成见图3。
nlc202309021928
3.2农村土地对象变更
农村土地对象空间特征通过空间类定义,时态特征通过有效时间标记,属性通过面积、权属单位、权属性质等描述。每个对象具有唯一的ID,时空对象的操作有创建、消亡等[4]。土地对象随时间的变化主要分为3种:空间变化、属性变化、属性和空间信息同时变化(图4)[5]。(1)空间变化。包括地类图斑分割、合并、地类界线调整、复杂变更,线状地物调整,增加线状地物、减少线状地物,增加零星地物、减少零星地物等。(2)属性变化。包括地类图斑属性变更,线状地物属性变更,零星地物属性变更等。
3.3农村土地调查时空数据模型创建
农村土地调查数据包含有明显的时空对象:地类图斑、线状地物和零星地物。在进行数据组织时,选择面向对象的数据模型,可以更自然直观地以丰富的语义来描述复杂的农村土地对象[6]。
3.3.1地理实体抽象农村土地是一个不断变化的地理空间,按照面向对象的观点,从建模的角度,每个地理实体可被看作一个对象,是独立封装的具有唯一标志的概念实体。每个对象中封装了对象的时态性、空间特性、属性特性和相关的行为操作及与其他对象的关系(图5)
。
每个对象有3个基本特征,时间、空间、属性,可被抽象表达为3个基本类:空间类(Spatial Class)、时间类(Temporal Class)、属性类(Attribute Class)。面向对象的时空数据模型可以更加完整、正确地表达地理实体的各种语义,可以表示为对象Object(ID,Spatial,Temporal,Attribute,Operation,Relationship)。其中,ID为该模型的唯一对象标志,在整个生存周期中不发生变化;Spatial、Temporal、Attribute分别对应对象的空间、时间、属性特征;Operation表示该对象的各种时空操作,主要包括时间操作、空间操作、属性操作及时空属性联合操作;Relationship表示该对象与其他对象的关系,包括父子关系等。
3.3.2概念模型面向对象的分析和设计就是建立系统的模型,将所有对象组织为一个分层结构来表达客观实体及其之间的关系,真实模拟现实世界。面向对象的方法为系统模型的建立提供了分类、概括、联合、聚集4种语义抽象技术和继承、传播2种语义抽象工具[7]。本研究采用为统一建模语言UML(unified modeling language),对数据模型进行描述。图6为UML的部分图例:
根据对农村土地调查数据的分析与抽象,按照基态修正的面向对象模型观点,将土地对象归纳为时空属性点对象、时空属性线对象和时空属性面对象,并建立农村土地调查数据时空概念模型[8],时空概念模型见图7。
3.3.3逻辑模型基于基态修正的面向对象时空逻辑模型需要建立基态库和差文件库[9]。基态库和差文件库构成见图8。根据面向对象的观点,基态库存储基态对象信息和土地对象信息。基态对象信息包括基态对象的时间信息和所包含的土地对象等:土地对象信息包括空间信息、属性信息、时间信息、关联信息、操作信息等。差文件库是存储每次土地对象发生变化产生的差文件信息。差文件库是一个时间序列数据库,存储土地对象时间序列差文件数据。对于任意给定时刻或时段,都可以在差文件库中查询相对于基态的变化量,对基态进行时空运算,得出给定时刻或时段的土地对象信息。
3.3.3.1土地对象逻辑结构土地对象分为地类图斑、线状地物、零星地物,内容包括空间信息、属性信息、时间信息、关联信息、操作信息。結构表示为:
(1)
地类图斑对象(ID,Geometry,要素代码,地类代码,地类名称,权属性质,……,Create Time,End Time,父差文件ID,操作)。
(2)
线状地物对象(ID,Geometry,要素代码,地类代码,地类名称,长度,宽度,……,Create Time,End Time,父差文件ID,操作)。
(3)
零星地物对象(ID,Geometry,要素代码,地类代码,地类名称,权属单位代码,权属单位名称,……,Create Time,End Time,父差文件ID,操作)。
其中,ID为土地对象的唯一标志符;Geometry表示土地对象的空间几何信息;Create Time表示土地对象的创建时间;End Time表示土地对象的消亡时间;父差文件ID是将土地对象与父差文件进行关联;操作是对土地对象的创建和消亡操作。
3.3.3.2差文件逻辑结构差文件包括土地空间变化信息、土地属性变化信息、时间信息、土地对象操作和与其他差文件的关系信息。结构表示如下:差文件(CID,Geometry,要素代码,属性字段代码,属性字段值,Create Time,End Time,父差文件ID,操作)。
3.3.3.3基态逻辑结构当差文件数达到基态距时,则设立基态,在整个过程中,有N个基态,每个基态需要记录基态设立时刻和该时刻的土地对象信息。基态的结构表示为基态(JID,ID,Record Time)。
3.3.4物理模型物理数据模型是概念模型在计算机内部具体的存储形式和操作机制,是系统抽象的最低层,它必须转化为计算机能够处理的方式才能实现。主要包括空间数据的物理组织、空间存取及索引方法、数据库总体存储结构等。按照面向对象分析和设计思想,物理数据模型的设计和实现的主要内容如下:(1)存储方式选择。选择较为灵活动态多级索引的基态修正方法。(2)定义字段。主要是将逻辑数据模型中的各属性映射为字段(Fields),包括数据类型定义和数据完整性控制。(3)物理表设计。目的是主存和二级存储的高效利用以及数据的高速处理。基于面向对象的农村土地调查时空数据模型的时空对象类的划分从空间、时间、属性、操作和关系5个方面来设计,分别为空间类表(零星地物表、线状地物表、地类图斑表)、时间类表、属性类表、操作类表和关系类表5种表结构[10]。5种表结构的表头统一由字段名称、字段类型和说明3部分组成,以地类图斑为例,5种关系表见图9。(4)文件组织。进行时空索引的设计,实现数据的快速存取。
nlc202309021928
4结束语
通过研究在基态修正模型的基础上,结合面向对象的思想,提出一种适用于农村土地调查数据的时空数据模型,有效组织、存储、管理农村土地对象的时间、空间和属性3方面的完整描述信息,表达实体随时间的变化。从概念模型、逻辑模型、物理模型3个层次对地理信息进行抽象和建模。就模型中时空对象类、时空关系表达、存储方式以及模型应用等方面进行了系统的研究。至于后期数据库的创建还有数据的组织和查询,需要进行下一步研究。
参考文献:
[1]王华敏,陈继祥,于雷易. 基于基态修正模型的地籍时空数据库设计与实现[J]. 测绘信息与工程,2003,28(3):9-11.
[2]舒红,陈军,杜道生,等. 面向对象的时空数据模型[J]. 武汉测绘科技大学学报,1997,22(3):43-47.
[3]王盛校. 时空数据库模型研究与实现[D]. 北京:中国测绘科学研究院,2006.
[4]缪建明. 土地利用变更调查特点分析[J]. 中国农业资源与区划,2001,22(4):58-61.
[5]陆纳纳,李景文,苏浩,等. 面向对象的基态修正模型改进及查询方法[J]. 测绘科学技术学报,2012,29(4):299-302.
[6]Worboys M F. Object-oriented Approaches to Geo-referenced Information[J]. International Journal of Geographical Information Systems,1994,8(4):225-245.
[7]黃永忠. 面向对象方法与技术基础[M]. 北京:国防工业出版社,2006.
[8]周文婷. 基于TGIS的土地信息时空数据模型构建与应用[D]. 桂林:桂林理工大学,2009.
[9]宋玮. 时空数据模型及其在土地管理中的应用研究[D]. 郑州:解放军信息工程大学,2005.
[10]杜哲. GIS时空数据模型研究[D]. 北京:北京林业大学,2011.王强,吴华瑞,朱华吉,等. 农村土地利用数据集成的模式匹配方法[J]. 江苏农业科学,2014,42(9):391-394.
数据模型构建 篇7
ROLAP是在基础事实表上, 直接关联维度表, 因此, 比较灵活, 空间占用小, 但是速度较慢;MOLAP, 是在维度固定的情况下将数据首先进行所有维度层次之间组合的汇总, 最终达到给出查询条件直接命中汇总后的事实表, 进行无需关联维度表的数据的直接检索, 因此, 这是两个矛盾的过程。这对矛盾的焦点在于事实表是首先汇总, 还是不汇总, 为了提高速度, 汇总是正确的;为了减少空间占用, 不汇总就是正确的。我们将必要的层次组合进行提前汇总, 使得一部分状况下, 可以直接命中查询记录, 另有一部分状况下, 在轻量数据集上进行临时汇总生成查询结果的方式为HOLAP模型。
根据上面的描述, 整个问题的核心变成了汇总后的事实表的保留原则, 也就是说哪些表保留是合理的, 哪些表可以不保留的问题。
名词解释:
支撑表、层次差:当表A, 不存在, 针对表A的查询可以在表B上进行, 在得到的数据集上进行汇总生成所需查询结果的过程中, 表B称为表A的支撑表, B表与A, 层次标号差称为层次差。
数据源表:对于最细粒度上的表是不需要进行汇总操作的, 它为生成过程提供源数据, 这样的表称为数据源表。
事实表:在数据源表上, 进行汇总操作, 最终形成了一批各个层次组合的数据表, 这些数据表在检索过程中直接使用, 同ROLAP模型中的事实表作用等同, 对于这样的表, 我们称为事实表。
跳转:当一个事实表A不存在, 需用支撑表进行数据检索时, 我们称这样过程为跳转。
表的选取原则:
MOLAP模型中事实表是齐备的, 无需任何的跳转操作, 都能够直接命中事实表, 这样的检索效率是最高的, 但是如果采用部分数据表不生成的方案来降低空间使用率, 那么就一定存在跳转, 这就涉及到事实表的选择的问题。
当A表不存在, 需要使用支撑表时, 可以认为, 支撑表与A表的层次差越小越好。比如:表A的层次为Ca1Cb1Cc1, 它的两个支撑表为表B:Ca2Cb1Cc1和表C:Ca4Cb1Cc1, 那么通常状态下B表作为支撑表要比C表作为支撑表更为合理。那么也就是说, 最好情况是直接命中, 比较好的情况就是某一层进行一次跳转就可以到达支撑表, 跳转2层或更多才能到达支撑表, 这样的方案不好。
于是, 我们确定一个目标:不能直接命中的表, 能通过一层且仅一层跳转就可以到达支撑表。
表选取的解决方案:
假设, 只有两个维度, 每个维度为5层, 分别定义为A1、A2、A3、A4、A5和B1、B2、B3、B4、B5, 并且, 层次编号有有小到大代表粒度由粗到细。那么可以肯定, A5B5为数据源表, 它必定存在, 不需生成。而且, 它也必须存在, 没有它, 所有的数据都将无法生成, 因此, 我们使用如图1的选取表的方式, 红点表示最终被保留的数据表。选取过程可以用一个递归的过程来描述:由于A5B5存在, 那么它临近的两个表, 只需要一层跳转就可以达到A5B5, 因此, 可以不存在, 于是, A4B5和A5B4两个表就可以不存在, 由于A4B5不存在, 那么A4B4和A3B5失去了一层跳转就可以到达的支撑表, 因此, 这两个表就必须生成。
使用这样的选取方式, 我们将表数量减低为原来的约1/2, 记录总量在理想状态下也将降低为原来的约1/2。在仅有两维存在的情况下, 这样的选取方式可以认为是比较合理的。那么当维度变为3维时情况如何呢。
假设引入一个新的维度C, C仅有2层C1, C2。此时A5B5C2就是数据源表。
对于上面的操作过程我们使用了一个实例, 并且“整齐”的两个维度进行操作, 现在将其推广成为一种广义模式认为A有m层, B有n层, 并且规定m>=n。得到的这样一个操作过程:首先选取末节点Am Bn放置到集合R中, 查看集合R中的所有点是否存在某一个点的对角点不在R中, 如果不在, 提取该点放置到R中再重复上面的查找过程。直至R中的所有点的对角点全部出现在R中, 查找过程完毕。集合R则对应F模式, 没有在集合R中的点对应的就是S模式。
引入第3维以后, 我们命名新引入的维度为C, 维层次为C1, C2, C3, C4, C5。FAB和SAB交替出现在维度C的各个层次上。
我们可以看出, 问题, 又一次回到了2维模式下的表选取模式上来了。于是, 我们可以得到下面的结论{A, B, C}={{A, B}, C}={SAB, FAB;C1, C2, C3, C4, C5}=|SABC, FABC];其中:FABC=[C5FAB, C4SAB, C3FAB, C2SAB, C1FAB];
SABC=[C5SAB, C4FAB, C3SAB, C2FAB, C1SAB];
同理得到{A, B, C, D}={{A, B, C}, D}={{{A, B}, C}, D}={SABC, FABC;D1, D2, ….Dm}=|SABCD, FABCD]
综述:在实际的应用过程当中, 发现ROLAP的效率不高, MOLAP的易引起数据爆炸是两者公认的弱点, HOLAP必然是最终的归属。
摘要:在整个项目中, 数据表构建的模型是重要环节, 它影响着最终数据的膨胀比率和数据的检索速度。MOLAP模型下, 我们已经成功的使用所有层次组合的方式来生成数据, 最终达到了预期的目的, 用牺牲空间的方式换取了检索速度的提高。同时, 我们也看到了数据的大幅度膨胀和数据生成的困难性。系统中, 如果再增加一个维度或者再增加一个维层次可能都将导致数据爆炸, 导致整个优化工作的失败。因此, 在使用这种提前汇总的方式作为优化方案时, 控制膨胀比率成为一个很关键的问题。
关键词:数据源,数据模型,跳转
参考文献
[1]dorian pyle (著) :《业务建模与数据挖掘》, 机械工业出版社。
数据采集模型 篇8
在信息时代, 谁能在信息的海洋中获取更多的知识, 谁就能取得成功的主动权。信息技术在企业的决策和商业活动中起着重要的支持作用。
信息技术的迅速发展和企业管理决策的迫切需要, 使数据仓库理论应运而生, 并成为决策支持领域中实用性极强的技术。
一、数据仓库和数据集市
数据仓库技术是当前用于企业决策支持的、先进的有效方法。
1993年, W.H.lnmon在其所著《Building the Data Warehouse》中对数据仓库进行了完整的界定。他将数据仓库定义为:“一个面向主题的、集成的、随时间变化的、非易失性的数据集合, 用以支持管理层的决策”。这一界定被学术界广泛认同。W.H.lnmon关于数据仓库的定义, 可以从几方面来理解:
1. 数据仓库是一种数据资源集成与整合的具体方法。
数据仓库不同于一般的数据库。它是按照一定的要求、围绕明确的主题, 对原有分散的、相互独立, 异构的操作型数据进行有效集成。
2. 数据仓库存储的数据具有相对的稳定性。
3. 数据仓库的数据主要用于对管理决策过程的支持。
数据仓库的鲜明特点, 使数据仓库技术具有广泛的应用前景。目前, 已有不少行业把数据仓库技术用于数据管理和决策支持, 取得了经验, 产生了效益。
数据集市是数据仓库的一个子集, 它面向部门级业务, 面向某个特定的主题。是一种简化的小型数据仓库。实际上, 多个相互联系的、围绕一个宏观大主题的多个数据集市的集成, 就构成了数据仓库。数据集市和数据仓库在其实现过程和数据模式方面, 没有根本的差异。而数据集市比数据仓库更为简洁、方便, 易于快速实施并应用。因此, 在建立企业级的数据仓库前, 可规划建立多个部门级的数据集市, 在此基础上, 集成实现企业级的数据仓库。
二、数据仓库的“星型模型”
“星型模型”是数据仓库广泛采用的数据模型。它能准确、简洁地描述出实体之间的逻辑关系。数据仓库的其他数据模型, 一般是在“星型模型”的基础上的变形与扩充。一个典型的星型模式包括一个大型的事实表和一组逻辑上围绕这个事实表的维度表。如图1所示:
事实表是星型模型的核心。用于存放大量的具有业务性质的事实数据。事实表由主键和事实的度量数据两部分组成。事实表通过主键, 把各维度表链接在一起, 形成一个相互关联的整体, 共同描述主题。事实表中存放的大量数据, 是同主题密切相关的、用户最关心的、对象的度量数据。
维度是观察事实、分析主题的角度。维度表的集合是数据仓库数据模式的关键。维度表通过主关键字与事实表相连。用户依赖于维度表中的维度属性, 对事实表中的事实数据进行查询、分析, 从而得到支持决策的数据。
因此, 对事实表和维表的分析设计, 是数据仓库数据模型设计的关键。
三、连锁超市数据集市的数据模型
数据模型是建立数据仓库的基础。业务需求是进行数据仓库数据模型设计的驱动力。连锁超市商品销售情况可以看作超市管理数据仓库的一个子集, 即数据集市。适宜选用以“星型模型”为基础, 建立能满足需求的连锁超市数据集市的数据模型。
1. 事实表的设计
如前所述, 事实表由主键和度量数据两部分组成。星型模型中各维度表主键的组合构成事实表的主键。针对本文的研究主题, 最需要关注的是连锁超市商品销售情况。因此, 在事实表中, 要准确记载各连锁超市所畅销的商品、销售数量、营业额、利润等度量数据。
事实表中数据的细节程度或综合程度的级别称为数据“粒度”。粒度是数据仓库事实表的重要的特征。粒度的级别依赖于维表的属性。不同的需求, 对数据仓库的粒度要求不同。
连锁超市数据集市需要保留最低层次的细节数据, 以满足数据集市的信息查询要求。很多数据挖掘的应用程序也需要最低层次的数据颗粒。再者, 低粒度的事实表便于从操作型系统中抽取源数据。此外, 最低层次的细节数据是聚集事实表的基础。
另一方面, 为提供决策支持, 需要多方面的高粒度的汇总数据。
因此, 连锁超市数据集市的数据模型设计, 要能方便获取从最低层次的细节数据到高度概括的汇总数据。这不仅需要设计好事实表, 同时依赖于维度表属性的设计。
2. 维度表的设计
维度表的集合是建立数据仓库数据模型的关键。
建立连锁超市数据集市的目的是要从各个角度, 分析对商品销售情况的影响, 为管理者在研究超市发展策略等方面, 提供决策支持。
针对连锁超市需要掌握的基础信息和决策的需求, 在连锁超市数据集市中, 设计了以下维度及其主要属性。
客户维:这是最重要的一个维度, 在商界, “客户就产上帝”。在客户维中, 建立了客户的基本信息、是否为会员客户、客户居住地域等, 以便掌握客户个人细节数据。从数据粒度的需要, 客户维还建立了客户的会员关系和属地等。为建立聚集事实表作好准备。
商品维:商品维也是一个重要的维度。商品不仅决定了超市的经营范围, 商品的结构、品牌、质量直接影响营业额。在商品维中, 设计了商品代码、商品名称、商品类别、品牌名称、包装类别等维度属性。
时间维:在数据仓库的多维数据结构中, 时间维往往是不可少的一个维度。因为每项“销售事实”都是在一定的时间或者时间段内发生。针对需求, 时间维采用日、月、季、年四个属性。
连锁店维:各连锁店承担了全部商品的销售业务。连锁店的服务质量直接影响企业的竞争力、销售业绩和企业利润。连锁店维中建立了连锁店名、销售经理、规模、所在地域等维度属性。
根据上述分析, 建立连锁超市数据集市的星型数据模型, 如图2所示:
3. 处理好大维度问题
在上列各个维度中, 客户维和商品维都是典型的大维度。这是因为:大的连锁超市, 客户维和商品维很深, 累计可能有数以万计的客户和上万种商品;客户维和商品维很宽, 根据需要, 这两种维可以有多个维度属性。
数据仓库的大维度, 会给数据仓库的操作应用带来一些问题。大维度中的长文本字段不仅占用存储空间, 而且维度数据不易更新和维护;向大维度表填充数据难度增大;对事实表的查询涉及大维度表时, 会影响效率。解决数据仓库“大维度”问题较好的办法是采用“雪花模型”。
“雪花模型”是在星型模型的基础上拓展而来的。将“星型模型”中的大维度表进分解, 通过增加详细类别表, 形成一些局部的层次区域, 就演变成为“雪花模型”。将连锁超市数据集市中的两个大维度表——客户维和商品维进行“雪花化”。分解出相应的类别表, 既解决了大维度表带来的问题, 也为建立“聚集事实表”作好了准备。
基于上述分析, 设计出低保基础信息数据集市的雪花模型构架。如图3所示:
四、连锁超市数据集市聚集模型设计
“聚集”是从最低粒度的事实表中衍生出来的的预先计算的汇总数据。这些汇总数据形成了一组独立的聚集事实表。实际应用中, 可以根据需要用跨越任何维度的特定的汇总数据构建为一个聚集事实表。
1. 建立数据集市聚集事实表的必要性
建立低保基础信息数据集市的主要目的, 是要为管理者提供具有决策价值的汇总数据。因此, 把使用频率高的汇总数据存放在聚集事实表中, 对提高数据集市的的使用性能, 为管理者提供决策支持, 使用户获得更好、更快的查询结果, 是非常必要的。数据集市聚集模型的好坏将在很大程度上影响到数据集市的使用效果。
2. 怎样建立聚集事实表
在数据集市中建立聚集事实表, 要注意以下原则:
⑴每一个不同的聚集必须使用单独的事实表存储聚集数据, 成为相对独立的聚集事实表。
⑵聚集事实表中的维表必须是基本事实表中的维表的压缩。
⑶基本事实表中的度量数据加载后, 才能作聚集处理。
3. 连锁超市数据集市常用的聚集事实表
每一个数据仓库 (数据集市) , 都可能有多个维度表。因此, 一个数据仓库 (数据集市) 会有很多个聚集事实表。究竟需要那些聚集, 要针对用户需求和决策需要。例如, 连锁超市数据集市中可建立以下常用聚集事实表:
⑴单路聚集:在有多个维度的数据模型中, 如果只有一个维度升高维度层次, 其他维度保持最低层次, 所生成的事实表为单路聚集事实表。在连锁超市数据集市中, 把时间维度的属性层次升高到月、季或年, 其他维度层次保持不变, 就生成一个单路时间聚集事实表。
⑵二路聚集:在多维数据模型中, 如果有二个维度升高维度层次, 其他维度保持最低层次, 所生成的事实表为二路聚集事实表。在连锁超市数据集市中, 如果需要掌握在某年对会员客户的销售情况, 可以生成时间维属性为年, 客户维属性为会员, 其他维保持不变的二路聚集事实表。如图4所示。
⑶三路聚集:在多维数据模型中, 如果有三个维度升高维度层次, 其他维度保持最低层次, 所生成的事实表为三路聚集事实表。例如:在连锁超市数据集市中, 需要掌握在某年会员客户对某个品牌商品的购买情况, 就需要对销售事实表进行三路聚集, 如图5所示。
按照上述方法, 可以根据需要灵活方便地生成多个聚集事实表。
五、结束语
能否满足需求, 是衡量一个应用软件质量的重要依据。利用本文提出的连锁超市数据集市的数据模型架构, 不仅为建立连锁超市数据集市奠定了基础;而且为数据集市的发展利用创造了条件。通过数据挖掘技术, 能够从多方面获取连锁超市经营管理中的重要信息, 为企业在竞争中取得主动权, 促进企业的进一步发展, 提供决策支持。
参考文献
[1]王志海:数据仓库[M].机械工业出版社, 2003
[2]邵红全 赵 茜:运用多维数据模型实现数据集市[J].河北省科学院学报, 2003 (2) :99~102
[3]段云峰:数据仓库基础[M].电子工业出版社, 2004
[4]李姗姗 宁 洪 陈 波:通用数据仓库元数据模型的研究[J].计算机工程与应用, 2004, 26 (5) :52~55
[5]刘中蔚 陈 红:用基于元数据库的工作流调度数据仓库的更新[]].计算机应用研究, 2006, 23 (3) :178~180
[6]范 明:数据挖掘概念与技术[M].机械工业出版社, 2004
[7]平 静 林平瑞:元数据管理及其在数据仓库中的应用[J].平原大学学报, 2006 (8) :130~132
寿命数据的参数模型 篇9
1 寿命分布的几个常用参数
1.1 平均寿命与寿命的方差
用T的数学期望来刻画总体T的“平均寿命”, 用方差DT=E (T-ET) 2来刻画总体寿命的波动程度。ET, DT是分布的重要数字特征。
1.2 生存函数 (可靠度)
定义函数
在生存分析中, S (t) 称为生存函数, 在可靠性统计中, S (t) 又被称为可靠度。它刻画了寿命超过一定年龄t的概率, 或者失效时间超过规定长度t的概率。
显然, 对指定的t, S (t) 越大越好。
若有两个总体:T1, T2, 其生存函数分别为S1 (t) 和S2 (t) , 满足S1 (t) ≥S2 (t) , 0≤t,
则总体1的寿命分布一致优于总体2的分布。
S (t) 具备下列性质:S (0) =1;S (t) 为t的下降函数;limt→∞S (t) =0;S' (t) =-f (t) 。
1.3 危险函数 (失效率)
P (t
这说明, 当△t很小时, P (t
这个比例系数h (t) 称为危险函数或者失效率。
上述的两个定义的等价性是易知的。
以下说明:危险函数h (t) , 密度函数f (t) , 生存函数S (t) 三者可以相互确定。
事实上, 首先f (t) 与F (t) 是可以彼此相互确定的, 进而f (t) 与S (t) 可以相互确定, h (t) 可以由f (t) 或S (t) 确定。
另外, 由于
危险函数 (失效率) h (t) 随时间t的流逝而变化。例如一台汽车在出厂后, 需要一段磨合期, 在磨合初期发生故障率较高 (h (t) 较大) ;而在磨合后期发生故障率较低 (h (t) 较小) 。此后会逐渐趋于稳定, h (t) 大致可看成是一个常数, 相当长时间后, 零部件老化, 故障率会增高, h (t) 变大。人的寿命分布也有类似这样一个“三部曲”。h (t) 的这种特性无论对于医学研究还是对于产品的可靠性改善都有其重要的意义。
2 常用的寿命分布
我们仅用参数模型来刻画寿命分布。即认为寿命分布为某种已知类型的分布, 其中有一些未知参数, 当这些参数确定后, 寿命分布就完全确定了。在寿命分布的参数模型中, 下面几个是最常见的。
2.1 指数分布e (λ)
即指数分布的危险函数 (失效率) 为常数, 而且它的条件寿命分布与无条件分布相同, 这种性质叫无后效性。
可以证明:若失效时间分布的危险函数 (失效率) 为常数, 则它一定是指数分布。
事实上设h (t) =λ>0, 则它的生存函数
, 恰好为指数分布的生存函数。
2.2 韦布尔分布
当β=1时h (t) =1/α, 即指数分布的危险函数, 因此指数分布是韦布尔分布的一个特例。
当β<1时, h (t) 关于t单调下降, β=1时, h (t) 是常数, β>1时, h (t) 关于t单调上升。
2.3 伽玛分布G (k, λ)
伽玛分布G (k, λ) 的密度函数为
其中k>0, λ>0为参数。显然G (1, λ) =e (λ) , 即指数分布也是伽玛分布的一个特例。
伽玛分布的数学期望和方差分别为ET=k/λ, DT=k/λ2,
伽玛分布的生存函数S (t) 和危险函数h (t) 都没有简单的表达形式。
m为正整数时, G (m, λ) 可看作m个独立同分布于ε (λ) 的随机变量的和的分布;设T服从G (m, λ) , 则2λT服从x2 (2m) 分布。
2.4 对数正态分布LN (μ, σ2)
对数正态分布LN (μ, σ2) 的密度函数为
事实上若ln T~N (μ, σ2) , 则T服从对数正态分布LN (μ, σ2) 。LN (μ, σ2) 的期望和方差分别为
其生存函数与危险函数都没有简单的表达形式。对数正态分布作为寿命的模型有一个好处, 就是将寿命或失效时间T作对数变换后, 就得到大家最熟悉和最易分析处理的正态分布。
摘要:寿命分布是统计学中一类重要分布。人的寿命或者电子产品或其它物种等的寿命, 其统计规律是许多行业必须重视和分析处理的。寿命数据的统计分析在大学的数理统计教材中较少涉及, 本文系统的介绍这类问题的几个概念和几个常用的寿命参数模型, 供学习者参考。
关键词:寿命分布,生存函数,危险函数,指数分布,韦布尔分布,伽玛分布,对数正态分布
参考文献
[1]陆璇.应用统计[M].北京:清华大学出版社, 1999.
[2]魏宗舒.概率论与数理统计教程[M].北京:高等教育出版社, 1987.
[3]茆诗松.可靠性统计[M].上海:华东师范大学出版社, 1984.
[4]张春华, 陈循, 杨拥民.常见寿命分布下环境因子的研究[J].强度与环境, 2001 (4) :7-12.
[5]高尚.剩余寿命分布研究[J].强度与环境, 1995 (3) :61-64.
通用数据安全访问模型 篇10
本文提出了一种通用数据安全访问的模型CDSA, 它实现数据的抽象访问与同步, 帮助工程师们管理好系统软件的数据, 保持数据的一致性和完整性。基于此模型可以实现远程过程调用 (RPC) , 其机制、原理和标准的RPC调用以及分布式计算原理完全相同, 不同之处在于这种调用方式可用于跨进程、跨系统、跨计算机边界、跨平台等复杂的环境中。
1 通用数据安全访问模型
首先, CDSA模型把各种系统软件对公用数据的访问划分为高级访问 (调用者需要理解数据以及各参数和返回的含义) 和原始访问 (调用者无需理解数据以及各参数和返回的含义) 。高级访问针对数据应用, 原始访问针对数据传递过程。
(1) 原始接口:输入和输出为数据流, 不理解协议本身以及任何应用数据结构, 供通讯使用。
(2) 高级接口:输入和输出为实际应用数据, 理解协议本身以及应用数据结构, 供业务使用。
其次, 考虑到一般的系统软件中数据的传递过程分为进程组内部数据传送 (交换) 和远程数据交换, CDSA模型规定进程组内的数据传送通过消息队列进行通讯, 在进程组外的数据传送, 主要通过SOCKET进行通讯。CDSA模型还约定这两种数据传输均通过原始模式进行, 不需要理解数据的含义以及输入和返回。
(1) 对于本地应用进程 (服务器进程) , 通过消息队列和主进程进行通讯, 达到数据读写的目的。为什么这样处理呢?主要是因为CDSA模型支持保存复杂的数据结构, 而共享内存只能适用于简单的数据结构, 如果采用复杂数据结构, 必须实现空间管理, 这非常复杂且可移植性不强。
(2) 对于其他进程, CDSA选用SOCKET作为通讯的手段, 通过抽象和复用代码等方法完成完整的数据通讯和交换过程。既达到RPC的效果, 又降低系统复杂程度, 同时满足了高效数据通讯的需求。
(3) CDSA模型规定, 服务器启动后, 主进程负责将全部的数据加载到内存, 主进程有义务通过消息队列或SOCKET等方式为其他服务进程 (包括远程管理进程、客户端进程) 提供数据共享, 并惟一直接操作数据库, 以维持数据的统一性。
(4) 如果系统软件有独立的远程管理进程, 由于多次远程读取数据需要耗费大量的带宽和时间, 所以CDSA模型规定管理端进程与服务端连接后, 首先下载并且维护一份和远程服务端一致的数据, 如此一方面保证本地数据和服务器数据的一致性, 一方面降低数据读取的消耗。
(5) CDSA为了保证数据的一致性, 采用了读取共享、写入独占的方式。具体来说, 本地应用进程在系统启动后自动获取数据库的修改权限, 第一个连接进入的管理进程可以抢占该写入权限, 直到该进程退出后, 如果系统中已经存在有一个管理连接, 后连接进入的进程将只能获取读取的权限, 并不能剥夺第一个管理进程的写入权限。
最后, CDSA模型定义数据访问的触发 (回调) 机制, 用于在设置变更或读取的状态下做出某种响应 (如配置系统、数据同步传递、数据重读、数据更新等) 。
2 CDSA模型的实现
CDSA模型存取的数据可以是数据库, 可以是配置文件、系统环境等。对数据库的操作没有定义专门类, 需要各系统软件自行考虑。对配置文件、系统环境等的存取, CDSA模型定义了实现IBoot DBIPlugin接口的Csvr Cfgtor类。通过这个专门类去处理实际的数据存取, 该专门类还支持调用IAdvBootDBI接口, 以便远程重新获取数据、远程修正数据。
CDSA模型还定义了两个实现IRaw Boot DBI或者IAdv BootDBI接口的类, 用于完成对数据的存储和数据格式的转换。
(1) 数据直接访问类
完成数据的直接访问, 对数据库进行直接操作, 通过IBoot DBIPlugin接口调用Csvr Cfgtor类来完成数据的存储以及存储的事件通知。
该类实现了IRawBootDBI、IAdvBootDBI这两个接口。其他进程可以通过这两个接口调用来存取数据。
(2) 数据中继访问类
完成数据的转换, 可以将复杂的数据结构转换为标准的数据流, 或者将数据流还原成复杂的数据结构。这些数据流包括两个部分:输入流和输出流, 通过这两个部分完成参数的传递和返回值的获取。
该类实现了IAdvBootDBI这个接口, 支持调用其他类的IRawBootDBI接口去传递、存取数据。其他进程可以通过这两个接口调用来存取数据。
(3) 客户端SOCKET类 (数据通讯模块)
数据通讯模块本身即为一个基于IRawBootDBI的对象, 他们完成的工作即将输入流送入其他服务进程或者服务器端, 然后等待其他服务进程或者服务器端返回一个输出流。一个CBootDBRelay的对象可以成功地将高级的数据转换为 (序列化) 流格式, 然后调用通讯模块的接口IRawBootDBI, 等待通讯模块完成数据请求后, 将返回流还原成 (反序列化) 高级格式, 返回给调用者。
数据通讯模块对数据的序列化与反序列化是成对出现的, 如果有多对序列化的格式, 就要分配协议号以示区别, 协议号本身被序列化成流格式的第一个字节, 反序列化时先读取第一个字节, 了解序列化的格式, 再对后续的流格式进行反序列化。
3 CDSA模型中数据访问的流程
模型中涉及配置数据的各进程对数据访问的逻辑示意如图1。
(1) 数据服务进程的直接数据访问
数据服务进程负责数据库的管理, 是数据的直接处理进程, 该进程通过消息队列实现数据的对外共享。
如图1所示, 在请求到达后, 该进程通过CBootDBDirect访问数据, 并同时完成系统配置:[消息队列服务器端]->IRawBootDBI (CBootDBDirect) ->DB (->IBootDBIPlugin (CSvr Cfgtor) ->系统配置) 。
(2) 本地进程间的数据访问
本地应用进程是本地的数据消费者之一, 该进程不能直接访问数据库的数据, 但可以通过高级访问接口存取数据:[本地应用进程]→IAdvBootDBI (CBootDBRelay) ->IRawBootDBI (消息队列客户端) 。其过程如图2所示。
(3) 远程进程间的数据访问—服务端
远程管理进程的服务端是数据的转发层, 对外衔接网络, 对内衔接数据服务进程。
[远程管理进程的服务器端]->IRawBootDBI (消息队列客户端) 其过程如图3所示。
(4) 远程进程间的数据访问-客户端
如图4所示, 远程管理客户端进程为数据的消费进程, 存在两种访问数据库的方式:
本地缓存数据:[管理]->IAdvBootDBI (CBootDBDirect) ->CacheDB
远程数据:[管理]->IAdvBootDBI (CBootDBDirect) ->IBoot DBIPlugin (Csvr Cfgtor) ->IAdvBootDBI
(CBootDBRelay) ->IRawBootDBI (SOCKET客户端)
4 CDSA模型的应用
图5说明了一个无盘站引导服务系统使用CDSA模型进行数据访问的实际情况。
说明:
(1) 图中数据守护进程不但是主无盘站引导服务软件的主进程, 还是数据服务进程, 它直接进行数据访问, 通过消息队列实现数据的对外共享。
由于系统软件本身功能不同, 操作的数据类型肯定也不同, 这就要根据实际需要去定义具体的实现类。图5中定义了无盘配置数据, 系统数据, 系统配置数据, 缓存数据等类。
(2) 图中DHCPBINL服务进程和TFTP守护进程对应了本地应用进程。
D H C P B I N L和T F T P守护进程是本地的数据消费者, FTFP还会fork出新的进程进行数据消费, 这些进程通过高级访问接口存取数据。
(3) 图中的管理服务器进程对应远程进程的服务端
管理服务器进程是数据的转发层, 对外为管理工具提供数据, 对内向数据服务进程取得数据。
(4) 图中的管理工具进程对应远程进程间的客户端
管理工具进程是数据消费进程, 刚建立连接时, 把数据从服务端请求到本地缓存, 以后的操作在缓存内进行。操作完成后, 如果缓存数据被修改过, 就调用CsvrCfgtor类的IBoot DBIPlugin接口回写数据。也可以通过IBoot DBIPlugin接口从远程取得最新的数据。
摘要:本文提出了一个称为CDSA的数据安全访问模型, 该模型可以被用在各应用软件中保证服务端与客户端数据的一致性, 也可以用在本地进程间通信、远程进程间通信等领域, 保证共享数据的一致性。
关键词:数据存取,数据一致性,回调
参考文献
旅游大数据预测需建立三种模型 篇11
从数据上看,中国互联网网民已经到6.32亿,智能终端7亿,微博微信用户12亿,支付宝用户3亿,网易和搜狐新闻客户端APP分别一个亿,电商零售额300亿,网络经营占GDP的份额4.4%。
为什么要说这样一组数据?这就是网络的现实。当一个用户平台上亿了以后,它就会改变一个商业运行环境。而上亿用户产生的数据自然就是大数据。互联网已然改变了商业生态:书刊在中国线上销售达到58%,电子书达到50%以上。北京地区电视开机率从70%降到30%,只有嘉年华这种节目还有点收视率。零售商店受到电子商务强烈挑战。近几年批发市场将有一半迁移走,远离繁华市区。此外,银行业也受到互联网金融的强烈冲击。
根据我个人的理解,互联网化,或者说互联网思维的运用和渗透,可以分为三个阶段。第一个阶段就是网络化阶段,先是互联网,然后再到物联网,很多机器设备接入互联网,把很多很多人和社会接入到互联网。第二个阶段数字化阶段,在网络空间中积累了大量数据,数据可以产生经济价值,也就是我们所说的大数据时代。第三个阶段是智能化阶段,将在未来三到五年获得大规模发展,随着可穿戴设备进入市场,人脑和机器将会结合。
大数据带来全新商业机会
我们正处在网络化阶段向数字化阶段的过渡时期,大数据带来的商业机会不断涌现。举一个小例子,网络化是聚合的力量,互联网的出现使分散的用户拥有人多势众,把分散的组群也连接起来。把很多零散的需求聚合在一起,然后这才有了像阿里巴巴这样的平台,平台就是聚合。另外一个社交网络,各种社交平台产生了很多分享数据和碎片化数据,一个显而易见的例子就是,中国人每天吃饭有5700万张照片被分享,这个数据产生有一个定律,过去18个月的数据是有史以来的总和,换句话说网络数据有90%是近两年产生的。
鉴于数据都是新产生的,谁掌握了数据,你就可以进行跨界颠覆。麦肯锡曾做过一个报告,关于哪些行业会被大数据颠覆。从中可以看出,对业务手段依赖严重的行业更容易被颠覆,比如说消费电子、金融、仓储,还有物流、航空等等。其中引人关注的一点是,麦肯锡分析旅游行业是最容易被大数据颠覆的行业,因为没有物流,靠口碑分享传播,所有信息都是靠聚合而来,所以没有一个行业比旅游行业更适合大数据。而和旅游相关的行业,比如航空、邮政等等,也容易被互联网颠覆。事实上大数据不仅引起了企业的关注,中国高层决策者也在关注。2013年9月30日,新一届领导集体走出中南海,百度李彦宏做了一个10分钟有关大数据的演讲。演讲中有旅游热点预测和艾滋病监测,其中艾滋病监测是百度和我的研究小组合作完成的。很多人得了艾滋病,可能不会找医生,但是他会在网上搜索,我们可以根据网上搜索概率进行艾滋病的预防和监测。
大数据的应用已经广泛应用于商业模式创新,产业升级和管理创新,在各个行业中也多有应用,比如金融服务、医疗保健、零售业、能源、制造业。这就对企业运营方式带来了巨大的变革,比如互联网大数据资源、消费者的喜好、大众的情绪,市场的潮流、不同人群的关注点等等。以流程数字化为核心的信息化1.0已经逐渐画上句号了。以数据驱动为核心的信息化2.0正加速到来。现在的信息化就是要考虑到以数据驱动,以结果为导向。所以技术层面正在由IT技术到DT技术转变,比如数据挖掘、数据清洗等等。
移动互联网变革企业运营模式
另外一个对企业运营产生变革的是移动互联网。移动互联网把渠道、品牌、关系合为一体,所以对企业经营者来说,运用好移动互联网变得至关重要。这也带来经营方式和基本规律的转变。
最为明显的一点是,信息优势从厂商转移到消费者。电子商务制造了大量的评论,形成互联网信任机制,厂商需要有大数据分析手段,将评论数据合理转化分析,从而指导产品的设计、生产等流程。传统的媒体巨头如电视、广播、报纸日渐式微,社会化媒体在舆论导向中的作用愈发凸显,带来话语权的转变。于是,企业开始把目光聚焦在社会媒体舆论和口碑跟踪上,这也成了品牌情报的主要来源。传统的通过媒体单向传播,制造热门商品诱导消费行为已经不太成立。而对于品牌的塑造,过去是洗脑似的广告轰炸模式已经过去了。对用户来说,品牌是客户付出的额外产品,简单地说很多品牌的附加值就是花了额外的钱买了放心,额外的钱是为了支付的成本,一旦信息不对称解决以后,品牌的含义也会改变,文化互动的含义崛起。利益相关者之间的口碑传播成为一个重要的方向。
其次发生改变的是厂商和消费者之间的关系。在传统经济时代,厂商跟消费者之间接触点就是柜台,比如说卖一个产品,通过售货员传递给消费者,进入移动互联网时代,厂商和消费者之间的接触点已经不再是单一柜台方式了。据统计,厂商和消费者之间的接触点已经达到23个,包括短信、邮件、电话、包裹、客服、手机短链,向客户发出物流信息、好评、活动纪念、优惠券、商品推荐、积分通知等等。现在,我们运用大数据可以找到企业潜在用户的分布,然后通过有创意的投放形式将它们转化为企业的粉丝。营销行业有一句话,“我知道我的广告费有50%是浪费的,但是我不知道是哪个50%”。如今,通过结合移动互联网和大数据,营销要做的是把剩余的50%发掘出来,也就是实现精准投放。
数据飞轮驱动企业运营
大数据企业运营有一个概念叫数据飞轮,企业运营状况如何,或者企业是不是适应大数据时代,企业对数据飞轮的运用是关键。比如,在亚马逊内部所有环节都是数据驱动的,形成了数据飞轮,你买了30码的鞋子,在物流快递的时候,会同时快递一双31码的,你买一双他快递两双,同时把回程物流票寄过来,让你退货的。通过寄两双鞋子的办法,现在退货率下降了13%,这就是大数据。在国内也有一部分企业实现了数据驱动。比如广州的上品宅配,企业内部所有环节都是靠数据驱动,形成数据飞轮的企业,一般来说产品的设计部分是依托数据进行的,中间的流程运营也是依托数据进行的,销售也是依托在数据基础上。
数据可以增加产品功能,使其变得高效、智能。像电商通过做产品推荐,可以最大化增加消费者购买率,一个分析可以捕捉更清晰的数据报告。
数据还可以做模型,对客户群体进行识别,可以分辨出哪些是怀孕女性,还分析出哪个客户最可能在哪个阶段转化。这样在流程运行过程中,市场营销就是以产品搞营销,不对其他产品造成挤压效应。这里面也是做大数据的人经常举的一个案例,怀孕分析,有一个叫斯蒂夫的人有一个报告,一家男子来到一家连锁店。他父亲比较愤怒的是,你为什么比我先知道,你不是发觉我的隐私了吗?他就是分析女性客户的购买记录,发现女性客户在怀孕四个月左右会大量购买乳液、纸巾和补钙补镁的产品。比如国内有一家企业做相关性分析,有一个人不小心点了墓地,就不断给他推荐骨灰盒,搞得哭笑不得。亚马逊推荐就推荐一种产品,其实推荐一种不好,推荐一种最相关的,推荐体育用品优惠券,这样消费者不会觉得侵犯他的隐私。此外数据营销对品牌营销会形成一种挑战,传统的营销会把人群进行分类。而在大数据时代,营销所要做的是发掘用户在不同的空间、时间内的需求,从人群分类变成情景分类,分析用户在什么情景下会产生消费冲动。人们常说起的“一次说走就走的旅行”也是可以预测的。通过移动互联网,再结合大数据,我们就可以分析出用户在什么情况下会产生这种冲动。此外产品和消费者之间除了买卖关系之外,还要建立伙伴、互信、可信赖的关系。
总之,大数据时代在形成新的商业规则,第一个要整合资源,降低成本,圈人,直销,社交手段由刚需入手,让消费者形成个性化价值。第二个商业规则是用高性价比的理由圈住客户,在北京滴滴和快的打得不可开交,人群就是渠道,数据就是你的成长空间。另外一个新商业规则特别注重场景,特别移动互联网时代特别注重场景,注重用户的瞬时心态,什么样的情况下产生这种心态。我们要注意两类客户,一种叫小白,还有一个叫极客,你的产品定位在哪种产品下、哪一类客户。
大数据旅游预测须建三种模型
对旅游者来说,目的地确定以后有两类行为,一个是到旅游网站搜索信息,第二是进行比价搜索,第三是看旅游分享。所以必须建立三种模型。一种模型是互联网的数量分析,主要分析搜索,搜索数据及时记载了搜索特点,反映用户变化。搜索我们叫意图数据库,反映他的意图。还有失业率、主要市场等等。这个优势有及时性,相关搜索能够表明旅游的最新动态,旅游行为大概可以领先一个月左右。我们研究发现搜索量大概会领先一个月左右。当然不同的旅游地更长一点。
数据模型设计方法研究 篇12
一、实体确定
不同的实体确定, 采用的方式就不同。在一般教科书中, 实体只单从文档中抽取的名词来确定。其对应的结果就是容易将实体和属性混淆。然后从用户的报表和单据中提取实体, 是一种可靠而又快捷的方法。因为报表本身就包含了客观实体间的联系, 同时, 它又是业务中的信息的载体。所以, 在这基础上建立数据模型就显得快捷方便了[1]。
一般情况下, 如设备、学生、图书等能客观反映事物存在的实物就叫静态实体。同时, 它也包含了在客观世界中的一些抽象概念, 例如类别或栏目等。而能将静态实体间的活动关联真实反映出来, 如购买、入库、入库等活动就叫动态实体, 其体现在业务往来过程中的一些信息载体, 例如报表、单据。
在数据模型的设计中, 应该遵循一定规则。在选择关联实体时, 一是要识别静态实体, 二是确定静态实体间的关系, 三是分析报表等信息载体中的候选关联实体, 最后才能确定关联实体[2]。
二、关系确定
2.1处理一对多, 多对多和一对一的关系。实体-关系模型中常见的关系就是一对多。其主要表示的是在实体记录中, 一个实体可以对另外一个实体中的一个活多个记录。但是, 静态实体和关联实体被确定后, 模型中还存在这种多对多的关系, 那就说明了在设计过程中出现了对报表中某个信息载体的遗漏问题。因为, 在静态实体间, 多对多的关系已经被另外一个具有代表性的关联实体所分解开了。所以, 在逻辑上, 会存在多对多的关系, 但在具体的数据模型实现时, 就会被转换为一对多的关系。
2.2两种关系的处理
(1) 递归关系。递归关系是一种可以将数据间的层次关系简单描述出来的特殊关系, 并且层次数量不会受到这种关系的限制。如果这关系用一对多来描述, 就会需要两个实体来支撑。所以, 在逻辑上, 采用递归关系描述很容易理解, 并且很直观, 但是值得注意的是, 在这设计过程中, 结构设计如果表达不简洁, 不够抽象, 就容易导致系统的适应性产生变化, 功能就会变差。那么, 数据库结构就要做相应调整, 增加或减少组织机构层次对应的表。这样显然不够灵活。增加了系统的维护成本。应此, 需要引入递归关系。实体中的记录之间存在一对多关系, 通常实体中包含指向自身的外关键字, 通过该关键字指向上级记录, 递归关系中必然存在一个根记录, 该记录没有上级记录, 其外关键字应该为空[3]。
(2) 多元关系。有些情况下, 一个关系会涉及到多个实体, 这种关系称为多元关系。多元关系是一种逻辑关系。在数据模型实现时要像处理多对多关系一样, 通过引入一个关联实体来将其转化为多个一对多的关系。
2.3确定实体属性。实体属性的确定较容易。属性的确定可以由静态实体的关键字确定。一旦由这个关键字确定了, 相应的属性就会服从这个实体的分配。如果, 某个属性不能有静态实体的关键字确定, 那么这个属性就是一个关联实体。在这过程中, 关键字最好采用些字符或者没有实际意义的数字来作为实体。因为, 随着信息载体的改变, 关键字也会改变, 那么在系统修改过程中所采用的费用就不会太高。属性建立分配完成之后, 数据模型的设计必须满足规范化的准则, 以期保证数据的规范化, 连贯性。在这过程中, 有六种数据模型设计范式, 第一范式到第五范式以及BCNF范式。一般情况下, 在具体使用中, 第一范式到第三范式是数据模型设计必须满足的。但在一些特殊过程中, 为了使得编程更规范方便, 往往会采用非范式化的处理, 其目的就是提高系统的查询性能和扩展性。但必须注意的是:在文档中必须说明是否采用非规范化处理。
参考文献
[1]萨师煊, 王珊.数据库系统概论[M].北京:高等教育出版社, 2009.
[2]李红.数据库原理及应用[M].北京:高等教育出版社, 2003.