
数据库 *** 作中,CRUD的“R”是查询的意思
CRUD是指在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本 *** 作功能。
英文释义
In computing, CRUD is an acronym for create, retrieve, update, and delete It is used to refer to the basic functions of a database or persistence layer in a software system
C reate new records
R etrieve existing records
转载R-Tree空间索引算法的研究历程和最新进展分析2008-07-09 23:15摘要:本文介绍了空间索引的概念、R-Tree数据结构和R-Tree空间索引的算法描述,并从R-Tree索引技术的优缺点对R-Tree的改进结构——变种R-Tree进行了论述。最后,对R-Tree的最新研究进展进行了分析。
关键词:空间索引技术;R-Tree;研究历程;最新进展
当前数据搜索的一个关键问题是速度。提高速度的核心技术是空间索引。空间索引是由空间位置到空间对象的映射关系。当前的一些大型数据库都有空间索引能力,像Oracle,DB2。
空间索引技术并不单是为了提高显示速度,显示速度仅仅是它所要解决的一个问题。空间索引是为空间搜索提供一种合适的数据结构,以提高搜索速度。
空间索引技术的核心是:根据搜索条件,比如一个矩形,迅速找到与该矩形相交的所有空间对象集合。当数据量巨大,矩形框相对于全图很小时,这个集合相对于全图数据集大为缩小,在这个缩小的集合上再处理各种复杂的搜索,效率就会大大提高。
所谓空间索引,就是指依据空间实体的位置和形状或空间实体之间的某种空间关系,按一定顺序排列的一种数据结构,其中包含空间实体的概要信息如对象的标识、外接矩形及指向空间实体数据的指针。简单的说,就是将空间对象按某种空间关系进行划分,以后对空间对象的存取都基于划分块进行。
1 引言
空间索引是对存储在介质上的数据位置信息的描述,用来提高系统对数据获取的效率。空间索引的提出是由两方面决定的:其一是由于计算机的体系结构将存贮器分为内存、外存 两种,访问这两种存储器一次所花费的时间一般为30~40ns,8~10ms,可以看出两者相差十 万倍以上,尽管现在有“内存数据库”的说法,但绝大多数数据是存储在外存磁盘上的,如果对磁盘上数据的位置不加以记录和组织,每查询一个数据项就要扫描整个数据文件,这种访问磁盘的代价就会严重影响系统的效率,因此系统的设计者必须将数据在磁盘上的位置加以记录和组织,通过在内存中的一些计算来取代对磁盘漫无目的的访问,才能提高系统的效率,尤其是GIS涉及的是各种海量的复杂数据,索引对于处理的效率是至关重要的。其二是GIS 所表现的地理数据多维性使得传统的B树索引并不适用,因为B树所针对的字符、数字等传统数据类型是在一个良序集之中,即都是在一个维度上,集合中任给两个元素,都可以在这个维度上确定其关系只可能是大于、小于、等于三种,若对多个字段进行索引,必须指定各个字段的优先级形成一个组合字段,而地理数据的多维性,在任何方向上并不存在优先级问题,因此B树并不能对地理数据进行有效的索引,所以需要研究特殊的能适应多维特性的空间索引方式。
1984年Guttman发表了《R树:一种空间查询的动态索引结构》,它是一种高度平衡的树,由中间节点和页节点组成,实际数据对象的最小外接矩形存储在页节点中,中间节点通过聚集其低层节点的外接矩形形成,包含所有这些外接矩形。其后,人们在此基础上针对不同空间运算提出了不同改进,才形成了一个繁荣的索引树族,是目前流行的空间索引。
R树是B树向多维空间发展的另一种形式,它将空间对象按范围划分,每个结点都对应一个区域和一个磁盘页,非叶结点的磁盘页中存储其所有子结点的区域范围,非叶结点的所有子结点的区域都落在它的区域范围之内;叶结点的磁盘页中存储其区域范围之内的所有空间对象的外接矩形。每个结点所能拥有的子结点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个结点对应一个磁盘页,当插入新的结点导致某结点要求的空间大于一个磁盘页时,该结点一分为二。R树是一种动态索引结构,即:它的查询可与插入或删除同时进行,而且不需要定期地对树结构进行重新组织。
2 R-Tree数据结构
R-Tree是一种空间索引数据结构,下面做简要介绍:
(1)R-Tree是n 叉树,n称为R-Tree的扇(fan)。
(2)每个结点对应一个矩形。
(3)叶子结点上包含了小于等于n 的对象,其对应的矩为所有对象的外包矩形。
(4)非叶结点的矩形为所有子结点矩形的外包矩形。
R-Tree的定义很宽泛,同一套数据构造R-Tree,不同方可以得到差别很大的结构。什么样的结构比较优呢?有两标准:
(1)位置上相邻的结点尽量在树中聚集为一个父结点。
(2)同一层中各兄弟结点相交部分比例尽量小。
R树是一种用于处理多维数据的数据结构,用来访问二维或者更高维区域对象组成的空间数据R树是一棵平衡树。树上有两类结点:叶子结点和非叶子结点。每一个结点由若干个索引项构成。对于叶子结点,索引项形如(Index,Obj_ID)。其中,Index表示包围空间数据对象的最小外接矩形MBR,Obj_ID标识一个空间数据对象。对于一个非叶子结点,它的索引项形如(Index,Child_Pointer)。 Child_Pointer 指向该结点的子结点。Index仍指一个矩形区域,该矩形区域包围了子结点上所有索引项MBR的最小矩形区域。一棵R树的示例如图所示:
3 R-Tree算法描述
算法描述如下:
对象数为n,扇区大小定为fan。
(1)估计叶结点数k=n/fan。
(2)将所有几何对象按照其矩形外框中心点的x值排序。
(3)将排序后的对象分组,每组大小为 fan,最后一组可能不满员。
(4)上述每一分组内按照几何对象矩形外框中心点的y值排序。
(5)排序后每一分组内再分组,每组大小为fan。
(6)每一小组成为叶结点,叶子结点数为nn。
(7)N=nn,返回1。
4 R-Tree空间索引算法的研究历程
1 R-Tree
多维索引技术的历史可以追溯到20世纪70年代中期。就在那个时候,诸如Cell算法、四叉树和k-d树等各种索引技术纷纷问世,但它们的效果都不尽人意。在GIS和CAD系统对空间索引技术的需求推动下,Guttman于1984年提出了R树索引结构,发表了《R树:一种空间查询的动态索引结构》,它是一种高度平衡的树,由中间节点和页节点组成,实际数据对象的最小外接矩形存储在页节点中,中间节点通过聚集其低层节点的外接矩形形成,包含所有这些外接矩形。其后,人们在此基础上针对不同空间运算提出了不同改进,才形成了一个繁荣的索引树族,是目前流行的空间索引。
2 R+树
在Guttman的工作的基础上,许多R树的变种被开发出来, Sellis等提出了R+树,R+树与R树类似,主要区别在于R+树中兄弟结点对应的空间区域无重叠,这样划分空间消除了R树因允许结点间的重叠而产生的“死区域”(一个结点内不含本结点数据的空白区域),减少了无效查询数,从而大大提高空间索引的效率,但对于插入、删除空间对象的 *** 作,则由于 *** 作要保证空间区域无重叠而效率降低。同时R+树对跨区域的空间物体的数据的存储是有冗余的,而且随着数据库中数据的增多,冗余信息会不断增长。Greene也提出了他的R树的变种。
3 R树
在1990年,Beckman和Kriegel提出了最佳动态R树的变种——R树。R树和R树一样允许矩形的重叠,但在构造算法R树不仅考虑了索引空间的“面积”,而且还考虑了索引空间的重叠。该方法对结点的插入、分裂算法进行了改进,并采用“强制重新插入”的方法使树的结构得到优化。但R树算法仍然不能有效地降低空间的重叠程度,尤其是在数据量较大、空间维数增加时表现的更为明显。R树无法处理维数高于20的情况。
4 QR树
QR树利用四叉树将空间划分成一些子空间,在各子空间内使用许多R树索引,从而改良索引空间的重叠。QR树结合了四叉树与R树的优势,是二者的综合应用。实验证明:与R树相比,QR树以略大(有时甚至略小)的空间开销代价,换取了更高的性能,且索引目标数越多,QR树的整体性能越好。
5 SS树
SS树对R树进行了改进,通过以下措施提高了最邻近查询的性能:用最小边界圆代替最小边界矩形表示区域的形状,增强了最邻近查询的性能,减少将近一半存储空间;SS树改进了R树的强制重插机制。当维数增加到5是,R树及其变种中的边界矩形的重叠将达到90%,因此在高维情况(≥5)下,其性能将变的很差,甚至不如顺序扫描。
6 X树
X树是线性数组和层状的R树的杂合体,通过引入超级结点,大大地减少了最小边界矩形之间的重叠,提高了查询效率。X树用边界圆进行索引,边界矩形的直径(对角线)比边界圆大,SS树将点分到小直径区域。由于区域的直径对最邻近查询性能的影响较大,因此SS树的最邻近查询性能优于R树;边界矩形的平均容积比边界圆小,R树将点分到小容积区域;由于大的容积会产生较多的覆盖,因此边界矩形在容积方面要优于边界圆。SR树既采用了最小边界圆(MBS),也采用了最小边界矩形(MBR),相对于SS树,减小了区域的面积,提高了区域之间的分离性,相对于R树,提高了邻近查询的性能。
5 R-Tree空间索引算法的最新研究
信息的膨胀使数据库检索需要面对的问题越来越多。在构建索引方面,最主要面临的则是如何构造高效的索引算法来支持各种数据库系统(比如:多媒体数据库、空间数据库等),特别是如何有效的利用算法来实现加速检索。概括地说,R-Tree空间索引算法的研究要做到:支持高维数据空间;有效分割数据空间,来适应索引的组织;高效的实现多种查询方式系统中的统一。R-Tree的索引结构最新研究不能是单纯为了加速某种查询方式或提高某个方面的性能,忽略其他方面的效果,这样可能会造成更多不必要的性能消耗。
XML作为可扩展的标示语言,其索引方法就是基于传统的R-Tree索引技术的XR-Tree索引方法。该方法构造了适合于XML数据的索引结构。XR-Tree索引方法是一种动态扩充内存的索引数据结构,针对XISS(XML Indexing and Storage System:XML索引和存储体系)中结构连接中的问题,设计了基于XR-Tree索引树有效地跳过不参与匹配的元素的连接算法。但这种索引方法在进行路径的连接运算中仍然存储大量的中间匹配结果,为此一种基于整体查询模式的基于索引的路径连接算法提出,即利用堆栈链表来临时压栈存储产生的部分匹配结果,并且随着匹配的动态进行出栈 *** 作。这样在查询连接处理完成以后,直接输出最终结果,既节省了存储空间又提高了 *** 作效率。
大致的讲主要是根据用户的需求,然后设计数据库的E-R模型,然后将E-R模型图转换为各种表,并对其进行数据库设计范式(范式因不同书籍有不同)的审核,然后进行数据库的实施,然后运行维护。
一句话来讲就是将用户的需求变成带有各种关系的表,以及其它的数据库结构,然后供编程使用
具体如下:
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段
(1)需求分析。
(2)概念设计。
(3)逻辑设计。
(4)物理设计。
(5)数据库实施。
(6)数据库运行和维护。
5.1.1需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建“数据库大厦”的速度与质量。需求分析做得不好,可能会导致整个数据库重新设计,因此,务必引起高度重视。
5.1.2概念模型设计阶段
在概念设计阶段,设计人员仅从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为“组织模式”。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换。这样做有以下好处:
(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。
(2)概念模式不受特定DBMS的限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。
(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确地反映用户的信息需求。
概念模型设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。如采用基于E-R模型的数据库设计方法,该阶段即将所设计的对象抽象出E-R模型;如采用用户视图法,则应设计出不同的用户视图。
5.1.3逻辑模型设计阶段
逻辑模型设计阶段的任务是将概念模型设计阶段得到的基本E-R图,转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于E-R模型的数据库设计方法,该阶段就是将所设计的E-R模型转换为某个DBMS所支持的数据模型;如采用用户视图法,则应进行表的规范化,列出所有的关键字以及用数据结构图描述表集合中的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。
5.1.4数据库物理设计阶段
数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单一些,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。
物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:
(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。
(2)确定数据存放位置:可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求。
(3)存取方法的设计:存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索。
(4)完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。
(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始。物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改。当物理独立性未得到保证时,可能会引发对程序的修改。
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。
5.1.5数据库实施阶段
根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要有三项工作。
(1)建立实际数据库结构。对描述逻辑设计和物理设计结果的程序即“源模式”,经DBMS编译成目标模式并执行后,便建立了实际的数据库结构。
(2)装入试验数据对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。
(3)装入实际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。如果不符,则返回到前面,修改数据库的物理模型设计甚至逻辑模型设计。
5.1.6数据库运行和维护阶段
数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:
(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。
(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。
(3)根据用户要求对数据库现有功能进行扩充。
(4)及时改正运行中发现的系统错误。
问题一:简扼描述数据库中外码是什么 某个关系的主码相应的属性在另一关系中出现,此时该主码在就是另一关系的外码,如有两个关系S和SC,其中S#是关系S的主码,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外码
问题二:数据库中主码和外码怎么判断呀 主码 我们在建立数据库的时候,需要为每张表指定一个主码,主码也叫主键。
所谓主码就是在实体集中区分不同实体的候选码。
一个实体集中只能有一个主码,但可以有多个候选码。
外码,如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。
问题三:关于数据库的外码 有错。。 系:主码-系号 学生:主码-学号 外码-系号 课程:主码-课程号 选课:外码-学号,课程号 开设:外码-系号,课程号
问题四:sql数据库中主码外码候选码等等一共有哪些码 都是什么意思 候选码是能够唯一标识一个记录的一组或一个属性,主码是从多个候选码中选择出的一组
外码是在本关系中的属性,但在另一个关系中作为主码的属性
问题五:数据库候选码和外码的确立 多对多 关系不能直接反应在数据库中,需要转换成两个一对多的关系。 而多出来的表包含了 其余两个表的主键,作为组合主键。就像途中的供应(编号,零件号)是其余两个表的主键一样。
问题六:数据库中数据库中 码、候选码、外部码之间的关系是什么 候选码,有时简称为码,主要是用来表示一个实体的属性或属性组;如果有多个候选码的话,则从中选择一个作为主码。而外部码指的是如果一个关系R的属性或者属性组K,并不是这个关系的码,而是另一个关系S的码,则称K是关系R的外部码,简称外码。
问题七:在Access数据库中,主码和外码的含义及它们之间的区别是什么? 10分 主码针对一二维表内部 外码是关联表之间的关键字 用于两个或者多个二维表之间的访问或者查询
问题八:数据库 1、简述你所知道的关系数据库。 2、关系的形式话定义。 3、简述外码及参照完备性。 1关系数据库应用数学方法来处理数据库。关系数据库系统是支持关系模型的数据库系统。关系模型中,实体以及实体间的联系都用关系来表示。在一个给定的应用领域中,所有实体以及实体之间联系的关系的 构成一个关系数据库。关系数据库的型称为关系数据库模式,包括:若干域的定义;在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某时刻对应的关系的 ,通常就称为关系数据库。 2形式化定义:1域:域是一组具有相同数据类型的值的 。2:笛卡尔积:域上的一种 运算。可表示为一个二维表。3:关系:D1D2…Dn的子集叫做在域D1,D2,…Dn上的关系,表示为R(D1,D2,…,Dn) 这里R表示关系的名字,n是关系的目或度(属性,表中的列)。关系中的每个元素是关系中的元组(表中的行),通常用t表示。n=1时,为单元关系(或一元关系),n=2时,为二元关系。关系是笛卡尔积的有限子集,也是一个二维表。 若关系中的某一属性组的值能唯一标示一个元组,则称该属性组为候选码。有多个候选码时,选定一个为主码(主键)。 3设F是基本关系R的一个或一组属性,但不是关系R的码。Ks是基本关系的S主码,如果F与Ks相对应,则称F是R的外码(外键)。参照完整性:现实世界中实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述,这样就自然存在着关系与关系间的引用,一个参照完整性将两个表中相应的元组联系起来。参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者为空(F中每个属性均为空),或者等于S中某个元组的主码值。 其实这个概念很模糊,其实说简单点,比如在学生选课关系中,学号是学生表主键,课号是课程表主键,学号和课号联合做选课表的主键,这都是实体完整性约束。 而选课表中,单独一个学号是外键、参照学生表学号,单独一个课号是外键,参照课程表课号,这都是参照完整性约束,比如课号的值只有1,但是你在选课表里取课号为1以外的值,就会出错,违反了参照完整性。
问题九:主码和外码各有什么作用 说下我的理解吧
主码是最小的候选码
外码是关联2个以上实体的字段
以上就是关于数据库 *** 作中,CRUD的“R”是什么意思啊全部的内容,包括:数据库 *** 作中,CRUD的“R”是什么意思啊、谁能解释一下R-tree算法的意思看不懂!、具体的数据库设计与实现过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)