Otras técnicas Diseño: BDD, Datawarehouse

Preview:

Citation preview

Otras técnicas de Diseño: BDD, Datawarehouse

Índice

• Bases de Datos Distribuidas– Definición– Objetivo– Técnicas de Diseño– Procesamiento de Preguntas

• Almacenes de Datos– Características Generales– Modelado de Datos– Construcción de Almacenes de Datos– Servidores

3

BD DistribuidasTecnología de Bases de Datos (tradicional)

Centralización de datosVarios Ficheros Una Base de Datos

Redes de ComputadoresDistribución/Compartición de recursos

BD centralizada BD distribuida (¿varias BDs?)BD Distribuidas: unión de estas dos aproximaciones (aparentemente opuestas)

La tecnología de BD busca la INTEGRACIÓN de los datos y no la CENTRALIZACIÓN

• BD que no esta almacenada en una única posición física, sino que esta repartida en distintos lugares geográficamente dispersos y conectados vía enlaces de comunicación, pudiendo los usuarios de cada nodo acceder a todos los datos.

• Colección de datos que pertenecen lógicamente al mismo sistema pero 

físicamente están dispersos en distintos lugares de una red.

4

Definición de BD Distribuida

5

Ejemplo de BDD

Red deComunicaciones

BARCELONAEMPLEADOS (Barcelona)PROYECTOS (Barcelona)

SEVILLAEMPLEADOS (Sevilla)PROYECTOS (Sevilla)

MADRID (sede central)EMPLEADOS (todos)PROYECTOS (todos)

BILBAOEMPLEADOS (Bilbao)PROYECTOS (Bilbao)

6

SGBDD

• Un sistema de gestión de bases de datos distribuidas (SGBDD) es el software que permite el manejo de bases de datos distribuidas y que hace dicha distribución transparente al usuario.

Transparente significa: las aplicaciones trabajaran, desde un punto de vista lógico, como sí un solo SGBD ejecutado en una sola máquina, administrara esos datos.

7

BD remotas vs BD distribuidas

• BD remotas: El usuario especifica los comandos de comunicación

• BD distribuidas: Proporcionan transparencia de la distribución. Los usuarios formulan las preguntas como si se tratara de una BD centralizada.

• Transparencia: Separación del nivel semántico del sistema (nivel alto) de los aspectos de implementación (bajo nivel)

8

Objetivo de las BD Distribuidas

Proporcionar INDEPENDENCIA DE DATOS

Tipos de transparencia:– en la distribución (o en la red)– en las copias– en la fragmentación

• El usuario no debe conocer detalles operacionales de la red. Se divide en:– Transparencia en la localización: El comando usado 

para realizar la tarea es independiente de la localización de los datos y del lugar donde se escriba el comando.

– Transparencia en los nombres. Cuando se asignan nombres a los objetos, estos se pueden acceder de forma no ambigua.

• Un esquema de localización describe el lugar donde está almacenados los datos (fragmentos)

9

Transparencia en la distribución

• Todos los detalles para localizar y mantener copias deben ser tratados por el sistema. Se duplican los fragmentos.

– Ventajas: Seguridad (disponibilidad), menor nº de comunicaciones(aumento de paralelismo)

– Inconvenientes: Modificaciones, más espacio de almacenamiento

10

Transparencia en las copias

• Diferentes situaciones:a) Copiar toda la BD en cada nodo. Se crea una BDD totalmente repetida.

• Ventajas: El sistema funciona mientras funciona alguno de los nodos(Disponibilidad). Paralelismo Incrementado.Las recuperaciones de los datos son más rápidas para las preguntas globales.

• Desventajas: Modificaciones mas costosas.Mecanismos de control de concurrencia y recuperación ante fallos mas complejas.

11

Copias de los Datos

b) No tener ninguna copia de los datos, solo los originales. Cada fragmento está en un solo sitio. Distribución no redundante.

12

Copias de los Datos

c) Repeticiones parciales. Algunos fragmentos se duplican y otros no.Se duplican en un nodo, dos,... o en tantos como existan.

Una descripción de los fragmentos duplicados se denomina esquema de duplicación.

13

Copias de los datos

La selección de los lugares y el grado de duplicación depende:de los objetivos deseados en cuanto a rendimiento y disponibilidad del sistema y de los tipos y frecuencias de las preguntas enviadas a cada nodo

• Fragmento: Unidad lógica de BD (ejemplo relación)

• Tipos de Fragmentación:– Horizontal– Vertical– Mixta

14

Tipos de fragmentación

• La fragmentación de una relación R es correcta si son válidas las siguientes propiedades:

– Completitud: cada elemento de R debe aparecer en alguno de los fragmentos Ri.

– Restauración: el contenido de R se debe poder obtener a partir de los fragmentos de Ri.

15

Fragmentación

• Ventajas:– Mejorar el rendimiento de las aplicaciones al trabajar con 

