数据库技术发展的新方向-非结构化数据

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库技术发展的新方向——非机构化数据

1 什么是非结构化数据库

在信息社会,所有信息大体上可以分为两类:一类信息能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号;另一类信息根本无法用数字或者统一的结构表示,如文本、图像、声音乃至网页等,我们称之为非结构化数据。非结构化数据包括结构化数据,但又不止是结构化数据;结构化数据属于非结向化数据,是非结构化数据的特例。

所谓非结构化数据库,是指数据库的变长记录由若干不可重复和可重复的字段组成,而每个字段又可由若干不可重复和可重复的子字段组成。简单的说,非结构化数据库就是字段数和字段长度可变的数据库。

2 为什么需要非结构化数据库

传统关系数据库,通过引入数学领域的关系模型及关系代数和关系演算,经过几十年的应用和发展,奠定了自己的优势。但随着网络的发展,关系数据库越来越显示出不足的一面。到了20世纪90年代,当关系数据库还满足于用户连接到大型主机上的数据库进行联机检索时,因特网的出现已经可以把超文本文件传送到用户的浏览器里了。起初,WWW只支持较简单的文挡,随着应用需求的不断提高和技术的发展,它不仅可以支持文字、图形、图像、声音等多媒体信息,还可以支持一些较为复杂的对象,比如电子表棉对象。但随着数据量的增大,显然只靠静态页面就捉襟见肘了。让页面动起来的想法由此应运而生,这时迫切需要数据库在动态页面中扮演主角。

而此前,关系数据库要么限于桌面,用文件方式的共享来实现局域网内的使用;要么是使用各种关系数据库厂商开发的专用客户端软件和工具。尽管ODBC,JDBC,OLE DB等解决了不同数据库之间的接口,但是我们可以说关系数据库从设计之初并没有也不可能考虑到以HTTP为基础、HTML为文件格式的因特网的需求.只是在因特网出现后才作出相应的调整,因此关系数据库在基于因特网应用时由于结构模型等原因的限制,不能与因特网完全融合,需在因特网与数据库之间加人大量的中间件,从而在无形中加大了数据库基于网络应用的难度。同时,由于关系数据库从一开始就没有考虑网络时代的应用需求,因而对于网络环境下WWW 应用,如各种非结构化文挡信息、多媒体信息以及全文检索需求显得有些力不从心。虽然后来关系数据库对于这些需求作出了一些适应性调整,如增加数据库的面向对象成分以增加处理多种复杂数据类型的能力,增加各种中间件以扩展基于WWW应用能力,但对于网络环境下WWW应用不可或缺的检索效率、全文检索能力等却无法解决。关系数据库的基于中间件的解决方案又给WWW应用带来了新的网络瓶颈,应用服务器端由于与数据库频繁交互,因其本身的效率和数据库检索的效率造成WWW应用在服务器端的阻塞。

非结构化数据库就是针对关系数据库模型过于简单,不便表达复杂的嵌套需要以及支持数据类型有限等局限,从数据模型入手而提出的全面基于因特网应用的新型数据库理论。非结构化数据库主要是针对非结构化数据应运而生的,与目前流行的关系数据库相比,其最大区别在于它突破了关系数据库结构定义不易改变和数据定长的限制,支持重复字段、子字段以及变长字段并实现了对变长数据和重复字段进行处理和数据项的变长存储管理,在处理连续信息(包括全文信息)

和非结构信息(重复数据和变长数据)中有着传统关系型数据库所无法比拟的优势。

3 非结构化数据库的特点与优势

3.1 灵活的非结构化数据结构

非结构化数据库也是建立在三维表的基础之上的,因此非结构化数据库不能称为非关系型数据库,但在数据结构上,它又与关系型数据库有着很大的不同。

1)关系数据库建立在一个严格的二维表上,在列的维度上,对于每个属性其长度和类型是事先定义并且很难扩展的;在行的维度上,每一条记录(行为record)都不完全相同。非结构化数据库的二维表却不是严格的,在列的维度上,对于每个属性是可以伸展的,其属性的长度是可变的。

2)关系数据库以二维表的方式管理数据,数据以一条条记录的方式存储,每一记录内部包括许多字段,字段名不可重复,对每一记录的每一字段具有惟一值,字段中不支持子字段。在非结构化数据库中,字段内容是可重复的,这表现在两个方面:一是一个字段支持重复字段,即字段在列这个级别上是可重复的;二是在同一个字段内部允许出现不同的子字段,即字段在行级别上,内容是分层次的。总之,对于一个字段,可以在行、列方向上有多个值,即非结构化数据库具有支持重复字段(多值)、子字段(子项)的能力。这种能力,使得非结构化数据库可以在记录中实现二维嵌套,避免由于关系(二维表)连接导致的系统性能问题。

3)非结构化数据库可以在一张表中压缩关系数据库中一对多的关系,实质上是一个非结构化数据库字段可以存放一个关系数据库的一张表。也就是说原来关系数据库多张表完成的事情,非结构化数据库在一张表中就可以完成。关系数据库在处理多对多关系时需要对数据库进行拆分,建立中间库,同样非结构化数据库在处理类似的情况也需要拆分表。

由此可见,非结构化数据库的表已经突破了关系数据库的范式(xNF)限制,因此需要一个新的命名来反映同关系数据库的区别。非结构化(No-Structure)就因此得名。

3.2 丰富的数据类型,并支持外部文件

关系数据库在数据类型上主要管理各种字符型、数值型数据,虽然后来也提供了对于一些超长文本、图像、声音等多媒体以及面向对象的扩充,但对这些数据类型的扩充仅仅停留在简单的存储与输出上,对于数据的深层次的检索或其他需求必须通过特别的开发和处理,必然对系统的效率产生负面影响。

非结构化数据库在数据类型上不仅可以支持字符型、数值型数据,而且由于其强大的外部文件支持功能,更可以支持任何文件类型,如超长文本、图像、声音等扩展型数据类型,同时,非结构化数据库对于文本、RTF、超文本文档、DOC 等具有检索意义的外部文件类型还能提供强大的索引和全文检索功能。

3.3 高度灵活的索引方式,支持全文检索

数据库最核心的技术之一就是数据的检索技术。对于任何一个数据库系统,数据检索都是其核心内容和精髓所在,而进行数据检索之前必须建立索引。只有建立了严密的索引,才能使数据库强大的检索功能得以发挥。数据库索引方式的差异决定了数据库的检索方式及检索能力。

现有关系数据库支持的索引只限于单字段索引、复合索引(多字段索引)等几种方式。对数据库的检索主要基于结构化查询语言(SQL),用户通过构造句SQL 查询表达式和设置各种查询条件,实现对关系数据库的检索,因为受到关系数据

相关文档
最新文档