文档库 最新最全的文档下载
当前位置:文档库 › XML与关系数据库

XML与关系数据库

XML与关系数据库
XML与关系数据库

XML与关系数据库

前面我们讲到了XML的数据存取机制,从一个较高的层面上分析了数据存取的多种方式。作为其中的一种,数据库的数据存取机制似乎倍受青睐,但我们并未对此作比较深入的探讨,这一节里我们对XML与数据库的关系进行更进一步的详细分析。

我们知道,关系数据库提供了对于大批量数据的有效存储管理和快速信息检索、查询的功能。从体系结构上看,数据库技术的发展历经了网络型数据库、层次型数据库、关系数据库、面向对象数据库。虽然面向对象数据库融入了面向对象技术,但是到目前为止,在各个领域使用最广的还是关系数据库。关系数据库管理系统(RDBMS)采用二维表格作为存储数据的模型,如下图10-1所示,

字段字段字段

图10-1 关系数据库二维表

表格由行和列组成,一般情况下,列被称作“字段”,用于表示组成数据有效信息的属性,而行则用于指示一条完整的数据记录。由于数据间的相关性可以通过表与表之间关键字(外键)来关联,由此产生了“关系”类型数据库的由来。

关系数据库有自己的查询语言——结构化查询语言(Structured Query Languag e,SQL)。SQL最初由IBM提出,后经不断发展,已于1986年成为业界标准并被广泛采用。SQL 是非过程性的。当SQL语句传送到数据库服务器后,服务器返回满足条件的结果或结果集(视具体查询项目而定)。一般情况下,大多数支持SQL 的服务器系统均采用客户/服务器架构,现在又发展到更为先进的分布式处理架构。这样一来,SQL服务器既可以接收客户应用程序发送的查询请求,也可以接收其他服务器的查询请求,这些服务器可能是其他SQL服务器,也可以是XML服务器。

就数据存储而言,关系型数据库已经是相当成熟的应用,从80年代商用产品出现至今,早已深入企业储存及数据应用的核心。相较之下,XML部分技术尚且在发展阶段。关系型数据库是透过详细定义和控制结构化数据的方式,达到数据增、删、查询的目的。因此它是以字段数据型态的精确定义,将数据以列的方式一笔笔储存,再透过数据表之间的互相关联,建构出数据和数据结合后的复杂结果,因此

分布式数据库的索引技术研究

分布式数据库的索引技术研究 摘要:索引是分布式数据库中的一个重要对象。通过对分布式数据库中的索引管理技术的分析,论述了分布式数据库中索引的概念、特点、分类及使用原则等。分析了分布式数据库设计中的统一索引服务。在文章的最后部分给出了创建合理索引的一些建议。 关键词:分布式数据库索引检索 1索引的概念 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。表的存储由两部分组成,一部分用来存放数据页面,另一部分存放索引页面。 2索引的创建 2.1 索引的创建 创建索引有多种方法,这些方法包括直接创建索引的方法和间接创建索引的方法。直接创建索引,例如使用CREATE INDEX语句或者使用创建索引向导,间接创建索引,例如在表中定义主键约束或者唯一性键约束时,同时也创建了索引。虽然,这两种方法都可以创建索引,但是,它们创建索引的具体内容是有区别的。 使用CREATE INDEX语句或者使用创建索引向导来创建索引,这是最基本的索引创建方式,并且可以定制创建出符合自己需要的索引。在使用这种方式创建索引时,可以使用许多选项,例如指定数据页的充满度、进行排序、整理统计信息等,这样可以优化索引。使用这种方法,可以指定索引的类型、唯一性和复合性,也就是说,既可以创建聚簇索引,也可以创建非聚簇索引,既可以在一个列上创建索引,也可以在两个或者两个以上的列上创建索引。 通过定义主键约束或者唯一性键约束,也可以间接创建索引。主键约束是一种保持数据完整性的逻辑,它限制表中的记录有相同的主键记录。在创建主键约束时,系统自动创建了一个唯一性的聚簇索引。虽然,在逻辑上,主键约束是一种重要的结构,但是,在物理结构上与主键约束相对应的结构是唯一性的聚簇索引。换句话说,在物理实现上,不存在主键约束,而只存在唯一性的聚簇索引。同样,在创建唯一性键约束时,也同时创建了索引,这种索引则是唯一性的非聚簇索引。因此当使用约束创建索引时,索引的类型和特征基本上都已经确定了,由用户定制的余地比较小。 3分布式数据库设计中的统一索引服务

