Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porBasilia Armendariz Modificado hace 11 años
1
Máster en Tecnologías de Información Geográfica
Tema 5: SQL Server Bases de datos Máster en Tecnologías de Información Geográfica
2
Contenido Introducción Soporte de datos espaciales
Tipos de datos espaciales en SQL Server SQL para tipos de datos espaciales Rendimiento Vistas espaciales gráficas integradas Aplicaciones Management Studio Recuperación y disponibilidad Soporte nativo de XML Gestión de geodatabases en ArcGIS
3
1. Introducción Historia: Es un SGBDR completo:
Nace en Sybase (década de 1980) para Unix Microsoft lo traduce posteriormente a Windows NT Es un SGBDR completo: Propiedades ACID Atomicity Consistency Isolation Durability Disparadores Restricciones de integridad Réplicas de bases de datos (duplicación) Copias de seguridad Ajuste de rendimiento Funciona en plataformas: Pocket PC -> Mainframes
4
1. Introducción Extensiones: XML OLAP (Online Analytical Processing)
Data Mining (Minería de datos) Extensiones espaciales para GIS
5
2. Soporte de datos espaciales
Modelos espaciales geodésicos: Superficie de la Tierra: Aproximada por un elipsoide (esfera achatada) Datum Coordenadas: Latitud y Longitud (generalmente) Aunque hay otros sistemas…
6
2. Soporte de datos espaciales
Modelos espaciales planos: Proyecciones bidimensionales del esferoide Proyección UTM Desarrollo cilíndrico conforme de Gauss
7
3. Tipos de datos espaciales en SQL Server
Datos espaciales geodésicos: Tipo de datos geography Coordenadas latitud-longitud Usado en mapas y aplicaciones globales Ej: Geolocalización con GPS Datos espaciales planos: Tipo de datos geometry Coordenadas en un plano arbitrario Usado en mapas regionales Ej: Mapas de carreteras Conforme al estándar OGC (Open Geospatial Consortium) Simple Features Specification for SQL Implementados como tipos de datos CLR (Common Language Runtime) Accesibles en .NET
8
3. Tipos de datos espaciales en SQL Server
9
3. Tipos de datos espaciales en SQL Server
POINT: A Point is an exact location, and is defined in terms of an X and Y pair of coordinates, as well as optionally by a Z (elevation) and M (measure) coordinate. It does not have a length or any area associated with it. Points are used as the fundamental building blocks of more complex spatial types. Note: Z and M are recognized and maintained by SQL Server 2008 if supplied, but are not used in any calculations). LINESTRING: A line segment is the shortest path between two points. A LineString, then, is defined as the path between a sequence of points (i.e., a series of connected line segments). It is considered simple if it does not cross over itself, and is considered a ring if the starting point is the same as the ending point. A LineString is always considered to be a one dimensional object; it has length, but does not have area (even if it is a ring). POLYGON: A Polygon is a closed two-dimensional shape defined by a ring. It has both length and area. A Polygon may also have holes in its interior (a hole is defined by another Polygon). Area within a hole is considered to be exterior to the Polygon itself. COLLECTIONS: In addition to the single instance types (Point, LineString, and Polygon), there is also a type that can hold a collection of instances. This is similar to a list or an array in most programming languages. The most generic type of collection is the GeomCollection, whose members can be of any type. Deriving from GeomCollection are MultiPolygon, MultiLineString, and MultiPoint. As their names suggest, the members of these collection types must be of the single instance type (i.e., MultiPoint can only contain Points, etc).
10
3. Tipos de datos espaciales en SQL Server
WKT (Well-Known Text) Lenguaje de marcas de texto. Para representar objetos geométricos vectoriales. WKB (Well-Known Binary) Equivalente en formato binario. Almacenamiento en bases de datos. POINT: A Point is an exact location, and is defined in terms of an X and Y pair of coordinates, as well as optionally by a Z (elevation) and M (measure) coordinate. It does not have a length or any area associated with it. Points are used as the fundamental building blocks of more complex spatial types. Note: Z and M are recognized and maintained by SQL Server 2008 if supplied, but are not used in any calculations). LINESTRING: A line segment is the shortest path between two points. A LineString, then, is defined as the path between a sequence of points (i.e., a series of connected line segments). It is considered simple if it does not cross over itself, and is considered a ring if the starting point is the same as the ending point. A LineString is always considered to be a one dimensional object; it has length, but does not have area (even if it is a ring). POLYGON: A Polygon is a closed two-dimensional shape defined by a ring. It has both length and area. A Polygon may also have holes in its interior (a hole is defined by another Polygon). Area within a hole is considered to be exterior to the Polygon itself. COLLECTIONS: In addition to the single instance types (Point, LineString, and Polygon), there is also a type that can hold a collection of instances. This is similar to a list or an array in most programming languages. The most generic type of collection is the GeomCollection, whose members can be of any type. Deriving from GeomCollection are MultiPolygon, MultiLineString, and MultiPoint. As their names suggest, the members of these collection types must be of the single instance type (i.e., MultiPoint can only contain Points, etc).
11
Jerarquía de tipos: herencia
12
Ejemplos En WKT: Punto simple definido por coordenadas X Y:
Los espacios separan las coordenadas de un punto. Las comas separan los puntos en un tipo más complejo. Los paréntesis agrupan puntos en una única figura. Punto simple definido por coordenadas X Y: POINT(10 10) Punto con coordenadas X Y Z (elevación) M (medida): POINT( ) Camino de líneas: LINESTRING(0 0, 10 10) Polígono: POLYGON((0 0, 0 10, 10 10, 10 0, 0 0)) Polígono con un hueco en forma de triángulo: POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 4 5, 4 1, 1 1))
13
Métodos para los tipos espaciales
Gris: Tipos Geometry que no están en Geography
14
Métodos para los tipos espaciales
STGeomFromText() INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STGeomFromText( 'LINESTRING ( , , )', 0)); INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STGeomFromText( 'POLYGON ((0 0, 150 0, , 0 150, 0 0))', 0)); STLineFromText() INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STLineFromText( 'LINESTRING ( , , )', 0)); Parse(). Se puede usar en lugar de los anteriores. INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::Parse( 'LINESTRING ( , , )',)); ToString(). Para escribir datos geográficos. SELECT GeomCol1.ToString() FROM SpatialTable
15
Métodos para los tipos espaciales
Ejemplo a usar en las descripciones de los métodos (Transact-SQL): geometry = 'POLYGON((10 10, 40 10, 40 40, 10 40, 10 10))' geometry = 'POLYGON((30 30, 50 30, 50 50, 30 50, 30 30))'
16
Transact-SQL (T-SQL) Lenguaje de cuarta generación de bases de datos.
Desarrollado por Microsoft/Sybase. Añade a SQL mecanismos para lograr un lenguaje de propósito general: Lenguaje de control de flujo. Variables. Funciones. IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1 PRINT '¡Es fin de semana!' ELSE PRINT 'Es laborable… :-(' NVARCHAR(50) = 0 < 5 BEGIN PRINT 'Número: ' + 1 END Número: 0 Número: 1 Número: 2 Número: 3 Número: 4
17
Métodos para los tipos espaciales
STDifference() Diferencia de conjuntos. Devuelve los puntos de la columna geométrica a la que se aplica tal que no están en los de la columna geométrica parámetro del método. SELECT Resultado: POLYGON ((10 10, 40 10, 40 30, 30 30, 30 40, 10 40, 10 10))
18
Métodos para los tipos espaciales
STDifference() También sobre tipos distintos. geometry = 'LINESTRING(9 9, 40 40)' geometry = 'POLYGON((15 15, 15 30, 30 30, 30 15, 15 15))' SELECT Resultado: MULTILINESTRING ((40 40, 30 30), (15 15, 9 9))
19
Métodos para los tipos espaciales
STIntersection() Intersección de formas. Devuelve la parte común de dos formas. SELECT Resultado: POLYGON ((30 30, 40 30, 40 40, 30 40, 30 30))
20
Métodos para los tipos espaciales
STIntersection() También sobre tipos distintos. SELECT Resultado: LINESTRING (30 30, 15 15)
21
Métodos para los tipos espaciales
STUnion() Unión de formas. Devuelve todos los puntos de dos formas. SELECT Resultado: POLYGON ((10 10, 40 10, 40 30, 50 30, 50 50, 30 50, , 10 40, 10 10))
22
Métodos para los tipos espaciales
STUnion() También sobre tipos distintos. SELECT Resultado: GEOMETRYCOLLECTION ( LINESTRING (40 40, 30 30), POLYGON ((15 15, 30 15, 30 30, 15 30, 15 15)), LINESTRING (15 15, 9 9) )
23
Métodos para los tipos espaciales
STArea() Área de una forma. STLength() Longitud de un camino. GEOMETRY = 'POLYGON((10 10, 10 40, 40 40, 10 10))' @g.STLength() Resultado: Area Length
24
Métodos para los tipos espaciales
STCentroid() Devuelve el centroide de una forma. GEOMETRY = 'POLYGON((10 10, 10 40, 40 40, 10 10))' Resultado: POINT (20 30)
25
Métodos para los tipos espaciales
STContains() STWithin() Devuelve el valor lógico cierto (1) si una forma contiene completamente a otra. determina contiene a determina está contenido geometry = 'POLYGON ((10 10, 13 30, 30 30, 30 15, 10 10))' geometry = 'LINESTRING (16 16, 16 24, 25 18)‘ SELECT SELECT Resultado:
26
Métodos para los tipos espaciales
ST is … CLOSED. Si el punto final coincide con el inicial. EMPTY. Si no contiene ningún punto (parecido a NULL, pero no es lo mismo). SIMPLE. Si no se cruza sobre sí misma o se toca a sí misma. RING. Si es una forma cerrada (CLOSED) y simple (SIMPLE) VALID. Si no tiene elementos superpuestos. Ej: No válido
27
Métodos para los tipos espaciales
Coordenadas de un punto: .STX .STY .Z .M geometry = 'POINT(1 2)' geometry = 'POINT( )' @g.M @h.M Resultado: 1 2 NULL NULL
28
Métodos para los tipos espaciales
STPointOnSurface() Devuelve un punto arbitrario que pertenece a la forma. geometry = 'POLYGON((10 10, 14 15, 50 12, 45 30, 10 30, 10 10))' Resultado: POINT (23 25)
29
4. SQL para tipos de datos espaciales
Creación de tablas: CREATE TABLE Districts (DistrictId int IDENTITY (1,1), DistrictName nvarchar(20), DistrictGeo geometry); CREATE TABLE Streets (StreetId int IDENTITY (1,1), StreetName nvarchar(20), StreetGeo geometry);
30
4. SQL para tipos de datos espaciales
Inserción en tablas: INSERT INTO Districts (DistrictName, DistrictGeo) VALUES ('Downtown', geometry::STGeomFromText ('POLYGON ((0 0, 150 0, , 0 150, 0 0))', 0)); INSERT INTO Streets (StreetName, StreetGeo) VALUES ('First Avenue', ('LINESTRING ( , , )', 0))
31
4. SQL para tipos de datos espaciales
Selección de resultados: SELECT StreetName, DistrictName FROM Districts d, Streets s WHERE s.StreetGeo.STIntersects(DistrictGeo) = 1 ORDER BY StreetName StreetName DistrictName First Avenue Downtown Harborside Mercator Street Green Park
32
Otro ejemplo CREATE TABLE demo ( ID INT IDENTITY(1,1) NOT NULL,
G GEOMETRY ) INSERT INTO demo (G) VALUES ('LINESTRING(0 0, 10 10, 21 2)'), ('LINESTRING(1 1, 11 11, 22 3)'), ('POINT(5 5)') SELECT ID, G.ToString() AS WKT, G.STLength() AS LENGTH FROM demo ID WKT LENGTH 1 LINESTRING (0 0, 10 10, 21 2) 2 LINESTRING (1 1, 11 11, 22 3) 3 POINT (5 5)
33
5. Rendimiento Tipos espaciales: Tipos CLR (Common Language Runtime)
2 GB (¡Incluso para un único polígono!) Datos espaciales almacenados en BDR Interoperabilidad de datos Índices espaciales Índice en retícula multinivel (árboles cuadráticos: quad-trees)
34
6. Vistas espaciales gráficas integradas
Management Studio:
35
7. Aplicaciones Integración con otros sistemas.
Importación y exportación de datos Estándar OGC: Well Known Text (WKT) Well Known Binary (WKB) Aplicaciones GIS / Sistemas GPS
36
7. Aplicaciones Uso de datos espaciales en .NET Ej: Virtual Earth
37
8. Management Studio
38
9. Recuperación y disponibilidad
Recuperación de caídas. Registro histórico (log) Recuperación de medios. Copia y restauración de bases de datos Copias exactas de la base de datos Duplicados de la base de datos en otras máquinas Conmutación automática en caso de error Seguridad Usuarios Roles Autenticación: Windows SGBD
39
10. Soporte nativo de XML
40
create table InformesViajes(
Tipos XML en SQL Creación de tablas: create table InformesViajes( fechaviaje datetime, Informe xml)
41
create xml schema collection E1 as @e
Metadatos XML en SQL Metadatos de las bases de datos: Conjunto de esquemas XML asocia un identificador de SQL a un conjunto de componentes de esquemasde uno o varios espacios de nombres objetivos. Por ejemplo, la expresión create xml schema collection E1 Crea el conjunto de esquemas XML de SQL Server de nombre E1, que consiste en los esquemas de XML contenidos en la variable de Cada uno de estos conjuntos contiene toda la información necesaria para llevar a cabo la validación y tipificación y se guarda en los metadatos del esquema de la base de datos.
42
Metadatos XML en SQL El ejemplo siguiente muestra la definición de una tabla que restringe los ejemplares de la columna XML Informe a un documento bien formado válido de acuerdo con el conjunto de esquemas EsquemaInformes: create table InformesViajes(id int, fechaviaje datetime, Informe xml(document EsquemaInforme))
43
XQuery en SQL Lenguaje de consulta de documentos XML.
Desarrollado por el consorcio W3C (World Wide Web Consortium). Procede del lenguaje Quilt, que también incluía expresiones XPath XPath es un lenguaje que define expresiones válidas para acceder a partes de un documento XML. XQuery incorpora a XPath. SQL Server incorpora XQuery en las consultas SQL.
44
XQuery en SQL Expresión simple de XQuery que resume un elemento Cliente complejo de un documento de informe de viaje que contiene un nombre, un atributo ID y posibilidades de ventas en las notas marcadas del informe de viaje real. El resumen muestra el nombre y la información sobre ventas de los elementos Cliente que tienen posibilidades de ventas. select Informe.query(’ declare namespace c = "urn:ejemplo/cliente"; for $cli in /c:doc/c:cliente where $cli/c:notas//c:posiblesventas return <id_cliente { $cli/c:nombre, $cli/c:notas//c:posiblesventas }</cliente>’) from InformesViajes
45
11. Gestión de geodatabases en ArcGIS
46
Práctica Práct. 5. SQL Server.pdf
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.