BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta...

167
Facultad de Estadística e Informática BASES DE DATOS AVANZADAS

Transcript of BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta...

Page 1: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

BASES DE DATOS AVANZADAS

Page 2: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Clase 26

Page 3: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Agenda

➢Repaso segundo parcial

Page 4: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Procesamiento y optimización de consultas.

Temas:

➢Traducción de consultas en SQL a álgebra relacional

➢Algoritmos básicos para ejecutar operaciones de consulta

➢Uso de heurísticas en la optimización de consultas

➢Estimaciones de costo en la optimización de consultas

Tema 2. Bases de Datos Distribuidas (BDD).

Page 5: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Pasos para procesar una consulta de alto nivel

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

ANÁLISIS LÉXICO, SINTÁCTICO Y VALIDACIÓN

OPTIMIZADOR DE CONSULTAS

GENERADOR DE CÓDIGO DE CONSULTAS

PROCESADOR DE BASE DE DATOS EN TIEMPO DE

EJECUCIÓN

RESULTADO DE LA CONSULTA

Consulta en un lenguaje de alto nivel

Forma intermedia de la consulta

Plan de ejecuciónCódigo para ejecutar

la consulta

El código puede:Ejecutarse directamente (modo interpretado)Almacenarse y ejecutarse después cuando se necesite (modo compilado)

Árbol de consulta

Page 6: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Procesamiento y optimización de consultas

➢Analizador léxico Identifica los símbolos del lenguaje

➢Analizador sintáctico Revisa la sintaxis de la consulta

➢Validación Comprueba atributos y relaciones válidas y tengan sentido

Tema 2. Bases de Datos Distribuidas (BDD).

Page 7: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Procesamiento y optimización de consultas

➢Una consulta tiene muchas posibles estrategias de ejecución, a la selección de la más adecuada se le denomina OPTIMIZACIÓN DE CONSULTA.

Tema 2. Bases de Datos Distribuidas (BDD).

Page 8: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Procesamiento y optimización de consultas

➢El término “OPTIMIZACIÓN” puede no ser el más adecuado, pues el plan de ejecución posiblemente no es el mejor, es solo UNA ESTRATEGIA RAZONABLEMENTE EFICIENTE.

Tema 2. Bases de Datos Distribuidas (BDD).

Page 9: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Procesamiento y optimización de consultas

➢Las técnicas para implementar la optimización de consultas son dos principalmente:

➢ Basada en reglas heurísticas

➢ Basada en estimación de costos

Tema 2. Bases de Datos Distribuidas (BDD).

Page 10: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢ Basada en reglas heurísticas. Las reglas heurísticas reordenan las operaciones en una estrategia de ejecución, por lo general en un árbol de consulta.

➢ Basada en estimación de costos. Estima sistemáticamente el costo de diferentes estrategias de ejecución y elige el plan con el costo estimado más bajo.

➢En un optimizador suelen combinarse ambas técnicas.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 11: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢ Traducción de consultas en SQL a álgebra relacional.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Consulta SQL

Expresión equivalente en álgebra relacional extendida. Estructura de

datos de árbol de consulta

Consulta optimizada

Page 12: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢ Las consultas se descomponen en bloques de consulta.

➢Cada bloque contiene una única expresión SELECT – FROM –WHERE. Por ejemplo:

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

SELECT MATRICULA, NOMBRE

FROM ALUMNOS

WHERE PROMEDIO > (SELECT MAX (PROMEDIO)

FROM ALUMNOS

WHERE ID=3);

Page 13: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢ El ejemplo incluye una subconsulta anidada, por lo tanto se descompone en dos bloques:

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

(SELECT MAX (PROMEDIO)

FROM ALUMNOS

WHERE ID=3);

SELECT MATRICULA, NOMBRE

FROM ALUMNOS

WHERE PROMEDIO > c

Bloque interno Bloque externo

c representa el resultado devuelto por el bloque interno

Page 14: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢ Traduciendo a álgebra relacional extendida:

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

§MAX SALARIO ( ID=5 (ALUMNOS))∏ MATRICULA, NOMBRE (

PROMEDIO > c (ALUMNOS))

Bloque interno Bloque externo

c representa el resultado devuelto por el bloque interno

➢ El optimizador de consultas elegirá el plan de ejecución para cada bloque.

Page 15: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Algoritmos básicos para ejecutar operaciones.

➢ Son algoritmos para implementar los distintos tipos de operaciones relacionales que pueden aparecer en una estrategia de ejecución de consulta.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 16: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Algoritmos básicos para ejecutar operaciones.

➢ Clasificación externa. Es uno de los principales en el procesamiento de consultas. Por ejemplo: Order by, Operaciones de Reunión, Unión e Intersección. También en Proyectar.

➢Implementación de la operación SELECCIONAR

➢Implementación de la operación REUNIÓN

➢Implementación de la operación REUNIÓN

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 17: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Algoritmos básicos para ejecutar operaciones.

➢Implementación de operaciones de AGREGACIÓN

➢ Implementación de operación de REUNIÓN EXTERNA

➢ Combinación de operaciones mediante SEGMENTACIÓN

➢Etcétera…

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 18: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ Uso de estimaciones de costo en la optimización de consultas.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 19: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 20: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ Un árbol de consulta es una estructura de árbol que corresponde a una expresión de álgebra relacional.

➢Relaciones de entrada de la consulta Nodos hoja del árbol

➢Operaciones de álgebra relacional Nodos internos

