19
Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

Embed Size (px)

Citation preview

Page 1: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

Spatial Database

Bases de Datos EspacialesSPATIAL QUERY LANGUAGES

Page 2: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-2Spatial Database

Qué es un query?

Qué es un Query ? Una pregunta que se desarrolla en una base de datos

Los Queries son expresados en una declaración del alto nivel

El algoritmo de búsqueda no es expresado en la consulta

Ejemplos: SELECT S.nombre FROM Personas S WHERE S.genero = ‘F’

Page 3: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-3Spatial Database

Qué es query language?

Qué es query language? Un lenguaje a través del cual podemos expresar las consultas

a una base de datos

Un query language restringe las tuplas de una tabla

Ejemplos: Lenguaje Natural, e.j. Español, podemos expresar consultas a

través de preguntas con palabras claves como Qué, Cunado, Donde, etc.

Lenguajes de programación, e.j. Java, Se pueden expresar preguntas de diferente forma, indicando diferentes

acciones

Structured Query Language(SQL)

Page 4: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-4Spatial Database

Ejemplo de base de datos

Modelo conceptual3 Entities: Country, City, River

2 Relationships: capital-of, originates-in

Attributes listed in Figure

Page 5: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-5Spatial Database

Ejemplo de Bases de datos – Modelo Lógico

• 3 RelacionesCountry(Name, Cont, Pop, GDP, Life-Exp, Shape)City(Name, Country, Pop,Capital, Shape)River(Name, Origin, Length, Shape)

• Keys•Primary keys are Country.Name, City.Name, River.Name• Foreign keys are River.Origin, City.Country

•Datos para las 3 tablas•Se muestran en el siguiente slide

Page 6: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-6Spatial Database

Datos de las tablas

Page 7: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-7Spatial Database

Qué es SQL?

SQL – información General Es un estándar para consultar bases de datos

Se soporta en el concepto lógico de las relaciones y el algebra relacional

Soportado por muchas herramientas como por ejemplo: IBM DB2, Oracle, MS SQL Server, Sybase, ...

3 versiones: SQL1 (1986), SQL2 (1992), SQL 3 (1999)

Puede expresar cualquier acceso a una base de datos relacional

SQL and spatial data ESRI Arc/Info maneja su estándar propietario de consultas

Otros GIS interactuan con las bases de Datos usando el estándar de SQL

Usando open database connectivity (ODBC) o otros protocolos

Muchas consultas son manejadas por el cliente no por el servidor

Page 8: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-8Spatial Database

Componentes de SQL?

Data Definition Language (DDL)

Data Manipulation Language (DML)

Data Control Language (DCL)

Page 9: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-9Spatial Database

Creando tablas en SQL

Page 10: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-10Spatial Database

Poblando tablas en SQL

• Adicionando registros a una tabla• Estamento “INSERT INTO”• Se especifica el nombre de la tabla, los atributos y valores• Ejemplo:

INSERT INTO River(Name, Origin, Length, Shape) VALUES(‘Magdalena’, ‘Col’, 6000,Line((1,2), (5,6), (8,9)))

Page 11: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-11Spatial Database

Estamentos SELECT

• Clauses•SELECT especifica las columnas•FROM especifica las tablas•WHERE especifica el filtro o restricción•ORDER BY especifica el tipo de orden•GROUP BY, HAVING especifica un nivel de agregación

•Operators and functions•Operadores aritmeticos, e.j. +, -, …•Operadores de comparación, e.j. =, <, >, BETWEEN, LIKE…•Operadores lógicos, e.j. AND, OR, NOT, EXISTS, •Operadores de manipulación, e.j. UNION, IN, ALL, ANY, …•Funciones estadisticas, e.j. SUM, COUNT, ...• Etc.

Page 12: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-12Spatial Database

SELECT Ejemplo 1.

SELECT Name, Country

FROM CITY

Resultado

Page 13: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-13Spatial Database

SELECT Ejemplo 2.

SELECT *

FROM CITY

WHERE CAPITAL=‘Y ’

Resultado

Page 14: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-14Spatial Database

SQL for Spatial Data

Open Geodata Interchange Standard (OGIS) Define los tipos de datos para los estamentos DDL

Define operadores relacionales para los estamentos DML

Soportado por proveedores como por ejemplo: Oracle, IBM,...

Page 15: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-15Spatial Database

OGIS Spatial Data Model

Tipos de geometrias:

Point, Curve, Surface and GeometryCollection

Operaciones sobre los datos espaciales:

Aplica a la definición de la geometría

SpatialReference, Envelope, Export,IsSimple, Boundary

Predicados sobre las relaciones topologicas

Equal, Disjoint, Intersect, Touch, Cross, Within, Contains

Analisis espacial

Distance,Buffer,Union, Intersection, ConvexHull, SymDiff

Page 16: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-16Spatial Database

Ejemplo

SELECT C1.NombreFROM Paises C1, Paises C2WHERE Touch(C1.Shape,C2.Shape)=1 AND C2.Nombre =‘Colombia ’

Resultado

Page 17: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-17Spatial Database

Ejemplo

SELECT R.Name, C.Name

FROM River R, Country C

WHERE Cross(R.Shape,C.Shape)=1

Page 18: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-18Spatial Database

Ejemplo

SELECT Ci.NombreFROM Ciudades Ci, Rios RWHERE Overlap(Ci.Shape, Buffer(R.Shape,300))=1 AND R.Name =‘Magdalena ’

Page 19: Spatial Database Bases de Datos Espaciales SPATIAL QUERY LANGUAGES

4-19Spatial Database

Ejemplo

CREATE VIEW Vecinos AS

SELECT P1.Nombre , Count (Nombre) Vecinos

FROM Paises P1, Paises P2

WHERE Touch(P2.Shape,Co1.Shape)

GROUP BY P1.Nombre