Practico

Data Warehouse

 

 

 

1¿Que es Data Warehouse?

Es un proceso, no un producto. Es una técnica para consolidar y administrar datos de variadas fuentes con el propósito de responder preguntas de negocios y tomar decisiones, de una forma que no era posible hasta ahora.

Desde el punto de vista de la construcción de un Data Warehouse, podemos decir que es una colección de base de datos integradas, no volátil que ayuda a la toma de decisiones donde cada unidad de datos es relevante en un momento de tiempo.

 

2¿Qué es un Datamart?

Es un subconjunto de una bodega de datos para un propósito específico.

Es un almacén de datos históricos relativos a un departamento de una organización, así que puede ser una copia de parte de un datawarehouse para uso departamental.

 

3¿Cómo se construye un DataWarehouse?

El Proceso de arquitectura de un datawarehouse puede ser vista como un proceso de cuatro pasos:

-Fuentes (Externas/Internas)

-Extracción (Monitor)

-Integrador

-DW

El proceso de construcción es el encargado de llevar la información de las fuentes de datawarehouse.

La extracción lo que hace es recuperar los datos de las fuentes, el extractor es un componente de software que traduce datos del formato de las fuentes a un formato arbitrario,  así es que el extractor limpia los datos y los escribe en formatos específicos del datawarehouse.

La integración tiene como objetivo, integrar los datos provenientes de múltiples fuentes para finalmente integrarlos  en el datawarehouse.

 

4¿Qué es OLAP?

(Procesamiento analítico en Línea), Es una solución utilizada en el campo de la Inteligencia de Negocios (Business Intelligence), la cual consiste en consultas a estructuras multidimensionales (o Cubos OLAP) que contienen datos resumidos de grandes Bases de Datos o Sistemas Transaccionales (OLTP). Se usa en informes de negocios de ventas, marketing, informes de dirección, minería de datos y áreas similares.

 

5¿Cual es la diferencia con OLTP?

La razón por el cual se utiliza OLAP, es por la velocidad de respuesta que da para las consultas, de selección, en contraposición de con OLTP, que es la mejor opción para hacer  inserciones, modificaciones y eliminación de datos.

 

6¿Qué es una base  de datos multidimensional?

Las bases de datos multidimensionales se utilizan principalmente para crear aplicaciones OLAP y podemos pensarlas como bases de datos de una sola tabla, su peculiaridad es que por cada dimensión tienen un campo y otro campo por cada métrica o hecho.

 

7¿Qué es un cubo?

Un cubo es una estructura multidimencional que almacena información, cada cara del cubo es información.

Es la instancia de un modelo de datos multidimencionales, un modelo multidimencional soporta el manejo de una bata cantidad de datos empresariales y temporales.

 

8¿Qué operaciones soporta un cubo?

Un Cubo soporta 3 Dimensiones y  n operaciones.

 

9¿Qué topología existe para construir una base de datos dimensional?

Las topologías que existen son

-Copo  de Nieve

-Esquema Estrella

 

 10¿Qué es una dimensión?

Una dimensión son valores reales que se necesita para describir cualquier punto en el espacio.

 

11¿Qué es una tabla de Hechos?

Es la tabla central en un esquema dimensional y contiene los valores de la medida de negocio.

 

12¿En base al ejemplo que plantee el disertante identifique cuales son las tablas de hechos?

Las tablas de hechos según el ejemplo son dos: Tipo de aportación y ubicación, esta se divide en tres tablas calle, zona y barrio.

 

13¿Metodología que existe para construir una Datawarehouse?

La metodología CRISP es un proceso jerárquico formado por varias tareas que ofrece a las organizaciones la estructura necesaria para obtener mejores y más rápidos resultados en la minería de datos

 

 

Practico

Patrón de Diseño

Los Patrones de Diseño (Design Patterns) son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Un Patrón de Diseño es una solución a un problema de diseño no trivial que es efectiva (ya se resolvió el problema satisfactoriamente en ocasiones anteriores) y reusable (se puede aplicar a diferentes problemas de diseño en distintas circunstancias).

Diferencia entre un Patrón y un Framework

 