➢Cada nodo interno se va sustituyendo por la relación resultado de la operación.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 21: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Ejemplo Consulta SQL: Para cada proyecto ubicado en Veracruz, obtener su número, número de departamento, etc.

SELECT P.NUMEROP, P.NUMD, E.APELLIDO, E.DIRECCION, E.FECHA_NCTO

FROM PROYECTO AS P, DEPARTAMENTO AS D, EMPLEADO AS E

WHERE P.NUMD = D.NUMEROD AND D.NSS_JEFE=E.NSS AND

P.LOCALIZACION=‘Veracruz’;

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 22: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Ejemplo: Álgebra relacional

∏NUMEROP, NUMD,APELLIDO, DIRECCION,FECHA_NCTO

((( LOCALIZACION=‘Veracruz’ (PROYECTO))

NUMD = NUMEROD (DEPARTAMENTO) NSS_JEFE=NSS (EMPLEADO))

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 23: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Ejemplo: Árbol de consulta equivalente

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

E

D

P

(3)

(2)

(1)

Page 24: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ Para transformar el árbol de consulta inicial en un árbol de consulta final, cuya ejecución sea eficiente, el optimizador incluye reglas de equivalencia.

➢Las reglas heurísticas emplean estas expresiones de equivalencia para realizar la trasformación del árbol.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 25: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ Ejemplo de transformación de una consulta:

➢Se considera una consulta C para buscar los apellidos de los empleados nacidos después de 1980 que trabajan en el proyecto llamado “FEI”:

C: SELECT APELLIDO

FROM EMPLEADO, TRABAJA_EN, PROYECTO

WHERE NOMBREP=‘FEI’ AND NUMEROP=NUMP AND NSSE=NSS

AND FECHA_NCTO > ’31-DIC-1980’

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 26: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NOMBREP=‘FEI’ Y NUMEROP=NUMP Y NSSE Y FECHA_NCTO>’31-DIC-1980’

X

PROYECTO

TRABAJA_ENEMPLEADO

X

Árbol de consulta inicial (canónico) para consulta en SQL

Ord

en d

eej

ecu

ció

n

Regla principal:– Primero ejecutar seleccionar (σ ) y proyectar (π)– Al final ejecutar reunir (|×|, *) y otras operaciones binarias

Page 27: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ 1. La ejecución directa del árbol inicial genera un resultado muy grande que contiene el producto cartesiano de EMPLEADO, TRABAJA_EN y PROYECTO.

Solo necesitamos un registro de PROYECTO (‘FEI’) y solo los registros EMPLEADO con fecha de nacimiento > ‘31-dic-1980’

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 28: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

X

PROYECTO

TRABAJA_EN

EMPLEADO

X

NOMBREP=‘FEI’NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

Desplazamiento de las operaciones SELECCIONAR hacia abajo en el árbol de consulta

Page 29: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ 2. Se genera un árbol mejorado aplicando primero las operaciones SELECCIONAR, reduciendo el número de tuplas que aparecen en el producto cartesiano.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 30: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

X

PROYECTO

TRABAJA_EN

EMPLEADO

X

NOMBREP=‘FEI’

NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

Aplicación de la operación SELECCIONAR más restrictiva primero

Page 31: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ 3. Se logra una mejora adicional intercambiando las posiciones de EMPLEADO y PROYECTO. Aprovechando que NUMEROP es un atributo clave de PROYECTO; obteniendo un solo registro en la operación SELECCIONAR sobre PROYECTO.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 32: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

PROYECTO

TRABAJA_EN

EMPLEADO

NOMBREP=‘FEI’

NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

Sustitución de PRODUCTO CARTESIANO y SELECCIONAR por operaciones de REUNIÓN

Page 33: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ 4. La consulta puede ser mejorada reemplazando el PRODUCTO CARTESIANO por operaciones de REUNIÓN.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 34: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

PROYECTO

TRABAJA_EN

EMPLEADO

NOMBREP=‘FEI’

NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

∏NSEE ∏NSS,APELLIDO

∏NUMEROP ∏NSSE, NUMP

Desplazamiento de las operaciones PROYECTAR hacia abajo en el árbol de consulta

Page 35: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ 5. Conservar en las relaciones intermedias temporales solo los atributos requeridos por operaciones posteriores, incluyendo proyectar, lo antes posible en el árbol de consulta.

➢Lo que reduce el número de columnas de las relaciones intermedias temporales, mientras que SELECCIONAR reduce el número de registros.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 36: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NOMBREP=‘FEI’ Y NUMEROP=NUMP Y NSSE Y FECHA_NCTO>’31-DIC-1980’

X

PROYECTO

TRABAJA_ENEMPLEADO

X

Árbol de consulta inicial (canónico) para consulta en SQL

Ord

en d

eej

ecu

ció

n

Page 37: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

X

PROYECTO

TRABAJA_EN

EMPLEADO

X

NOMBREP=‘FEI’NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

Page 38: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

X

PROYECTO

TRABAJA_EN

EMPLEADO

X

NOMBREP=‘FEI’

NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

Page 39: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

PROYECTO

TRABAJA_EN

EMPLEADO

NOMBREP=‘FEI’

NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

Page 40: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

∏APELLIDO

NUMEROP=NUMP

PROYECTO

TRABAJA_EN

EMPLEADO

NOMBREP=‘FEI’

NSSE=NSS

FECHA_NCTO>’31-DIC-1980’

∏NSEE ∏NSS,APELLIDO

∏NUMEROP ∏NSSE, NUMP

Page 41: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de heurísticas en la optimización de consultas.

➢ El árbol optimizado debe conducir a una consulta equivalente del árbol inicial.

➢El optimizador debe saber exactamente qué reglas de transformación utilizar para preservar dicha equivalencia.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 42: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Reglas generales de transformación para operaciones del álgebra relacional.

➢ Cascada de : Una condición de selección conjuntiva, puede descomponerse en una cascada (secuencia) de operaciones individuales:

c1 y c2 …. Y cn(R) c1 c2(…( cn(R))…))

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 43: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Reglas generales de transformación para operaciones del álgebra relacional.

