首页 空间数据库第02章

空间数据库第02章

举报
开通vip

空间数据库第02章第二章 空间概念和数据模型本章描述与空间数据库应用建模有关的技术。GIS是最流行的空间数据库应用,我们的讨论也着力反映这个事实。除了GIS之外,像CAD和天文学等含有明确的空间或几何成分的应用,也适用本章所描述的技术。传统的数据库主要关注商务和管理应用这样的领域,它将重点放在高效且安全地处理大量相对简单的事务上。随着全球定位系统(globalpositioningsystem,GPS)这样的数据获取设备的价格的下降,人们能够更容易地通过Internet获取卫星和制图数据;同时,桌面计算机的计算能力也日益增长,因此必...

空间数据库第02章
第二章 空间概念和数据模型本章描述与空间数据库应用建模有关的技术。GIS是最流行的空间数据库应用,我们的讨论也着力反映这个事实。除了GIS之外,像CAD和天文学等含有明确的空间或几何成分的应用,也适用本章所描述的技术。传统的数据库主要关注商务和管理应用这样的领域,它将重点放在高效且安全地处理大量相对简单的事务上。随着全球定位系统(globalpositioningsystem,GPS)这样的数据获取设备的价格的下降,人们能够更容易地通过Internet获取卫星和制图数据;同时,桌面计算机的计算能力也日益增长,因此必须重新定义数据库的功能。不能再将DBMS看成是一个完全封闭的数据储藏库,而是多系统计算环境中一个活跃的组成部分。事实上,将计算密集型的任务直接转移到DBMS中已是大势所趋。GIS就是该趋势的一个重要实例。SDBMS将空间数据建模的特殊需求整合到系统中,其意义在于:·与传统商务数据相比,空间数据更为复杂,而旧式的数据库结构不足以处理空间数据。·数据库 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 和实现的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 通常是由计算机科学家来解决的,而空间数据的处理则落入地理学家、环境学家以及其他物理学家的研究范畴。长久以来,这些学科各自沿着不同的道路发展。本章各部分的安排如下:2.1节描述几个不同的空间信息处理模型;2.2节给出数据库设计和建模的一般原则;2.3节主要研究实体-联系(entity-relationship,ER)模型在SDB上的扩展;2.4节讨论统一建模语言(unifiedmodelinglanguage,UML),这是一个主要用于面向对象数据库设计的概念模型;最后对本章进行总结。2.1 空间信息模型我们引入一个州立公园(state-Park)的空间数据库例子,来说明空间数据建模中的各种概念。State-ParkSDB由多个森林(forest)组成,这些森林又是不同树种的林分(forest-stand)的集合。州立公园中有道路(road),并有一个管理员(manager)。州立公园中还有负责监控和扑灭火灾的消防站(fire-station),以及星罗棋布的诸如野营地和办公室之类的设施(facility)。最后一点,州立公园中有河流(river)穿过并为各种设施供水。空间信息模型通常分为两大类:场(field)模型和对象(object)模型。我们借助图2-1的例子来解释这种二分法。考虑一种理想情况,将森林划分为同构区域,即每个区域只有一个(主要的)树种。本例中有3个树种:冷杉(Fir)、橡树(Oak)和松树(Pine)。有两种互补的森林建模方法。从 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数的角度看,森林可建模成一个函数。该函数的定义域是森林占据的地理空间,而值域是3个元素(树种的名称)的集合。设这个函数为f,它将森林所占据空间的每个点映射到值域的一个具体元素上。函数f是个分段函数,它在树种相同的地方取值恒定,而在树种发生变化处才改变取值。在GIS中,这个函数模型称为场模型。图2-1c的场模型是用分段函数来 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示的。场模型的另一种表示方法是网格(grid),网格中的每个单元格(cell)标注着占主导地位的树种的名称,这种表示方法在各种林分边界极不规则的情况下更为适用。场的其他表示方法还有等值线,它显示了在某个物理参数(例如温度、气压)上具有固定值的轮廓线。现在考虑函数f的值发生变化的地方。在明确规定树种之间界限的理想情况下,就可以得到多边形的边界,每个多边形都有一个唯一的标识符和一个非空间属性——树种的名称。这样,可以把森林建模成多边形(例如林分)的一个集合,每个多边形对应一个树种。这是对象模型的观点,如图2-1b所示。对一个空间应用的建模来说,到底采用场模型还是对象模型,主要取决于应用要求和习惯。对于形状不定的现象,例如火灾、洪水和危险物泄漏,当然采用边界不固定的场模型进行建模。其他一些空间现象也可用场来建模。场模型通常用于具有连续的空间变化趋势的情况的建模,如海拔、温度,以及土壤变化。其实,在遥感领域,主要利用卫星或飞机上的传感器收集地表数据,此时场模型是占主导地位的。而对象模型更多地用于运输网络(如道路)、地块的征税和合法所有权应用等方面的建模。据推测,对象模型可能是源自将土地作为财产来划分所有权的社会需求[Couclelis,1992]。图2-1 对象-场的二分法。a)一幅显示3种林分(松树、冷杉、橡树)的地图。b)对象的观点:将地图表示为3个对象的集合,每个对象有唯一的标识符、主要的树种和一块区域。区域的边界(一个多边形)由坐标指定。c)场的观点,这时区域中的每个点被映射为主要树种对应的值2.1.1 基于场的模型对于空间应用来说,定义场模型要求我们确定3个组成部分:空间框架(spatialframework)、场函数(fieldfunction)和一组相关的场操作(fieldoperation)[Worboys,1995]。空间框架F是一个有限网格,这个网格加诸在基本空间上。所有度量都基于这个框架来完成。空间框架最常用的例子是地球表面的经度-纬度参照系。空间框架是一种有限的结构,由于离散化而导致的误差是在所难免的。一个包含n个l可计算的函数或简单场{fi,l≤i≤n}的有限集fi:空间框架→属性域(Ai)将空间框架F映射到不同的属性域Ai中。对各种场函数和属性域的选择要取决于当时的空间应用。在森林的例子中我们用了一个单一场(single-field)函数,它是分段函数,其属性域为集合{冷杉,橡树,松树}。对于函数是单值而基本空间是欧氏平面的特殊情况,场自然就看成表面或等值线,它们是具有相同属性值的点的轨迹。基于场建模的第三个重要内容是场函数的操作规约。不同场之间的联系和交互由场操作(fieldoperation)来指定。场操作把场的一个子集映射到其他的场。场操作的例子有并(+)和复合(o):场操作可以分成三类[Worboys,1995]:局部的(local)、聚焦的(focal)和区域的(zonal)。1.局部操作对于一个局部操作,空间框架内一个给定位置的新场的取值只依赖于同一位置场的输入值。例如,考虑一个理想化的state—Park,它可完全划分成树、湖和草地。函数f和g定义为:以及那么,f+g,即f与g的并就定义为: 这是一个局部操作的例子。 2.聚焦操作 对于一个聚焦操作,在指定位置的结果场的值依赖于同一位置的一个假定小邻域上输入场的值。微积分中的极限(1imit)运算就是一个聚焦操作。设E(x,y)是state-park的高程场,即E给出空间框架F中位置(x,y)的高程值。因而,计算高程场的梯度就是一个聚焦操作,因为(x,y)的梯度值依赖于高程场在(x,y)的一个“小”邻域上取值。这里我们假定场是平滑变化的,其间没有像Forest例子中的分段函数那样的急剧跃变。3.区域操作区域操作很自然地与聚集运算符或微积分中的积分运算有关联。在森林的例子中,分段函数把森林映射到属性集{冷杉,橡树,松树}中,同时还将基本空间划分成三个多边形,或者区域(zone)。计算每个树种的平均高度就是一个区域操作。2.1.2 基于对象的模型在基于对象的建模中,其关键是把空间信息抽象成明确的、可识别的和相关的事物或实体,称之为对象。例如,我们可以通过公园中的林分、河流、湖和道路来刻画一个公园,所有的这些实体显然是可区分和可识别的。它们是否相关依赖于我们所要建模的应用。每个对象都有一套刻画它的属性集。与传统数据库建模中普遍采用的对象/实体相比,空间对象的最主要的特点在于它的属性可以分为截然不同的两类:空间属性和非空间属性。对象通过其空间属性与包含它的基本空间进行交互。在森林例子中,表示冷杉的林分是个空间对象,表示空间范围的多边形是空间属性,而名称“冷杉”是非空间属性,这是一个字母数字型的属性。一个空间对象可以有多个空间属性,例如表示多层次的概括。例如,地图上的一条路,就可以根据地图的比例尺表示成一条线或一个多边形。2.1.3 空间数据类型对基于对象的空间信息模型来说,其关键问题是选择一组基本空间数据类型,来满足对地图常用形状建模的需求。这些年陆续提出了许多建议,其中OGIS规范[OGIS,1999]正逐渐得到大家的认同。图2-2给出了用UML符号表示的二维空间几何体的基本构件及其相互关系。我们将在2.4节中讨论UML符号。图2-2 OGIS提出的关于空间几何体的基本构件(采用UML概念表示)最为通用的形状是由“空间表示体系”所描述的“几何体”来表示的,“空间表示体系”是一个坐标系统,类似于经度/纬度或其他公认框架。“几何体”分为4类:点(point)、线(curve)、面(Surface)和几何体集合(geometrycollection)。点描述一个零维对象的形状,例如世界地图上的城市中心。线描述一维对象的形状,例如世界地图上的河流。线对象通常用线串(1inestring)来近似表示,它由两个或更多的点表示。最简单的线串是一条连接两个或更多点的直线段。面则描述了二维对象的形状,例如世界地图上的国家。面通常用多边形建模。几何体集合表示复杂的形状,诸如油井的集合,一群岛屿等。几何体集合有三种类型,即多点(multipoint)、多线(multicurve)和多面(multisurface)。几何体集合空间数据类型保证了OGIS空间数据类型在几何操作上的闭合性(closure),这些操作包括几何并、几何差或几何交操作。举例来说,如果对加拿大和魁北克边界作几何差运算,尽管它们都是“面”空间数据类型,但运算结果是“多面”。闭合性对于支持多步查询和数据处理很有用。2.1.4 空间对象的操作空间对象之间如何交互?在基于场的建模中,场函数主要决定操作的类型。毕竟,不可能将梯度运算用于非平滑的场!在基于对象的建模中,基本内嵌空间决定对象间所具有的关系。现在,我们来描述内嵌空间和关联关系的类型。1.面向集合的在所有内嵌空间中,最简单且最通用的类型是面向集合的内嵌空间。这种集合可以利用一些常见的关系,即在基于集合的关系中常见的并、交、包含和属于关系。层次关系(如森林包含林分,州立公园包含森林,州包含州立公园)就适于用集合理论来建模。2.拓扑的为了直观地理解拓扑空间,设想在一块橡胶片上画两个相接的多边形,然后进行拉伸或扭曲(但不能切割或折叠)来改变橡胶片的形状,这时两个多边形的邻接性维持不变。相接(meet)是拓扑属性的一个例子,研究保持拓扑属性不变的变换(形变)的领域称为拓扑学。考虑带有国家行政边界的世界地图,无论地图是画在球面还是在平面空间上,相邻国家总是彼此相接。而多边形的面积则显然不是拓扑属性。事实上,不同国家的相对面积通常在不同地图上会有所变化。在很多平面地图上,靠近赤道的国家相对于靠近两极的国家而言面积减少了。表2-l列出了常见的一些拓扑属性和非拓扑属性[Worboys,1995]。从空间/地理数据库的角度看,相接(meet)、包含(within)和交叠(overlap)这类拓扑关系最有可能被空间数据库 管理系统 工资管理系统慧云智能化管理系统免费考勤管理系统员工工资计算excel病人信息管理系统 的用户查询。一个给定的地块与危险废弃物场相邻吗?河流洪水泛滥区与提出的高速公路网交叠吗?这些都是拓扑关系的例子。空间数据库中两种常见拓扑查询是:  ·找出所有与给定对象存在拓扑关系R的对象。  ·对象A和B之间存在什么样的拓扑关系?在一个平面上,两个对象A和B之间的二元拓扑关系要基于以下的相交情况:即A的内部(A˚)、边界(A)和外部(A-)与B的内部(B˚)、边界(B)和外部(B-)之间的交[Egenhofer,1994]。对象的这六个部分构成九交(nine-intersection)矩阵,它定义了一个拓扑关系,可以用下面的矩阵来表达这个关系:考虑取值有空(0)和非空(1),可以确定有29=512种二元拓扑关系。对于嵌在中的二维区域,有八个关系是可实现的,并且它们彼此互斥且完全覆盖。这些关系为:相离(disjoint)、相接(meet)、交叠(overlap)、相等(equal)、包含(contain)、在内部(inside)、覆盖(cover)和被覆盖(coveredby)。图2-3 九交模型[Egenhofereta1.,1989]  图2-3显示了如何使用九交矩阵来表示拓扑关系。例如,在九交模型中,相离关系可以用图2-3左上角的布尔矩阵表示。0值说明interior(A)与interior(B)或boundary(B)没有公共点。类似地,interior(B)与boundary(A)没有公共点,boundary(A)与boundary(B)也没有公共点。对于其他空间数据类型对,例如(point,surface)、(point,curve),其拓扑关系可以用类似方式定义。如表2-1所示,一个点可以在一个面的内部、外部或者边界上;一条线可以穿过(cross)面的内部,或者与一个面相接,或者与一个面相离;一个点可以是一条线的端点、内点或不在线上。线之间的关系要复杂一些,是一个仍在研究的领域[Clementinieta1.,1993]。表2-1 拓扑和非拓扑操作举例3.方位的方位关系可为三类:绝对的、相对目标的和基于观察者的。绝对方位关系是在全球参照系统的背景下定义的,例如东、西、南、北、东北等等。相对目标的方位关系根据与所给目标的方向来定义,例如左、右、前、后、上、下等等。基于观察者的方位关系是按照专门指定的,称为观察者的参照对象来定义的。4.度量空间用数学的术语讲,集合x在满足以下条件时就称为一个度量空间:如果对x中的任意一对点x和y,都存在一个与之关联的实数d(x,y),称为x到y的距离(也称为一种度量),且对于x中任意的x,y,z都满足如下性质:  1)d(x,y)≥0且d(x,x):0  2)d(x,y)=d(y,x)  3)d(x,y)≤d(x,z)+d(z,y)任何满足上述性质的函数称为x上的一个度量。在度量空间中,对距离也进行了很好的定义。距离函数可以导出对应空间上的一个拓扑结构,因此每个度量空间也是一个拓扑空间。在网络或图环境中,度量空间扮演着重要的角色。优化距离和最短行程时间的查询在度量空间的环境中得到了很好的解决。5.欧氏空间设R是实数域,R上的向量空间(vectorspace)V是向量v的非空集合,它们之间有两种运算:1)加法:对所有的uv∈V,u+v∈V,2)积:对所有的α∈R,v∈V,αu∈V在该向量空间中,除了存在0向量之外,加法和积这两个运算还必须满足其一些公理。对向量空间的完整讨论可参见[BlythandRobertson,1999]。如果存在一个(极小)有限向量集(e1,e2,…,en)使得任何v∈V都可表示成这些ei的线性组合,即存在α1,…..αn∈R,使得:v=α1e1+…+αnen则称该向量空间是有限维的。在三维空间中,ei对应于人们熟悉的x、y、z坐标轴。如果我们在向量空间中添加内积(用一对尖括号表示)的概念,将得到一个欧氏空间。在欧氏空间的环境下,可以定义所有的空间关系(包括集合的、拓扑的、度量的和方位的(北/南))。2.1.5 动态空间操作迄今为止,我们定义的大多数操作都是静态的(static),从某种意义上说,操作数不受操作的应用影响。例如,计算一条线的长度对线本身没有任何影响。动态(dynamic)操作则会改变它所作用的对象。三种基本的动态操作是创建(create)、销毁(destroy)和更新(update)。所有的动态操作都是基于这三个操作衍生而来的[Worboys,1995]。表2-2列出了一些创建和更新的例子。融合(merge)操作的一个例子是“地图再分类”,许多GIS软件产品都支持这样的操作。考虑将国家地图按照各国家主要的宗教信仰(例如,无宗教信仰、伊斯兰教、基督教、佛教和印度教)重新划分。如果两个相邻的国家具有相同的主流宗教信仰,那么融合操作将它们之间的共同边界去掉,这样就重新划分了该地图。其他类似的动态空间操作例子可以在GIS的制图投影和地图编辑的功能里找到。表2-2 动态空间操作的典型示例[Worboys,1995]还有其他一些类型的空间对象操作。例如,有的操作可以定义在扩展对象的形状上,以便回答这样一些查询:哪个对象近似方形?哪两个对象能像拼图一样吻合起来?空间对象操作在制药方面也很有用,通过发现那些可与其他分子中某个区域对接的分子可以设计新药。另一类空间操作是基于可见性关系的,这类操作可以解决像“列出高尔夫球场上看到9号洞的最佳视角位置”这样的查询。希望在不久的将来,能出现人们一致认可的用于处理此类操作的数学框架。2.1.6 将空间对象映射到Java在定义了空间层次之后(见图2-2及相应的一系列空间关系),现在我们可以很容易地使用如Java这样的面向对象程序设计语言为这些概念进行编码。我们给出了一个如何用Java编写特定查询的例子,这个查询例子是:“找MapleCampground周围方圆l0英里之内的旅游公司”。采用Java的Facility类和Facilityset类来对旅游公司和营地进行建模。独立的Query类用于对距离计算和查询本身进行建模。Facility类有三个属性,分别为name、type和location。属性type用来区分旅游公司和营地;设施位置的空间数据类型是point。该程序假定空间数据类型point可以作为空间库(如ESRI的SDE)的一部分使用。这个库同时提供了在空间数据类型point之上的distance函数。FacilityClass类有三个方法。方法facility是用来初始化新对象的构造函数。方法getName获取name属性和方法,而withinDistance用于检测另一设施是否在一个给定距离之内。Facilityset类用于设施集合的建模。例如,它可建模一组旅游公司。它有两个属性:maxSize和FacilityTable。MaxSize记录了设施集合的最大大小。facilityTable用来存储每个设施的信息。FacilitySet只有一个方法,它从一个文件中读取各个设施的信息并初始化FacilitySet实例的属性。Query类实现了查询“找出Maple营地方圆10英里之内的旅游公司”。该类仅有一个名为main的方法,它使用循环来遍历旅游公司列表,检查各旅游公司到Maple营地的距离。讨论Java程序的主要目的是要说明空间数据类型和操作可以应用在有别于SQL(将会在本书后面的部分用到)的宿主语言中。其次,是为了比较空间查询所需的编程工作量。在编写简单的空间查询时,利用SQL将大大减少所需的代码量,同时也减少了性能调整和数据结构选取的负担。建议读者在后面的几章中通过比较SQL和Java来回顾这些观点。0412.2 数据库设计的三个步骤至此,我们在本章中讨论了两种空间信息模型:对象模型和场模型。采用这些模型的做法是从数据建模所涉及的空间领域本质的概念的角度来说明的。现在,我们从数据库设计的角度来介绍传统的数据建模方法。我们的最终目标是“调和”这两个概念体系。数据库应用通过三个设计步骤来进行建模[ElmasriandNavathe,2000]。首先,采用高层次的概念数据模型(conceptualdatamodel)来组织所有与应用相关的可用信息。在概念层上,重点关注应用的数据类型及其联系和约束。设计过程的这个阶段不考虑具体实现细节。概念模型通常用浅显的文字,结合简单一致的图形符号来表示。实体-联系(entityrelationship,ER)模型是所有概念设计工具中最为流行的一种。第二步,也称为逻辑建模阶段,与概念数据模型在商用DBMS上的具体实现有关。商用DBMS中的数据由实现模型来组织。实现模型的例子有:层次模型、网状模型和关系模型。其中,关系模型是目前商用数据库所实现的最为广泛的模型之一。在关系模型中,数据类型、联系和约束都被建模为关系(relation)。与关系模型联系紧密的是形式化查询语言的关系代数(relationalalgebra,RA)。RA由一些简单的操作组成,这些操作能够查询用关系方式组织的数据。关于RA的详细介绍,请见第3章。关系模型并不能满足空间数据建模的要求,[Herring,1991]对此的解释如下:  关系代数刻画了关系数据库的查询能力:关系数据库能够回答任何以关系代数表示的查询,从而成为普遍接受的关系数据库传统应用的模型。  相反,还没有广为接受的地理信息数学模型,这给空间数据查询语言和空间数据库的设计造成了困难。此外,GIS与关系数据库之间有着相当大的语义鸿沟,也导致了复杂性和不便之处。第7章用一个具体例子来说明如果没有附加设定,RA对于表述传递闭包(transitiveclosure)是无能为力的,而传递闭包是重要的图形操作,它与2.1.5节中提到的再分类操作[Deliseta1.,1994]紧密关联。最后,数据库设计的第三个步骤是物理设计的建模,它解决数据库应用在计算机中具体实现时方方面面细节。有关存储、索引和内存管理等问题都在这一阶段考虑和解决,我们将在后面的几章中讨论这些问题。现在,先介绍一下ER模型。2.2.1 ER模型数据库设计的第一步是提出“微型世界”的概念模型。构建概念模型的目的是以一种避开计算机隐喻的方式来表达这个微型世界,从而把应用中的概念与实现细节分离开来。对于概念数据建模来说,有许多可用的设计工具,ER模型是其中最为流行的工具之一。ER模型同关系模型无缝地整合在一起,而关系数据模型又是三个数据库设计阶段的第二步中最流行的逻辑模型之一。除了用ER模型方法和用面向对象设计方法设计的模型外,UML是另一个流行的概念建模工具。我们将在下一节详细讨论UML,我们在这里使用ER模型对state-Park例子进行建模:1.实体和属性在ER模型中,微型世界被划分成一个个实体(entity),由属性(attribute)来描述实体性质,并通过联系互相关联。实体是物理上或者概念上独立存在的事物或对象。在State-Park例子中,FOREST、RIVER、FOREST-STAND、ROAD以及FIRE-STATION都是实体。实体由属性来刻画其性质。例如,name是实体FOREST的属性。唯一标识实体实例的属性(或属性集)称为码(key)。在我们的例子中,假定任意两条道路均不能同名的话,实体ROAD的name属性就是一个码。本例中数据库的所有ROAD实例都有唯一的名称。尽管这不是概念设计的问题,但DBMS中必须有一个机制来保证这种约束。属性可以是单值或多值的。species(树种)是FOREST-STAND的单值属性。我们利用本例的情况来解释多值属性。FACILITY实体有一个Pointid属性,它是该实体实例的空间位置的唯一标识。我们假定,由于地图比例尺的缘故,所有FACILITY实例都要用点来表示。一个给定的设施可能会跨越两个点对应的位置,这时,Pointid属性就是多值的。其他实体也会有类似情况。假设要存储有关FOREST的elevation(高程)信息,由于elevation的值在FOREST实体内部会变化,我们将该属性作为多值属性,因为不支持场数据类型。2.联系除了实体和属性外,构成ER模型的第三个要素是联系(relationship)。实体之间通过联系相互作用和关联。在前面的小节中,我们已经提到了空间联系,这里来关注联系的一般概念。虽然多个实体可以同时参与一个给定的联系,但我们只讨论二元(binary)联系,即两个实体间的联系。有三种基于基数约束的联系:一对一、多对一和多对多。(1)一对一(1:1)在一对一的联系中,一个实体中每个实例只能与其他参与实体的一个实例相联系。例如,实体MANAGER和FOREST之间的联系manages就是一个一对一的联系,即一个FOREST只能有一个MANAGER,而一个MANAGER只能管理一个FOREST。(2)多对一(M:1)多对一联系可将一个实体的多个实例与另一个参与该联系的实体的一个实例相连接。belongs_to是实体FACILITY与FOREST之间的一个多对一联系,这里假定每个设施仅仅属于一个森林,但每个森林可以有多个设施。(3)多对多(M:N)有时候一个实体的多个实例会与另一个参与该联系的实体的多个实例相联系。实体RIVER和FACILITY之间的联系supplies_water_to正是这样的一个联系。有时候,联系也可以拥有属性。supplies_water_to有一个Volume属性,用来跟踪一条河流向一个设施供水的水量。3.ER图与ER模型相关的是ER图,ER图为概念模型提供了图形化的表示方法。在ER图中,实体用矩形表示;属性表示为椭圆,并用直线与表示实体的矩形相连;联系则表示为菱形。联系的基数(cardinality)(包括l:1、M:1或M:N)标注在菱形的旁边。码的属性加下划线,而多值属性用双椭圆表示。State-Park例子的ER图如图2-4所示,其中有7个实体,即FOREST-STAND、RIVER、ROAD、FACILITY、FOREST、FIRE-STATION和MANAGER。实体FOREST的属性有name、elevation和polygonid。name是唯一的标识,即每片森林有唯一的名称。图中还给出了8个联系。实体FOREST参与了6个联系,而实体FIRE-STATION只参与了一个名为monitors的联系。基数约束表明每个消防站只监控一片森林,但一片森林可被许多消防站监控。有些联系是空间上固有的,包括cross(穿过)、within(在内部)和part-of(部分),而图中许多其他空间联系是隐含的。例如,一条河流穿过一条道路在图中是标明的,而一条河流穿过一片森林则是隐含的。图2-4 州立公园例子的ER图2.2.2 关系模型Codd在1970年提出用关系模型描述数据。从那时起,关系模型逐渐成为最流行的逻辑数据模型之一。关系模型的广为流行和强大能力要归功于其简洁的结构。我们利用State-Park例子来解释关系模型的术语。假设我们需要组织州立公园所有森林的可用数据,这时可以用一个名为Forest表的形式来组织这些信息,把一系列可用的信息在列入表的列(column)中。对于表Forest,相关联的数据由三部分组成:森林的name(名称),它的elevation(高程)以及spatialgeometry(空间的几何形状)。该表称为一个关系(relation),其列称为属性(attribute)。Forest的每个不同的实例用表中一个行区分。每一行被称为一个元组(tuple),表中行或列出现的顺序并不重要。因此,关系是一个无序的元组集合。表名与列名合在一起构成了关系模式(relationschema),行(或元组)的集合称为关系实例(relationalinstance)。列的数目称为关系的度(degree)。Forest是一个三度的关系。类似地,关于不同的林分和河流的数据也可以组织在不同的表中。属性可以取哪些值?在传统的数据库应用中,称为域(domain)的属性的数据类型是有限制的,其中包括整型、浮点型、字符串、日期型以及其他的域。此外,传统数据库不支持用户自定义的数据类型。在Forest表中,属性name能很好地满足这种有限集合的要求,但属性elevation和geometry却不能满足。这就是说传统的关系数据库技术难以满足SDB的原因之一。尽管如此,我们将展示如何将空间信息映射到关系数据模型中。在对象-关系数据模型中,有理由假设添加新的基本域或者如OGIS规范所指定的数据类型,这正是我们要在下一节讨论的内容。为了确保数据的逻辑一致性,必须维持关系模式上的某些约束。这些约束包括:码约束,实体完整性(entityintegrity)约束和参照完整性(referentialintegrity]约束。码约束规定每个关系必须有一个主码(primarykey)。码是关系属性的一个子集,码值在整个关系的元组中是唯一的。一个关系中可能有很多码,用来标识关系中元组的码称为主码。实体完整性约束规定了主码不能取空值。设置该约束的理由是显而易见的:如果主码可以为空值的话,将无法用来唯一地识别元组。不同关系之间逻辑上的一致性联系可通过实施参照完整性来维持。为了解释参照完整性,我们首先介绍外码(foreignkey)的概念。外码是一个关系的属性集,这个关系被复制到另外一个关系中。参照完整性约束规定:外码的属性值要么是另一关系的主码值,要么为空值。如果一个关系包含外码,则称该关系参照(refer)另一关系。2.2.3 将ER模型映射到关系模型许多软件包(也称为CASE工具)可以将ER模型转化为关系模式。这样的软件包有ERwin、OracleDesigner2000和RationalRose等等。这种转化工具让数据库设计者们在设计概念数据模型时可以把重点放到应用领域的需求上。要不足因为有空间属性,ER模型就可以无缝地、直观地映射成关系模型。整个过程有6个基本步骤:1)将每个实体映射成一个单独的关系。实体的属性映射成关系的属性。类似地,实体的码映射成关系的主码。图2-4的ER图所对应的关系模式如图2-5所示。2)对于基数为1:1的联系,我们将任一实体的码属性作为其他关系的一个外码。例如,关系Manager有一个外码属性,它对应于Forest的主码name。3)如果联系的基数是M:1,就把“1”侧的关系的主码作为“M”侧关系的外码。例如,关系Fire-station用关系Forest的主码作为其外码。4)对基数为M:N的联系,则处理方式完全不同。每个M:N联系被映射成一个新的关系。关系的名称就是联系的名称,而关系的主码由参与实体的主码对组成。如果联系有属性的话,那它就成为新关系的属性。例如,Supplies_Water_To是Facility实体和River实体之间的一个M:M联系,河流和设备的名字组成主码,而属性volume成为新表的一个属性。注意,M:N的空间联系Road-Crosses-River变成了一个新表Road-Crosses-River。图2-5 州立公园例子的关系模式5)对于多值属性,创建一个具有两个列的新的关系:一列对应该多值属性,另一列对应拥有该多值属性的实体的码。多值属性和对应实体的码合起来构成新关系的主码。例如,Forest-Stand实体有一个多值属性polygonid,它是一个标识号(整数),用于标识所在城市的几何位置。polygonid之所以是一个多值属性,是因为Forest-Stand可能会跨越两个分离的区域(例如,一条公路可能穿过一个林分)。因而,我们得到一个关系Fstand-Geom。类似地,还有关系Forest-Geom、River-Geom、Road-Geom、Facility-Geom和Fstation-Geom。6)elevation这个属性需要用一种截然不同的方式进行处理。首先,我们已经指出,elevation是一个多值属性,因而显然需要一个新的名为Elevation的关系,新关系的属性是Forest_Name、Elevation和Pointid,如图2-6所示。elevation的属性记录了森林在Pointid位置的高度。在这个表中,所有三个属性共同构成了主码。空间表在关系模型中,ER图的空间属性和空间变化属性必须用特殊方式进行处理。新的域(例如空间对象)被表示为新的关系。原有关系的主码成为新关系的外码,新关系所表示的实体带有采用新域的属性。如前所述,pointid、lineid和polygonid是一些新的域,可以作为独立的关系进行建模。对应这些属性,分别有关系:Point、Line以及Polygon(见图2-6):图2-6point、line、polygon和elevation的关系模式1)Point表有三个属性:pointid、latitude和longitude。尽管还有许多其他参照系,但经度-纬度参照系是人们最熟悉的,而且所有其他参照系都可由它导出。2)两点确定一条直线段,因此,Line表的pointid属性是对应Point表的外码。seq-no属性表示点的序号,这些点组成一条由lineid标识的线。3)Polygon表与Line表相似,但它多了一条约束,即首尾点的序号指的是同一个pointid。2.3 趋势:扩展ER模型表达空间概念前面叙述了将ER图的空间属性转化为空间表,但这种转化并未充分利用2.1.3节所描述的空间数据类型,它只是把空间属性作为一般的非空间属性对待。这里,我们介绍一个新的趋势:用象形符号扩展ER图,以便专门处理空间数据类型。这将减少ER图以及所产生的关系模式的复杂度,同时改进空间建模的质量。空间联系(例如Road-Crosses-River)就可以从ER图中省略,用隐式的方式表示。关系模式中的表达多值空间属性的关系和M:N空间联系也就不需要了。如前面所讨论的,至少在直观上,ER模型不能表达空间建模中的特定语义。具体来说,ER模型的不足之处在于:1)ER模型的最初设计隐含了基于对象模型的假设。因此,场模型无法用ER模型进行自然的映射。2)在传统的ER模型中,实体之间的关系由所要开发的应用来导出,而在空间建模中,空间对象之间总会有内在的联系。例如,前面讨论的所有拓扑关系都是两个空间实体之间联系的有效实例。如何将这些联系整合到ER模型中,而又不使ER图变得复杂呢?3)建模空间对象所使用的实体类型和“地图”的比例尺有关。一个城市是用点还是用多边形表示和地图的分辨率有关。在概念模型中,如何表达同一个对象的多种表现形式?用象形图扩展ER模型为了使空间应用的概念建模更加简单和直观,提出了许多对ER模型进行扩展的方法。其主要思想是增加某种结构来接受和表达空间推理的语义,同时保持图形表示的简洁性。最近,提出了用象形图(pictogram)来注释和扩展ER图的方法。空间联系(包括拓扑的、方位的和度量的联系)隐含在任何两个具有空间成分的实体之间。例如,在实体Forest和River之间很自然会考虑拓扑关系——cross。在ER图中包含这种cross联系并不能转达更多有关该应用建模的结构信息。我们将说明如何用象形图来表达空间数据类型、比例尺以及空间实体的隐含关系的。我们将以BNF范式(Bachus-Naurform)的语法符号来表示象形图的扩展,当然,这里并不要求一定要熟悉BNF的符号来理解随后的内容。有关这类语法符号的信息可以在任何介绍编译器的标准计算机科学的教材中或许多参考书中找到。1.实体象形图(1)象形图象形图是一种将对象插在方框内的微缩图表示,这些微缩图用来扩展ER图,并插到实体矩形框中的适当位置。一个象形图可以是基本的形状,也可以是用户自定义的形状。象形图的语法(2)形状形状是象形图中的基本图形元素,它代表着空间数据模型中的元素。一个模型元素可以是基本形状、复合形状、导出形状或备选形状。许多对象具有简单的基本形状。(3)基本形状在一个矢量模型中,基本元素有点、线和多边形。在一般的应用中,大多数空间实体是用简单形状来表示。在森林的例子中,我们把设施表示成点(0维),把河流或道路网表示成线(1维),把森林区域表示成多边形(2维)。(4)复合形状为了处理那些不能用某个基本形状表示的对象,我们定义了一组聚合的形状,并用基数来量化这些复合形状。例如,河流网可以用线的象形图的连接表示且其基数为n。类似地,对于一些无法在某个给定比例尺下描绘的要素,我们用0作为其基数。(5)导出形状如果一个对象的形状是由其他对象的形状导出的,那么就用斜体形式来表示这个象形图。例如,我们可以从美国的州界形状导出美国的形状。(6)备选形状备选形状可以用于表示某种条件下的同一个对象。例如,根据比例尺,一条河流可以表示成一个多边形或一条线。(7)任意形状对于形状的组合,我们用通配符(*)表示,它表示各种形状,例如,一个灌溉网是由泵站(点)、水渠(线)以及水库(多边形)所组成的。(8)用户自定义形状除了点、线和多边形这些基本形状外,用户还可以定义自己的形状。例如,为了表达更多的信息,用户可能更愿意使用感叹号之类的象形图来表示灌溉网。2.联系象形图联系象形图用来构建实体间联系的模型。例如,part-of用于构建道路与路网之间联系的模型,或是用于把森林划分成林分的建模。使用象形图扩展的ER图见图2-7。其中,Facility和Fire—station实体用点的象形图表示,River和Road表示成线的象形图,而Forest和Forest-stand用多边形的象形图表示。Forest与Forest-stand之间的part_of联系在图中表示出来。这张图清楚地反映出象形图增强了ER图对空间语义的表达能力。part_of(分区)象形图暗含有3个空间完整性约束:1)forest_stand在空间上彼此“分离”,即空间中任意一点至多属于一个forest_stand。2)forest_stand在空间上位于森林“内部”,是森林的一部分(part_of)。3)所有forest_stand的几何并集在空间上“覆盖”它们所属的森林。这些空间完整性约束描述了空间的集合分区(set-partition)语义。图2-7州立公园例子的带象形符号的ER图比较图2-4与图2-7,可以看出象形图增强ER模型的优势。值得注意的是,图2-7并不显得杂乱,因为这里只有很少的显式联系和属性。空间联系和属性是隐含的。其次,图2-7显示了在空间联系上的更多的信息。例如,尽管图2-7没有显式列出“河流穿过森林”和“消防站在森林之中”这些联系,但是从图中可以看出这些隐含的联系。part_of(分区)象形图所暗含的空间完整性约束也是原来没有的。最后,图2-7的关系模式要比图2-4的关系模式更为简单,由M:N的空间联系生成的关系和空间数据类型都被省略。2.4 趋势:用UML构建面向对象数据模型C++和Java这类面向对象程序设计语言的流行促进了OODBMS的发展。OODBMS日益流行的原因是,将概念数据库模式直接映射到面向对象的语言中可以减低阻抗失配。阻抗失配是指一个层次上的模型转化到另一层次上的模型(例如,从ER模型映射为关系数据模型)时所遇到的困难程度。图2-8 State-Park例子的UML类图UML[Boocheta1.,1999]是用于面向对象软件设计的概念层建模的新兴标准之一。它是一种综合型语言,用于在概念层对结构化模式和动态行为进行建模。就数据库设计而言,我们只对系统静态结构的建模感兴趣。现在,我们来使用类图而不是ER图来建模。图2-8是图2-4所示State-Park例子的一个等价UML类图(UMLclassdiagram,UMLCD)表示。下面,我们结合state-Park的例子来扼要描述UMLCD的符号:·类(class)是所有在应用中具有相同性质的对象的封装,它等价于ER模型中的实体。例如,设施就是一个类,至少它抽象地包含了州立公园中的功能性单元,例如休息室、营地和旅游公司。正如对ER图所做的那样,我们也能对类图进行象形图扩展。这样就可以清楚看出Facility类的实例是空间对象。更确切地说,它们的空间几何形状用点来表示。这样一来,有关点对象的所有空间属性、联系和操作都适用于Facility类。·属性(attribute)描述类的对象。与ER符号不同,UMLCD没有符号表示码属性,这足因为在面向对象(OO)系统中,所有对象都有一个系统生成的唯一标识。属性还有一个与之关联的作用域或可见性。作用域规定是从类的内部还是外部访问属性,这是控制数据库设计中模块化程度的关键。作用域有三个级别,每一个级别都有特定的符号:1)+(公有的):属性可以被任意类访问和操纵。2)-(私有的):只有属性所在的类才可以访问这个属性。3)#(受保护的):从父类派生的类(“子类型化”)可以访问该属性。State-Park例子中的属性全部选用受保护的属性。 ·方法(method)是一些函数,它们是类定义的一部分,用来修改类的行为或状态。类的状态由属性的当前值来体现。在面向对象的设计中,属性只能通过方法来访问。在Facility类中,通过方法GetName()来访问属性name。·关系(relationship)将一个类与另一个类或者它自己相联系。它类似于ER模型中的联系。对于数据库建模,UMLCD有三种重要的关系:聚合、泛化和关联。1)聚合(aggregation)是UMLCD中特有的概念,它描述了部分-整体关系。例如类Forest-stand与类Forest是部分-整体关系。一个类有时可以作为多个其他类的一部分。为了区分这两种情况,我们把前者称为强聚合,而把后者称为弱聚合。 2)泛化(generalization)在图2-2所示的空间层次语境中得到最好说明。例如,Geometry类是其子类Point、Line和Polygon的泛化。 3)关联(association)反映了不同类的对象之间是如何联系的。和ER模型的联系一样,如果一个关联涉及两个类,那它就是二元的;如果涉及三个类,那么它是三元的(ternary)。关系supplies_water_to就是Facility类与River类之间的一个关联。注意,图2-8中有一个supplies_water_To类,它通过虚线与关联supplies_water_to相连。这是因为该关联本身就有一个Volume属性。比较ER与UMLER和UMLCD的主要概念在表2-3中作了归纳。前面的讨论表明,在这两个建模范型之间有很多相似之处,但也有一些差异。表2-3 ER与UMLCD中的概念ER图中的“实体”概念与UML类图中的“类”概念相近。实体和类都有属性,并且都参与到诸如继承和聚合这样的联系中。但类除属性之外还包括方法。方法是封装了逻辑和计算代码的过程或函数,而ER模型的实体一般不会包含方法。类图可以对类的属性及方法进行建模,这些类来自于面向对象的程序设计语言,例如Java。UMLCD中有方法的概念,它可用来修改类的状态和行为。ER模型的有些概念在类图中是不可用的。其中之一是弱实体的概念,弱实体的唯一标识必须依赖另一个实体。我们来看由用户名和域名组成的电子邮件地址。例如,对于root@cs.umn.edu来说,“root”是用户名,而“cs.umn.edu”是域名。显然,用户名root不是唯一的,它要依赖域名来组成唯一标识。由于类图和面向对象的范型都假定所有的对象都有唯一的标识,因而不支持弱实体。在ER中,每个实体的实例由一个用户定义的显式标识来描述,而在UMLCD中,则假定系统会为每个类的实例生成唯一的标识。2.5 小结空间信息建模可以分为两大类:场模型和对象模型。场模型对形状不定的空间结构的建模非常有用,这种结构的空间变化是平滑的,例如瀑布、云层、烟和悬浮微粒等。对象模型适用于对离散的、可识别的结构进行建模,例如对国家进行建模。与每一种模型相关联的是一组刻画模型的操作。与场模型相关的操作可以分为三类:局部的、聚焦的和区域的。与对象模型相关的操作可以按其数学性质划分为:面向集合的、欧氏的、拓扑的和度量的。ER模型广泛用于数据的概念层建模。虽然ER模型的设计并不是专用于某种形式的数据,但它主要适用于简单的数据类型和结构。ER模型可以通过一系列次序清晰的步骤映射成数据库中的关系模型。ER模型和关系模型必须进行扩展才能整合空间数据的空间特性。ER模型可通过引入象形图来进行扩展,象形图用符号表示各种空间数据类型和关系。类似地,关系模型也可通过增加新的数据类型及其相关的操作来进行扩展。例如,空间应用中有三个众所周知的数据类型:点、线和多边形。作为OODBMS广泛使用的概念建模语言,也可通过象形图来扩展UML,以便对空间数据建模。2.6 参考书目2.1对象一场的二分法是GIS和空间建模领域中颇有争议的话题。大多数采集的数据适用于场类型的分析,而数据库建模则偏爱对象的观点。有关对象一场的争论历史和心理背景,可参见[Couclelis,1992]。2.1.1本章是依据[Worboys,1995]来讨论基于场的建模的。2.1.2基于对象的空间数据模型的拓扑观点是由[Egenhofer,1991a]提出的,并由[Clementinieta1.,1993]进行扩展。2.1.4关于在方位上的对象建模的进一步讨论可参见[Shekhareta1.,1999a]。2.2数据库设计及其相关的问题可以在任何介绍数据库的教材中找到。例如可参阅[ElmasriandNavathe,2000;Ramakrishnan,1998]。2.3.1我们关于ER模型的象形图扩展的讨论是依据[Shekhareta1.,1999c]进行的。这篇论文通过用空间象形图对ER模型进行扩展(PEER),对空间数据库进行概念数据建模,并且提供了一种将PEER转化为逻辑数据模型的映射方法。2.4空间数据的ER建模扩展是由[HadzilacosandTryfona,1997;Shekharetal.,   1997]提出的,但尚未获得人们的一致认可。采用基于UML表达方式进行地理空间应用数据库建模的进一步讨论见[Brodeureta1.,2000]。2.7 习题1.讨论“场模型符合科学的严密性和理性,而对象模型则更符合人的思维”。2.在天气预报中,气压、温度和风通常采用场来建模。但公众更愿收到离散的实体方面的信息。例如,“气流的前锋将减弱”或“高气压将减弱”[Goodchild,1986]。你能够举出另一个场-对象二分法的例子吗?3.湖泊有时可建模成对象。你能够给出一个用场模型对湖泊进行建模的例子吗?湖泊的边界是良定的吗?4.匹配下面的列:标称的摄氏温度有序的绝对温度区间的社会安全号比率色谱5.设计一个ER图来表示world的地理和政策要素。World包含三个实体:国  家、城市和河流。根据这三个实体回答下列问题:  ·如果两国之间有外交关系,则通过联系diplomatic_ties将它们关联起来。请将该联系在ER图上画出并标出其基数。  ·水是21世纪经常讨论的热门话题。如果两国共有一条河,但这并不代表两国都可以使用该河的河水。试表示实体Country和River之间的联系river_owned_by。  ·在众多实例中,一国的首都并非该国的商业中心。例如:纽约是美国的商   业中心,上海是中国的商业中心,悉尼是澳大利亚的商业中心。试表示实   体City和Country之间的联系business_capital。6.考虑用OO语言(如Java)来描述OGIS层次结构。你该如何对继承进行建模?例如,类Multipoint继承了类point和类GeometryCollection的性质。你又将如何构建关联和基数约束的模型?在哪里会用到抽象类?7.研究利用UML[Boocheta1.,1999]进行数据建模。哪些UML图是与数据  建模相关的?它们在哪些地方优于ER?你将如何在UML中表达主码、外码、实体、联系、基数约束、参与约束和象形图这些概念?8.使用UML对State-Park的例子进行建模。9.将下列的操作分别归类到局部操作、焦点操作或区域操作中:a)坡度,b)被雪覆盖的公园,c)新设施的地点选择,d)平均人口以及e)人口总数。10.许多OGIS中的空间数据类型参照的是平面世界,这包括线串和多边形。但是,当对地球表面上较长河流或面积较大国家的形状进行建模时会有较大的误差。请找出一些球面上的空间数据类型来减小球面上大对象的误差。哪些空间关系(如拓扑的、度量的)会受平面近似的影响?11.回顾关于用Java程序实现的查询:“找出在Maple营地方圆10英里以内所有的旅游公司”。FacilityDemo类中的main()方法随着旅游公司数量的增加,其执行速度线性地变慢。借助第1章中的平面扫描算法的思想,设计新的算法来加快搜索速度。12.开发一个转化规则,将概念数据模型(如:ER图)中的象形图转化为OGIS  的空间数据类型,并能够将其嵌入逻辑数据模型(比如Java、SQL)或物理模型。13.考虑一些与图2-3中那8个矩阵不同的3×3的布尔矩阵,为什么将这些矩阵定义为上的2维表面中的拓扑关系是没有意义的?举出一个3维表面上的拓扑关系的例子,且它不能用图2-3中的8个操作来建模。 14.空间数据有时候可以看作多维数据的特例,多维数据是包含在多维空间(如温度、压力、音量和时间
本文档为【空间数据库第02章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
正方体
暂无简介~
格式:doc
大小:12MB
软件:Word
页数:33
分类:
上传时间:2022-05-11
浏览量:0