jueves, 30 de enero de 2014

Actividad 4: Metodologia de Kimball

Para comenzar la descripción de la metodología, es necesario saber el significado de almacén de datos o "Data Warehouse"
Data Warehouse no es mas que un repositorio de los datos íntegros e históricos de una empresa que le sirve de ayuda para realizar el análisis para la toma de decisiones.
Un Data Warehouse puede ser corporativo, la cual contiene los datos de toda la empresa, o puede ser un Data Warehouse Departamental también llamado Datamarts las cuales almacenan información de un grupo de trabajo o departamento en especifico de la empresa (Ventas, Almacén, entre otros).
 En el paradigma de Kimball el DW es un conglomerado de todos los Datamarts, es decir, el DW será corporativo y abarcara toda la información de la empresa. La metodología de Kimball es usada para el diseño y la construcción de un DW, y se basa en lo que el autor denomina "El ciclo de vida Dimensional del Negocio".
Este ciclo de vida del proyecto de DW se basa en 4 principios:
Centrarse en el negocio: Centrarse en la identificación de los procesos de negocio y su valor en la empresa.
Construir una infraestructura de información adecuada: Diseñar una base de información única, confiable, de fácil entendimiento y uso, además de eficiente para reflejar la cantidad de requerimientos de negocio que posee la empresa.
Realizar entregas en incrementos significativos: Realizar la creación del DW a partir de una serie de entregables con plazo máximo que puede variar de 6 a 12 meses.
Ofrecer la solución completa: Proporcionar todos los elementos necesarios para entregar una solución de valor a los usuarios de negocios. Esto significa, un almacén de datos solido, bien diseñado y de calidad, así como también debe entregarse el producto con herramientas para la consulta y análisis avanzado, capacitación, soporte y documentación.
Para la construcción de un DW, Kimball nos propone las siguientes tareas de la figura 1, según lo que el denomina "Ciclo de Vida del Negocio Dimensional".
Figura 1. Tareas de la Metodología Kimball.

Planificacion:
 En este proceso se determina el proposito del DW, sus objetivos especificos y el alcance del mismo, los principales riesgos y una aproximacion inicial a las necesidades de informacion.

Analisis de Requerimientos:
La definición de los requerimientos se debe aprender tanto como se pueda sobre el negocio, los competidores, la industria y los clientes del mismo. Hay que leer todos los informes posibles de la organización; rastrear los documentos de estrategia interna; entrevistar a los empleados.Se deben conocer los términos y la terminología del negocio.

Modelado Dimensional:
La creación de un modelado dimensional es un proceso dinámico y altamente iterativo.
El proceso comienza con un modelo dimensional de alto nivel, y consiste en cuatro pasos.
  1-Elegir el proceso de negocio: El primer paso es elegir el área a modelar. Esta es una decisión de la dirección y depende fundamentalmente del análisis de requerimientos y de los temas analíticos anotados en la fase previa.
  2-Establecer el nivel de granularidad: La granularidad significa especificar el nivel del detalle. La elección de la granularidad depende de los requerimientos del negocio y lo que es posible a partir de los datos actuales. La sugerencia general es comenzar a diseñar el DW al mayor nivel de detalle posible, ya que se podría luego realizar agrupamientos al nivel deseado.
  3-Elegir las dimensiones: Las dimensiones surgen de las discusiones del equipo, y facilitadas por la elección del nivel de granularidad y de la matriz de procesos/dimensiones. Las tablas de dimensiones tienen un conjunto de atributos(generalmente textuales) que brindan una perspectiva o forma de análisis sobre una medida en una tabla de hechos.
  4-Identificar las tablas de hechos y medidas: El ultimo paso consiste en identificar las medidas que surgen en un proceso de negocio. Una medida es un atributo(campo) de una tabla que se desea analizar, agrupando sus datos, usando los criterios de corte conocidos como dimensiones. Las medidas habitualmente se vinculan con un nivel de granularidad y se encuentran en tablas que denominamos tablas de hechos. Cada tabla de hechos contiene como atributos una o mas medidas de un proceso organizacional, de acuerdo a los requerimientos

domingo, 19 de enero de 2014

Actividad 3: Investigacion Gartner y BI