➢ Conmutatividad de : La operación es conmutativa:

c1( c2(R)) c2( c1(R))

➢ Conmutatividad de (o de x ): La operación es conmutativa, como lo es la operación x:

R S S R

R X S S X R

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 44: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Reglas generales de transformación para operaciones del álgebra relacional.

➢ Conmutatividad de operaciones de conjuntos: Las operaciones de conjuntos U y son conmutativas, pero – no lo es.

➢ Asociatividad de , x, U, : Estas cuatro operaciones son asociativas individualmente; es decir, si representa una cualquiera de estas cuatro operaciones (pero la misma en toda la expresión), tenemos:

(R S) T R (S T)…...

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

U

U

Etcétera

Page 45: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Conversión de los árboles de consulta en planes de ejecución de consulta

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 46: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Conversión de los árboles de consulta en planes de ejecución de consulta.

➢Un plan de ejecución incluye información sobre los métodos de acceso para cada relación.

➢Un plan de ejecución incluye información sobre los algoritmos empleados para calcular los operadores relacionales representados en el árbol.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 47: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Conversión de los árboles de consulta en planes de ejecución de consulta.

➢El método para ejecutar la consulta puede especificar una valoración materializada o segmentada.

➢Valoración materializada: El resultado de una operación se almacena como una relación temporal. Supone almacenar en disco la tabla resultante de realizar la operación

➢Valoración segmentada: Las tuplas resultantes de una operación se envían directamente a la siguiente operación en la secuencia de consulta. (Todo el proceso se realiza en memoria)

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 48: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de estimaciones de costo en la optimización de consultas.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 49: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de estimaciones de costo en la optimización de consultas.

➢ Elección de la estrategia con el costo estimado más bajo.

➢Estimaciones precisas, comparaciones justas y realistas.

➢Es más apropiado para consultas compiladas.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 50: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de selectividad y estimaciones de costo en la optimización de consultas.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Optimización de consultas basada en el

costo

Optimización elaborada

Optimización parcial

Consultas compiladas

Consultas interpreta-

das

Page 51: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Uso de selectividad y estimaciones de costo en la optimización de consultas.

➢ Las funciones de costo empleadas en la optimización de consultas son estimaciones, por lo que la estrategia elegida puede no ser la óptima.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 52: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Componentes del costo de ejecución de una consulta.

➢Costo de acceso al almacenamiento secundario.

➢Costo de almacenamiento.

➢Costo de cómputo.

➢Costo de uso de memoria.

➢Costo de comunicación.

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 53: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Componentes del costo de ejecución de una consulta.– Bloques transferidos : depende de las estructuras de acceso y de la colocación de los bloques.

– Ficheros intermedios generados

– Cómputos en memoria sobre los ficheros intermedios: búsqueda, ordenación, fusión, cálculos

– Comunicación : envío de la consulta y recepción del resultado

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 54: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Componentes del costo de ejecución de una consulta.Costo principal para:

– BD grandes: bloques transferidos

– BD pequeñas (entran en memoria): cómputos

– BD distribuidas: comunicación

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Page 55: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

➢Información del catálogo usada en las funciones de costo.

➢Por cada fichero de la BD se necesita guardar

1. Número de registros y número de bloques

2. Factor de bloques de fichero

3. Método y atributos de acceso primario. Además si está (o no) ordenado y por qué atributo(s).

4. Si tiene índice primario (IP), de agrupación (IA ), direccionamiento calculado (DC) o índices secundarios (IS), y sobre qué atributos

5. Número de valores distintos de un atributo

Tema 2. Bases de Datos Distribuidas (BDD). Procesamiento y optimización de consultas

Información de almacenamiento físico

Page 56: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Bases de datosmóviles

MAYO 2017

Page 57: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

IntroducciónBASES DE DATOS MÓVILES

Page 58: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

IntroducciónSiempre ha existido la necesidad de organizar la información en papel y sistemas manuales.

1960. Los sistemas comienzan a ser computarizados inciando con el IMS (Information Managemenr System) de IBM que permitía ver los datos en forma de un árbol jerárquico.

1970. El Dr. E. F. Codd propone el concepto de Base de Datos Relacional:◦ Manejo de tablas, filas y columnas con un conjunto de operaciones lógicas.

1979. Primer producto comercial Oracle Database.

1980s. Surgen otros productos de BD relacionales:◦ SQL Server (1989)

◦ PostgreSQL (1986 primera versión, 1997 liberación)

Page 59: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Introducción1990s. Bases de datos relacionales con soporte para objetos.◦ Oracle, PostgreSQL

2000s. Bases de datos totalmente orientadas a objetos.◦ Orion DB, Open OODB, Objectivity DB

2000s. Bases de datos móviles.◦ SQLite, Oracle Lite, IBM DB2 Everyplace, SQL Compact,

◦ Sybase SQL Anywhere.

