360 likes | 530 Views
ITCR Bases de datos avanzadas. Especificación para SQL (Simple Feature Specification (SFS-SQL)) Erika Y. Quintero R. Profesor: Armando Arce. Open Geospatial Consortium.
E N D
ITCRBases de datos avanzadas Especificación para SQL (Simple Feature Specification (SFS-SQL)) Erika Y. Quintero R. Profesor: Armando Arce
Open Geospatial Consortium The Open Geospatial Consortium (OGC) es una organización no comercial formada por autoridades, compañías, empresas, organismos estatales y universidades. Participan en el proceso para el desarrollo de especificaciones de interfaces disponibles para el público en general y que define los estándares para los sistemas de información geográfica.
OGC Simple Features La OGC ofrece the Simple Feature Specification for SQL: • Describe un conjunto de tipo de data geométrica para SQL basado en el modelo de geometría de la OGC. • Describe un conjunto de operaciones SQL sobre estos tipos. Características • El término “feature“: es una abstracción de un fenómeno del mundo real (“geo-objecto“); el cual es almacenado en una tabla feature • Las colecciones de características geoespaciales simples son conceptualmente almacenadas en un esquema de tablas de un SGBDR, cuyas columnas representan a las geometrías y las filas las características de ellas
OGC Simple Features La OGC ofrece the Simple Feature Specification for SQL: Características • Modelado de los objetos espaciales: • Basadas en entidades geométricas de 0 -2 dimensiones • Con interpolación lineal o planar entre los vértices Los atributos no espaciales de características son mapeados sobre columnas cuyos tipos son dibujadas desde el conjunto de tipos de data SQL. Los atributos espaciales de características son mapeados sobre columnas cuyos tipos son basados en los tipos de data geométrica para SQL definidos en este estándar y sus referencias
Geometry Spacial Refrence System Point Curve Surface GeometryCollection LineString LineString Polygon Polygon MultiSurface MultiCurve MultiPoint Line LinearRing MultiPolygon MultiLineString Jerarquía de clases
Jerarquía de clases - Clase geometría Propiedades: • MBR (Mininum Bounding Rectangle): es el límite de la geometría, formado por valores mínimos y máximos de coordenadas (X, Y). • Simple o no-simple: valores geométricos de tipo (LineString, MultiPoint, MultiLineString) son simples o no-simples. • Cerrado o no cerrado: valores geométricos de tipo (LineString, MultiLineString) son cerrados o no cerrados. • Dimensión: una geometría puede tener dimensión -1, 0, 1 ó 2. • -1: geometría vacía. • 0: geometría sin longitud ni área. Point • 1: geometría con longitud 0 LineString • 2: geometría con área distinta de cero. Polygon
Jerarquía de clases Clase Punto Geometría que representa una ubicación única en un espacio coordenadas. • Propiedades: • Valor de coordenada X. • Valor de coordenada Y. • Definido como geometría 0 dimensional • El límite del punto es el conjunto vacío.
Jerarquía de clases Clase Curva Es una geometría unidimensional (representada por una secuencia de puntos). No instanciable. Propiedades: • Coordenadas de sus puntos. • Es simple si no pasa por el mismo punto dos veces. • Es cerrada si su punto inicial es igual al punto final. • El límite de una curva cerrada está vacío. • El límite de una curva no cerrada son sus dos puntos finales. • Una curva simple y cerrada es un LinearRing
Jerarquía de clases Clase Polílínea (LineString) Es una curva con interpolación lineal entre puntos. • Por ejemplo: los ríos podrían representarse usando LineString. Propiedades: • Tiene coordenadas de segmentos, definidos por cada par consecutivo de puntos. • Es una línea si consiste exactamente de dos puntos. • Es un LinearRing (polilínea cerrada )si es tanto cerrada como simple
Jerarquía de clases ClaseLineString LineString LinearRing
Geometry Spacial Refrence System Point Curve Surface GeometryCollection LineString LineString Polygon Polygon MultiSurface MultiCurve MultiPoint Line LinearRing MultiPolygon MultiLineString Jerarquía de clases
Jerarquía de clases ClaseSuperficie Se define una Surface simple como una geometría que consiste de una única porción que está asociado a un único límite exterior y cero o más límites interiores. Propiedades: • El límite de una Surface simple es el conjunto de curvas cerradas que corresponden a sus límites exterior o interior. • Geometría bidimensional no instanciable.
Jerarquía de clases ClasePolígono • Superficie plana que representa una geometría multicara. • Se define por un único límite exterior y cero o más límites interiores (c/u define un agujero). Ejem: bosques, distritos Reglas que definen unpoligono válido • El límite consiste de un conjunto de objetos • LinearRing que construyen sus límites exterior e interior. • No tiene anillos que se crucen. Los anillos en el límite puede interseccionar un punto, pero nada más como tangente. • No tiene líneas, picos o valles. • Tiene un interior que consiste de un conjunto de puntos conectados. • Puede tener agujeros.
Jerarquía de clases Clase Colección geométrica Es una geometría que consiste en una colección de una o más geometrías de cualquier clase. • Los elementos deben estar en el mismo Sistema de Referencia Espacial. • Pueden haber restricciones de membresía en las subclases basadas en: • Tipo de elemento. • Dimensión. • Restricciones en el grado de sobreposición espacial entre elementos..
Geometry Spacial Refrence System Point Curve Surface GeometryCollection LineString LineString Polygon Polygon MultiSurface MultiCurve MultiPoint Line LinearRing MultiPolygon MultiLineString Jerarquía de clases
Jerarquía de clases ClaseMultipunto Colección de geometrías compuesta por puntos • Propiedades • No existe orden ni conexión alguna entre los puntos. Por ej.: Pequeñas islas podrían representarse usando objeto MultiPoint. • Geometría cero-dimensional. • Es simple si no existen dos puntos con coordenadas idénticas. • Límite = conjunto vacío.
Jerarquía de clases ClaseMulticurva Colección de geometrías compuesta por elementos curve • Propiedades • No existe orden ni conexión alguna entre los Colección de geometrías que se componen de elementos Curve. • Geometría unidimensional. • Es simple si y sólo si todos sus elementos son simples. • Es cerrada si todos sus elementos son cerrados. • El límite se obtiene aplicando la regla “unión mod 2”: un punto está en el límite si está en los límites de un # impar de elementos de MultiCurve. • El límite de una MultiCurve cerrada es siempre vacío
Jerarquía de clases Clase Multipolilínea (MultiLineString) • Colección de geometrías MultiCurve compuesta por elementos LineString. • Ejemplo: Un sistema de autopistas podría representarse mediante MultiLineString.
Jerarquía de clases ClaseMultiSuperficie (Multisurface) Colección de geometrías compuesta por elementos Surface. • No instanciable. • Dos superficies no tienen interiores que se intersecan. • Dos elementos de un objeto MultiSurface tienen límites que interseccionan como máximo en un número finito de puntos.
Jerarquía de clases ClaseMultipolígono Compuesto de elementos polígonos. • Por ej.: un sistema de lagos podría representarse mediante MultiPolígono. Propiedades • Geometría bidimensional. • Límite = conjunto de curvas cerradas que corresponden a los límites de sus elementos Polygon. • Cada curva en el límite de un MultiPolígono está en el límite de exactamente un elemento Polígono. • Cada curva en el límite de un elemento Polígono está en el límite del MultiPolígono.
Operaciones básicas La especificación de OGC define las siguientes operaciones básicas para una geometría: • Dimension(g): retorna la dimensión de una geometría g • GeometryType(g): retorna el nombre del tipo geométrico de una Geometría g (e.g. LINESTRING, POLYGON, MULTICURVE, …) • AsText(g): convierte la geometría g dentro del „“formato de texto SQl“ para exportarlo en otras aplicaciones (e.g.: POLYGON(0 0,0 1,1 1,1 0,0 0)) • AsBinary(g): convierte g dentro de un formato binario (además especificado) para exportarlo en otras aplicaciones. • SRID(g): returna el ID del sistema de referencia espacial de g • IsEmpty(g): retorna 1 (ture) si la geometría es una gemetría • IsSimple(g): returna 1, si g es simple, si no tiene puntos geométricos anómalos. - Boundary(g): genera un contorno común de un objeto
Operaciones espaciales Distance computa la distancia más corta entre dos geometrías en e correspondiente sistema de Las siguientes operaciones generan nuevos objetos: - Buffer(g,d): computa la geometía de un buffer de tamaño d alredeor de la geometría de g. - Intersection(g1,g2): computa la geomtería formada por la intersección de g1 y g2. - Union(g1,g2): computa la geomtería formada por la uníon de g1 and g2. - Difference(g1,g2): computa la geometría formada por la diferencia del conjunto g1 y g2 (g1-g2) - SymDifference(g1,g2): computa la geometría formada por la dferencia simpetrica de g1 y g2
Pruebas de relaciones topológicas Los predicados en detalle: los parámetros son en cada caso dos geometrías, el valor de retorno es un valor entero: • 0/1 para: la relación entre objetos espaciales es cierta / falsa • -1 para: desconocido, uno o más argumentos tienen valores nulos. Operadores: • Disjoint(g1,g2) no intersección (g1,g2): g1 y g2 están separados. • Equals(g1,g2): g1 y g2 are espacialmente idénticos • Crosses(g1,g2): la dimensión de la intersección de g1 y g2 es más baja lower que la dimensión máxima de g1 y g2, y intersección del interior de puntos comprimida de g1 y g2 no es igual to g1 or g2. • Touches(g1,g2): los límites de g1 y g2 se intersecan pero no su interior. • Within(g1,g2) Contains(g2,g1): g1 lies fully within g2 • Overlaps(g1,g2): la dimensión de la interseción de g1 y g2 es igual a la dimensión de g1 y g2 y la intersección no es igual a g1 o g2.
Esquema de las tablas OpenGis Implementación usando tipo de datos predefinidos
Esquema de las tablas OpenGis Tabla de Geometría: esquema normalizada Almacena las coordenadas geométricas como tipos numéricos predefinidos de SQL. • Una o más coordenadas (X, Y, opcional Z) serán representadas por pares de tipos numérico en la tabla de geometría. • Cada objeto geométrico es identificado: • Una llave (GID): consiste de uno o más elementos ordenados por una secuencia de elemento • ESEQ: identifica la secuencia de los elementos individuales • ETYPE: identifica tipo de primitiva de objeto • SEQ: para indicar número de secuencia de cada elemento individual
Esquema de las tablas OpenGis Tabla de geometría normalizada Ejemplo de una tabla de geometría para una geometría de polígono
Esquema de las tablas OpenGis Tabla de geometría: esquema binario Usa un GID (una llave que identifica el objeto geométrico) y almacena el objeto usando el formato de representación binaria para geometría (Well-known) Ejemplo de la tabla geométrica para un polígono usando WKB Incluye el límite mínimo del rectángulo para el objeto geométrico así como el WKB geométrico para el objeto geométrico
Construcciones de tablas Tabla: Columna de información de geometría CREATE TABLE GEOMETRY_COLUMNS ( F_TABLE_CATALOG CHARACTER VARYING NOT NULL, F_TABLE_SCHEMA CHARACTER VARYING NOT NULL, F_TABLE_NAME CHARACTER VARYING NOT NULL, F_GEOMETRY_COLUMN CHARACTER VARYING NOT NULL, G_TABLE_CATALOG CHARACTER VARYING NOT NULL, G_TABLE_SCHEMA CHARACTER VARYING NOT NULL, G_TABLE_NAME CHARACTER VARYING NOT NULL, STORAGE_TYPE INTEGER, GEOMETRY_TYPE INTEGER, COORD_DIMENSION INTEGER, MAX_PPR INTEGER, SRID INTEGER NOT NULL REFERENCES SPATIAL_REF_SYS, CONSTRAINT GC_PK PRIMARY KEY (F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN)
Construcciones de tablas Tabla: Sistema de referencia espacial CREATE TABLE SPATIAL_REF_SYS ( SRID INTEGER NOT NULL PRIMARY KEY, AUTH_NAME CHARACTER VARYING, AUTH_SRID INTEGER, SRTEXT CHARACTER VARYING(2048) )
Construcciones de tablas Tabla: Características (Feature) CREATE TABLE <feature table name> ( <primary key column name> <primary key column type>, … (other attributes for this feature table) <geometry column name> <geometry column type>, … (other geometry columns for this feature table) PRIMARY KEY <primary key column name>, FOREIGN KEY <geometry column name> REFERENCES <geometry table name>, … (other geometry column constraints for this feature table)
Formato de texto de tipos geométricos en SQL Para el intercambio de datos y construcción de objetos geométricos, como consultas, provee la representación con el formato de texto “Well-known text (WKT)
Paunzhausen 8500 POLYGONFROMTEXT: Traduce la data del texto SQL en un poligono Insersión de un polígono usando SQL
Counsulta: imprimir un objeto geométrico • Se desea: el polígono que marca la ciudad de Paunzhausen sea impresa en formato de texto SQL: • SELECT Name, ASTEXT(Geometry) FROM Cities WHERE Name = “Paunzhausen" • Resultado
Una unión espacial en general es unión que comprime un predicado espacial dentro de la condición de la consulta. Ejemplo: ¿A través de cuales ciudades fuye un río? SELECT Cities.Name, Rivers.Name FROM Cities JOIN Rivers ONcrosses(Cities.Geometry,Rivers.Geometry)=1 Counsulta tipo: unión espacial Conjunto de objetos (Ciudades) Conjunto de objetos, 2 ríos Retorna pares de objetos
Referencia http://www.opengeospatial.org/standards/sfs Resumen: http://www.freewebs.com/ginebra_2