subconjuntos de relaciones– Poder dar una respuesta eficiente a aplicaciones que trabajan 

con los mismos datos (subconjuntos de relación) en diferentes nodos

– Los fragmentos permiten aumentar el número de ejecuciones concurrentes.

• Desventajas:– Disminuye la eficiencia en las aplicaciones que trabajan con 

varios fragmentos– La comprobación de las restricciones de integridad puede ser 

más costosa.

16

¿Por qué Fragmentar?

• Una fragmentación horizontal de una relación lo constituyen un subconjunto de tuplas de dicha relación. Las tuplas que pertenecen al fragmento horizontal se especifican por una condición en uno o más atributos de la relación.

• Operador: Selección.  (Condición de guardia)

17

Fragmentación Horizontal

• Propiedades:– Completa. Cada tupla de la relación original R está en alguno de los fragmentos (C1 or C2 or Cn)

– Disjunta. Para cualquier i # j ninguna tupla esta en Ci and Cj

Si es completa y disjunta se puede utilizar la operación UNION para reconstruir la relación original.

18

Fragmentación Horizontal

• Un fragmento vertical de una relación contiene solo ciertos atributos de la relación que están relacionados entre si de alguna forma.

• Operador: Proyección

19

Fragmentación Vertical

Es necesario incluir en cada fragmento el atributo clave primaria.

• La fragmentación vertical es completa si se cumple que:el conjunto de fragmentos verticales incluyen todos los atributos de la 

relación original y comparten el atributo clave primaria.

L1 U L2 ....U Ln = Atributos (R) yLi and Lj = Pk(R) para todo i # j

clave primaria de R

Para reconstruir la relación original se debe aplicar la operación OUTER UNION.

20

Fragmentación Vertical

21

Fragmentación

Fragmentación vertical: basada en encontrar conjuntos de atributos a proyectar

Fragmentación horizontal: basada en encontrar condiciones de selección

• Combinación de los tipos de fragmentación Horizontal y Vertical.

22

Fragmentación Mixta

• En general un fragmento de relación se puede especificar por la combinación de las operaciones SELECT‐PROJECT.

Si C = true and  L # ATR(R)  Fragmento verticalSi C # true and L =ATR(R)  Fragmento horizontalSi C #true and L # ATR(R) Fragmento MixtoSi C =true and L = ATR(R) Relación Original 

23

Fragmentación

• Un esquema de fragmentación de una BD contiene la definición del conjunto de fragmentos que incluyen todos los atributos y tuplas de la BD y que cumple la condición de que toda la BD puede ser reconstruida a partir de los fragmentos mediante alguna secuencia de operaciones

24

Fragmentación

Transparencia en la localización + Transparencia en las copias +Trasparencia en la fragmentación 

• Permiten que el sistema distribuido parezca al usuario un sistema centralizado

25

Objetivo

Además,

• la transparencia en la localización permite desplazar relaciones entre nodos sin alterar las aplicaciones

• la transparencia en las copias permite incrementar el factor de disponibilidad de los datos y el del rendimiento del sistema

• la transparencia en la fragmentación también permite incrementar el factor de rendimiento del sistema.

26

Objetivos

27

Nuevas funciones del SGBDD

• Manejar un catálogo global que contiene los esquemas de localización, duplicación y fragmentación.

• Obtener estrategias de ejecución para preguntas globales.

• Transmitir preguntas y datos entre varios nodos a través de la red.

• Decidir a qué copia duplicada acceder• Mantener la consistencia entre copias duplicadas.• Recuperación ante fallos en los nodos o en la red.

28

Diseño de BDs DistribuidasHay que decidir en qué nodos deben residir

1) los datos Diseño de BD DistribuidasNo si las BD ya existen (SBDF). En ese caso hay que integrarlas para obtener el esquema global.En otro caso (SBDD), tras obtener el esquema conceptual global se debe fragmentar y asignar

2) las aplicaciones que trabajan con los datos

Es necesario un sistema de gestión de BD Distribuidas que realice lo siguiente:

procesamiento de preguntas, mantenimiento de la consistencia si hay replicación de datos, control de transacciones, etc.

29

Diseño

• ¿Cómo distribuir los datos entre diferentes sitios?

• Objetivos del Diseño:– Procesamiento Local– Distribución de la carga de trabajo– Costo de almacenamiento y disponibilidad

• Problemas:– Fragmentación– Asignación

30

Diseño de BD Distribuidas

31

Diseño top-down de BDD (Rel.)Esquema Global Información de Acceso

(transacciones)

Esquema Local 1 Esquema Local N

Esquema Físico 1 Esquema Físico N

DISEÑO FÍSICODISEÑO FÍSICO

ASIGNACIÓN

Esquema Global Fragmentado

FRAGMENTACION

32

Diseño Bottom‐Up de BDD

Esquema Local 1 Esquema Local N

Esquema Local 1 en un modelo canónico