Que es Gartner Inc.?

Gartner Inc. es una empresa que realiza investigación y análisis para las industrias de hardware computacional, software, comunicaciones y de tecnologías de la información (TI).
La empresa está organizada en cuatro segmentos de negocios: investigación, consultoría, eventos y TechRepublic.
El segmento de investigación incluye productos que constantemente destacan los avances de la industria, revisan nuevos productos y tecnologías, entregan información cuantitativa de mercado y analizan las tendencias de la industria dentro de una tecnología o sector de mercado en particular.
El segundo segmento consiste principalmente en consultorías y mediciones, que entregan evaluaciones exhaustivas de desempeño de costos, eficiencia y calidad para todas las áreas de TI.
El segmento de eventos consiste en varios simposios, exposiciones y conferencias con objetivos específicos.
Y TechRepublic consiste en un destino profesional en línea de TI cuyos ingresos vienen principalmente de publicidad en la web.

Cual es la relación entre Gartner Inc. y las Business Intelligence?

Gracias a la calidad de sus segmentos de investigación y consultoría se ha ganado una gran reputación y sus reportes denominados "Cuadrantes Mágicos de Gartner" son muy esperados cada año debido a que es una forma elegante y sencilla de presentar a los actores del mercado y son útiles para empresas que deseen ver la forma en la cual los percibe los compradores, desde su punto de vista.

 
Cuadrante Mágico de Gartner.


Como se observa en el gráfico, los sectores que intervienen son los siguientes:

Líderes (leaders): Son aquella empresas que tienen un nivel alto tanto en amplitud de visión como en capacidad de ejecución, estas compañías líderes tienden a ser grandes empresas en los mercados maduros, tienen una base de clientes grande y muy visible en ese mercado. Los líderes responden prontamente a las exigencias del mercado, e incluso tienen la capacidad para llevar a cabo la dirección general del mismo.
 
Aspirantes (challengers): Son la empresas que tienen fuerte capacidad de ejecución, aunque puedan carecer de visión. Las empresas "Challengers" tienden a ser más grandes vendedores en los mercados maduros que no quieren interrumpir su plan actual. Estas empresas tienen la capacidad de convertirse en líderes si su visión se desarrolla.

Visionarios (visionaries): Son aquellas empresas que tienen el conocimiento de cómo el mercado va a evolucionar y pueden ser innovadores potenciales, así como también pueden no ser capaces de ejecutar estas visiones. Estos visionarios en los mercados más maduros suelen ser cualquiera de los negocios más pequeños que tratan de competir, o las grandes empresas que tratan de escapar de la rutina.

Jugadores de nicho (niche players): Con la puntuación mas baja en ambas integridad de visión y capacidad de ejecución, estas empresas pueden hacer bien en un segmento del mercado, pero no pueden superar a los vendedores más grandes. Por lo general, estas empresas están centradas en la funcionalidad o en una región específica, o también estas empresas suelen ser nuevos negocios.

lunes, 13 de enero de 2014

Actividad 2: Investigacion sobre perfil "Analista de Sistema"

Esta entrada consta de un enlace donde se encontrara un informe de investigación acerca del perfil "Analista de Sistema" en los distintos portales de empleo, resaltando los que el mercado solicita, las competencias que exigen, las tareas que se esperan que desempeñen, etc.
Enlace para descargar el informe de la actividad numero 2 de la materia electiva Inteligencia de Negocio.
enlace

Actividad 1: Evaluacion exploratoria de conocimientos de bases de datos.

En esta entrada realizaremos la construcción de una base de datos la cual contendrá una serie de datos proporcionados por un documento llamado "Kardex" donde se almacena de manera organizada información acerca de las materias cursadas por un alumno, notas definitivas, cantidad de créditos, sección y código de la materia así como aspectos que ayudan a medir el desempeño del alumno tales como la eficiencia, el promedio general y el promedio ponderado.

La asignación consta de 4 actividades:

1-Modelar la Base de Datos
2-Creación de la Base de Datos (DDL) en la herramienta Postgresql
3-Manipulación de la Base de Datos (DML) generando un INSERT para cada uno de los registros almacenados en el documento "Kardex"
4-Generar los querys(consultas) para cada una de las estadísticas que contenga el documento(Eficiencia, promedio, UC inscritas, etc.).

