sábado, 27 de septiembre de 2014

Introducción a Data Warehouse

¿Qué es un Data Warehouse DW?

El término Data Warehouse fue acuñado por Bill Inmon a principios de la década de los ´90 y lo definió de la siguiente manera:
 “Un warehouse es una colección de datos orientada a un determinado tema, integrado, variante en el tiempo y no volatil para ayudar al proceso de toma de decisiones gerenciales” [Inm92].   

Analicemos cada uno de estos términos al igual que lo hace el autor

Orientado a un Tema:

Datos que brindan información sobre un “tema” o proceso del negocio en particular, en lugar de concentrarse en la dinámica de las transacciones de la organización.

Integrado:

Los datos con los que se nutre el data warehouse vienen de diferentes fuentes y son integrados para dar una visión de un “todo” coherente.

Variante en el Tiempo:

Todos los datos en el data warehouse son asociados con un período de tiempo específico.

No Volatil:

Los datos son estables en el data warehouse. Mas datos son agregados pero los datos existentes no son removidos.

Ralph Kimball define data warehouse de una forma más sencilla y práctica pero igual de importante, un data warehouse es:
 “una copia de los datos transaccionales específicamente estructurados para consultas y análisis” [Kim92].

El data warehouse pretende conseguir un objetivo básico : “Proporcionar la información adecuada para la persona correcta en el tiempo preciso”

Arquitectura de un DW

 
 

Data Mart


Un mercado de datos es un conjunto de áreas temáticas organizadas para el sistema de soporte de decisiones en base a las necesidades de un determinado departamento. Por lo general, el diseño de base de datos para un mercado de datos está construido como una estructura de esquema en estrella que es óptimo para las necesidades de los usuarios que se encuentran en el departamento. Hay dos tipos de mercados de datos - dependientes e independientes. Un data mart dependiente es aquel cuya fuente es un almacén de datos. Un mercado de datos independiente es aquel cuya fuente es las aplicaciones heredadas o entorno OLTP.

Operational Data Store (ODS)



Un almacén de datos operativos es un sujeto orientado volátil (incluyendo actualización / eliminación) estructura integrada,, corriente valorada diseñado para servir a los usuarios operativos como lo hacen el procesamiento integrado de alto rendimiento.




Extracción Transformación y Carga (ETL - Extract clean Transform Load)


Carga de datos es un proceso importante en el almacén de datos. Se compone de 50% a 75% de cualquier esfuerzo de almacenamiento de datos. Proceso ETL efectiva representa el principal éxito del proyecto de almacén de datos.

Extracción:  El proceso por el cual los datos se tira o empuja desde sistemas fuente dispares.

Limpieza:Después que los datos se extrae de la fuente viene el siguiente paso es para limpiar los datos incorrectos.

Transformación:Sobre la base de las reglas de negocio se transforma datos.

Carga:Insertar / mover los datos transformados en las tablas de dimensiones y de hechos en un almacén de datos.

Decision Support System DSS

El DW es el “corazón” de la arquitectura de un Sistema de Soporte de Decisiones (DSS). Es la parte fundamental del funcionamiento de un DSS, dado que es una única fuente integrada de datos y los mismos, dentro del DW, son realmente accesibles permitiendo al analista del negocio trabajar en un ambiente inmensurablemente más fácil que en un ambiente clásico transaccional.

El Sistema de Soporte de Decisiones provee los mecanismos de acceso a los datos y el análisis de los mismos. El DSS Engine es el “cerebro” de la arquitectura, es el motor que traducirá los requerimientos de los usuarios en las correspondientes sentencias de consulta para el data warehouse y el que interpretará los resultados devueltos por el warehouse para mostrarlos según lo solicitado por el usuario.

OLTP vs OLAP

