sábado, 27 de septiembre de 2014

Modelo Dimensional del Kardex (realizado en la entrada 1)


En el siguiente post se presenta una propuesta de Modelo Dimensional a la actividad desarrollada en la primera entrada, que consistía en realizar un sistema automatizado, implementando una Base de datos en 3FN (tercera forma normal) del proceso que lleva a cabo el departamento de Control de Estudio de la Facultad de Ciencia en la UCV (específicamente la escuela de computación), el cual lleva un control académico de los estudiante de dicha casa de estudio en un documento denominado "Kardex".


Modelo Dimensional:



En el siguiente enlace se muestra el informe técnico donde se registro la solución de dicha actividad.

lunes, 22 de septiembre de 2014

Una introduccion al modelado dimensional


Esta entrada basada en el capitulo 5 y 6 del libro Kimball LifeCycle trata de una introducción al modelado dimensional, donde se abordan los conceptos de:


Modelado Dimensional: 

Es una técnica para modelar la información aplicada en el desarrollo de un DataWarehouse buscando modelar esa información con unos esquemas claros, fácilmente comprensibles por el usuario final y con buenos rendimientos en las consultas masivas. Para conseguirlo, es permitida la redundancia de datos y la consistencias no se garantiza a través de la estructura de la base de datos, sino dejando esta responsabilidad a los programas de carga de información.

La gran diferencia con el modelo entidad-relación  es que  el E/R busca ante todo eliminar redundancias lo que conlleva a descomponer la información en múltiples entidades y relaciones que se corresponderán con diferentes tablas en el diseño de la base de datos.


Datamarts: 

Es un pequeño almacén de datos, diseñado para una unidad de negocio. Se refiere a una vista del DataWarehouse orientada sólo a un aspecto de la organización, contiene mucha menos cantidad de datos que el Datawarehouse.


Tabla de Hechos: 

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.


Dimensión:

Es un conjunto de atributos que definen características de una entidad, ofreciendo descripciones textuales con una clave única que corresponde con uno de los componentes de la tabla de hechos.
Los atributos de la dimensión surgen del sistema operacional y son los más relevantes para el análisis de los datos.


Granularidad: 


Es el nivel de detalle capturado en el Datawarehouse. Un grano se puede ver como una fila única en una tabla de hecho, por tanto a mayor nivel de granularidad se tienen menos detalles de los datos y viceversa.



Dimensiones Conformadas:

Son dimensiones que tienen exactamente el mismo conjunto de claves primarias y el mismo número de registros. Dos dimensiones conformadas pueden ser combinadas en una simple dimensión creando la unión de sus atributos.

Dimensión Basura:

Conjunto de indicadores y banderas que pueden tomar valores discretos dentro de un rango muy pequeño.



Dimensión Degenerada:

Es una dimensión que está representada en otras dimensiones ya que sus atributos están definidos en las otras dimensiones, entonces al no poseer atributos y sólo tener clave primaria, la misma es absorbida por la tabla de hechos..

martes, 8 de julio de 2014

Actividad 2 - Evaluación Exploratoria De Sistemas En Las Organizaciones

A continuación se presenta una evaluación realizada a dos organizaciones comerciales, en las cuales se busca comprender la manera en como llevan a cabo sus procesos de negocios, si hacen uso de la tecnología para mejorar su productividad o si tienen algún sistema de información que les pueda servir al momento de obtener respuestas y/o estadísticas en ciertos aspectos relacionados a su actividad comercial que les pueda dar apoyo en la toma de decisiones.

En el siguiente enlace puede ver el informe de esta actividad.


domingo, 22 de junio de 2014

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

            En esta primera entrada se desarrollara el modelado, construcción y la manipulación de una base de datos, la cual está basada en una de las actividades realizadas por la unidad de Control de Estudios de la facultad de ciencias de la UCV, la cual maneja una serie de datos que permiten llevar un control de estudiantes de dicha facultad, en esta actividad en particular construiremos una base de datos que reflejara la información de un documento llamado "Kardex" donde se almacena de manera organizada información acerca de las materias cursadas por un alumno en los distintos periodos académicos, notas definitivas, cantidad de créditos, sección, así como aspectos que ayudan a medir el desempeño del alumno tales como la eficiencia, el promedio general y el promedio ponderado.

             El objetivo que se busca alcanzar con la realización de esta actividad es el de reflejar la información estudiantil del Kardex de forma automatizada a partir de una base de datos en 3FN (tercera forma normal).



  •            En primer lugar se realizara el  Modelo de base de datos  (esquema relacional, es decir un diagrama relacional).





  •          El segundo paso será la Creación De La Base De Datos (DDL). En postgres, todas las tablas y relaciones creadas en el paso uno (01), deben ser implementadas.


         Por ejemplo la tabla materia se creara de la siguiente manera:

CREATE TYPE tipo_materia AS ENUM ('obligatoria','electiva','complementaria','laboratorio');
CREATE TABLE materias (
 id_materia int PRIMARY KEY NOT NULL,
 nombre VARCHAR(30),
 codigo VARCHAR(30),
 creditos INT,
 tipo_materia tipo_materia
 );

          Se puede apreciar que previamente se crea un tipo de dato para validar que al momento de insertar los registros en la tabla "materias" el tipo de materia solo pueda ser:
     - obligatoria,
     - electiva,
     - complementaria,
     - laboratorio.


  •          El tercer paso será la Manipulación de bases de datos, donde se debe generar todos los INSERT de cada uno de mis registros del Kardex.


        Por ejemplo los registros tabla materia se insertaran de la siguiente manera:

INSERT INTO materias VALUES(1,'MATEMATICAS DISCRETAS I','6106',4,'obligatoria');
INSERT INTO materias VALUES(2,'ALGORITMO','8542',6,'obligatoria');
INSERT INTO materias VALUES(3,'MATEMATICAS I','6454',4,'obligatoria');
...

  •         El ultimo paso sera el de realizar todos los querys tanto para el listado de todas las materias por cada semestre cursado,  así como también los querys que generen cada una de las estadísticas que este contiene: Eficiencia, promedio, promedio ponderado, UC inscritas, etc...


         Por ejemplo para el calculo de los Créditos Aprobados realice la siguiente vista:

create or replace view v_creditos as
select sum(m.creditos)
from materias m, kardex k
where (k.id_materia=m.id_materia) and k.nota>9;

         y para calcular la eficiencia realice un procedimiento:
CREATE OR REPLACE FUNCTION calcular_eficiencia() RETURNS float AS $$
DECLARE
  curse int; vi int; total float; porcentaje float;
BEGIN
  SELECT count(id_kardex)INTO vi FROM kardex;
  SELECT count(id_kardex)INTO curse FROM kardex WHERE nota>9;
  total=curse*100/vi;
  porcentaje=total/100;
  RETURN(porcentaje);
END;
$$ LANGUAGE plpgsql;


          Finalmente para consultar el script donde se encuentran todas las tablas y relaciones, las consultas utilizadas para la creación de la base de datos y el backup de la base de datos (en Postgres), pueden acceder al siguiente enlace

       Como entregable adicional, se pidió elaborar un registro que señale el  tiempo de dedicación por actividades realizadas durante la actividad:

Actividad Realizada

Tiempo total
Analisis y Modelado de base de datos


1h

Construir DDL
45min

DML (Insert)

2h
DML (Query)
2h

Entrada en el Blog
2h