3D GIS空间索引技术

3D GIS空间索引技术 3DGIS是新一代GIS技术的重要分支,是进行全方位、多层次、多要素时空分析的基础,开发结构简单、功能完善的真3DGIS软件是当前GIS研究人员的重要目标。3DGIS需要管理大量的三维空间对象,且常常需要根据空间位置对这些对象进行查询、检索和显示操作。为了处理这类空间操作,传统的关系数据库搜索方法需要花费大量的磁盘访问时间和空间运算时间。为了提高检索效率,传统的关系数据库一般都建立一系列的索引机制,如B+树等。目前常用的索引机制多是一维索引,无法有效处理3DGIS空间数据库中的三维空间地理实体。因此,必须为3DGIS空间数据库建立专门的索引机制——空间索引。 空间索引是指根据空间要素的地理位置、形状或空间对象之间的某种空间关系,按照一定规律排列的数据结构,它介于空间操作算法和空间对象之间,筛选、排除与特定的空间操作无关的空间对象。空间索引机制是快速、高效地查询、检索和显示地理空间数据的基础,其性能优劣直接影响GIS空间数据库的性能,关系到3DGIS软件系统的整体运行状况。 一、三维空间索引简介 3DGIS是2DGIS在三维空间内的延展,是布满整个三维空间内的GIS,它与2DGIS的差异主要体现在空间位置的确定、空间拓扑关系的描述与空间分析的延展方向上。3DGIS将三维空间坐标(x,y,z)作为独立的参数来构建空间实体对象模型,能够实现空间实体的真三维可视化,以立体造型来展现空间地理现象,它不仅能够表达空间实体之间的平面关系,还能够表达其垂向关系,在此基础上进行复杂的三维空间分析与操作。 在GIS由二维扩充到三维后,其处理的空间对象也由二维空间中的“点、线、面”扩充到三维空间中的“点、线、面、体”。2DGIS对平面空间的“有限-互斥-完整”剖分是基于面的划分,而3DGIS对三维空间的“有限-互斥-完整”剖分则是基于体的划分。在3DGIS 空间数据库中,空间实体的表达形式复杂,各种空间操作不仅计算量大,而且多具有面向邻域的特点。因此,在3DGIS中,由于空间维数的增加和空间实体关系复杂度的提高而导致三维空间数据的海量性。海量数据的存储与管理需要更加高效的空间数据结构和空间索引机制。目前成熟的空间索引算法多集中在二维空间索引上,如网格索引、四叉树索引等,而对3DGIS的空间索引问题研究较少。对低维空间数据而言,二维空间索引的索引效率较高,并且多数可以进行扩展以支持高维数据集。但应用实践显示,仅仅简单地将二维空间索引维数增加到三维,其效率并不高,且很多索引结构都是针对特定空间查询操作而设计的,不具有通用性。因此,需要研究3DGIS所使用的空间索引技术。 设计3DGIS空间索引面临的主要困难是:三维空间实体的空间关系比较复杂,有时甚至呈一种相对无序的状态。从本质上看,3DGIS对空间索引的要求与2DGIS基本类似,但在数据采集、数据库维护、数据操作、界面设计等方面要比2DGIS复杂得多。目前的三维空间索引大多是从二维空间索引的基础上发展而来的。与二维空间索引相似,三维空间索引方法也是基于空间数据的层次化聚类原则,结构上类似于早期用于数据检索的B+树:数据矢量存储在数据节点,空间位置邻近的矢量尽可能存储于同一节点。数据节点之间以层次化目录结构来组织,每一个目录节点都指向下一级的一个子树。 目前,索引结构大都采用平衡树的概念,即从根节点到所有数据节点的访问长度(索引高度)相同(但在插入和删除操作后可能会有改变),在树的形状上表现为高度一致性。从任意节点到数据节点的访问长度称为节点的级,数据节点对应第0级。 二、空间索引结构分类 根据空间索引结构的演化过程,空间索引方法可分为4大类,即基于二叉树的索引技术、基于B树的索引技术、基于Hashing的格网技术和空间目标排序法。