Podemos dividir los sistemas de TI en transaccional (OLTP) y analítico (OLAP). En general se puede asumir que los sistemas OLTP proporcionan datos de origen a los almacenes de datos, mientras que los sistemas OLAP ayudan a analizar.

 
OLTP (On-line Transaction Processing) se caracteriza por un gran número de transacciones cortas en línea (INSERT, UPDATE, DELETE). El énfasis principal de los sistemas OLTP se pone en el procesamiento de consultas muy rápido, manteniendo la integridad de los datos en entornos multi-acceso y una efectividad se mide por el número de transacciones por segundo. En la base de datos OLTP hay datos detallada y actualizada, y el esquema utilizado para almacenar bases de datos transaccionales es el modelo de entidad (por lo general 3NF).
 
OLAP (On-Line Analytical Processing) se caracteriza por un volumen relativamente bajo de transacciones. Las consultas son a menudo muy complejos e implican agregaciones. Para los sistemas OLAP un tiempo de respuesta es una medida de eficacia. Aplicaciones OLAP son ampliamente utilizados por las técnicas de minería de datos. En la base de datos OLAP se agregan, los datos históricos, almacenados en esquemas multidimensionales (por lo general de esquema de estrella). 
 

 
OLTP System
Online Transaction Processing
(Operational System)
OLAP System
Online Analytical Processing
(Data Warehouse)
Fuente de los datos
Datos operativos; OLTPs son la fuente original de los datos.
Consolidación de datos; Datos OLAP proviene de las diferentes bases de datos OLTP
Finalidad de los datos
Para controlar y ejecutar las tareas fundamentales del negocio
Para ayudar con la planificación, resolución de problemas y apoyo a las decisiones
Data
Revela una instantánea de los procesos de negocio en curso
Vistas multidimensionales de diversos tipos de actividades empresariales
Inserciones y actualizaciones
Inserciones y actualizaciones cortas y rápidas iniciadas por los usuarios finales
Puestos de trabajo periódicas de lotes de larga duración actualizar los datos
Consultas
Consultas relativamente estandarizadas y simples que vuelven relativamente pocos registros
A menudo, las consultas complejas que involucran agregaciones
Velocidad de procesamiento
Típicamente muy rápido
Depende de la cantidad de datos involucrados; actualizaciones de datos por lotes y consultas complejas pueden tardar muchas horas; velocidad de consulta se puede mejorar mediante la creación de índices
Requisitos de espacio
Puede ser relativamente pequeña si se archiva datos históricos
Más grande debido a la existencia de estructuras de agregación y datos de la historia; requiere más índices que OLTP
Diseño de base de datos
Altamente normalizada con muchas mesas
Por lo general-normalizado de con menos mesas; uso de estrella y / o esquemas de copo de nieve
Backup y recuperación
Copia de seguridad de la religión; datos operativos es fundamental para manejar el negocio, pérdida de datos que pueda provocar una pérdida monetaria importante y la responsabilidad legal
En lugar de copias de seguridad periódicas, algunos entornos pueden considerar simplemente volver a cargar los datos OLTP como un método de recuperación
 
 
 

Modelo Dimensional

Un modelo dimensional es un diseño lógico para diseñar almacenes de datos.  Formado por tablas de hechos y dimensiones. Difiere de los E/R ya que estos se orientan a transacciones. Kimball define este modelo como la única forma viable para llevar datos a usuarios en un DW.  Cada proceso de negocio puede representarse en un cubo con dos o más dimensiones.

Pasos para Construir un DW

1. Identificar el Proceso de Negocio:

Historial Académico. Conocer el historial académico de un estudiante para un periodo determinado.

2. Identificar la granularidad

Se refiere al nivel de sumarización o resumen de los datos en el almacén.

A mayor nivel de granularidad se tienen menos detalles de los datos y viceversa.

Ejemplo:
Historial Académico por semestre para un estudiante.

3. Identificar Dimenciones

Una dimensión es un conjunto de atributos con una clave única (subrogada) que corresponde con uno de los componentes de la tabla de hechos.

Los atributos definen características de una entidad, ofreciendo descripciones textuales. Los atributos de la dimensión surgen del sistema operacional y son los más relevantes para el análisis de los datos, son flexibles en el cambio, permiten realizar operaciones drill down y roll up.

