La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 5: SQL Server Bases de datos Máster en Tecnologías de Información Geográfica.

Presentaciones similares


Presentación del tema: "Tema 5: SQL Server Bases de datos Máster en Tecnologías de Información Geográfica."— Transcripción de la presentación:

1 Tema 5: SQL Server Bases de datos Máster en Tecnologías de Información Geográfica

2 2 Contenido 1.Introducción 2.Soporte de datos espaciales 3.Tipos de datos espaciales en SQL Server 4.SQL para tipos de datos espaciales 5.Rendimiento 6.Vistas espaciales gráficas integradas 7.Aplicaciones 8.Management Studio 9.Recuperación y disponibilidad 10.Soporte nativo de XML 11.Gestión de geodatabases en ArcGIS

3 3 1. Introducción Historia: 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 4 Extensiones: XML OLAP (Online Analytical Processing) Data Mining (Minería de datos) Extensiones espaciales para GIS 1. Introducción

5 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 6 2. Soporte de datos espaciales Modelos espaciales planos: Proyecciones bidimensionales del esferoide Proyección UTM Desarrollo cilíndrico conforme de Gauss

7 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 8 3. Tipos de datos espaciales en SQL Server

9 9

10 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.

11 11 Jerarquía de tipos: herencia

12 12 Ejemplos En WKT: 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 13 Métodos para los tipos espaciales Gris: Tipos Geometry que no están en Geography

14 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 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 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 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 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 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 20 Métodos para los tipos espaciales STIntersection() También sobre tipos distintos. SELECT Resultado: LINESTRING (30 30, 15 15)

21 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, 30 40, 10 40, 10 10))

22 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 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 Resultado: Area Length

24 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 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 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 27 Métodos para los tipos espaciales Coordenadas de un punto:.STX.STY.Z.M geometry = 'POINT(1 2)' geometry = 'POINT( @h.M Resultado: 1 2 NULL NULL

28 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 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 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', geometry::STGeomFromText ('LINESTRING ( , , )', 0))

31 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 StreetNameDistrictName First AvenueDowntown First AvenueHarborside Mercator StreetDowntown Mercator StreetGreen Park Mercator StreetHarborside

32 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 IDWKTLENGTH 1LINESTRING (0 0, 10 10, 21 2) LINESTRING (1 1, 11 11, 22 3) POINT (5 5)0

33 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 34 6. Vistas espaciales gráficas integradas Management Studio:

35 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 36 7. Aplicaciones Uso de datos espaciales en.NET Ej: Virtual Earth

37 37 8. Management Studio

38 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 Soporte nativo de XML

40 40 Tipos XML en SQL Creación de tablas: create table InformesViajes( fechaviaje datetime, Informe xml)

41 41 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 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 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 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 { $cli/c:nombre, $cli/c:notas//c:posiblesventas } ) from InformesViajes

45 Gestión de geodatabases en ArcGIS

46 46 Práctica Práct. 5. SQL Server.pdf


Descargar ppt "Tema 5: SQL Server Bases de datos Máster en Tecnologías de Información Geográfica."

Presentaciones similares


Anuncios Google