La diferencia que existe entre un patrón y un Framework es que el nivel de abstracción de un patrón es mayor que el del framework.

 

Ya que un patrón es la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software, y los Frameworks son diseñados con el intento de facilitar el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos de software que tratando con los tediosos detalles de bajo nivel de proveer un sistema funcional.

 

Clasificación de los Patrones de Diseño

 

·    Patrones Creacionales Los patrones de cración abstraen la forma en la que se crean los objetos, permitiendo tratar las clases a crear de forma genérica dejando para más tarde la decisión de qué clases crear o cómo crearlas.

 - Método de Fabricación (Factory Method)
    Parte del principio de que las subclases determinan la clase a implementar.

- Fábrica Abstracta (Abstract Factory)
El problema a solucionar por este patrón es el de crear diferentes familias de objetos, como por ejemplo la creación de interfaces gráficas de distintos tipos (ventana, menú, botón, etc.).

-Prototipado (Prototype)
Se basa en la clonación de ejemplares copiándolos de un prototipo.

-Singleton
Restringe la instanciación de una clase o valor de un tipo a un solo objeto.

- MVC (Model View Controler)
Este patrón plantea la separación del problema en tres capas: la capa model, que representa la realidad; la capa controler, que conoce los métodos y atributos del modelo, recibe y realiza lo que el usuario quiere hacer; y la capa vista, que muestra un aspecto del modelo y es utilizada por la capa anterior para interaccionar con el usuario.

·  Patrones Estructurales: Tratan de conseguir que cambios en los requisitos de la aplicación no ocasionen cambios en las relaciones entre los objetos. Lo fundamental son las relaciones de uso entre los objetos, y, éstas están determinadas por las interfaces que soportan los objetos. Estudian como se relacionan los objetos en tiempo de ejecución. Sirven para diseñar las interconexiones entre los objetos.

- Adaptador (Adapter): Convierte una interfaz en otra.

- Puente (Bridge): Desacopla una abstracción de su implementación permitiendo modificarlas independientemente.

-  Objeto Compuesto (Composite): Utilizado para construir objetos complejos a partir de otros más simples, utilizando para ello la composición recursiva y una estructura de árbol.

-  Envoltorio (Decorator): Permite añadir dinámicamente funcionalidad a una clase existente, evitando heredar sucesivas clases para incorporar la nueva funcionalidad.

-  Fachada (Facade): Permite simplificar la interfaz para un subsistema.

-  Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con información idéntica.

-  Apoderado (Proxy): Un objeto se aproxima a otro.

    • Patrones de Comportamiento: Más que describir objetos o clases, describen la comunicación entre ellos.

 Los patrones de comportamiento estudian las relaciones entre llamadas entre los diferentes objetos, normalmente ligados con la dimensión temporal.

-  Cadena de responsabilidad (Chain of responsibility): La base es permitir que más de un objeto tenga la posibilidad de atender una petición.

-  Orden (Command): Encapsula una petición como un objeto dando la posibilidad de “deshacer” la petición.

-  Intérprete (Interpreter): Intérprete de lenguaje para una gramática simple y sencilla.

-  Iterador (Iterator): Define una interfaz que declara los métodos necesarios para acceder secuencialmente a una colección de objetos sin exponer su estructura interna.

-  Mediador (Mediator): Coordina las relaciones entre sus asociados. Permite la interacción de varios objetos, sin generar acoples fuertes en esas relaciones.

-  Recuerdo (Memento): Almacena el estado de un objeto y lo restaura posteriormente.

-  Observador (Observer): Notificaciones de cambios de estado de un objeto.

-  Estado (Server): Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo.

-  Estrategia (Strategy): Utilizado para manejar la selección de un algoritmo.

-  Método plantilla (Template Method): Algoritmo con varios pasos suministrados por una clase derivada.

-  Visitante (Visitor): Operaciones aplicadas a elementos de una estructura de objetos heterogénea.

  1. ¿MOSTRAR LA APLICACIÓN Y EJEMPLO DE LOS SIGUIENTES PATRONES?

 

    • Patrón factorial

