Bases de datos espaciales introducción

Anuncio
14/09/2010
Bases de datos espaciales
Tema 1: Introducción
Miguel Ángel Manso
ETSI en Topografía, Geodesia y
Cartografía - UPM
Contenido: definiciones y conceptos
•
•
•
•
•
Fundamentos (conceptos)
Visión y clasificación general de los SGBD
Operaciones de las BBDD
Arquitecturas Hw y Sw de BBDD
Estructura de los datos
1
14/09/2010
Fundamentos
• Data Set
– A logical collection of values or database objects
• Database
– A logical collection of information that is
interrelated, managed, and stored as a unit. A
store for multiple data sets.
Fundamentos
• Data Model
– A conceptual description of the data
elements/objects and their relationships that are
to be represented in a database
• Data Dictionary
– A description of the contents of a database
including data entity and attribute code
definitions
– An important element of metadata (DDBB domain)
2
14/09/2010
Ejemplo modelo de datos
Diccionario de datos
3
14/09/2010
Fundamentos
• Data Transparency
– Transparency means hiding the structure and
relationships from applications
– When structure, relationships, or media change
the impacts on applications are minimized
• Data Base Management System (DBMS)
– Provides for the input, storage, manipulation,
query, and retrieval of data. A store for multiple
databases.
Resumen: Base de datos y SGBD
• BBDD: Gran colección de datos interrelacionados
almacenados en un ordenador que dota de
persistencia (ante cambios de Sw y Hw)
• SGBD: Sistema que proporciona persistencia,
concurrencia, escalabilidad de datos, seguridad,
integridad y eficiencia en las consultas
• Los SGBD facilitan: definición (modelado),
implementación, manipulación, consulta y
actualización
4
14/09/2010
Visión simplificada de SGBD
• Objetivo:
– Dotar de
independencia
sobre los datos
• Abstracción
– Nivel lógico
– Nivel físico
Spatial database with application to GIS, Rigaux (pg 5)
Clasificación de SGBD
Spatial database Systems, Yeung(pg 27)
Enlace recomendado: http://rojos.iespana.es/trabajos/bd/actual.ppt
5
14/09/2010
Operaciones de las BBDD (Índice)
•
•
•
•
•
•
•
Almacenamiento y manipulación
Seguridad e integridad
Consulta
Transacciones
Respaldo (Backup) y recuperación
Replicación y sincronización
SQL
Almacenamiento y recuperación
• Tipos de almacenamiento:
– Primario
– Secundario
– Terciario
• Secundario y terciario: bloques de disco
• Primario: memoria principal y ficheros (buffer
& file manager)
6
14/09/2010
Almacenamiento
Cinta
Respaldo de datos
Disco Óptico
Disco Magnético
Auditoria y tablas
Memoria RAM
Optimizar consultas
Memoria Caché
Fuente: (Carlos Castillo UPF 2007)
Seguridad
• Seguridad: operaciones que puede realizar un
perfil de usuario. Dos modelos:
– discrecional (operaciones que puede hacer un
usuario sobre un determinado objeto)
– responsables (mandatory) (usuarios se clasifican
por niveles o roles y cada nivel define reglas o
restricciones)
7
14/09/2010
Integridad
• Objetivo: mantener las restricciones de
integridad. Modelos:
– Restricciones de dominio (tipo de dato y rangos de
valores)
– Claves y relaciones (valores únicos y existencia de
la clave en otras tablas: integridad referencial)
– Restricciones de integridad semántica (reglas
normalmente lógicas, que definen si se puede o
no insertar un elemento en función del estado
representado en la base de datos)
Referencia integridad semántica:
http://www.monografias.com/trabajos58/procesamiento-datos/procesamiento-datos2.shtml
Consultas (Índice)
• Las operaciones se pueden clasificar en:
– Selección (SELECT)
– Proyección (PROJECT)
– Combinación (JOIN)
– Producto (PRODUCT)
– Unión (UNION)
– Intersección (INTERSECT)
– Diferencia (DIFFERENCE)
– División (DIVIDE)
8
14/09/2010
SELECCIÓN y PROYECCIÓN
• Selección:
– SELECT FROM
– SELECT FROM ORDER BY
– SELECT PREDICADO FROM
• Predicado: ALL, TOP, DISCTINCT, DISCTINROW
• Proyección:
– SELECT atributos FROM
COMBINACIÓN (JOIN)
• JOIN natural
• JOIN Lateral (LEFT & RIGHT)
9
14/09/2010
PRODUCTO
• Producto cartesiano, genera la combinación
de filas de la primera tabla con las de la
segunda
UNION
SELECT column_name(s) FROM table_name1
UNION [ALL]
SELECT column_name(s) FROM table_name2
UNION ALL
10
14/09/2010
INTERSECCIÓN
SELECT * FROM Orders WHERE Quantity
BETWEEN 1 AND 100
INTERSECT
SELECT * FROM Orders WHERE Quantity
BETWEEN 50 AND 200;
DIFERENCIA
SELECT * FROM Orders WHERE Quantity
BETWEEN 1 AND 100
EXCEPT | MINUS
SELECT * FROM Orders WHERE Quantity
BETWEEN 50 AND 75;
11
14/09/2010
DIVISION
• r ÷ s is used when we wish to express queries with “all”
• Ejemplo: Which persons have a bank account at ALL
the banks in the country?
• Se construye con NOT EXIST seguido NOT IN,
• O bien con dos NOT EXIST consecutivos.
Ejemplos de DIVISION: http://web.abo.fi/~soini/divisionEnglish.pdf
Transacciones
• Operaciones indivisibles. Principios:
–
–
–
–
Atomicidad
Aislamiento
Durabilidad o permanencia
Consistencia en la preservación
• Mecanismos de control:
–
–
–
–
Control de concurrencia
Auditoria de transacciones (logging)
Confirmación de transacciones (commit)
Vuelta atrás (rollback)
12
14/09/2010
Respaldo y recuperación
• Backup:
– Hot backup
– Cold backup
• Restore
– Only Cold backup
Replicación y sincronización
• Objetivos:
– Mejorar el rendimiento
– Mejorar la disponibilidad
de un modo transparente para los usuarios
• Configuración: maestro/s + esclavos
• Métodos de replicación:
– Instantánea (snapshot)
– Fusión (merging)
– Transaccional (transactional)
13
14/09/2010
Lenguaje de Manipulación de datos
• La manipulación (carga, mantenimiento y
consulta/explotación) se realiza con un
lenguaje de manipulación de datos (DML)
• El DML más extendido es SQL, considerado un
lenguaje declarativo en el que el usuario
indica los resultados esperados no la forma de
obtenerlos
• SQL tiene bases matemáticas y posibilita
cálculo relacional y álgebra relacional
SQL statements: modos de uso
• Procesamiento interactivo (consola tipo SQL+,
etc.)
• Embebido en un lenguaje de programación
(Java, C++, etc.)
• Mediante llamadas a nivel de interfaces
definidas a nivel de S.O.
• Usando API como JDBC and SQLJ (Java)
• Aplicaciones independientes que llaman a
procedimientos almacenados
14
14/09/2010
SQL statements types
•
•
•
•
Database query (SELECT .. FROM .. WHERE ..)
Data definition (CREATE TABLE, ALTER TABLE .. ADD ..)
Data manipulation (INSERT INTO .., DELETE, UPDATE)
Database connection and access control
(CONNECT, CREATE ROLE, GRANT)
• Data sharing (CREATE TRIGGER)
• Data integrity (CONSTRAINT UNIQUE, CHECK)
Arquitecturas Hw y Sw de BBDD (Índice)
•
•
•
•
•
Centralizada
Distribuida
Modelos de distribución de BBDD
Módulos del Sw de BBDD
Arquitectura Web de BBDD
15
14/09/2010
Arquitecturas centralizada de BBDD
Spatial database Systems, Yeung (pg 42)
Arquitectura distribuida de DDBB
Spatial database Systems, Yeung (pg 43)
16
14/09/2010
Modelos de distribución de BBDD
Spatial database Systems, Yeung (pg 45)
Módulos de Sw de BBDD
Spatial database Systems, Yeung (pg 46)
17
14/09/2010
Arquitectura Web para BBDD
Spatial database Systems, Yeung (pg 48)
Estructura de los datos
• Lógica
• Física
• Índices
18
14/09/2010
Estructura lógica de los datos
• The logical data structure is used in logical
data modeling that aims to find the most
effective distribution of the data and data files
inside the database
Spatial database Systems, Yeung (pg 50)
Estructura física de los datos
• Tipos de datos
– Básicos: Textos, numéricos y fechas
– Tipos de datos abstractos (ADT), este tipo de
datos es el que usan los SGDB para almacenar
nuevos tipos de datos como los espaciales
19
14/09/2010
Índices en las BBDD
• Objetivo:
acelerar las
búsquedas
• B-Tree el
más común
(Balanced)
Spatial database Systems, Yeung (pg 53)
20
Descargar