TRADUCCIÓN TRADUCCIÓN

Esquema Local N en un modelo canónico

INTEGRACIÓN

Esquema Global en un modelo canónico(Vista unificada de los datos)

Clasificación de las BDD

• Homogéneas– Todos los nodos emplean idéntico SGBD, son conscientes de la existencia de los demás sitios y acuerdan cooperar en el procesamiento de las solicitudes

• Heterogéneas– Puede que los diferentes nodos utilicen SGBD diferentes, puede que algunos no tengan información de la existencia de otros nodos y que solo proporcionen facilidades limitadas para la cooperación en el procesamiento de las solicitudes.

1. Diseño Esquema Global2. Fragmentar y Asignar3. Diseños Físicos

34

Diseño top-down de BDD (Rel.). Etapas

35

Diseño Top‐Down

El problema de obtener los esquemas locales a partir del global se divide en dos:

Fragmentación: partir las tablas en fragmentos.Asignación: distribuir los fragmentos entre los esquemas locales.

El fragmento es la unidad a distribuirventaja: incrementa el nivel de concurrencia de transacciones.desventaja: algunas transacciones se degradarán si tienen que trabajar con varios fragmentos.

• Con el fin de realizar una fragmentación adecuada es necesario trabajar con la siguiente información:– Sobre el significado de los datos– Sobre las aplicaciones que los usan– Acerca de la red de comunicaciones

36

Fragmentación

• ¿Cómo asignar los fragmentos a los nodos?

La elección de los lugares y el grado de repetición de los datos dependerá:– del rendimiento que se quiera obtener del sistema

– del grado de disponibilidad de los datos que se desee y 

– del tipo y frecuencia de las transacciones en cada nodo.

37

Diseño. Asignación

• En la fase de asignación se necesita conocer información cuantitativa relativa a:

– la BD, – las aplicaciones que se usaran, – la red de comunicación,– las capacidades de procesamiento y de almacenamiento de cada nodo en la red.

38

Asignación

39

Asignación

Asignar fragmentos a los esquemas locales Sin replicación: todo fragmento reside en un único nodo

bueno para actualizaciones, malo para preguntasCon replicación total: todos los fragmentos residen en todos los nodos

bueno para preguntas, malo para actualizacionesCon replicación parcial: algunos fragmentos pueden residir en más de un nodo

compromiso entre actualizaciones y preguntas

Si hay más actualizaciones que preguntasentonces la replicación será menos ventajosa

40

Formulación del problema Asignación

Dados N fragmentos y M nodos, encontrar la matriz X(Xij = true) el fragmento i se aloja en el nodo j

tal que minimiza el costo totalsuma de los costos de procesamiento de todas las preguntas, actualizaciones (multiplicando cada costo por el nº de veces que se pregunta / actualiza) y costos de almacenar todos los fragmentos.sujeto a las siguientes restricciones:

tiempo de respuesta máximo para cada preguntaexiste un almacenamiento máximo en cada nodono superar la carga de procesamiento en cada nodo

El problema es NP-completo. Pero se pueden usar heurísticos: problema de la mochila, técnicas de ramificar y

acotar, etc...

41

Asignación

PROCESAMIENTODE PREGUNTAS

CONTROL DECONCURRENCIA

DISPONIBILIDADDE LOS DATOS

REPLICACIÓNCOMPLETA

REPLICACIÓNPARCIAL

SINREPLICACIÓN

Más fácil Más Difícil Más difícil

Difícil Más Difícil Más fácil

Muy alta Alta Baja

• ¿Donde almacenar el catálogo global?a) Centralizado. En un único nodob) Totalmente repetido. En cada nodoc) Distribuido. En cada nodo se almacena la información necesaria para el nodo.

Combinación de a y c.

42

Diseño

43

Ejemplo Diseño

ESTUDIANTE (Dni, Nombre, Centro, Campus)AMONESTACION (codA, Fecha, Periodo, Dni)LIBRO (ISBN, Titulo, Editorial, BibliotecaCampus)PRESTAMO (Dni, ISBN, Fecha, Tipo)

44

Ejemplo Diseño• El dominio corresponde a la gestión del servicio de bibliotecas de la Universidad (existe una 

biblioteca por campus). En este servicio se anotan datos acerca de los estudiantes matriculados en la universidad, los libros con los que cuentan las bibliotecas, los préstamos que se realizan y las amonestaciones que se hacen a los estudiantes cuando incumplen las normas de préstamo establecidas

• El sistema distribuido a construir está compuesto de 3 nodos, uno por cada campus (Donostia, Bilbo, Gasteiz). Además de las aplicaciones que introducen los datos de estudiantes, libros, préstamos y amonestaciones se ejecutan otras aplicaciones para hacer informes estadísticos, etc. Estas aplicaciones que se han desarrollado cumplen las siguientes condiciones o restricciones:

– En cada nodo se gestionan los datos relacionados con los estudiantes del campus correspondiente.

– En cada biblioteca se pueden realizar préstamos de libros propios o prestamos de libros que pertenecen a las otras bibliotecas. La gestión de préstamos se realiza en cada caso con una aplicación diferente (la aplicación del campus de Donostia es diferente de la aplicación del campus de Bilbo, etc.)

– Cada biblioteca gestiona los datos de las amonestaciones relacionados con los estudiantes de su campus

• Nodo Donostia:

L1 = SELECCION ESTUDIANTES (Campus= Donostia)

L2 = SELECCION ((AMONESTACION JOIN ESTUDIANTE (Campus Donostia))(codA, Fecha, Periodo, Dni) )

L31 =  SELECCIÓN ( ( PRESTAMO JOIN LIBRO (BibliotecaCampus Donostia) ) JOIN ESTUDIANTE (Campus Donostia) ) (Dni, ISBN, Fecha, Tipo)

L31 =  SELECCIÓN ( ( PRESTAMO JOIN LIBRO (BibliotecaCampus Bilbo) ) JOIN ESTUDIANTE (Campus Donostia) ) (Dni, ISBN, Fecha, Tipo)

L31 =  SELECCIÓN ( ( PRESTAMO JOIN LIBRO (BibliotecaCampus Gasteiz) ) JOIN ESTUDIANTE (Campus Donostia) ) (Dni, ISBN, Fecha, Tipo)