Page 60: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cómputo móvilCon el surgimiento de las redes inalámbricas, surge el concepto de cómputo móvil donde se reúnen en un mismo ambiente dispositivos móviles, que a través de una conexión inalámbrica acceden a una red para intercambiar información y compartir recursos

ofreciendo a los usuarios movilidad y

portabilidad.

Page 61: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cómputo móvilY con el surgimiento de Internet, ya no es necesario estar físicamente frente a una computadora en la red local donde se encuentran los datos y el cómputo móvil cobra mayor relevancia.

Sin embargo, la computación móvil aún tiene grandes retos, principalmente que los dispositivos aún presentan ciertas deficiencias en rendimiento de energía, capacidad de procesamiento, memoria y conectividad respecto a su contraparte de escritorio.

Page 62: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Dispositivos móviles➢Entre los dispositivos móviles más populares se encuentran los teléfonos celulares, tabletas y laptops.

➢Generalmente se componen de: CPU, memoria interna, conexión a red, batería, GPS, cámara fotográfica, lector de huellas.

Page 63: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Dispositivos móvilesLos dispositivos móviles presentan las siguientes desventajas: ◦ Desconexiones frecuentes debido a que los clientes móviles no

permanecen conectados de manera continúa en una misma red, algunas veces porque el dispositivo es encendido y apagado, otras veces porque el cliente decide desconectarse para conectarse a otra red.

Page 64: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Dispositivos móvilesLos dispositivos móviles presentan las siguientes desventajas: ◦ Presentan limitaciones en los recursos de energía, teniendo

muchas veces una cantidad de carga limitada.

◦ El tamaño de la pantalla que tienen algunos de los dispositivos muchas veces es muy pequeña y la información no es desplegada de la mejor manera.

Page 65: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Bases de datos móvilesEs un sistema distribuido que soporta conectividad móvil, posee todas las capacidades de un sistema de base de datos y permiten a las unidades móviles, una completa movilidad espacial por medio de la tecnología inalámbrica.

Page 66: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Bases de datos móvilesVan dirigidas a sistemas informáticos portátiles como computadoras personales y dispositivos móviles que se conectan con las estaciones base (servidores) mediante redes de comunicación digitales inalámbricas.

Además deben funcionar mientras estén desconectadas de la red a diferencia de los sistemas de bases de datos fijos.

Page 67: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

CaracterísticasConsultas dependiendo de la localización. Son consultas que involucran la localización física de la unidad móvil en combinación con otros datos como la localización de otras unidades móviles o estructuras físicas. ◦ Se debe tomar en cuenta:

◦ La unidad puede estar en movimiento mientas se realiza la consulta.

Page 68: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

CaracterísticasManejo de transacciones. Se considera el manejo de transacciones cuando un dispositivo móvil inicia una transacción hacia la base de datos o hacia un servidor fijo.

La transacción puede ejecutarse en el servidor o en el dispositivo móvil.◦ Se debe tomar en cuenta:

◦ Desconexiones, movilidad, errores, fallas en el dispositivo móvil.

◦ Se debe mantener la autonomía y la consistencia local del SMBD.

Page 69: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

CaracterísticasRedes Inalámbricas. Existen diferentes tipos de redes inalámbricas:◦ Celular: Costos elevados con poco ancho de banda, buena

cobertura.◦ LAN Inalámbrica: Bajo costo, poco rango de cobertura, buen ancho

de banda (54Mbps).◦ Satelital: Amplia cobertura, muy costosa, gran ancho de banda en

sentido descendente y poco ascendente.◦ Redes Ad Hoc: Comunicación entre dispositivos móviles de manera

directa. (Bluetooth).

Page 70: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

SMBD MóvilesAlgunos SMBD comerciales son:◦ IBM: DB2 Everyplace◦ SYBASE, Adaptive Server Anywhere◦ MICROSOFT SQL Server Compact◦ SQLite

Page 71: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

SQLiteo SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña biblioteca escrita en C.

o SQLite es el SGBD más utilizado en el mundo.

o SQLite es un proyecto de dominio público creado por D. Richard Hipp.

o A diferencia de los SGBD cliente-servidor, el motor de SQLite no es un proceso independiente. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo.

Page 72: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

SQLiteo El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funciones.

o El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero estándar en la máquina host.

o Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción.

Page 73: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

SQLite1. Debido a su pequeño tamaño, SQLite es muy adecuado para los

sistemas integrados, y también está incluido en:a. Todos los dispositivos Android

b. Todos los dispositivos iOS

c. Todos los dispositivos Mac

d. Todos los dispositivos Windows 10

e. Todos los navegadores Firefox, Chrome, and Safari

Page 74: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

SQLiteg. Cada instancia de Skype

h. Cada instancia de iTunes

i. Cada cliente Dropbox

j. Se usan en PHP y Python

k. La mayoría de televisores y cajas de televisión por cable

l. La mayoría de sistemas multimedia de los automóviles

Page 75: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Ventajas de BD móvileso Permiten la movilidad de los usuarios, los datos pueden ser accedidos remotamente.

o El mercado potencial de este tipo de bases de datos es bastante amplio, ya que tienen una multitud de aplicaciones, es decir, poseen un gran ámbito de aplicación ya que en principio cualquier base de datos relacional puede ampliarse para ofrecer los servicios de las bases de datos móviles.

Page 76: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Desventajas de BD móviles❖Los enlaces de comunicaciones juegan un papel importante en el desarrollo de estos sistemas, por lo que su dependencia puede suponer un freno para ellos.

