什么是结构化数据?什么是半结构化数据?

  相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

  非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本、图象、声音、影视、超媒体等信息)。

  非结构化WEB数据库主要是针对非结构化数据而产生的,与以往流行的关系数据库相比,其最大区别在于它突破了关系数据库结构定义不易改变和数据定长的限制,支持重复字段、子字段以及变长字段并实现了对变长数据和重复字段进行处理和数据项的变长存储管理,在处理连续信息(包括全文信息)和非结构化信息(包括各种多媒体信息)中有着传统关系型数据库所无法比拟的优势。

  结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)

  非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等

  所谓半结构化数据,就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。

  数据模型:

  结构化数据:二维表(关系型)

  半结构化数据:树、图

  非结构化数据:无

  RMDBS的数据模型有:如网状数据模型、层次数据模型、关系型

  其他:

  结构化数据:先有结构、再有数据

  半结构化数据:先有数据,再有结构

  随着网络技术的发展,特别是Internet和Intranet技术的飞快发展,使得非结构化数据的数量日趋增大。这时,主要用于管理结构化数据的关系数据库的局限性暴露地越来越明显。因而,数据库技术相应地进入了“后关系数据库时代”,发展进入基于网络应用的非结构化数据库时代。

  我国非结构化数据库以北京国信贝斯(iBase)软件有限公司的IBase数据库为代表。IBase数据库是一种面向最终用户的非结构化数据库,在处理非结构化信息、全文信息、多媒体信息和海量信息等领域以及Internet/Intranet应用上处于国际先进水平,在非结构化数据的管理和全文检索方面获得突破。它主要有以下几个优点:

  (1)Internet应用中,存在大量的复杂数据类型,iBase通过其外部文件数据类型,可以管理各种文档信息、多媒体信息,并且对于各种具有检索意义的文档信息资源,如HTML、DOC、RTF、TXT等还提供了强大的全文检索能力。

  (2)它采用子字段、多值字段以及变长字段的机制,允许创建许多不同类型的非结构化的或任意格式的字段,从而突破了关系数据库非常严格的表结构,使得非结构化数据得以存储和管理。

  (3)iBase将非结构化和结构化数据都定义为资源,使得非结构数据库的基本元素就是资源本身,而数据库中的资源可以同时包含结构化和非结构化的信息。所以,非结构化数据库能够存储和管理各种各样的非结构化数据,实现了数据库系统数据管理到内容管理的转化。

  (4)iBase采用了面向对象的基石,将企业业务数据和商业逻辑紧密结合在一起,特别适合于表达复杂的数据对象和多媒体对象。

  (5)iBase是适应Internet发展的需要而产生的数据库,它基于Web是一个广域网的海量数据库的思想,提供一个网上资源管理系统iBase Web,将网络服务器(WebServer)和数据库服务器(Database Server)直接集成为一个整体,使数据库系统和数据库技术成为Web的一个重要有机组成部分,突破了数据库仅充当Web体系后台角色的局限,实现数据库和Web的有机无缝组合,从而为在Internet/Intranet上进行信息管理乃至开展电子商务应用开辟了更为广阔的领域。

  (6)iBase全面兼容各种大中小型的数据库,对传统关系数据库,如Oracle、Sybase、SQLServer、DB2、Informix等提供导入和链接的支持能力。

  通过从上面的分析后我们可以预言,随着网络技术和网络应用技术的飞快发展,完全基于Internet应用的非结构化数据库将成为继层次数据库、网状数据库和关系数据库之后的又一重点、热点技术。

  数据分类

  半结构化数据(semi-structured data)

  在做一个信息系统设计时肯定会涉及到数据的存储,一般我们都会将系统信息保存在某个指定的关系数据库中。我们会将数据按业务分类,并设计相应的表,然后将对应的信息保存到相应的表中。比如我们做一个业务系统,要保存员工基本信息:工号、姓名、性别、出生日期等等;我们就会建立一个对应的staff表。

  但不是系统中所有信息都可以这样简单的用一个表中的字段就能对应的。

  结构化数据

  就像上面举的例子。这种类别的数据最好处理,只要简单的建立一个对应的表就可以了。

  非结构化数据

  像图片、声音、视频等等。这类信息我们通常无法直接知道他的内容,数据库也只能将它保存在一个BLOB字段中,对以后检索非常麻烦。一般的做法是,建立一个包含三个字段的表(编号 number、内容描述 varchar(1024)、内容 blob)。引用通过编号,检索通过内容描述。现在还有很多非结构化数据的处理工具,市面上常见的内容管理器就是其中的一种。

  半结构化数据

  这样的数据和上面两种类别都不一样,它是结构化的数据,但是结构变化很大。因为我们要了解数据的细节所以不能将数据简单的组织成一个文件按照非结构化数据处理,由于结构变化很大也不能够简单的建立一个表和他对应。本文主要讨论针对半结构化数据存储常用的两种方式。

  先举一个半结构化的数据的例子,比如存储员工的简历。不像员工基本信息那样一致每个员工的简历大不相同。有的员工的简历很简单,比如只包括教育情况;有的员工的简历却很复杂,比如包括工作情况、婚姻情况、出入境情况、户口迁移情况、党籍情况、技术技能等等。还有可能有一些我们没有预料的信息。通常我们要完整的保存这些信息并不是很容易的,因为我们不会希望系统中的表的结构在系统的运行期间进行变更。

  储存方式

  化解为结构化数据

  这种方法通常是对现有的简历中的信息进行粗略的统计整理,总结出简历中信息所有的类别同时考虑系统真正关心的信息。对每一类别建立一个子表,比如上例中我们可以建立教育情况子表、工作情况子表、党籍情况子表等等,并在主表中加入一个备注字段,将其它系统不关心的信息和已开始没有考虑到的信息保存在备注中。

  优点:查询统计比较方便。

  缺点:不能适应数据的扩展,不能对扩展的信息进行检索,对项目设计阶段没有考虑到的同时又是系统关心的信息的存储不能很好的处理。

  用XML格式来组织并保存到CLOB字段中

  XML可能是最适合存储半结构化的数据了。将不同类别的信息保存在XML的不同的节点中就可以了。

  优点:能够灵活的进行扩展,信息进行扩展式只要更改对应的DTD或者XSD就可以了。

  缺点:查询效率比较低,要借助XPATH来完成查询统计,随着数据库对XML的支持的提升性能问题有望能够很好的解决。

