数据库在物理设备上的存储结构与存储方法称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结果的过程,就是数据库的物理结构设计。
3.5.1 数据库的物理设计的内容和方法
1. 数据库物理结构设计的准备工作
在进行数据库物理结构设计的准备工作,主要包括:
①充分了解应用环境(特别是应用的处理频率和响应时间要求),详细分析要运行的事务,以获得选择物理数据库设计所需参数。
②充分了解所用RDBMS的内部特征(功能、物理环境、工具),特别是系统提供的存取方法和存储结构。
③熟悉外存设备的特性,如分块原则、块因子大小的规定、设备的I/O特性等。
2. 数据库物理结构设计的内容
空间数据库物理设计包括:
①物理表示组织。层次模型的物理表示方法有物理邻接法、表结构法、目录法。网络模型的物理表示方法有变长指针法、位图法和目录法等。关系模型的物理表示通常用关系表来完成。物理组织主要是考虑如何在外存储器上以最优的形式存储数据,通常要考虑操作效率、响应时间、空间利用和总的开销等因素。
②空间数据的存取。常用的空间数据存取方法主要有文件结构法、索引文件和点索引结构三种。文件结构法包括顺序结构、表结构和随机结构。
本部分主要从空间数据库的存储策略和空间数据库中的关系模式设计两个方面来展开。空间数据库的存储策略主要阐述本节所提出的空间数据模型在计算机中从数据存储层到地理数据库层、从底层数据到对外表现的实现策略。
3.5.2 空间数据库的存储策略
空间数据具有空间特征、非结构化特征、空间关系特征以及海量数据管理特征等。对其管理的方法目前有: 文件和关系数据库混合管理、全关系型数据库管理、对象—关系数据库管理和面向对象空间数据库管理。目前的GIS系统使用较多的管理方法,以第一种和第三种比较常见。例如采用对象—关系数据库管理,基于商业数据库进行存储。其存储策略如图3.14所示。
图3.14 存储策略概念图
空间数据库引擎(SDE)是地理数据库的基础,负责处理空间数据模型与关系数据模型之间的映射,地理数据库则在空间数据库引擎的基础上实现对象分类、子类型、关系、定义域和有效性规则等语义的表达,实现面向实体的空间数据模型。
3.5.3 空间数据库关系模式设计
对象—关系数据库是关系模型和对象模型结合的产物。它既保持了RDBMS的所有功能和优势,同时通过使用抽象数据类型可以封装任意复杂的内部结构和属性,以表示空间对象。所以在设计和实现基于对象-关系数据库的面向实体的空间数据模型时,仍需要按照传统关系数据库的设计方法,设计数据库表的关系模式。
空间数据库主要包含空间数据和元数据信息两个部分。空间数据以“地理数据库—要素数据集—类”的层次进行组织。例如,类层次的对象有要素类、注记类、对象类、关系类和规则等,每一种对象在空间数据库当中需要用表集来描述其信息和内部关系。元数据信息则描述前面所有空间数据的元数据信息,使用数据字典进行表达。例如,可以将城市地价与土地集约利用数据库的对象即类体系分为两种: 公共实体基类和各种不同类型的派生类。而派生类又包括基本元素类、基本空间实体类、地价和土地利用样点类、地价区段类、土地级别类、分类型土地类、城市类、道路类、河流类、栅格类、文字标注类等。
1. 空间实体基类
空间实体基类是所有空间实体的基类,它拥有空间实体的共有的特征和操作,又因为空间实体在系统中主要是显示在计算机屏幕或绘图仪器上,因此还包括与显示有关的属性和操作,所以空间实体基类的属性有标识号(ID)、颜色(Color)和边界矩形(Boundary Rect)等,操作有实体显示,边界矩形计算等。应用面向对象技术的多态性,将基类中的操作都定义为虚函数,在实际操作时再决定其子类中操作的具体实现方法。
2. 基本元素类
点、线是两种制图和空间操作的基本元素。定义基本元素类的作用是用来作为所有制图元素和空间实体元素的基类。两类基本元素类都由空间实体基类派生而来。
(1)点类(Point)
除了基类的属性和操作,点的属性还包括点的坐标。
(2)线类(Line)
线的特有属性有线长(Line Length),线段经过的粗格网和细分格网的自然数Morton码序列,操作有长度量算等。
3. 基本空间实体类
将所有的空间实体归纳为三种最简单的实体,即点、线、面,分别为它们从点类、线类和空间实体基类中派生实体类。
(1)结点类(Node)
由点类派生,属性有关联弧段列表等。
(2)弧段类(Are)
弧段类由线类派生,其特有属性有头结点(FNode)、尾结点(TNode)、左多边形(LPoly)、右多边形(RPoly)。
(3)多边形类(Polygon)
多边形类由空间实体基类派生,特有属性有组成面的弧段列表、用地类型、土地级别、土地面积、多边形面块循环链表头指针以及标识该多边形是否为岛和(或)多边形内是否有岛的属性变量,操作有面积量算、多边形边界调整。
4. 地价和土地利用样点类
虽然地价和土地利用样点是一块具体的宗地,但是考虑到宗地内部地价的一致性,因此用点来表述样点比较适宜,所以样类可以是点类的派生类。它的特有属性主要有:
①调查期日(Time Limit): 标识样点的有效时间点;
②用地类型(Land Type): 样点所在土地的用地类型;
③土地级别(Land Grade): 样点所在的土地级别;
④土地使用权类型(Land Using Type): 样点所在土地的使用权类型,如划拨、出让、转让等;
⑤土地使用者(Land User): 样点所在宗地的土地使用者名称;
⑥国有土地使用证编号(Certificate Code);
⑦土地位置(Land Location);
⑧宗地形状(Land Shape): 如长方形、长条形、刀把形等;
⑨宗地面(Land Area);
⑩)临街状况(Street Facing): 如一面临街,两面临街,不临街等;
距离市中心距离(Distance To City Center): 应该为从监测点所在宗地到城市区位中心的最短路径距离;
地质条件(Geology Condition): 样点宗地周围及附近的地质条件;
宗地内主要建筑物(Main Buildings);
建筑面积(Building Area);
建筑容积率(CVRatio);
周围环境条件(Environment Condition);
周围交通条件(Traffic Condition);
实际土地开发程度(Exploiting Level): 样点宗地红线以外的土地开发程度;
样点标准地价(Standard Price): 通过修正以后的样点地价;
样点宗地图位图地址码(Land Map Code): 样点宗地图位图的调用地址码;
样点的显示格式(Display Mode): 定义样点在显示时在地图上的表现形式;
样点类的具体操作有样点资料的输出,样点宗地图的调用与显样点与市中心最短路径距离的计算等。
5. 地价区段类
在地价分布研究中,地价区段是最基本的研究区域,因此将地价区段作为一个空间对象,从空间实体基类中派生地价区段类。地价区段类所包含的属性有:(www.daowen.com)
①用地类型(Land Type): 标识该地价区段所在的用地类型;
②土地级别(Land Grade): 标识地价区段所在的土地级别;
③土地面积(Land Area): 标识属于该地价区段的所有地块的总面积;
④地价区段名称(Region Name);
⑤地价区段描述(Region Describe): 描述地价区段分布位置等资料;
⑥样点总数数组(Sample Num Array): 记录各研究期次属于该地价区段的样点的总数;
⑦样点布设情况二维数组(Sample Array): 记录该地价区段上自研究体系建立以来不同期次的样点布设和更新历史;
⑧地块二维数组(Landmass Array): 存储各研究期次该级别土地类型中属于同一地价区段的所有地块多边形数据的数组;
地价区段类上所具有的操作有地价区段资料的输出,土地级别面积的量算,地价区段边界的调整。
6. 土地级别类
将具体的用地类型中的具体的一个土地级别的所有地块作为一个空间实体对象,从空间实体基类派生土地级别类。土地级别由一个或多个地价区段组成,因此含有以下属性:
①用地类型(Land Type): 标识该土地块所在的用地类型;
②土地级别(Land Grade): 标识土地块的级别;
③土地面积(Land Area): 标识该土地级别所有地块的总面积;
④定基地价指数数组(Basedlndex): 存储该土地级别上研究期次的定基地价指数;
⑤环比地价指数数组(Circlelndex): 存储该土地级别上个研究期次的环比地价指数;
⑥级别基准地价数组(Base Price Array): 记录研究体系建立以来该级别土地不同期次的基准地价的更新变化历史;
⑦地价区段列表数组(Region Array): 记录该土地级别上所有的地价区段的相关信息;
⑧监测点总数数组(Sample Num Array): 记录该级别土地上在各研究期次设立的样点数量;
土地级别类上所具有的操作有土地级别面积的量算,样点资料、地价区段资料的输入,监测点数目的统计计算,级别基准地价的计算和更新,级别边界的调整以及定基、环比地价指数的测算。
7. 分类型土地类
把同一类型的土地作为一个空间实体进行抽象,从空间实体基类派生分类型土地类。分类型土地类的属性有:
①用地类型(Land Type): 土地的使用类型;
②土地总面积(Total Area): 该类型土地所有级别土地的总面积;
③土地级别数(Grade Num): 该类型土地所划分的土地级别数;
④土地级别数组(Gradc Array): 记录该类型土地各土地级别的数据;
⑤样点总数数组(Sample Num Array): 记录该类型土地上在各研究期设立的样点总数;
⑥地价区段总数数组(Region Num Array): 记录该类型土地各级别上在各研究期划分的地价区段总数;
分类型土地类上所具有的操作有土地总面积的量算,样点总数、地价区段总数的统计计算。
8. 城市类
城市类由空间实体基类派生而来,记录城市的一般资料等。城市类的主要属性有城市名称、所在省市、城市级别、城市类型、行政区划、城市位置、建成区面积、地形条件、地貌条件、地质条件、土壤类型、气候条件、水文条件、人口总数、人口密度、人均居住面积、国内生产总值、人均纯收入、社会固定资产投资总额等,还有各用地类型基本资料,各类样点总数,各类地价区段总数,以及城市综合定基地价指数序列数组,城市综合环比地价指数序列数组等。操作有样点总数统计计算、地价区段总数统计计算,城市综合定基地价指数测算,城市综合环比地价指数计算等。
9. 道路类
由于道路在计算地价时非常重要,因此从空间实体基类的派生道路类。具体又分为公路网络类(Highroad Net)和铁路类(Railroad)两种。
(1)公路网络类:
公路网络类是市区各个方向的马路交织而成的道路网,可以用网络图来表示。公路网络类是一个集合图类,由两个下属类组成:
①道路节点类(Cross Node): 由点类派生,代表各条道路的各个交叉点。
②道路段类(Road Arc): 由线类派生,代表两个节点之间的关联路段。属性有道路段名称(Road Name)、道路段等级(Road Grade)、道路宽度(Road Width)等。操作有道路段走向判断。
公路网络类的属性就是由道路节点类和道路段类组成的网。利用公路网络类可以进行整条道路信息提取,点与道路网最短距离计算,道路双线生成计算,道路缓冲区生成计算,最短路径计算等操作。
(2)铁路类
在系统中,铁路对地价的计算中不作为影响因子,主要是作为一个图形要素来表示,最重要的是记录站点和铁路线的位置信息,因此主要属性有站点列表和铁路弧段列表。铁路类包括地铁类(Subway)和地上铁路(Railway)类,两者主要在显示方式上有所不同。
10. 河流类
同铁路一样,河流也不作为地价计算的影响因子,主要是作为一个地图元素加以考虑。另外,河流区域不必进行拓扑分析,因此河流类的数据可以使用纯栅格数据结构来表示。考虑到面积计算的精确性和微机的计算能力,对河段的划分使用2m×2m的栅格,用线性四叉树进行编码存储。河流类操作有河流面积计算等。
11. 栅格类
将研究范围类的土地按照一定的间隔划分为栅格网,以每个栅格中间点的地价代表整个栅格区域内的平均地价。由于地价分布的连续性,当栅格的大小适当时,这种方法既能节省存储空间,又能够精确地表示连续分布的地价。因为地价研究需要多期的地价用来进行地价分析和预测,因此栅格须记录不同研究期次栅格内的地价,和在不同研究期次、不同土地类型中所属的土地级别。栅格类由空间实体基类派生,它的属性有:
(1)栅格标识码(Gridl D)
由于各个栅格的自然数Morton码具有唯一性,因此可用栅格的Morton码来标识栅格;
(2)各期次栅格分类型平均地价三维数组(Grid Price)
即栅格中心点在各研究期的分类型地价序列。
12. 文字标注类
文字标注类主要作用是在显示地图时方便用户识别各个地物。文字标注类由点类派生。主要属性有文字延伸方向、文字大小、字体类别、文字内容、文字长度等。
一个空间要素类由一种或多种几何元素集、属性信息表集和图形信息表集构成,由于要素类按照三个层次进行组织,因此,进行要素类关系模式设计,建立要素类的表集,其包括记录要素基本信息表、记录几何实体信息表、记录点信息表、记录弧段信息表、记录弧段的拓扑信息表、记录点的图形信息表、记录线的图形信息表和记录区的图形信息表。
【本章小结】
空间数据库是随着地理信息系统的开发和应用而发展起来的数据库新技术,它是地理信息系统的重要组成部分,是其他应用部分的前提和基础。本章首先介绍了空间数据库建立的相关理论和方法; 详细介绍了空间数据库设计中的需求分析; 重点介绍空间数据库概念结构设计,分别介绍E-R模型、空间E-R模型和UML模型三种概念设计的方法,并结合实例进行了叙述; 之后,介绍了空间数据逻辑结构设计和物理结构设计,当完成数据库的物理设计以后,设计人员就要用RDBMS提供的数据定义语言和其他使用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式,然后就可以组织数据入库了。
【练习与思考题】
1. 什么是空间数据库? 它有什么特点?
2. 试叙述如何进行空间数据库的设计和建立。
3. 什么是E-R模型? 举例说明该模型是如何对数据进行组织和管理的。
4. 什么是UML模型? 举例说明该模型是如何对数据进行组织和管理的。
5. 什么是空间数据库逻辑结构设计? 请举例说明。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。