❖Los datos pueden estar replicados, por lo que la consistencia y coherencia de los mismos son fundamentales y puede generar conflictos importantes.

Page 77: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Desventajas de BD móviles❖El tratamiento de fallos es un aspecto delicado ya que al tratarse de un entorno distribuido, los fallos de transmisión de datos deben de solucionarse y detectarse de forma eficiente para que no produzcan errores en la información tratada.

❖La capacidad de procesado de los dispositivos móviles son también un inconveniente importante y también hay que tener en cuenta que dicha capacidad no es la misma para todos los dispositivos.

Page 78: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación para Android SQLiteEjemplo

Page 79: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Se desarrollará una pequeña aplicación que validará la existencia y registrará un usuario.

• Sistema operativo cliente: Android.• Plataforma de desarrollo: Xamarin, implementación

libre de la plataforma de desarrollo .NET para dispositivos Android, iOS y GNU/Linux.

• Base de datos: SQLite

Page 80: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

Page 81: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

Puesto que no se instalará el emulador de Android, se depurará en un dispositivo móvil. Para ello se debe habilitar la “depuración por usb” en el aparato.

En Configuracion Acerca del teléfono Versión de compilación (Hacer clic varias veces)

Programador/Developer Depuracion por usb

Page 82: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 1. Crear el proyecto

Page 83: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 2. Agregar la vista para usuario nuevo.

• En la carpeta Resources

layout

Page 84: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

Newuser

Page 85: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Código para archivo Newuser.axml

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/txtUserName"android:hint="Nombre de usuario" /><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/txtPassword"android:hint="Contraseña" /><Buttonandroid:text="Crear"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/btnCrear" /></LinearLayout>

Page 86: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 3: Agregar la Actividad RegisterActivityen la raíz del proyecto

RegisterActivity

Page 87: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Añadir el código correspondiente a RegisterActivity.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;using System.IO;using SQLite;

