Upload
nacho-mascorro
View
17
Download
4
Embed Size (px)
Citation preview
Spatial Database
Bases de Datos EspacialesSPATIAL 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’
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)
4-4Spatial Database
Ejemplo de base de datos
Modelo conceptual3 Entities: Country, City, River
2 Relationships: capital-of, originates-in
Attributes listed in Figure
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
4-6Spatial Database
Datos de las tablas
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
4-8Spatial Database
Componentes de SQL?
Data Definition Language (DDL)
Data Manipulation Language (DML)
Data Control Language (DCL)
4-9Spatial Database
Creando tablas en SQL
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)))
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.
4-12Spatial Database
SELECT Ejemplo 1.
SELECT Name, Country
FROM CITY
Resultado
4-13Spatial Database
SELECT Ejemplo 2.
SELECT *
FROM CITY
WHERE CAPITAL=‘Y ’
Resultado
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,...
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
4-16Spatial Database
Ejemplo
SELECT C1.NombreFROM Paises C1, Paises C2WHERE Touch(C1.Shape,C2.Shape)=1 AND C2.Nombre =‘Colombia ’
Resultado
4-17Spatial Database
Ejemplo
SELECT R.Name, C.Name
FROM River R, Country C
WHERE Cross(R.Shape,C.Shape)=1
4-18Spatial Database
Ejemplo
SELECT Ci.NombreFROM Ciudades Ci, Rios RWHERE Overlap(Ci.Shape, Buffer(R.Shape,300))=1 AND R.Name =‘Magdalena ’
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