数据存储结构:数据是怎么在内存里储存的,就是在内存中的排列方式
数据存取方式:用怎样的方式读出数据和保存数据
楼主这里其实并不是数据存储方式,而是数据的存取方式
如果对存储方式不敢兴趣的话,可以不看,只看存取方式
[存取方式]
存取方式是指用户在使用数据时按何种次序存取数据。主要有顺序访问、随机访问、索引访问等
**顺序访问是按从前到后的顺序对数据进行读写操作。这种存取方式最为简单。有的存储设备如磁带只能支持顺序访问。
**随机访问,也称为直接访问,可以按任意的次序对数据进行读写操作。有的存储设备如磁盘能支持随机访问(当然也能支持顺序访问)。
**索引访问,也称按键访问,这种方式对数据中的记录按某个数据项(通常称为键)的值来排列,从而可以根据键值来快速存取。如索引表很长,则可以将索引表再加以索引,以形成具有层次结构的多级索引。如果将记录块的物理位置作为键值,那么可以将随机访问作为索引访问的特例。
**散列存储就是根据结点的关键字直接计算出该结点的存储地址。散列的唯一目的就是降低重复。
[存储结构]
数据的存储结构通常分为线性和非线性存储结构,而非线性存储结构主要有树形和图形存储结构。
**线性存储结构
**树形存储结构
**图形存储结构
线性存储结构:包括顺序,链接,索引,散列四种
顺序存储结构
顺序存储结构是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。其优点是占用最少的存储空间,缺点是由于只能使用相邻的一整块存储单元,因此可能产生较多的碎片现象。例如,一年四季的顺序存储结构如图:
链接存储结构
链接存储结构是将结点所占的存储单元分为两部分,一部分存放结点本身的信息,即数据项。另一部分存放该结点的后续结点所对应的存储单元的地址,即为指针项。优点是不会出现碎片现象,充分利用所有的存储单元,缺点是每个结点占用较多的存储空间。例如,一年四季的链接存储结构如图:
索引存储结构
索引存储结构是用结点的索引号来确定结点存储地址,其优点是检索速度快,缺点是增加了附加的索引表,会占用较多的存储空间。
散列存储结构
散列存储结构是根据结点的值确定它的存储地址,优点是检索、增加和删除结点的操作速度快,缺点是采用不好的散列函数时可能出现结点单元的碰撞,而需要附加时间和空间开销。
===================================
数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。
链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现。
顺序存储和链接存储是数据的两种最基本的存储结构。
在顺序存储中,每个存侗含有所存元素本身的信息,元素之间的逻辑关系是通过数组下标位置简单计算出来彭线性表的顺序存储中,若一个元素存储在对应数组中的下标位置为i,则它的前驱元著数组中的下标位置为i一1,它的后继元素在对应数组中的下标位置为i+1。在链接存个存储结点不仅含有所存元素本身的信息,而且含有元素之间逻辑关系的信息。
其中data表示值域,用来存储.一个元素。 Pl,p2,…,Pill(1n≥1)均为指针域,每个韦值为其对应的后继元素或前驱元素所在结点(以后简称为后继结点或前驱结点)的存通过结点的指针域 (又称为链域)可以访问到对应的后继结点或前驱结点,该后继结一《结点称为指针域(链域)所指向(链接)的结点。若一一个结点中的某个指针域不需要指f 点,则令它的值为空,用常量N-LILL表示,NIJ】上在iostream.h中被定义为数值0。
数据的链接存储表示又被称为链接表。当链接表中的每个结点只含有一个指针称为单链表。
在数据的顺序存储中,由于每个元素的存储位置都可以通过简单计算得到,所以刁元素的时间都相同;而在数据的链接存储中,由于每个元素的存储位置是保存在它的{或后继结点中的,所以只有当访问到其前驱结点或后继结点后才能够按指针访问到自访问任一元素的时间与该元素结点在链接存储中的位置有关。
========================================
多级索引是将多个不同或相同的索引方法组合使用,对单级索引空间或者空间范围进行多级划分,解决超大型数据量的GIS系统检索、分析、显示的效率问题。多级索引由于其多级的结构特性,往往可以很好地利用计算机硬件资源的并行工作特性,如多CPU,磁盘阵列等,来提高检索的效率。多级索引方法很多,不同的单级索引组合便可以构成不同的多级索引方法。但是由于每种索引的特性不同,所以如何将多种索引融合成一体构成一种高效的多级索引也是空间索引的一个研究方向。
原理:
索引分割单元格网索引是一种简单高效的多级索引方法,其基本原理类似于四叉树,将空间范围进行多级划分,每一级划分的空间均采用单元网格索引,构成一个多级网格空间,以适应不同范围的高效查询;与四叉树不同的是每一次空间划分均为物理分割,一旦该级的网格确定,则需建立相应的物理表格存储该级的索引信息。
空间范围的每一级划分原理就是通过规则划分(矩形或正方形)将索引区域划分为不重叠的许多子空间(矩形或正方形),对于该索引区域建立一个范围索引表,记录每个子空间的范围、划分的级别和子空间索引表名称;对每个子空间单元再按照以上规则进行再次划分;对于最后一级的子空间,则为每个子空间单元建立一个子空间索引表,存储落在这个子空间之内的空间要素标识、外包络矩形;并且对于最后一级的子空间,如果包含的空间要素个数太多,可直接将该子空间物理分割成多个。
通过该方式索引,在进行空间检索时,可以直接访问空间区域覆盖的和与空间区域相交的子空间的索引表,然后对空间索引表进行进一步求精判断,以检索出符合要求的空间实体。由于进行了物理分割,那么单个空间索引表维持恒定且较少的记录数,而且空间索引表的字段域也只有几个,数据量大大减少,因此检索效率也就会比单级网格索引要高。
来源:oschina
链接:https://my.oschina.net/u/55302/blog/3484