基于空间数据库的几种常用空间索引技术研究

Geomatics Square NO.6 2011 (Total 113) 科技交流 基于空间数据库的几种常用空间索引技术研究 白航 (广东省国土资源测绘院,广州510500) 摘要:空间数据库是地理信息系统(GIS)的基础和核心,空间索引技术通过对存储介质上数据位置信息的描述来提高数据查询、检索及获取效率;其好坏直接影响空间数据库系统的可用性和可扩展性。本文介绍了几种常见的空间数据库索引技术:简单格网空间索引、K-D 树空间索引、R 树空间索引、四叉树空间索引等;系统总结了空间数据库索引技术的研究进展,探讨了其发展前景和存在问题。 关键词:空间数据库;空间索引;GIS 1.引言 空间数据库技术是随着GIS (地理信息系统)的发展而兴起的一门新技术,复杂的地理环境和海量、多维、结构复杂的空间数据导致了基于空间数据库查询、检索及空间计算的开销一般要比关系数据库大的多,特别是查询语句中条件谓词包含一些对空间数据操作或连接的一些函数,这些函数的计算开销远比数值计算或字符串比较等要大。若使用传统的关系型数据库管理系统(DBMS)来管理空间数据,其存在固有缺陷,用顺序扫描的方法查询的效率非常低。因此为了提高查询效率,采用空间索引技术十分必要。 2.空间数据库索引技术 空间数据用来表示空间物体的位置、形状、大小和分布特征等方面信息,适用于描述二维、三维或多维分布的区域现象。空间数据库是计算机物理存储介质上存储的地理空间数据的总和。数据库的索引机制可以用来快速访问某条特定查询所请求的数据,而无需遍历整个数据库。传统的关系数据库为了提高检索效率,一般都会建立一系列的索引机制,如B 树等,但这些都是一维索引,无法处理空间数据库中的二维和多维的 空间数据。 空间数据库索引技术是通过对存储在介质上的数据位置信息的描述,来提高空间数据库的查询性能和数据获取效率,索引技术的好坏直接影响到空间数据库系统的成败。空间数据索引作为一种辅助性的空间数据结构,介于空间操作算法和地理对象之间,通过筛选、排除大量与特定空间操作无关的地理对象,缩小了空间数据的操作范围,从而提高空间操作的速度和效率。 3.几种常见的空间索引技术 3.1简单格网空间索引 格网空间索引的原理简单,即把目标空间实体集合所在的空间范围划分成一系列大小相同的格。如图3-1所示,每一个格相当于一个桶(bucket ),记录落入该格内的空间实体的编号。基于格网索引的查找思路也较简单,在数据分布较均匀的情况下,查询效率较高。但格网的大小直接影响了索引表的大小,格网太小,索引表会急剧膨胀,维护索引表本身的花费增加,查询效率随之下降;反之,落在一个格内的空间实体可能会过多;因此格的大小严重制约着查询效率的提高。 8

数据库索引的作用及实例

1.1.索引作用 2.在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的 快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 3. 4.例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每 个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。 5. 6.SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 7. 8.此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况 下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢。 9. 10. 如果对每个表进行索引,就能极大地加速查询进程。利用索引的查询 处理如下。 11. 12.(1)从表t1中选择第一行,查看此行所包含的数据。 13. 14.(2)使用表t2上的索引,直接定位t2中与t1的值匹配的行。类似,利 用表t3上的索引,直接定位t3中与来自t1的值匹配的行。 15. 16.(3)扫描表t1的下一行并重复前面的过程,直到遍历t1中所有的行。 17. 18. 在此情形下,仍然对表t1执行了一个完全扫描,但能够在表t2和t3 上进行索引查找直接取出这些表中的行,比未用索引时要快一百万倍。 19. 20. 利用索引,MySQL加速了WHERE子句满足条件行的搜索,而在多表连 接查询时,在执行连接时加快了与其他表中的行匹配的速度。 21. 22.2. 创建索引 23.在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX 或ALTER TABLE来为表增加索引。 24. 25.1.ALTER TABLE 26.ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。 27. 28. 29. 30.ALTER TABLE table_name ADD INDEX index_name (column_list) 31. 32.ALTER TABLE table_name ADD UNIQUE (column_list)