L34 =  SELECCIÓN ( ( PRESTAMO JOIN LIBRO (BibliotecaCampus Donostia) ) JOIN ESTUDIANTE (Campus Bilbo ) (Dni, ISBN, Fecha, Tipo)

L35 =  SELECCIÓN ( ( PRESTAMO JOIN LIBRO (BibliotecaCampus Donostia ) JOIN ESTUDIANTE (Campus Gasteiz) ) (Dni, ISBN, Fecha, Tipo)

45

Ejemplo Diseño

46

Ejemplo• EMPLEADO (DNI, ENombre,Apellido, FechaNac,Dir,Sexo,Salario,DNIJefe,Ndpto.)• DEPARTAMENTO (NDpto, Dnombre, DNIJefe,FechaIniJefe)• LUGARES_DPTOS (NDpto, LugarDpto)• PROYECTO (NPro, Pnombre,Plugar,NDpto)• TRABAJA_EN (DNI,Npro,Horas)• DEPENDIENTE(DNI,Dnombre,Sexo,FechaNac,Parentesco)

Tres nodos. Nodo 1: Oficina Central. Acceso con regularidad a todos los datos de EMPLEADO y PROYECTO, además de utilizar la información de DEPENDIENTE para cuestiones relacionadas con el seguro.Nodo 2: Departamento 5Nodo 3: Departamento 4

En los nodos 2 y 3 existe un acceso frecuente a los datos EMPLEADO (sobre los atributos ENombre, DNI, Salario, DNIJefe) Y PROYECTO ( de los empleados que trabajan en ese departamento y sobre los proyectos controlados por ese departamento).

EJEMPLO

• Nodo 2 (Departamento 5)F1 PROYECCION [Enombre,DNI,Salario,DNIJefe] (SELECCION EMPLEADO (NDpto =5)) F2 SELECCION DEPARTAMENTO (NDpto= 5)F3 SELECCION LUGARES_DPTOS (NDpto = 5)UNION de G1  (SELECCION (PROYECTO (NDpto=5) JOIN(Npro) TRABAJA_EN) JOIN(DNI) (SELECCION EMPLEADO (NDpto = 5))G2 (SELECCION (PROYECTO (NDpto=5) JOIN(Npro) TRABAJA_EN) JOIN(DNI) (SELECCION EMPLEADO (NDpto = 4))G3 (SELECCION (PROYECTO (NDpto=5) JOIN(Npro) TRABAJA_EN) JOIN(DNI) (SELECCION EMPLEADO (NDpto = 1))G4 (SELECCION (PROYECTO (NDpto=4) JOIN(Npro) TRABAJA_EN) JOIN(DNI) (SELECCION EMPLEADO (NDpto = 5))G5 (SELECCION (PROYECTO (NDpto=1) JOIN(Npro) TRABAJA_EN) JOIN(DNI) (SELECCION EMPLEADO (NDpto = 5))

48

Procesamiento de Preguntas

• El sistema debe:– descomponer la pregunta original en subpreguntas que se puedan ejecutar en nodos individuales.

– generar la estrategia que combine los resultados de las subpreguntas para obtener la respuesta final.

Maneja los esquemas de localización, copias y fragmentación.

49

Procesamiento de Preguntas

• El álgebra relacional no es suficiente para expresar la ejecución de estrategias. Debe ser completada con operaciones para intercambio de datos entre nodos diferentes.

• Además de elegir el orden de las operaciones del álgebra relacional, el procesador de consultas distribuidas debe seleccionar los mejores sitios para procesar los datos.

50

Procesamiento de Preguntas• Transformar la pregunta formulada por el usuario en 

un conjunto de operaciones sobre las bases de datos locales (se deben transferir ficheros intermedios entre nodos)

• Es necesario trabajar con técnicas de optimización.

• Objetivo más extendido: Minimizar costos de comunicación.

Ejemplo• Nodo 1 (10.000 tuplas) 

Empleado(Dni,Nom,Fnac,Dir,Sex,Salario,Dno) (100 bytes)• Nodo 2 (100 tuplas)

Departamento(Dno,Dnombre,DniDirector,Finicio_Dire) (35 bytes)

• Pregunta: Obtener el nombre de cada empleado y el nombre del departamento en el que trabaja.

Resultado nodo 3a) Llevar las relaciones Empleado y Departamento al nodo 3[(10.000)*100] + [(100)*35] = 1.003.500 bytes.

b) Llevar la relación Empleado al nodo 2, hacer join, resultado nodo 3[(10.000)*100] +[(10.000)*40] = 1.400.000 bytes

c) Llevar la relación Departamento al nodo 1, hacer join, resultado nodo 3[(100)*35] + [(10.000)*40] = 403.500 bytes

Nota  40 (tamaño en bytes de Nom y Dnombre)

52

Procesamiento de Preguntas

Regla: Seleccionar el nodo que envía la mayor cantidad de datos al nodo de operación como lugar para ejecutar la operación

Costo Total = E/S+CPU+Comunicaciones

Objetivo más extendido: Minimizar los costos de comunicación. (sobre todo en WAN)

53

Procesamiento de preguntas utilizando la operación Semi‐Join

• Idea: Reducir el tamaño de una relación antes de transferirla a otro nodo.

Enviar los atributos de una relación R necesarios para hacer el join al nodo donde este almacenada la relación S. Hacer el join. Proyectar los atributos necesarios para el resultado y enviar al nodo donde este R.

Ejemplo• Pregunta: Para cada departamento, obtener el nombre del departamento y el nombre de su 

director.

Resultado nodo 2

a) Enviar Empleado al nodo 2 [(10.000)*100] = 1.000.000 bytes

b) Enviar Departamento nodo 1, hacer join y enviar resultado al nodo 2[(100)*35] + [(100)*40] = 7.500 bytes

Nota  40 (tamaño en bytes de Nom y Dnombre)

c) Con Semi‐joinEnviar al nodo 1 el Dni del director  [9*100 = 900]  bytes (r1)Hacer join r1 con Empleado, Enviar resultado nodo 2   100 * 39  = 3900 bytes  (30 bytes nombre empleado)900 + 3900  = 4800 bytes

55

Procesamiento de pregs. en BDD

Pregunta inicial

DESCOMPOSICIÓN DE CONSULTAS

Pregunta inicial en álgebra relacional

LOCALIZACIÓN DE DATOS

Pregunta sobre fragmentos

OPTIMIZACIÓN GLOBAL

OPTIMIZACIÓN LOCAL

Pregunta sobre fragmentos y operaciones de comunicación

Preguntas locales optimizadas

Esquema Global

Esquema de Fragmentos

Estadísticas sobreFragmentos

Esquema Local

56

Descomposición de Preguntas• Transforma la pregunta en otra pregunta en álgebra 

relacional que opera sobre relaciones globales. Consiste de cuatro partes:

– Normalización: transformar una consulta  a una forma normalizada (conjuntiva o disyuntiva) para facilitar su procesamiento posterior. También verifica la validez de la expresión (análisis sintáctico)

– Análisis. Se detectan y rechazan consultas incorrectas– Simplificación. Elimina predicados redundantes aplicando 

reglas de idempotencia  (p and p  p)– Reestructuración.Rescribe la pregunta en el álgebra 

relacional para mejorar la eficiencia (transformar productos cartesianos en joins) 

57

Análisis. Ejemplo

• Si el predicado de selección se contradice con la definición de un fragmento, el resultado es una relación intermedia vacía y la operación se puede eliminar.

58

Reestructuración. Ejemplo

• Staff (DNI,Nom,Apel,cargo,sexo,salario)

• Obtener los nombres y apellidos de todos los miembros del staff

SELECT Nom, ApelFROM Staff

59

Reestructuración. Ejemplo

• S1: Proyección [DNI,cargo,sexo,salario]• S2: Proyección [DNI,Nom,Apel]

Proyección(Nom,Apel) Proyección(Nom,Apel)

Join DNI S2

S1           S2            (Se eliminan los fragmentos verticales  que no contienen los atributos proyectados)

60

Localización de Datos

• Localiza los datos de la consulta usando la información sobre la distribución de datos. Determina que fragmentos están involucrados en la consulta y transforma la consulta distribuida en consulta sobre fragmentos.(E se ha dividido en tres fragmentos, E1, E2 y E3)

Ejemplo:  SELECT * FROM EWHERE ENO = “E5”

Se transforma en: SELECT * FROM E2WHERE ENO =“E5”

61

Optimización Global• Calcula una estrategia de ejecución para la consulta cercana a 

la óptima. • La salida es una consulta algebraica optimizada con primitivas 

de comunicación para transferir datos entre nodos.• El factor principal que afecta la eficiencia de la ejecución de 

una estrategia es el tamaño de las relaciones intermedias que son producidas durante la ejecución. (las relaciones intermedias se deben transmitir por la red)

62

Optimización Local

• Se efectúa en todos los nodos con fragmentos involucrados en la consulta.

• La optimización local usa los algoritmos de sistemas centralizados.

Transacciones

• Al trabajar con BDD podemos tener transacciones/preguntas locales y transacciones globales.

• La conservación del principio ACID en las transacciones globales es una tarea complicada.

64

Modelo de Transacciones Distribuidas

• Las transacciones deben conservar las propiedades ACID

• Tipos de transacciones:– locales: tienen acceso y actualizan datos sólo en una BD local.

– globales: tienen acceso y actualizan datos en varias BD locales. 

Sistemas de Almacenamiento en la Nube

• Sistemas con muchos nodos, con distribución geográfica y alta disponibilidad.

– No garantizan el principio ACID– Sistemas NoSQL

66

BD Distribuidas y ORACLE

• Cada BD en una BDD es diferente del resto de BDs y tiene su propio nombre global.  nombreBD.Nombre dominio     Ej.GIPUZKOA.GI.EHU.ES

Todas las BD Oracle de un SBDD utilizan el software de red OracleNet8 para la comunicación entre las Bases de Datos.

67

DB LINK. ORACLE• Un DB LINK define un camino desde una BD ORACLE a otra BD (pero 

no viceversa). Se almacena en el catálogo (SELECT db_link FROM user_db_links;)

• ¿Por qué usar un links?– Un usuario local puede acceder a través de un link a una BD remota 

sin ser usuario de dicha base remota.– Permite limitar el acceso a base de datos remotas a usuarios locales.– Permiten a los usuarios acceder a las BDs como si se tratara de una 

única BD lógica.• Es transparente para los usuarios.

Cuando GLOBAL_NAMES= true el nombre del LINK debe coincidir con el nombre de la BD a la que señala el link.

Si GLOBAL_NAMES = false el DB LINK puede tener otro nombre

68

Sintaxis de DB LINK

• CREATE [GLOBAL][PUBLIC]DATABASE LINK nombre [CONNECT TO {CURRENT USER | usuario IDENTIFIED BYpassword}] [USING nombre‐conexión]

Se obtieneEste equipo/C :/Oracle/Client/product/12.1.0/client_1/NETWORK/ADMIN/tnsnames.ora

69

Servicio (service)

• GIPUZKOA.GI.EHU.ES =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = vsids11.si.ehu.es)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = GIPUZKOA.gi.ehu.es)))