Empecemos con la asignación:

1- Modelar la base de datos.

El primer paso que debemos realizar es determinar las Entidades (Tablas):

Dado que el documento contiene información histórica del desempeño de un estudiante en la carrera se debe crear la tabla "Estudiante", para almacenar la información de las materias cursadas se debe crear una tabla llamada "Materia", adicional a esto, si se desea tener información de los profesores que dictaron la materia en un periodo dado y la escuela y la facultad a la cual pertenece la materia se pueden crear tablas llamadas "Profesor", "Escuela" y "Facultad".
Para cada entidad se definirán atributos los cuales son características especificas que tiene una entidad para poder identificarla o describirla. Cada entidad deberá tener un único atributo denominado clave principal que permitirá identificar de forma univoca a cada registro de la tabla.

En la siguiente imagen se mostrara las entidades "Estudiante" y "Materia" y sus atributos. Destacando la clave principal de la entidad con su nombre subrayado.

Entidad Estudiante

Entidad Materia
El segundo paso es determinar la relación entre las tablas (Entidades).
En este caso, la relación entre la tabla "Estudiante" y "Materia" sera una tabla, que yo llamare, "Cursa" que contendrá sus atributos, que serán los datos proporcionados por el documentos Kardex (nota, estado, sección, semestre cursado) ,ademas de las claves primarias de las entidades asociadas a ella.

Tabla "Cursa" la cual establece una relación entre las tablas "Estudiante" y "Materia"
El siguiente paso para realizar la asignación consiste en crear un diagrama relacional a partir de este modelo E-R:


Como podrán notar, ademas de las tablas "Estudiante", "Cursa" y "Materia", cree tablas y relaciones adicionales para obtener mas información acerca de ese estudiante. La tabla "Profesor" y su relación con la tabla "Materia" a través de la tabla "Dicta" y tablas llamadas "Pertenece_M_E" el cual contiene la relación de la materia pertenece a tal "Escuela" y la escuela a tal facultad.

2-Creación de la Base de Datos (DDL) en la herramienta Postgresql

Consulta para crear tabla “estudiante”:

CREATE TABLE estudiante ( id_estudiante integer NOT NULL, ci_estudiante character varying(15),nombre character varying(15), apellido character varying(15), correo character varying(50), CONSTRAINT "Estudiante_pkey" PRIMARY KEY (id_estudiante));

Consulta para crear tabla “materia”:

CREATE TABLE materia( codigo_materia integer NOT NULL, nombre_materia character varying(100), tipo character varying(100), semestre character varying(15), creditos integer, CONSTRAINT "Materia_pkey" PRIMARY KEY (codigo_materia));

Consulta para crear tabla “cursa”:

CREATE TABLE cursa ( id_cursa integer NOT NULL, id_estudiante integer, codigo_materia integer, estado character varying(15), nota integer, seccion character varying(15), semestre character varying(15), CONSTRAINT cursa_pkey PRIMARY KEY (id_cursa), CONSTRAINT cursa_codigo_materia_fkey FOREIGN KEY (codigo_materia);

Se pueden ver las consultas para las demás tablas en el enlace adjunto al final de la entrada.

3-Manipulación de la Base de Datos (DML) generando un INSERT para cada uno de los registros almacenados en el documento "Kardex".


Ejemplo de inserción en la tabla 'materia':

INSERT INTO materia(codigo_materia, nombre_materia, tipo, semestre, creditos) VALUES (8206, 'Matematica I', 'Obligatoria', '1',6);

Ejemplo de inserción en la tabla 'estudiante':

INSERT INTO estudiante(id_estudiante, ci_estudiante, nombre, apellido, correo) VALUES (1, '20','Claudio' ,'Torrez', 'ct@gmail.com');

Ejemplo de inserción en la tabla 'cursa':

INSERT INTO cursa(id_cursa, id_estudiante, codigo_materia, estado, nota, seccion, semestre) VALUES (1, 1, 8206,'Aprobada',12 ,'U11' ,'02-2008');

Se pueden ver las consultas de los demas registros de las tablas en el enlace adjunto al final de la entrada.


4-Generar los querys(consultas) para cada una de las estadísticas que contenga el documento(Eficiencia, promedio, UC inscritas, etc.).


Consulta para calcular las unidades inscritas:

select sum(m.creditos)
from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.nota <> 0;

Unidades Inscritas: 165.

Consulta para calcular las unidades aprobadas:

select sum(m.creditos) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada';

Unidades aprobadas: 155.

Consulta para calcular las unidades aprobadas por equivalencia:

select sum(m.creditos) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado ='Equivalencia';:

Unidades aprobadas por equivalencia: 0.

Consulta para calcular el total de unidades aprobadas:

select sum(m.creditos) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada'
or c.estado ='Equivalencia' ;

Total Unidades aprobadas: 155.

Consulta para calcular el número de asignaturas inscritas:

select count(m.nombre_materia) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.nota <>0;

Número de asignaturas inscritas: 34.

Consulta para calcular el número de asignaturas aprobadas:

select count(m.nombre_materia) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada';

Número de asignaturas aprobadas: 32.

Consulta para calcular el número de asignaturas aprobadas por equivalencia:

select count(m.nombre_materia) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado = 'Equivalencia';

Número de asignaturas aprobadas por equivalencia: 0.

Consulta para calcular el número de asignaturas retiradas:

select count(m.nombre_materia) from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado='Retirada';

Número de asignaturas aprobadas por equivalencia: 0.

Consulta para calcular el promedio general de notas:

select cast(sum(c.nota) as real)/cast(count(c.nota) as real)
from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado <> 'Retirada' and c.codigo_materia <> 6536;

Promedio general de notas: 12,6364.

Consulta para calcular el promedio ponderado de notas:

select cast(a.suma1 as real)/cast(b.suma2 as real) as nota_ponderada
from (select sum(m.creditos * c.nota) as suma1 from cursa c, materia m
where c.codigo_materia = m.codigo_materia and c.estado <> 'Retirada' and c.codigo_materia <> 6536) a,
(select sum(m.creditos) as suma2 from cursa c, materia m where c.codigo_materia = m.codigo_materia and c.estado <> 'Retirada' and c.codigo_materia <> 6536) b;

Promedio ponderado de notas: 12,4074.

Consulta para calcular el promedio general de notas aprobadas:

select cast(sum(c.nota)/count(c.nota) as real) from cursa c, materia m where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada' and c.codigo_materia <> 6536;

Promedio general de notas aprobadas: 13.

Consulta para calcular el promedio ponderado de notas aprobadas:

select cast(a.suma1 as real)/cast(b.suma2 as real) as nota_ponderada_aprobada
from (select sum(m.creditos * c.nota) as suma1 from cursa c, materia m where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada' and c.codigo_materia <> 6536) a,
(select sum(m.creditos) as suma2 from cursa c, materia m where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada' and c.codigo_materia <> 6536) b;

Promedio ponderado de notas aprobadas: 12,7632.

Consulta para calcular la eficiencia:

select cast(b.count2 as real)/cast(a.count1 as real)
from (select count(m.nombre_materia) as count1 from cursa c, materia m where c.codigo_materia = m.codigo_materia and c.nota <>0 and c.codigo_materia <> 6536) a,
(select count(m.nombre_materia) as count2 from cursa c, materia m where c.codigo_materia = m.codigo_materia and c.estado = 'Aprobada' and c.codigo_materia <> 6536 ) b;

Eficiencia: 0,939394.


Y con esto concluye la asignacion.

Para consultar el Kardex de donde se sacaron los registros, el informe donde se encuentran todas las tablas y relaciones, las consultas utilizadas para la creacion de la base de datos y el backup de la base de datos hecha en postgres, se podran descargar del siguiente enlace. El archivo es un comprimido .zip.

Inteligencia de Negocio-UCV

Bienvenidos al blog dedicado a la materia "Inteligencia de Negocio" de la Facultad de Ciencias de la Universidad Central de Venezuela creado por el alumno Claudio Torrez. En este blog se podrá encontrar las asignaciones de la materia e investigaciones propias relacionadas al tópico de Inteligencia de Negocios.