La clase factoría devuelve una instancia de un objeto según los datos que se le pasan como parámetros. Para que la creacción centralizada de objetos sea lo más "útil y eficaz" posible, es de esperar que todos los objetos creados desciendan de la misma clase o implementen el mismo interface (es decir, hagan una operación similar pero de distintas formas), asi podemos usarlos todos de la misma manera, con los mismos métodos (gracias al polimorfismo), sin importarnos que clase concreta estamos tratando en cada momento.

Ejemplo:

 

public void FactoriaDeFiguras

{

  public static final int CUADRADO = 0

  public static final int CIRCULO = 1

  public Figura getFigura (int tipo, int lado)

  {

    if (tipo == this.CUADRADO)

    {

      return (new Cuadrado (lado))

    }

    else

    {

      return (new Circulo (lado))

    }

  }

}

 

    • Patrón Adaptador

 

El patrón adaptador, como su propio nombre nos puede hacer ver, se usa para convertir el interface de una clase a la de otra.

Implementacion:

En otras palabras, un adaptador es típicamente implementado utilizando herencia múltiple, al crear una subclase del adaptador que herede los métodos privados y, permitiendo que herede además, la interfaz pública de las clases que definen la interfaz requerida.

    • Patrón de template

Un Template Method es un patrón de diseño que define una estructura algorítmica en la super clase, delegando la implementación a las subclases. Es decir, define una serie de pasos, en donde los pasos serán redefinidos en las subclases.

Proposito: Usando el Template Method, se define una estructura de herencia en la cual la superclase sirve de plantilla ("Template" significa plantilla) de los métodos en las subclases. Una de las ventajas de este método es que evita la repetición de código, por tanto la aparición de errores

Ejemplo : uso del patrón en un lenguaje PseudoFormal

 

clase automóvil 
    abstracta accion cambiomarcha(); //sea como sea, los métodos deben ser definidos
    abstracta accion acelerar();     //como abstractos o virtuales
    abstracta accion frenar();      
    abstracta accion andar()
        mientras(vehículo_encendido) hacer
            acelerar();
            si(revoluciones_altas) entonces
                 cambiomarcha();
            finsi
            si(obstaculo) entonces
                frenar();
            finsi
        finmientras
    finaccion
finclase
 
clase automóvilmanual hereda automóvil
    accion cambiomarcha()
          /*define el método cambiar marcha en un auto manual*/
    finaccion
finclase
 
clase automóvilautomático hereda automóvil
    accion cambiomarcha()
          /*define el método cambiar marcha en un auto automático*/
    finaccion
finclase

 

    • Patrón de fachada o facale

El patrón fachada trata de simplificar la interface entre dos sistemas o componentes de software ocultando un sistema complejo detrás de una clase que hace las veces de pantalla o fachada.

La idea principal es la de ocultar todo lo posible la complejidad de un sistema, el conjunto de clases o componentes que lo forman, de forma que solo se ofrezca un (o unos pocos) punto de entrada al sistema tapado por la fachada.

Una ventaja más de usar una clase fachada para comunicar las dos partes o componentes, es la de aislar los posibles cambios que se puedan producir en alguna de las partes.

public class XArCFacade{

  . . .

  public Document getDocument (String id){

    . . .

  }

  . . .

  public HitList search (String request){

    . . .

  }

  . . .

}

    • Patrón de singleton


Restringe la instanciación de una clase o valor de un tipo a un solo objeto.

Garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia

Cuando se usa en conjunción con se crea una única fábrica, de modo que no habrá usos inconsistentes de los productos en el programa.

public sealed class Singleton
            {
                       
private static volatile Singleton instance;
                       
private static object syncRoot = new Object();
                       
private Singleton()
                        {
                                   System.Windows.Forms.MessageBox.Show("Nuevo Singleton");
                        }
                       
public static Singleton GetInstance
                        {
                                  
get
                                   {
                                              
if (instance == null)
                                               {
                                                          
lock(syncRoot)
                                                           {
                                                                      
if (instance == null)
                                                                                  instance =
new Singleton();
                                                           }
                                               }
                                              
return instance;
                                   }
                        }
       }

 

 

Acerca de lorenaf

Blog de lorenaf

Archivo

Suscríbete

RSS | Atom

Contacto

Contactar

Albergado en:blogdiario.com

Noticias: Noticias