时间: 2024-09-30 06:01:01

什么是结构化数据?什么是半结构化数据?的相关文章

大数据:释放应用价值,数据融合先行

文章讲的是大数据:释放应用价值,数据融合先行,我们所处的社会已经从IT(Information Technology)时代全面跨入DT(Data Technology)时代,数据渗透到当今每一个行业和业务职能领域,成为关键的生产要素之一.从Gartner发布的大数据技术成熟度曲线图中可以看出,大数据已不在是停留在概念层面,而是正式进入了产业化应用进程中.据统计,仅全球交通.教育.消费.电力.能源.健康与金融等7大重点领域的大数据应用潜在价值就在3.2万亿-5.4万亿元左右,大数据潜在发展空间巨大

大数据可能“说谎” 非结构化数据将呈现更丰富的世界

在2017年的下半年谈论大数据似乎已经没有什么新意,甚至有些令人生厌了,毕竟这个词在中国已经流行太久,形形色色的产品.平台和公司早已贴满了大数据标签,而真正有价值的创新永远都是少数. 行业对于大数据的认知开始变得更加理性和客观,这是一种成熟的表现.但如果因此就认为大数据时代已经进入风平浪静的"发展期",那么我们很可能会错过一场更加波澜壮阔的变革. 被忽视的非结构化数据 在过去几年,大数据产业更多关注的是如何处理海量.多源和异构的数据,并从中获得价值,而其中绝大多数都是结构化数据.不可否

【数据蒋堂】非结构化数据分析是忽悠?