70

TIPOS DE DB LINK

• Private. Sólo lo puede usar el que lo crea– (CREATE DATABASE LINK ....)

• Public. Lo podrán usar todos los usuarios de la BD– (CREATE PUBLIC DATABASE LINK ....)

• Global. Lo podrán usar todos los usuarios de cualquier BD en la red ORACLE– Se deben definir en ORACLE NAME SERVER

71

TIPOS DE USUARIOS

• Fixed. Hay que indicar en la definición el usuario y el password

• Connected User (sin CONNECT). Válido para el usuario conectado. Debe tener en la BD remota una cuenta con el mismo nombre de usuario que en la cuenta de la base de datos local.

• Current User. Un usuario local se puede conectar como usuario global a través de un procedimiento almacenado.

Almacenes de Datos (Data Warehouses)

Índice

• Características Generales• Modelado de Datos• Construcción de Almacenes de Datos• Servidores

Motivación

• En la actualidad los directivos de nivel medio con poder para tomar decisiones necesitan manejar información a un nivel de detalle tal que les facilite la toma de decisiones.

• El almacenamiento de datos, OLAP (Online AnalyticalProcessing) y la minería de datos ofrecen esta funcionalidad.

OLAP . Término usado para describir el análisis de datos complejos desde el almacén de datos.

75

¿Cuál margen¿Cuál es el margenmayor/menor de

los productos?

¿Qué tenemos¿Qué tipo de clientes tenemosy qué productos compran?

pueden competencia?¿Pérfil de los clientes que

pueden ir a la competencia?

Cómo influirán los nuevos ¿Cómo influirán los nuevos productos en el balance?

de

¿Qué tipo de promociones

de productos funcionanmejor?

¿ canal ¿Cuál es el mejor canal de distribución?

Interés de usar Almacenes de Datos

Almacenes de Datos. Definición

