资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,空间数据的关系化管理,空间数据关系化管理的概述,空间数据关系化管理的体系结构,空间数据关系化管理的概述,定义:,一种采用基于,关系模型,的数据库管理系统(,RDBMS,)实现地理信息的,空间几何数据,与,属性数据,一体化存储、查询、更新以及分析等功能的,数据管理方法,。,起因,基于关系模型的数据库管理技术(RDBMS)是目前最为成熟的数据库管理方法。,海量地理空间数据安全、高效、分布式的管理成为目前地理信息系统应用、发展的基本需求。,空间数据关系管理包括:,空间数据存储,和,空间数据分析,。,空间数据管理系统,空间数据访问模块,数据库管理系统(RDBMS),空间数据库,(SDB,),空间数据关系化管理的体系结构,空间数据在关系数据库中存储(1),空间表结构,7,SDB,=,SQL92数据类型,int,char,空间表与属性表关联,基本查询,基本的RDBMS的SQL查询语言-多表关联,Select*from 多边形表,弧段表,弧段坐标表,坐标表 where多边形表.弧段ID=弧段表.ID,and,弧段表.弧段坐标ID=弧段坐标表.ID,and,弧段坐标表.坐标ID=坐标表.ID;,Select*from 多边形视图表;,更新、删除。,11/1/2024,8,空间分析查询(1),空间数据的分析功能由,关系数据库,实现,11/1/2024,9,SDB,SQL,(复杂嵌套、联合)基本运算符(,=,=,!=),判断两个点是否重合,Select*from 点表1,点表2 where 点表1.x=点表1.x and 点表1.y=点表1.y;,判断两条弧段线是否重合,通过表关联的到弧段线对应的点坐标;,对坐标的X、Y属性逐一的比较。,直接使用标准SQL语句来在RDBMS系统中实现空间数据分析十分复杂。,11/1/2024,10,空间分析查询(2),使用SQL查询获取空间数据后,利用面向对象程序语言,构建要素对象类进行空间分析。,11/1/2024,11,SDB,要素对象类,利用,循环、,控制,功能,实现空间分析,SQL,只实现数据的读取功能,11/1/2024,12,Class point,Int X;,Int Y;,Int Y;,Public Set(int x,inty,int y),X=x;,Y=y;,Z=z;,Public boolean Eqa(Point A,Point B,if A.X=B.X&A.y=B.y,Return true,Else,Return false,ODBC,(SQL),读取数据,赋值,关系运算,调用分析函数,空间数据在关系数据库中存储(2),11/1/2024,13,SDB,=,关系数据库支持(,Blob、Image,等类型的存储),空间数据序列化存储。在数据库中不能直接对序列化数据进行运算。,空间查询、分析,使用SQL查询获取空间数据后,利用面向对象程序语言,构建,内存数据模型,进行空间分析。,11/1/2024,14,SDB,要素对象类,SQL,数据,序列,化/反,序列,实现,二进制数据,与,空间数据类型,的转换,实现空间关系运算,Select,A.Shape,A,.,属性,1,A.,属性,2 from A,Select*from,A.Shape,overlap,B.Shape,空间数据在关系数据库中存储(3),16,SDB,=,ADT(自定义数据类型),SQL99支持,Geometry,空间数据的查询、分析,利用关系数据库扩展的SQL语句Geo-SQL,11/1/2024,17,SDB,RDBMS,中间件,(Spatial ware),Geo-SQL,DDL,DML,Geo-SQL,Geo-SQL查询,World空间数据库:county、city、river,Name,Population,Capital,Name,Population,continent,Life-EXP,GDP,Name,Length,City,Country,River,Originates,Capital of,country,River表,city表,(1)DDL,(2)DML,INSERT INTO River(Name,Origin,Length)VALUES(Mississippi,USA,6000),DELETE FROM River where Name=Mississippi,(3)Geo-SQL,查询:列出Country表中每个国家的名字、人口和国土面积:,Select C.Name,C.Pop,Area,(C.shape)as Area from Country C,查询:找出River表中所列出的河流流经的国家,Select R.Name C.name from River R,Country C,where,Cross,(R.Shape,C.Shape)=1,查询:对于River表中所列出的河流,在City表中找到距离,其最近的城市,Select C1.Nam R1.name from City C1,River R1,where,Distance,(C1.Shape,R1.Shape),ALL(Select Distance(C2.shape,R1.shape),From City C2,Where C1.NameC2.Name),查询:圣劳伦斯河能为方圆300公里内的城市供水,,列出能从该河流获得供水的城市,Select c1.Name,From City C1,River R,Where,overlap,(C1.shape,Buffer,(R.shape,300)=1,AND R.Name=st.Laurence,
展开阅读全文