大数据概念兴起的同时也带热了非结构化数据分析.传说一个企业中80%的数据都是非结构化数据,如果按占据空间来算,这个比例大体不假,毕竟音视频这类数据真地很大.有这么大的数据量,需要进行分析是很自然的事了,而要分析当然就要有相应的技术手段了. 那为什么说非结构化数据分析技术是忽悠呢? 不存在通用的非结构化数据计算技术 非结构化数据五花八门,有声音图像.文本网页.办公文档.设备日志.....:每类数据的都有各自的计算处理手段,比如语音识别.图像比对.文本搜索.图结构计算等等,但是并不存在一种适用于所有

浪潮Smart Rack为用户提供半定制化硬件平台

 6月3日,第七届中国云计算大会在京召开.此次大会以"促进云计算创新发展培育信息产业新业态"为主题,进一步推进云计算技术创新与产业发展.印象中,浪潮是一个做服务器的厂商,但此次浪潮副总裁张晖却带来了<软件定义一切>的主题演讲,分享了浪潮在近几年围绕云计算.大数据的实践. 云计算.大数据对产业转型有着深刻的影响,张晖强调,BAT擅长公有云,浪潮擅长的则是私有云.目前浪潮的云计算战略由四部分组成:云中心.云服务.云数据和云伙伴. 浪潮副总裁张晖 云中心:为云中心提供相应的产品和

mysqldump 只导入数据或只导结构

[size=small]mysqldump只导出数据或只导出表结构   1.备份数据库  #mysqldump -u 用户名 -p 数据库名 > 导出文件名  2.导出表结构  #mysqldump -u 用户名 -p -d 数据库名 --add-drop-table 表名 > 导出文件名  ##-d:表示没有数据,--add-drop-table 在每个creat语句之前增加一个drop table  3.导出表  #mysqldump -u 用户名 -p 数据库名 表名> 导出文件名

c语言-链表中的节点的数据域可以直接插入结构体吗?打印时要怎么写呢?

问题描述 链表中的节点的数据域可以直接插入结构体吗?打印时要怎么写呢? 链表中的节点的数据域可以直接插入结构体吗?如下: struct student { int num; char name[10]; int grade; }; struct stunode { struct student; struct stunode * next; }; 如果这样可以的话,打印时要怎样写呢?(见最后几行,事实证明这样写是不可能成功的...)求指点 #include<stdio.h> #include&

如何在传输结构体数据的同时,完成结构体中变量数据的采集?

问题描述 最近在做一个项目,自己负责的主要工作是将定义好的结构体中的变量的数据传出来,以及matlab计算后传回来的数据进行解算并显示结构体1:传递初始化数据-没有问题结构体2:实时传递摇杆采集的数据-有问题结构体3:传递自动飞行数据-没有问题结构体4:接受matlab结算的数据,并进行显示(暂时还没有测试)现在遇到的问题,主要是:我需要实时传递摇杆采集的数据并传递出去这是按钮事件,当点击按钮之后开始传递结构体的数据SendUAV_ManualPilotpSendUAV_ManualPilot;

mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值

问题描述 mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值 要实现的例子: 表A (a0,a1) 拥有数据100条 现在要将表结构修改为,A(a0,a1,a2),但是不想重新输入数据 所以,想先从旧的表中到处数据,然后导入新表,字段a2取默认值或固定值 求解决方案!! 解决方案 在各位大神的提示下,经过测试,alter table A add a2 数据类型 default 值 可以更改表结构 因此呢,我打算先把原表更改结构,导出数据,然后再将原表恢复原样 这样很安全了,不会影响

fwrite-关于 VC++ 将 数据分成 2 半 输入到2个文件

问题描述 关于 VC++ 将 数据分成 2 半 输入到2个文件 数据的定义是: char AA[12012120]={0} ; 然后 在 fwrite 函数中, 新建一个文件并打开,以"wb" 方式 写入 然后 有一个 DWORD icount ; 这样一个定义是 数据的总长度(字节) 然后 ,请问能不能有什么办法,将这个数据 分成2半,写入2 个文件, 如果 fwrite达不到这个效果,请问还有其它函数可以达到吗 因为数据非常大,大的时候有几百M, 所以, 能不能以 数据偏移的方式,