Ejemplo:
Dim_Tiempo (id_dimTiempo, id_semestre, desc_semestre )
Estudiante (id_dimEstudiante, nombre, ci, sexo, estadoCivil, Nacionalidad, Fecha_Nacimiento, dirección, universidad, facultad, escuela).
Dim_Materia (id_dimMateria, codMateria, descMateria, preCondiciones,creditos)
Dim_Notas >>>dimension degenerada

4.Identificar los hechos

Una tabla de hecho es una relación multiclave que expresa relaciones muchos a muchos. Cada clave se relaciona con una dimensión.

Un hecho es una medición del negocio, distinta a un atributo. Contiene además uno o más hechos numéricos que ocurren en la combinación de esas claves. Los hechos más útiles son los numéricos y aditivos.

Ejemplo:
Fact(id_DimEstudiante,Id_dimTiempo, id_dimMateria, id_dimNotas,
Cantidad de materias aprobadas, Cantidad de materias retiradas, Cantidad de creditos aprobadas, Cantidad de creditos retirados, Promedio de notas aprobadas...)
 
 

 
 

 Tipos de dimensiones

Dimensiones Conformadas:

posee el mismo significado en cada relación que exista con alguna tabla de hechos.

Dimensiones Degeneradas:

El término Dimensión Degenerada, hace referencia a un campo que será utilizado como criterio de análisis y que es almacenado en la tabla de hechos.
Esto sucede cuando un campo que se utilizará como criterio de análisis posee el mismo nivel de granularidad que los datos de la tabla de hechos, y que por lo tanto no se pueden realizar agrupaciones o sumarizaciones a través de este campo. Los "números de orden", "números de ticket", "números de transacción", etc, son algunos ejemplos de dimensiones degeneradas.
La inclusión de estos campos en las tablas de hechos, se lleva a cabo para reducir la duplicación y simplificar las consultas.
Se podría plantear la opción de simplemente incluir estos campos en una tabla de dimensión, pero en este caso estaríamos manteniendo una fila de esta dimensión por cada fila en la tabla de hechos, por consiguiente obtendríamos la duplicación de información y complejidad, que precisamente se pretende evitar.



 

Dimensión Basura:

 Contiene información contextual de los hechos que pueden almacenarse en dimensiones separadas. Permiten almacenar datos como flags, comentarios, indicadores.

Ejemplo:
Crear una dimensión basura con los atributos "sexo" y "estado civil" (con sus combinaciones)
Crear una dimensión basura con "comentarios" (si es conveniente tener ese atributo en el almacén)


Bibliografía

[Kim92] Ralph Kimball, 1992. The Data Warehouse Toolkit, Wiley Computer Publishing
[Inm92] William H. Inmon, 1992. “Building the Data Warehouse”, Wiley-QED John Wiley & Sons, Inc..
http://datawarehouse4u.info/OLTP-vs-OLAP.html
http://www.dwmantra.com/dwconcepts.html

miércoles, 9 de julio de 2014

Fundamentos a la Inteligencia de Negocios

En la siguiente entrada se muestran los fundamentos basicos de la inteligencia de negocios, sus conceptos asociados con ejemplos prácticos de la vida cotidiana en una organización. A demás se expondrá un pequeño estudio realizado  6 diferentes organizaciones, en el cual quedará demostrado la importancia del uso de buenas tecnologias de información en la gestión de los procesos negocios.

Conceptos Básicos:

Dato:

Según el DRAE, el concepto de dato en informática es: “Dato: inform. Información dispuesta de manera adecuada para su tratamiento por un ordenador”. Es decir, el DRAE lo defi ne como sinónimo de información. En un sentido estricto y necesario para nuestros fines en informática, los datos son las señales individuales en bruto y sin ningún significado que manipulan las computadoras para producir información.

Información:

Según Idalberto Chiavenato, información "es un conjunto de datos con un significado, o sea, que reduce la incertidumbre o que aumenta el conocimiento de algo. En verdad, la información es un mensaje con significado en un determinado contexto, disponible para uso inmediato y que proporciona orientación a las acciones por el hecho de reducir el margen de incertidumbre con respecto a nuestras decisiones"