namespace SQLite{[Activity(Label = "RegisterActivity")]public class RegisterActivity : Activity{EditText txtusername;EditText txtPassword;Button btncreate;protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);// Set our view from the "main" layout resourceSetContentView(Resource.Layout.Newuser);

// Create your application herebtncreate = FindViewById<Button>(Resource.Id.btnCrear);txtusername = FindViewById<EditText>(Resource.Id.txtUserName);txtPassword = FindViewById<EditText>(Resource.Id.txtPassword);btncreate.Click += Btncreate_Click;}private void Btncreate_Click(object sender, EventArgs e){try{string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3");var db = new SQLiteConnection(dpPath);db.CreateTable<LoginTable>();LoginTable tbl = new LoginTable();tbl.username = txtusername.Text;tbl.password = txtPassword.Text;db.Insert(tbl);Toast.MakeText(this, "Record Added Successfully...,", ToastLength.Short).Show();}catch (Exception ex){Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();}}}}

Page 88: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 4. Agregar la clase LoginTable.cs, en la raíz del proyecto

LoginTable

Page 89: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLiteusing System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;

namespace SQLite{class LoginTable{[PrimaryKey, AutoIncrement, Column("_Id")]public int id { get; set; }

[MaxLength(25)]public string username { get; set; }

[MaxLength(15)]public string password { get; set; }

}}

• Añadir código a la clase LoginTable.cs

Page 90: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 5. Agregar la referencia SQLite

Page 91: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

sqlite-net-pcl

Page 92: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 6. Agregar el código correspondiente a la clase MainActivity.cs

using Android.App;using Android.Widget;using Android.OS;using System;using System.IO;using SQLite;

namespace SQLite{[Activity(Label = "SQLite", MainLauncher = true, Icon = "@drawable/icon")]public class MainActivity : Activity{EditText txtusername;EditText txtPassword;Button btncreate;Button btnsign;protected override void OnCreate(Bundle bundle){base.OnCreate(bundle);

// Set our view from the "main" layout resourceSetContentView(Resource.Layout.Main);

// Get our button from the layout resource, // and attach an event to itbtnsign = FindViewById<Button>(Resource.Id.btnLogin);btncreate = FindViewById<Button>(Resource.Id.btnRegistrar);txtusername = FindViewById<EditText>(Resource.Id.txtUserName);txtPassword = FindViewById<EditText>(Resource.Id.txtPassword);btnsign.Click += Btnsign_Click;btncreate.Click += Btncreate_Click;CreateDB();}

private void Btncreate_Click(object sender, EventArgs e){StartActivity(typeof(RegisterActivity));}

private void Btnsign_Click(object sender, EventArgs e){try{string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Call Databasevar db = new SQLiteConnection(dpPath);var data = db.Table<LoginTable>(); //Call Tablevar data1 = data.Where(x => x.username == txtusername.Text && x.password == txtPassword.Text).FirstOrDefault(); //Linq Queryif (data1 != null){Toast.MakeText(this, "Login Success", ToastLength.Short).Show();}else{Toast.MakeText(this, "Username or Password invalid", ToastLength.Short).Show();}}catch (Exception ex){Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();}}public string CreateDB(){var output = "";output += "Creating Databse if it doesnt exists";string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Create New Databasevar db = new SQLiteConnection(dpPath);output += "\n Database Created....";return output;}}}

Page 93: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Aplicación Android SQLite

• Paso 7. Compila la aplicación y ejecútala.

Page 94: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Bases de datos en la nubeCÓMPUTO EN LA NUBE

Page 95: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

IntroducciónGeneralmente las bases de datos empresariales siempre han sido la respuesta para almacenar los datos en las empresas.

Pero la demanda de mayores capacidades de almacenamiento y necesidad de mayor velocidad de implementación, así como los costos de mantenimiento, han ocasionado que las soluciones locales, ya no sean la mejor solución.

“Se necesitan semanas para configurar una nueva base de datos. ¡La necesito ahora!”

“¿Necesito comprar un servidor completo para nuestra pequeña base de datos?”

“Es muy costoso el mantenimiento (conectividad, respaldos, licencias) de nuestra base de datos”

Page 96: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cómputo en la nubeLa computación en nube se refiere a una categoría de soluciones de tecnología que permite a los usuarios acceder a recursos informáticos (en este caso, a recursos de datos) on-demand, según sea necesario, así los recursos sean físicos o virtuales, dedicados o compartidos, y sin importar la forma en que se acceda a ellos (mediante conexión directa, red de área local [LAN], red de área amplia [WAN] o Internet).

Los usuarios no necesitan ni el conocimiento, ni el control de la tecnología, ni la infraestructura subyacente que dan soporte al conjunto de servicios.

Page 97: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Ventajas de Cómputo en la nube➢Escalabilidad.

➢Rapidez de implementación.

➢Costos variables.

➢Seguridad y fiabilidad.◦ P.ej. Microsoft garantiza un 99,99 % de tiempo de actividad para

los niveles Básico, Estándar y Premium de SQL Database.

Page 98: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Desventajas de Cómputo en la nube•Falta de control sobre los datos físicos.

•Confidencialidad en la transmisión de los datos.

•Falta de control físico sobre la arquitectura de software y hardware.

•Dependencia de terceros e incremento de posibles puntos críticos (fallo en las comunicaciones).

Page 99: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Bases de datos en la nubeBASES DE DATOS EN LA NUBE

Page 100: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Bases de datos en la nube (DaaS)Consiste en auto-solicitar un espacio de almacenamiento en Internet (la nube), con características (capacidad, velocidad, costo) de acuerdo a las necesidades. Todo esto de forma inmediata y listo para explotarse.

Es un intento por minimizar los costos y tiempos de implementación de servidores de bases de datos, las organizaciones se están moviendo hacia un modelo de Base de Datos Como Servicio (Database as a Service o DaaS).

Evita la compra/instalación de licencias de sistemas operativos de servidor y sistemas manejadores de bases de datos.

Simplemente se “renta” (normalmente a un bajo costo) el servicio de base de datos, se utiliza y si cuando ya no se necesite, se desecha.

Page 101: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Tipos de nubesPúblicas. Recursos proporcionados por un proveedor externo y que accedemos por medio de Internet.

Privadas. Recursos propios de la empresa. Algunos beneficios del cómputo en la nube eliminando algunos inconvenientes.

Híbridas. Uso combinado. ◦ Ofrece varias opciones.

◦ Contingencias

◦ Mayor control.

Page 102: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

CaracterísticasParámetros preconfigurados:

◦ Las bases de datos en la nube suelen estar preconfigurados con un razonable conjunto de parámetros y valores adecuados para la clase de instancia que vaya a utilizar.

Supervisión y métricas:

◦ Las bases de datos en la nube poseen herramientas para ver métricas operativas clave de las instancias que se encuentran en ejecución, incluido el uso de la capacidad de CPU, memoria, almacenamiento, operaciones de entrada y salida, y conexiones.

Parches de software automáticos:

◦ Las bases de datos en la nube suelen garantizar que el software de la base de datos permanezca actualizado con los últimos parches disponibles en el mercado.

Page 103: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

CaracterísticasCopia de seguridad automatizadas:◦ Las bases de datos en la nube tienen de forma predeterminada la función de

copia de base de datos y transacciones reteniéndolas según especifique el usuario, permitiéndole restaurar la instancia de base de datos en cualquier segundo de lo retenido.

Escalamiento automático:◦ Las bases de datos en la nube poseen la capacidad de escalar rápidamente en

minutos recursos como capacidad de proceso, memoria y almacenamiento.

Page 104: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

CaracterísticasAislamiento y seguridad◦ Las bases de datos en la nube brindan el aislamiento de las

instancias de la base de datos mediante conexiones seguras, como IPsec (Internet Security Protocol que asegura las comunicaciones sobre el Protocolo de Internet) mediante la encriptación de las comunicaciones.

Page 105: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Bases de datos comercialesRelacionales NoSQL

Amazon Web Services2002

MySQLOracleMSSQL

SimpleDBDynamoDB

Windows Azure2009

SQL DatabaseMySQLPostgres

Azure BlobsAzure TablesAzure Files

Google API2006

Google Cloud SQL Persistent DiskCloud Bigtable

Page 106: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

BD locales Vs BD en la nube

BD Locales BD en la nube

Recuperación de fallos manual Rápida recuperación de fallos

Configuraciones avanzadas Configuración sencilla, interfaz para cualquier usuario

Respaldo y restauración de manera manual Respaldos y restauración de forma automática mediante consola Web

Requiere de herramientas externas para comprobar disponibilidad

Monitoreo automático incluido

Requiere de conocimiento de sistemas operativos

No es necesario ningún conocimiento del sistema operativo

Escalado y reconfiguración manual Proceso automatizado de escalamiento definiendo las reglas de escalabilidad

Costo por el lugar físico, el hardware, licencias de software y especialistas en mantenimiento

Costo solo por el uso de la base de datos

Page 107: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

EjemploCPANEL HOSTING

Page 108: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Obtener cuenta

Page 109: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cpanel Host

Page 110: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cpanel Host

Page 111: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cpanel Host

Page 112: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Cpanel Host

Page 113: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

EjemploAZURE SQL DATABASE

HTTPS://PORTAL.AZURE.COM/

Page 114: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Obteniendo una cuentaAZURE SQL DATABASE

HTTPS://AZURE.MICROSOFT.COM/ES-MX/

Page 115: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Obtener cuenta

Page 116: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Iniciar sesión https://portal.azure.com/

Page 117: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Iniciar sesión https://portal.azure.com/

Usuario: erikamricouvContraseña: Erika-0380

Page 118: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Crear un Grupo de recursos / por equipo

Page 119: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Crear un Grupo de recursos / por equipo

Page 120: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Crear SQLDatabase/ por equipo

Page 121: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Crear un Grupo de recursos / por equipo

Page 122: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Crear un Grupo de recursos / por equipo

Page 123: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Establecer las reglas del firewall

Page 124: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Copiar la cadena de conexión

Server Name: bdclase.database.windows.net

Authentication: SQL Server

User Name: clase

Password: BDavanzadas-2

Page 125: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Probar conectividad usando ventana de comandos

c:\ telnet bdclase.database.windows.net 1433

Page 126: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Probar la conexión desde Visual Studio

Nombre del servidor:

bdclase.database.windows.net

Autenticación: SQL Server

Nombre del usuario: clase

Contraseña: BDavanzadas-2

Nombre de la base de datos:

<predeterminado>

Page 127: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Probar la conexión desde Visual Studio

Page 128: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Integración de datosCÓMPUTO EN LA NUBE

Page 129: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

¿Qué es?

“La integración de datos la podemos definir como el proceso de combinar datos que residen en diferentes fuentes y permitirle al usuario final tener una vista unificada de todos sus datos”

Page 130: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

¿Qué es?

“La integración de datos la podemos definir como el proceso de combinar datos que residen en diferentes fuentes y permitirle al usuario final tener una vista unificada de todos sus datos”

Page 131: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

¿Qué es?

➢ Brindan al usuario la percepción de consultar una única fuente de datos.

➢ El usuario no necesita preocuparse por:▪ Conocer las fuentes disponibles.▪ Localizar y acceder a las fuentes de datos.▪ Consultar cada fuente.▪ Integrar las respuestas de cada fuente.

Page 132: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

¿Qué es?

Sistemas de

Integración

Heterogéneas

Autónomas

Poco estructuradas

Distribuidas

Page 133: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Heterogeneidad en cuanto a:

➢ Nivel de estructuración.➢ Modelo de datos.➢ Plataforma de software.➢ Convenciones de sintaxis.➢ Convenciones semánticas.➢ Diferencias de granularidad.

Page 134: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Clasificación

I. Virtuales: Los datos se mantienen en las fuentes y el sistema es un intermediario.

II. Materializados: Los datos se copian a un gran almacén central. Extract, Transform, Load (ETL)

Page 135: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Clasificación. Materializados

Extract, Transform, Load (ETL)Es un proceso en el que se extrae la información de las fuentes de datos, se transforman para que sean homogéneos y luego se cargan en una fuente destino. La idea es ofrecer una fuente de datos única que contiene toda la información contenida en las distintas fuentes de datos .

Page 136: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Clasificación. Materializados

Ventajas:•La información está físicamente en un repositorio único•Las consultas se resuelven de forma más rápidaDesventajas:•La información no suele estar actualizada: hay que ejecutar el proceso ETL para sincronizar los datos en caso de que las fuentes se actualicen

Page 137: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Clasificación. Virtuales

Definición: Ofrece una vista virtual que responde las consultas de los usuarios . La integración de los datos se hace en tiempo real, consultando cada una de las fuentes de datos cada vez que un usuario hace una consulta, es decir, ofrecer una vista en tiempo real de los datos.

Fuente de datos 1

Fuente de datos 2

Fuente de datos 3

Consulta 1

Consulta 1.1 Consulta 1.2 Consulta 1.3

Page 138: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Clasificación. Virtuales

Ventajas:•Ofrece una vista actualizada de los datos en tiempo real•Las fuentes trabajan de forma independiente (No hay que estar actualizando de forma continua)Desventajas:• Es más difícil resolver las consultas para dividirlas en las distintas fuentes y hacer el mapeo entre las fuentes y la vista de datos (Supone más tiempo para resolver las consultas)

Page 139: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Ejemplos

➢ Sistemas de mediación.➢ Sistemas de Data Warehousing.➢ Portales Web.➢ Etcétera.

Page 140: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Sistemas de Mediación

Mediador

VeracruzCiudad de

MéxicoYucatán Zacatecas

1

2 2 2 23 3 3 3

4

Alumnos con mejor promedio en el

sistema educativo nacional

…..

Integra la información virtualmente

Page 141: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

“Un conjunto de datos orientado a temas, integrado, no volátil, variante en el tiempo, como soporte en la toma de decisiones de dirección” W.H. Inmon.

Page 142: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

“Un conjunto de tecnologías de soporte a la toma de decisión, cuyo objeto es que quien trabaja con los conocimientos (ejecutivo, director, analista) pueda tomar decisiones de manera más rápida y eficaz.”

Page 143: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing. Características.

Están diseñados para realizar eficientemente la extracción, procesamiento y presentación para el análisis y la toma de decisiones.

No están diseñadas para soportar transacciones.

Page 144: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing. Características.

✓ Almacén de datos integrados provenientes de diversas fuentes, procesados para su almacenamiento en un modelo multidimensional.

✓ Suelen mantener series de tiempo y análisis de tendencia, necesitando datos históricos.

Page 145: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing. Características.

✓ Su contenido cambia con menos frecuencia que las bases de datos tradicionales. Su actualización es periódica.

✓ En las bases de datos la transacción es el agente de cambio, un almacén de datos se actualiza de acuerdo a una política de actualización analizada cuidadosamente.

Page 146: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing. Conceptos relacionados.

OLAP On-line analytical processing/Procesamiento analítico on-line.Describe el análisis de datos complejos del almacén de datos.Es lo más rápido para ejecutar sentencias SELECT.

Page 147: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

DSS Decision support systems/Sistemas de soporte a la toma de decisiones o EIS Executive informationsystems/Sistemas de información ejecutiva.

Page 148: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

OLTP On-line transaction processing/Procesamiento de transacciones on-line, son soportadas por las bases de datos tradicionales. Incluyen inserciones, actualizaciones, supresiones y consultas.

Page 149: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data WarehousingProceso completo de almacenamiento utilizando almacenes de datos

DATOS

METADATOS

Otras entradas de datos

Bases de datosALMACÉN DE DATOS

Limpieza Reformateo

OLAP

DESSIEIS

MINERÍA DEDATOSActualizaciones / Nuevos datos

E T L

Page 150: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Usando este método, todos los datos de las diferentes bases de datos que tiene la intención de integrar son extraídos, transformados y cargados. Eso significa que el data warehouseprimero tira de todos los datos de las distintas fuentes de datos. Entonces, el data warehouse convierte todos los datos a un formato común para que un conjunto de datos sea compatible con otro. A continuación, carga estos nuevos datos en su propia base de datos. Cuando se envía la consulta, el data warehouse localiza los datos, los recupera y los presenta en una visión integrada.

Data WarehousingProceso completo de almacenamiento utilizando almacenes de datos

Page 151: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing. Ejemplos.

Ejemplos de Data Warehouse: MS SQL SERVER Business Inteligence es la solución para construir data warehouse del manejador de base de datos SQL SERVER. EXCEL Business Inteligence La hoja de cálculo EXCEL de Microsoft permite la construcción de cubos y almacenes de datos para realizar análisis de información por medio de escenarios. Oracle Data Warehousing es la solución de Oracle para la creación de data warehouse.

Page 152: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing. Modelado de datos

Modelos multidimensionales Cubos de datos (Hipercubos si tienen más de tres dimensiones).Considerando que una base de datos relacional puede ser pensada como de dos dimensiones, una base de datos multidimensional considera cada atributo de datos (tal como producto, región geográfica de ventas, y período de tiempo) como una “dimensión" separada.

Page 153: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Matriz de dos dimensiones

Page 154: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Matriz de tres dimensiones

El cubo puede ser rotado (cambiar su orientación dimensional) para mostrar una orientación diferente de los ejes, con la técnica llamada pivotaje.

Page 155: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Los modelos multidimensionales pueden crear vistas jerárquicas,

conocidas como visualización roll-up y

drill-down.

Page 156: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Visualización roll-up.Mueve hacia arriba la jerarquía, agrupando en unidades más grandes.

P. ej. La vista de productos individuales hasta una amplia lista de categorías de productos.

Page 157: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Visualización drill-down. Operación contraria a roll-up.

Proporcionando una vista más fina.

P. ej. La descomposición de ventas regionales en subregiones y los tipos de productos en detalle de productos.

Detalle

Detalle

Detalle

Page 158: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

El modelo de almacenamiento multidimensional implica dos tipos de tablas:

La tabla de dimensión. Tuplas de atributos de la

dimensión.

La tabla de hechos. Agrupación de tuplas. Una tabla

por cada hecho registrado. Cada hecho contiene una(s) variable(s) que asocia con punteros a la tabla de dimensión.

Page 159: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Tabla de dimensiónTabla de hechos

Page 160: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Esquemas multidimensionales.

De estrella. Una tabla de hechos con una única tabla por cada dimensión.De copo de nieve. Variación de la anterior. Las tablas dimensionales están organizadas en una jerarquía para normalizarlas.

Page 161: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

De estrella

Page 162: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

De copo de nieve

Page 163: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Constelación de hechos. Conjunto de tablas de hechos que comparten algunas tablas de dimensión

Page 164: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Técnicas de indexación.Se emplean técnicas de indexación para obtener mayor rendimiento en el acceso.

Indexación bitmap. Construye un vector de bits por cada valor del dominio (columna) a indexar.

Page 165: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Técnicas de indexación. Indexación bitmapPor ejemplo:Inventario de 100,000 coches.Indexación bitmap para el tipo de coche.Existen cuatro tipos: económico, compacto, gama media, de lujo Cuatro vectores de bits.

Page 166: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Facultad de Estadística e Informática

Data Warehousing

Técnicas de indexación. Indexación de concatenación.Empleado en el esquema de estrella.Relaciona los valores de una dimensión con las filas de la tabla de hechos.

Es empleada frecuentemente para mantener las relaciones establecidas entre los valores de una clave principal y una clave externa.

Page 167: BASES DE DATOS AVANZADAS - Universidad Veracruzana · PDF filePasos para procesar una consulta de alto nivel ... BASE DE DATOS EN TIEMPO DE ... Ejemplo Consulta SQL: Para cada proyecto

Gracias por su atención