• Colección de datos orientada al sujeto, integrada, no volátil y de tiempo variable para el soporte de las decisiones de los directivos.

• Colección de tecnologías de soporte a las decisiones, que tiene como objetivo que el trabajador del conocimiento (ejecutivo, director, analista) tome decisiones mejores y más rápidas.

• Es una “agrupación” (repositorio)   de datos procedentes de varias fuentes y bajo un esquema unificado de bases de datos en un modelo multidimensional.

Diferencia entre BD y Almacenes de Datos

• BD.  Son transaccionales (gestionan inserciones, borrados, actualizaciones además de las consultas para la recuperación de la información)Soportan OLTP

• AD. Orientados a aplicaciones de toma de decisiones. Optimizadas para la recuperación de datos, no para el procesamiento de transacciones rutinarias. No admiten modificaciones.Soportan OLAP

Soportan análisis de series temporales (datos por años,..) y los datos son no‐volátiles.Los usuarios sólo necesitan realizar operaciones de consulta pero el acceso debe ser rápido para grandes volúmenes de datos provenientes de diferentes fuentes.

Diferencias OLTP / OLAP• OLTP

– Transacciones cortas– Preguntas “simples”– Trabajan con porciones “pequeñas” de la BD– Actualizaciones frecuentes

• OLAP– Transacciones largas– Preguntas complejas (ej. ¿Pérfil de los clientes que pueden ir a la 

competencia? …)– Trabajan con porciones “grandes” de la BD– Actualizaciones poco frecuentes

Características de los Datos

• Integrados– Datos provenientes e integrados de distintas fuentes

• Variables en el tiempo– Datos relativos a un periodo de tiempo y se incrementan periódicamente

• No volátiles– Datos que no se actualizan

Tipos de Almacenes de Datos

• AD de empresas. Su construcción requiere mucho tiempo y dinero.

• AD virtuales. Se reflejan como vistas materializadas sobre BD operativas.

Modelado de Datos para los Almacenes

• Se usan modelos multidimensionales.  Estos modelos se benefician de las relaciones inherentes de los datos para rellenar unas matrices multidimensionales llamadas cubos de datos (o hipercubos)

VentasProducto

Zona

Q1 Q2 Q3 Q4Periodo

PortátilesCámaraLCD monitor

AfricaAméricaEuropaAsia

Modelado de Datos para los Almacenes

• Los datos pueden solicitarse en cualquier combinación de dimensiones. Existen herramientas que permiten visualizar los datos según las dimensiones elegidas por el usuario.

• El cambio desde una orientación dimensional a otra en un cubo de datos se logra fácilmente gracias a la técnica de pivotaje (o rotación).

Modelado de Datos para los Almacenes

• Visualización:– Roll‐up (compactar). Mueve hacía arriba la orientación, agrupando en unidades más grandes a lo largo de una dimensión.

– Drill‐down (descomponer).Proporciona una vista más fina

Modelado de Datos para los Almacenes

• Los AD pueden usar índices para mejorar el tiempo de acceso a los datos (tipo bitmap)

• Cada cierto tiempo hay que refrescar los AD (ej. Para trabajar con periodos históricos diferentes)

Modelado de Datos para los Almacenes

• El modelo multidimensional implica dos tipos de tablas: de dimensión y de hechos.– Tabla de dimensión. Consta de tuplas de atributos de la dimensión.

– Tabla de hechos. Agrupación de tuplas. Una por cada hecho registrado. (normalmente los atributos son identificadores que actúan de claves extranjeras de las tablas de dimensiones)

Ejemplo

Modelado de Datos para los Almacenes

• Esquemas multidimensionales comunes:– Estrella. Consiste en una tabla de hechos con una única tabla por cada dimensión

– Copo de Nieve. Variación del esquema en estrella en el que las tablas dimensionales de éste están organizadas en una jerarquía. 

Esquema Tipo Estrella

Construcción de un Almacén de Datos

• Pasos:1. Los datos deben ser extraídos de fuentes múltiples y 

heterogéneas (ej. B.D, ficheros, etc.)

2. Los datos deben estar formateados de forma que sean coherentes dentro del almacén.

3. Los datos deben estar limpios para garantizar la validez.4. Los datos procedentes de distintas fuentes deben 

acomodarse al modelo de datos del almacén. 5. Los datos deben cargarse en el almacén.

Arquitectura

Fuentes externas

BD operacionales

Fuentes de datos

Extraer

Transformar

Cargar

Refrescar

Data Marts

Monitorización & Administración

Almacén de Datos

Servir

Repositorio de metadatos

Servidores 

OLAP

Análisis

Consultas/Informes

Minería de datos

Herramientas de consulta

Fuentes de datos: procesos y herramientas

Fuentes externas

BD operacionales

Fuentes de datos

Extraer

Transformar

Cargar

Refrescar

Data Marts

Monitorización & Administración

Almacén de Datos

Servir