Sistema:

Puleo define sistema como " un conjunto de entidades caracterizadas por ciertos atributos, que tienen relaciones entre sí y están localizadas en un cierto ambiente, de acuerdo con un cierto objetivo". (p. 29).

Sistema de Información:

Un sistema de información es un conjunto de elementos interrelacionados con el propósito de prestar atención a las demandas de información de una organización, para elevar el nivel de conocimientos que permitan un mejor apoyo a la toma de decisiones y desarrollo de acciones. (Peña, 2006).

Proceso de negocio:

Thompson, R.J y Redstone, L (1997) definen un proceso como una serie de actividades interconectadas en busca de un propósito. En un contexto de negocios, el propósito de los procesos será proveer a sus clientes internos con sus requerimientos de una manera oportuna.

Inteligencia de Negocio: 

Las aplicaciones de Business Intelligence (BI) son herramientas de soporte de decisiones que permiten en tiempo real, acceso interactivo, análisis y manipulación de información crítica para la empresa. Estas aplicaciones proporcionan a los usuarios un mayor entendimiento que les permite identificar las oportunidades y los problemas de los negocios. Los usuarios son capaces de acceder y apalancar una vasta cantidad de información y analizar sus relaciones y entender las tendencias que últimamente están apoyando las decisiones de los negocios. Estas herramientas previenen una potencial pérdida de conocimiento dentro de la empresa que resulta de una acumulación masiva re información que no es fácil de leer o de usar. (CherryTree & Co., 2000)

Actividad Práctica:

Con el fin de comprender mejor los conceptos anteriores y conocer un poco la realidad que atraviesan los procesos de negocios de  algunas de las empresas venezolanas. Se realizó una encuesta a 6 (seis) empresas diferentes.

Encuesta:


No
Si
La empresa maneja estándares para la captura y consolidación de la información


Puede obtener la información precisa y detallada cuando usted lo desea sin necesidad de recurrir a los del área de informática.


Los datos que se manejan son confiables


Existen políticas de seguridad para el acceso a los datos


Tiene problema para acceder a los datos cuando los necesita


Se dedica la mayor parte del tiempo a elaborar informes


La toma de decisiones se realizan en base a la información sumistrada por el sistema


Dedicas más tiempo a las tareas mecánicas que a la toma de decisiones


Toda la información digital esta almacenada en un solo lugar


La carga de los datos al sistema se hace forma automatizada


La carga de los datos al sistema se hace de forma manual


Usa algún software que lo ayude a la toma de decisiones, es decir, alguno que genere gráficos de barras o tortas con la información que usted desea


Como guardan la información:
Formularios en hojas de papel

Archivos Excel

Base de Datos

Archivos de texto

No guarda registro



Para conocer los resultados de la misma, puedes descargar el informe técnico de la misma. 

domingo, 22 de junio de 2014

El Calentamiento


Para alcanzar el éxito en cualquier disciplina o actividad es necesario realizar un trabajo previo. Como los políticos que tienen que decir unas cuantas mentiras previas antes de ser electo.
Esta entrada no es más que un calentamiento antes de entrar de lleno a la materia de inteligencia de negocio, inteligencia empresarial or business intelligence. Refrescaremos conocimientos básicos de Base de Datos, a través de un ejercicio práctico.
Aprovechando el principio de la reusabilidad les dejo unos enlaces donde explican la teoría necesaria para el desarrollo de esta actividad:
  1. Formas Normales
  2. Diagrama de Clases
  3. Creación de Bases de Datos (DDL), utilizando postgres.
  4. Manipulación de Bases de datos (DML).

El ejercicio consiste en diseñar y modelar una base de datos en 3ra forma normal que permita reproducir mi kardex universitario. El Kardex es un documento que contiene todo el historial académico de un estudiante

Esto se resuelve con 3 pasos:
  1. Conocer el proceso ! ! !, para esto se elaboro un pequeño infome 
  2. Identificar tablas, relaciones y restricciones.
  3. Llenado de la Base de datos y hacer las consultas. Les dejo el backup ! !