常见数据库加密技术对比

常见数据库加密技术对比 作者:安华金和孙峥 数据库加密作为近年来兴起的数据库安防技术,已经被越来越多的人所重视。这种基于存储层加密的防护方式,不仅可以有效解决数据库明文存储引起的泄密风险,也可以防止来自内部或者外部的入侵及越权访问行为。 从技术手段上来看,现今数据库加密技术主要有三大类,分别是前置代理及加密网关方式、应用层加密方式以及后置代理方式。这三类技术各自的特点如何,彼此之间孰优孰劣,下文详尽介绍。 一. 前置代理及加密网关数据库加密技术 该数据库加密技术思路是在数据库之前增加一道安全代理服务,对数据库访问的用户必须经过该安全代理服务,在此服务中实现如数据加解密、存取控制等安全策略;然后安全代理服务通过数据库的访问接口实现数据在库中的加密存储。安全代理服务存在于客户端应用与数据库存储引擎之间,负责完成库中数据的加解密工作,加密数据存储在安全代理服务中。 这种数据库加密技术也会存在一些问题和限制: 1)由于在安全增强代理中需要存储加密数据,因此要解决与数据库存储数据的一致性问题,这基本不可实现。 2)数据的联合检索问题:由于在数据库内外都存在数据,这些数据的联合检索将变得很困难;SQL语法的完全兼容也非常困难。 3)开发无法透明问题:数据库协议虽然存在标准,但事实上每个不同的数据库版本都会进行若干变更、扩展和增强,使用了这些特性的用户必须进行改造。同时在安全代理中对数据库通讯协议的模拟非常困难。 4)数据库的优化处理、事务处理、并发处理等特性都无法使用:查询分析、优化处理、事务处理、并发处理工作都需要在安全增强器中完成,无法使用数据库在并发处理和查询优化上的优势,系统的性能和稳定性更多地依赖于安全代理; 5) 此种数据库加密技术对于对存储过程、触发器、函数等存储程序的实现支持也非常困难。

空间数据多级索引结构的算法实现和分析

《空间数据组织与分析》 结课论文 题目:多级空间索引算法分析 学院:研究生学院 专业:大地测量学与测量工程 班级:硕研12级3班 姓名:张鼎凯 学号:2012020344 日期:2012年12月05日

摘要:空间数据库的索引是提高空间数据库存储效率和空间检索性能的关键技术。介绍了空间数据库中建立索引的常用技术,给出了一种多级空间索引,详细讨论了该索引的建立算法以及应用该索引的检索算法,并进行了算法分析。 关键词:计算机软件;间数据库;空间索引;空间检索;算法分析 1 空间索引技术简介 空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。作为一种辅助性的空间数据结构,空间索引介于空间操作算法和空间对象之间,它通过筛选作用,大量与特定空间操作无关的空间对象被排除,从而提高空间操作的速度和效率。空间数据一般是是多维的,在此主要介绍二维空间数据的索引。近年来,国外学者提出应用空间基数分区对空间数据进行管理,已得出了几种空间数据索引结构。例如Robinson提出的K-D-B 树[2],Guttman 提出R 树结构[3],Freeston 提出的BANG 文件[4],Beckmann 提出的R*树结构[5]等。国内则学者提出了QR-树[6],网格索引[7][8]等索引结构,并进行了有关索引结构的性能分析和查询优化研究[8][9]。众多的索引结构可以说各有优缺点。总的来说,可分为以四叉树为代表的网格文件结构和以R 树及其变种为代表的动态索引技术。 1.1四叉树结构 四叉树索引是栅格文件索引技术的代表。栅格文件索引技术的基本思想是将一张地图规则地划分成多个互不相交的栅格,且要求所有栅格覆盖全地图,然后再利用栅格对地图上的空间对象进行索引。如K-D树、K-D-B 树、四叉树、八叉树等均基于此思想。我们在此主要介绍一下四叉树空间索引技术。四叉树空间索引是将一张地图逐步四等分,且依次编号,如图1(a)所示,其层次由用户依需要而定。划分的结果可生成如图1(b)的四叉树结构。从此结构中可确定被索引类中每个对象实例的被索引属性值属于那一个最小范围块,并将其ID 加到该最小范围块所带的链表中。查询时根据用户关心的区域,选中区域所在最小范围块中的对象。四叉树的查询在最坏情况下效率较低,而且四叉树的动态性较差。建立索引后,如果又扩大地图范围增加新对象时,必须重新建立四叉树索引,因而缺乏灵活性。