Repositorio de metadatos

Servidores 

OLAP

Análisis

Consultas/Informes

Minería de datos

Herramientas de consulta

Data Mart

• Un almacén de datos puede estar formado por varios data marts.

• Data mart. Subconjunto de un almacén de datos, generalmente en forma de estrella.– Se definen para satisfacer las necesidades de un departamento o sección de la organización.

Data mart

Pasos diseño de un Almacén de Datos

• Paso 1: Elegir un “proceso” (análisis de ventas de un supermercado..) de la organización para modelar.

• Paso 2: Decidir el gránulo (nivel de detalle) de representación del proceso

• Paso 3: Identificar las dimensiones que caracterizan el proceso

• Paso 4: Decidir la información a almacenar sobre el proceso.

Fuentes de datos

• Bases de datos externas • Ficheros planos• Datos en formato tradicional: 

– documentos, facturas, albaranes, etc.

• Internet

ETL: Extraction, Transformation & Loading

80% of total cost of building warehouse

Extraction Loading

Transformation

ETL Oracle

Cubebuilding

Extract, transform,load (ETL)

Herramientas de limpieza. Tipología

• Data migration (Migración de datos)• Permiten reglas de transformaciones simples

– Ej. Reemplazar “género” por “sexo”

• Data Scrubbing (Limpieza de datos)– Utilizan conocimiento específico del dominio

• Ej. Direcciones postales

• Data Auditing tools (Auditoría de datos)– Escanean datos para descubrir reglas y relaciones y lanzar señales de violaciones si es necesario

Resumen componentes de la arquitectura

• Momento y modo de recogida de los datos. Los orígenes de datos transmiten los nuevos datos:

– Bien a medida que se produce el procesamiento de las transacciones. Arquitectura dirigida por el origen. De manera periódica (ej. Noche)

– De manera periódica. Arquitectura dirigida por el destino.

El almacén nunca estará actualizado respecto a los origenes de datos. Contiene datos históricos

Resumen componentes de la arquitectura

• Selección del esquema– Es probable que las fuentes de datos tengan esquemas diferentes, por ello

• Resulta necesario integrar los esquemas y convertir los datos al esquema integrado antes de almacenarlos. Los datos almacenados no son una mera copia de los datos de las fuentes de datos.

Resumen componentes de la arquitectura

• Transformación y limpieza de los datos.– Transformación

• Cambiar unidades (existen herramientas gráficas para dar soporte a las transformaciones de los datos)

– Limpieza de los datos.  (tarea encargada del procesamiento previo de los datos ‐pre procesamiento‐)

• Sustituir CP erróneos. Búsqueda difusa• Datos duplicados. Operación de mezcla‐purga• Agrupamiento de Datos. Operación de domiciliación

Resumen componentes de la arquitectura

• Propagación de las actualizaciones– Las actualizaciones de los orígenes de datos deben propagarse a los almacenes de datos. En algunos casos la propagación será directa, en otros no.

Servidores de consultas

• En la mayoría de las arquitecturas se utiliza un servidor distinto al del almacén de datos

• Rendimiento y mantenimiento

• Dos tecnologías• ROLAP • MOLAP

Servidores de consultas ROLAP• Utilizan tecnología Relacional (Relational OLAP)

– Métodos de implementación adecuados para representarlos datos multidimensionales en tecnología relacional

– Utilizan extensiones del SQL estándar para soportar el acceso multidimensional a los datos

• Ventaja: Basado en un estándar

• Algunos de los más extendidos– Oracle– IBM (DB2 y Business solutions)

Servidores de consultas MOLAP• Utilizan tecnología Multidimensional (Multidimensional OLAP)

– Los datos están almacenados directamente en matrices– Operaciones de consulta están implementadas directamente sobre 

estas matrices

• Ventaja: Suelen ser más rapidos que los ROLAP• Inconveniente: No están basados en SQL estándar 

• Ejemplos comerciales– Essabse (Arbor), Accumate (Kenan)

AD versus Vistas

• AD soportan un almacenamiento persistente en las vistas sólo en determinados casos.

• AD no son relacionales sino multidimensionales• En los AD se pueden definir índices en las vistas No

• Los AD proporcionan funcionalidades de análisis especiales

• Los AD contienen datos de varias BD las vistas sólo contienen datos de una BD

Resumen

• Almacén de Datos– Ayudan a obtener y archivar datos operacionales. Se usan para la ayuda a 

la toma de decisiones y para el análisis de datos históricos (los esquemas tienden a ser multidimensionales). Sistemas de ayuda a la toma de decisiones: OLAP y sistemas de minería de datos.

• Minería de Datos– Uso de técnicas para descubrir conocimiento (reglas y patrones a partir de 

los datos).

• Recuperación de la Información– Este campo se ocupa de consultar datos no estructurados (ej. fuentes de 

información textual) y presta atención a la clasificación de los resultados de la consulta.