数据库索引原理

一、引言 对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree 我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是B+Tree,Oracle及Sysbase使用的是B-Tree。所以在最开始,简单地介绍一下B-Tree。 B-Tree不同于Binary Tree(二叉树,最多有两个子树),一棵M阶的B-Tree满足以下条件:1)每个结点至多有M个孩子; 2)除根结点和叶结点外,其它每个结点至少有M/2个孩子; 3)根结点至少有两个孩子(除非该树仅包含一个结点); 4)所有叶结点在同一层,叶结点不包含任何关键字信息; 5)有K个关键字的非叶结点恰好包含K+1个孩子; 另外,对于一个结点,其内部的关键字是从小到大排序的。以下是B-Tree(M=4)的样例: 对于每个结点,主要包含一个关键字数组Key[],一个指针数组(指向儿子)Son[]。在B-Tree 内,查找的流程是:使用顺序查找(数组长度较短时)或折半查找方法查找Key[]数组,若找到关键字K,则返回该结点的地址及K在Key[]中的位置;否则,可确定K在某个Key[i]和Key[i+1]之间,则从Son[i]所指的子结点继续查找,直到在某结点中查找成功;或直至找到叶结点且叶结点中的查找仍不成功时,查找过程失败。 接着,我们使用以下图片演示如何生成B-Tree(M=4,依次插入1~6): 从图可见,当我们插入关键字4时,由于原结点已经满了,故进行分裂,基本按一半的原则进行分裂,然后取出中间的关键字2,升级(这里是成为根结点)。其它的依类推,就是这样一个大概的过程。

数据库索引研究_于绍娜

2010年2月第2期 电子测试 ELECTRONIC TEST Feb.2010 No.2 数据库索引研究 于绍娜1,李霞丽1,胥桂仙1,杨智君2 (1. 中央民族大学,北京 100081;2. 中国计量科学研究院,北京 100013) 摘要:在数据库系统应用中,要进行频繁的数据查询操作。索引是与表或视图关联的磁盘上结构,有效的使用索引,可以快速找到表或视图中特定信息,减少系统的响应时间。本文介绍了索引的概念、分类、使用和维护,并就MS SQL SERVER索引进行了一些分析和实践。 关键词:聚集索引;非聚集索引;筛选索引;B树 中图分类号:TP311 文献标识码:A Study on database index Yu Shaona1, Li Xiali1, Xu Guixian1, Yang Zhijun2 (1. Minzu University of China, Beijing 100081;2. National Institute of Metrology P.R.China, Beijing 100013) Abstract: In the application of database system, data query is done frequently. Index is a disk structure associating with table or view. Using index in database effectively, it’s good for finding information fast in the table or view and reducing system’s answering time. In this paper, we introduce classify, using and maintenance of index. In addition, we analysis and practice the index in MS SQL SERVER. Keywords: clustered index;nonclustered index;Filtered Indexes;B tree 0 引言 索引中保存着表或视图中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置。通过索引查询,可以减少为返回查询结果集而必须读取的数据量。索引还可以强制表中的行具有唯一性,从而确保表数据的数据完整性。创建设计良好的索引以支持查询,可以显著提高数据库查询和应用程序的性能。但是,索引并不总是提高系统的性能,表中建有大量索引会影响增、删、改语句的性能,因为当表中的数据更改时,所有索引都须进行适当的调整。因此,合理的设计索引对于提高数据库的性能具有重要意义。 1 索引的概念 索引包含由表或视图中的一列或多列生成的键。键存储在一个B树结构中,使SQL Server可以快速有效地查找与键值关联的行。 MS SQL SERVER中数据存储的基本单位是页(Page),磁盘I/O操作在页级执行。SQL Server 数据页和索引页都是8K字节大。这意味着与8KB数据页相比,索引页可以有效地将与更多行相关的信息压缩到一个8KB页。当SQL查询要求某个表中

相关文档