PDF - BDC Fusionado-Comprimido
PDF - BDC Fusionado-Comprimido
PDF - BDC Fusionado-Comprimido
Durante años las empresas han generado información para la gestión en sus base de
datos operativas realizando las transacciones de la actividad diaria de la empresa
(finanzas, ventas, personal, sueldos, etc.) y acumulando una gran cantidad de información
que se pueden analizar para conocer tendencias del negocio y tomar decisiones.
Sobre las base de datos operativa se pueden ejecutar reportes
● OPERATIVOS: Información para la Gestión diaria de la empresa, altas y bajas de
personal, facturas, ventas del día, etc.
● ANALITICOS: Gestión de la información para conocer el negocio. Ventas mes a
mes de los últimos 5 años. Productos más vendidos en los últimos 3 años.
Los reportes analíticos, en las bases de datos operativas, cada vez son más complejos a
desarrollar y lentos al ejecutarse.
Los sistemas “tradicionales” de información sobre base de datos operativas tienen un
diseño que no es el que se necesita para el análisis de datos y la toma de decisiones.
Por tal motivo surge la tecnología “BI - Business Intelligence - Inteligencia de negocio”,
basada en:
● Base de Datos Corporativa, para la toma de decisiones y análisis/inteligencia del
negocio.
● Cubos de información con una visión global única del conjunto de datos de la
empresa.
● Reportes ANALITICOS (cuadros y gráficos).
CLIENTE: UNIVERSIDAD
APLICACIÓN: “GESTIÓN ACADÉMICA”
Soluciones BI para:
Observar ¿qué está ocurriendo?
Comprender ¿por qué ocurre?
Predecir ¿qué ocurriría si ...?
Colaborar ¿qué debería hacer el equipo?
Decidir ¿qué camino se debe seguir?
Componentes BI:
● Fuente de Informacion
● Almacén de Datos - Base Datos Corporativas
○ DWH-DataWareHouse
● Carga/Integración de Datos - ETL
○ ETL-Extract, Transform and Load
● Cubos de Información - OLAP
● Reportes Analticiós (Cuadros Gráficos)
● Tablero/Cuadro de Mando
Transacciones Análisis
Normalizado, optimizado Des-normalizado,
para recopilar, optimizado para análisis
almacenar, actualizar o y obtención de grandes
eliminar datos volúmenes de datos
rápidamente Base de datos
Base de datos relacional multidimensional
(diversas formas de
dividir los datos)
-Base de Datos centralizada que integra información desde distintas fuentes, integrando los
datos
-La cantidad de transacciones es baja, pero contiene consultas complejas que involucran
muchos datos donde se espera un tiempo de respuesta rápido.
- Modelo de datos orientado a consultas. Los datos están desnormalizados para realizar
consultas de alto rendimiento. Bl transforma los datos desde uno o varios sistemas
operacionales normalizados e independientes a un único sistema desnormalizado con
datos integrados en cubos de información.
En las tablas del DWH se almacenan las dimensiones y las métricas (medidas, hechos)
para el análisis, con una columna por cada dimensión y una columna por cada métrica o
hecho a analizar.
Las tablas del modelo dimensional del DWH se asocian a un cubo OLAP.
Las dimensiones de los cubos se corresponden con las columnas de dimensiones de la
tabla de hechos (fact) y la métrica/medida a analizar se corresponde a las columnas de
medidas de la tabla de hechos.
El modelo dimensional es una adaptación del modelo relacional para el almacén de
datos de BI, orientado a consultas para que los datos puedan ser extraídos fácilmente
usando Cubos/Consultas OLAP con el objetivo de presentar la información de una
manera estándar, sencilla y sobre todo intuitiva para el usuario.
El modelo dimensional es creado en el año 1996 por Ralph Kimball, para el diseño de
almacenes de datos (Data Warehouse), partiendo de la visión multidimensional que
los usuarios tienen de los datos empresariales al analizar sus datos.
Modelo Dimensional
Modelo DIMENSIONAL
- Se construye como un cubo de tres o más dimensiones pudiendo acceder a la
información a través de una combinación de dimensiones.
- Está compuesto por una tabla llamada "de hechos" (fact) que contiene las medidas a
analizar y un conjunto de pequeñas tablas llamadas "dimensiones“.
Por ejemplo
Dimensiones: año, mes, país, departamento
Hechos: ventas, compras,..
- Cada dimensión contiene una clave primaria que se "conecta"/relaciona con la tabla
de hechos manteniendo una relación de 1 a muchos.
- Estas claves son numéricas y no compuestas.
Modelo Dimensional: Estrella
Modelo Estrella (Star).
Es un modelo de datos que tiene una tabla de hechos que contiene los datos para el
análisis, rodeada de las tablas de dimensiones.
Las tablas de dimensiones tendrán siempre una clave primaria simple
Este esquema es ideal por su simplicidad y velocidad para ser usado en análisis
multidimensionales. Permite acceder tanto a datos agregados como de detalle.
● Una BD dimensional está compuesta por varias estrellas en las que las dimensiones
y hechos pueden ser compartidos
● A cada estrella se conoce como Data Mart
Es una estructura más compleja que el esquema en estrella. Se usa cuando alguna de las
dimensiones se implementa con más de una tabla de datos.
Complemento
BASE DE DATOS OPERATIVA
● Procesamiento de Transacciones en Línea OLTP
OnLine Transaction Processing
● MODELO ENTIDAD-RELACIÓN
○ Entidades
○ Atributos
○ Relaciones
● Procesamiento analítico en línea OLAP
OnLine Analytical Processing
● MODELO DIMENSIONAL
○ Hechos
○ Dimensiones
○ Medidas
Modelado Dimensional
- Importe - Tiempo
- Costo - Sucursal
- Unidades - Vendedor
- Cliente
- Importe Total
- Producto
- Ganancia
- Promedio
b) Tablas ODS o Staging Área (capa intermedia entre las tablas fuente y el
DataWarehouse)
Para transformar los datos al formato y estructura necesaria para el modelo desnormalizado
del DataWarehouse y sus Datamarts.
Por ejemplo la tabla ODS_D_Cliente donde se cargan las transformaciones necesarias
para el Cliente
c) Tablas DataWarehouse
Tablas Dimensiones comunes DT TIEMPO
Tablas Hechos HT_VENTAS
Datamarts (estrella o copo de nieve) se forma a partir de un hecho y sus dimensiones.
DataWarehouse "UNIVERSIDAD"
DataWarehouse "UNIVERSIDAD" compuesto por dos DataMart (estrellas)
"ESTUDIANTES INSCRIPTOS" para el análisis de Permanencia/Abandono Inscriptos por
Semestre
"ESTUDIANTES EGRESADOS" para el análisis de Egresados que comparten las
Dimensiones: Carrera, Generación, Estudiante y Tiempo
Requerimiento: Reporte analitico
HECHOS
¿Qué se analiza?
Analiza: Evolución de Permanencia/Abandono de Estudiantes
¿Qué se mide?
Mide: Cantidad de Estudiantes Inscriptos cada semestre.
DIMENSIONES
¿Cómo se agrupa la información?
● Carrera
● Generación
● Semestre
Hecho y Dimensiones
Para nuestro análisis vamos a diseñar un modelo dimensional con esquema de estrella,
donde hay una tabla principal del hecho: Inscriptos y un conjunto de tablas de Dimensiones:
Carrera, Generación, Semestre, Tiempo y Estudiante, que se relacionan con la tabla de
Hechos-Inscriptos.
Restricción (Constraint)
PRIMARY KEY por la columna SK_carrera
Tabla Dimension DT_CARRERA
Comando SQL para crear la Tabla DT_Carrera
CREATE TABLE DT_CARRERA(
SK_CARRERA INTEGER NOT NULL PRIMARY KEY,
CARRERA_PK VARCHAR2(50) NOT NULL,
CARRERA_DESC VARCHAR2(100) NOT NULL
)
TABLESPACE "USERS" ;
DT_ESTUDIANTE y DT_TIEMPO
DIMENSIÓN ESTUDIANTE
Tabla DT_Estudiante
Columna Clave subrogada
SK_Estudiante INTEGER NOT NULL
Clave de negocio
Estudiante_PK VARCHAR2(50) NOT NULL
Restricción (Constraint)
PRIMARY KEY por columna SK_estudiante
DIMENSIÓN TIEMPO
Tabla DT_Tiempo
Columna Clave subrogada SK_Tiempo INTEGER NOT NULL
Clave de negocio FECHA DATE NOT NULL
Restricción (Constraint)
PRIMARY KEY por columna SK_tiempo
Tablas de Hechos: Son las que almacena las Medidas del negocio, las cuales dan sentido al
análisis dimensional. Las principales características de las tablas de hechos son:
● Almacenan más del 97% de la información del Data Warehouse.
● El Crecimiento es constante y dependerá de las estrategias de carga de datos.
● La información no es actualizable, una vez insertada esta debería ser de solo
lectura.
● No deben permitir valores nulos.
Tabla Hecho HT_INSCRIPTOS
Tabla HT_INSCRIPTOS - Almacena las medidas del negocio a analizar
COMANDO SQL - CREATE TABLE HT_INSCRIPTOS
2) DIMENSIONES DESNORMALIZADAS
En el esquema de estrella, las jerarquías de la dimensión no se registran en tablas
adicionales.
Por ejemplo la dimensión ESTUDIANTE podría incluir la jerarquía PAIS con el NOMBRE del
país.
En este caso se incluiría una columna PAIS en la tabla DT ESTUDIANTE y no se crearía
una tabla con la lista de PAISES.
3) HECHO CON CLAVE PRIMARIA
Las columnas de la tabla de HECHO
Claves subrogadas SK de dimensiones
Medidas del hecho,
son numéricas, lo que hace que la tabla hecho se caracterice por :
-Tamaño de cada registro: Pequeño
-Cantidad de registros: Grande
La clave PRIMARIA PK del HECHO es compuesta por claves Subrogadas SK_dimension
que se relacionan con las tablas de dimensiones.
4) ORGANIZACIÓN DE LA DE CARGA DEL HECHO
En el DWH Universidad tenemos:
Forma de carga:
Instantánea, o sea una "fotografía del momento"
Momento/periodo a cargar
DataMart "ESTUDIANTES INSCRIPTOS"
Semestral
DataMart "ESTUDIANTES EGRESADOS"
Anual
ESQUEMA ESTRELLA
DIMENSIONES DESNORMALIZADAS
DIMENSIONES DESNORMALIZADAS - ESQUEMA DE ESTRELLA
La dimensión ESTUDIANTE incluye columna PAIS con
el NOMBRE del país, por ejemplo
PAIS
ARGENTINA
BRASIL
URUGUAY
DIMENSIONES DESNORMALIZADAS - ESQUEMA COPO DE NIEVE
Se crea la tabla DT_PAIS con la lista de referencia de todos los paises, por ejemplo
SK_PAIS PAIS
1 ARGENTINA
2 BRASIL
3 URUGUAY
La tabla DT_ESTUDIANTE se relaciona (FK) con la tabla DT_PAIS por la columna SK_PAIS
La Clave primaria PK en la tabla HECHO NO es obligatoria cuando no existe otra tabla que
se relacione/referencie a la PK de la tabla HECHO.
La clave PK de la tabla Hecho NO se usa en los join de las consultas del DWH, ni en los join
de los cubos, solo se usa para garantizar la integridad de datos.
RENDIMIENTO: CONSULTA o CARGA
El DWH tiene como requerimiento
Principal -Rendimiento optimo de las consultas
Secundario -Rendimiento de la carga. Secundario
Desventaja de crear PK en Hechos
En las cargas masivas, gran volumen de datos, el rendimiento de la carga se ve afectado
cuando existe PK en el hecho (90% del DWH son los hechos) porque se debe comprobar la
PK cada vez que se inserta un registro en el HECHO (para que cada Insert en la tabla
Hecho se hace un Insert en el índice que controla la
clave PK).
Si la tabla de hechos contiene miles de registros, NO hace la diferencia en la carga la PK ,
pero si la tabla de hechos contiene millones de registros, SI hace una gran diferencia.
Existen DWH que realizan el control unicidad/duplicidad de la tabla HECHO en el proceso
de carga de datos ETL y NO crean CLAVE PRIMARIA para la tabla de HECHO.
Para mejorar el rendimiento de la carga cuando se usa PK en el Hecho, se puede realizar
"inserciones particionadas" creando PARTICIONES (organización física de tabla y de
índices) de forma que los registros a cargar estén en una misma partición.
ORGANIZACIÓN DE LA CARGA
FORMA
Instantánea
Instantánea de un periodo/momento determinado, es una "fotografía del momento", donde
el momento es el período determinado, por ejemplo, los ESTUDIANTES EGRESADOS en
el año.
Incremental
Acumulación de instantáneas para mostrar la actividad de un proceso, por ejemplo
ESTUDIANTES EGRESADOS ACUMULADOS.
MOMENTO/PERIODO
Anual
Una carga al año
Semestral
Dos cargas en un año
Mensual
Seis cargas en un año
DWH UNIVERSIDAD
Forma de carga a usar:
Instantánea, o sea una "fotografía del momento"
Momento/periodo a cargar
DataMart "ESTUDIANTES INSCRIPTOS" Semestral
DataMart "ESTUDIANTES EGRESADOS" Anual
Almacén de Datos: ODS y DWH
ODS- Almacén de datos intermedio/temporal:
ODS - Operational Data Store
Se cargan los datos desde las fuentes de información: Datos Operacionales y/o Planillas.
Es temporal: se borra cada vez que se hace una nueva carga.
● Orientado a Temas:
Los datos son organizados por temas para facilitar el entendimiento a los usuarios.
Todos los datos relativos a una misma "entidad" quedarán en una tabla.
● Integrado:
Debido a que la información procede desde distintos sistemas, es tarea del DW
integrar las diversas fuentes y normalizar los datos.
● Histórico:
Los cambios en los datos relevantes deben quedar registrados, para luego poder
consultarlos en diversos momentos en el tiempo.
● No Volátil:
Una vez introducida la información, debe quedar almacenada y disponible en
formato solo lectura.
● Tabla de Hechos:
Almacena los indicadores del negocio (datos numéricos), tanto básicos como
elementos calculados.
● Tabla de Dimensiones:
Almacena los datos descriptivos, por lo general son tablas con un porcentaje muy
bajo de filas en relación a las tablas de Hechos, pero pueden contener muchas más
columnas.
La carga a ODS se realiza con determinada frecuencia: anual, mensual, semanal o diaria,
según las necesidades del cliente.
Las herramientas de BI, para visualizar los reportes analítico realizan las consultas al
DWH-Almacén de De Corporativo a través de los cubos de información OLAP
Proceso ETL
El proceso ETL (Extract, Transform and Load = «extraer, transformar y cargar») se realiza
en tres fases
Fase 1-Extracción desde la Fuente de información a ODS
Fase 2-Transformación en ODS
Fase 3-Carga a DWH desde ODS
El Proceso ETL permite cargar datos desde múltiples fuentes, reformatearlos,
depurarlos/limpiarlos para hacer la carga al DWH. El proceso ETL es clave para lograr que
los datos extraídos en forma asincrónica desde orígenes heterogéneos se integren en el
entorno homogéneo del DWH.
Los datos desde las fuentes se cargan directamente en las tablas FUENTES del ODS
ETL-Fase 2 -Transformación a ODS
En la fase de transformación del ETL se aplican las reglas de negocio o funciones sobre los
datos extraídos para convertirlos en los datos que serán cargados al DWH
Ejemplos de transformaciones:
- Recodificar códigos
Por ejemplo, si la fuente almacena "H" para Hombre y "M" para Mujer y la dimensión
en DWH tiene F para Femenino y M para Masculino
- Obtener nuevos valores aplicando función , por ejemplo una función para obtener el
semestre de inscripción del estudiante
PREDICADO DISTINCT
Para listar los valores únicos, sin repetidos, de la columna Documento se usa el predicado
DISTINCT que se escribe después del SELECT y antes de las lista de columnas
SELECT DISTINCT columna FROM tabla;
Consulta los valores únicos, sin repetidos, de la columna DOCUMENTO de la tabla
H_Inscriptos
SELECT DISTINCT documento FROM H_Inscriptos;
SQL - Subconsulta con EXISTS
En la fase de EXTRACCION se debe controlar/Verificar consistencia de datos/valores
Controlar que los valores de cada dimensión en la tabla de Hecho exista en la tabla de la
Dimension correspondiente cargadas desde la hoja DIM_dimension
Por ejemplo los valores cargados en la columna CARRERA de la tabla H_INSCRIPTOS
deben existir en la tabla de la dimension D_CARRERA.
Para controlar/Verificar consistencia de datos vamos a construir Consulta SQL que
contiene
-Subconsulta
-Condición EXISTS
SUBCONSULTA:
Es un comando SELECT dentro de otro SELECT (consulta principal) en la cláusula WHERE
o en el FROM de la consulta principal.
Cuando se ejecuta una consulta con subconsulta, la subconsulta se ejecuta para cada
registro de la consulta principal.
Causa b - Dimensión mal escrita en Hecho, por ejemplo: Leche en lugar de Lechería
Solución b: Modificar archivo fuentes xls Hoja Hecho
Cargar nuevamente el hecho modificado
- Borrar tabla de HECHO
- Importar datos nuevamente a la tabla de
Caso 2- Existe un valor de la Dimension sin acento que existe en la tabla dimensión con
acento
Ejemplo: Lecheria en lugar de Lechería
Para asegurar calidad de los datos y evitar inconsistencias en las fuentes se debe acordar
con el Cliente
- Estandarización de las fuentes. Se usa programación de macros de control de datos
en las planillas xls para evitar inconsistencias
- Cumplimiento de las reglas de negocio en los archivos fuentes.
Complemento
SQL - Construir GENERADOR de comando DESCRIBE
El Catalogo/Diccionario de Datos es el conjunto de tablas que contienen los METADATOS
(información) de los objetos de la Base de Datos
TABLA Diccionario CONTIENE Informacion de
all_users Usuarios de la BD
user_tables Tablas del usuario
all_tables Tablas de la BD
user_indexes Índices del usuario
all_indexes Índices de la BD
user_constraints Restricciones del usuario
all_constraints Restricciones de la BD
Área personal Mis cursos 2021 2021-2S Licenciatura en Tecnologías de la Información Base de datos
corporativas__2021-2S - SEGUNDO SEMESTRE Grupo FBA Semana 1 Tema 1 - Cuestionario
Pregunta 1 Correcta Puntúa 1,00 sobre 1,00
BDC-T-EM-008
Seleccione Verdadero o Falso para las siguientes afirmaciones sobre modelo dimensional
El modelo dimensional es una adaptación del modelo relacional para el almacén de datos VERDADERO
de BI, orientado a consultas
FALSO
El modelo dimensional NO usa Cubos/Consultas OLAP
En el Modelo dimensional los datos están desnormalizados para realizar consultas de alto VERDADERO
rendimiento
Modelo DIMENSIONAL compuesto por una tabla “de hechos” (fact) y un conjunto de tablas VERDADERO
llamadas “dimensiones“
Respuesta correcta
La respuesta correcta es: El modelo dimensional es una adaptación del modelo relacional para el almacén
de datos de BI, orientado a consultas → VERDADERO, El modelo dimensional NO usa Cubos/Consultas
OLAP → FALSO, En el Modelo dimensional los datos están desnormalizados para realizar consultas de alto
rendimiento → VERDADERO, Modelo DIMENSIONAL compuesto por una tabla “de hechos” (fact) y un
conjunto de tablas llamadas “dimensiones“ → VERDADERO
Pregunta 2 Correcta Puntúa 1,00 sobre 1,00
BDC-T-EM-005
Seleccione la respuesta que corresponde
Herramienta de BI Pentaho
Respuesta correcta
La respuesta correcta es: Herramienta de BI → Pentaho, Procesamiento analítico en línea → OLAP, Proceso
de Carga/Integración de Datos → ETL, Almacén de Datos – Base Datos Corporativa → DWH-
DataWareHouse, Procesamiento de Transacciones en Línea → OLTP
Pregunta 3 Correcta Puntúa 1,00 sobre 1,00
BDC-T-EM-007
Para cada figura seleccione el Tipo de modelo dimensional que corresponde
Figura A
Figura B
Figura C
Modelo Estrella (Star) Figura A
Respuesta correcta
La respuesta correcta es: Modelo Estrella (Star) → Figura A, Modelo 3FN → Figura C, Modelo Copo de Nieve
(Snowflake) → Figura B
BDC-T-EM-004
Seleccione Verdadero o Falso
VERDADERO
BI -Business Intelligence - Inteligencia de negocio usa Cubos de información
Base de Datos Corporativa se usa para la toma decisiones y análisis/inteligencia del VERDADERO
negocio
VERDADERO
Modelo Dimensional se construye con dimensiones que agrupan los hechos a analizar
FALSO
Base de datos corporativa tiene un Modelo de datos orientado a transacciones
Respuesta correcta
La respuesta correcta es: BI -Business Intelligence - Inteligencia de negocio usa Cubos de información →
VERDADERO, Base de Datos Corporativa se usa para la toma decisiones y análisis/inteligencia del negocio
→ VERDADERO, Modelo Dimensional se construye con dimensiones que agrupan los hechos a analizar →
VERDADERO, Base de datos corporativa tiene un Modelo de datos orientado a transacciones → FALSO
Pregunta 5 Correcta Puntúa 1,00 sobre 1,00
BDC-T-EM-006
Seleccione, para cada característica, cual corresponde a OLTP y cual a OLAP
BD Normalizada OLTP
Respuesta correcta
La respuesta correcta es: Predomina la Consulta → OLAP, BD Normalizada → OLTP, Dato Histórico → OLAP,
Estructura Multidimensional → OLAP, Actividad operativa → OLTP
◄ Tema 3 - Complemento
Ir a...
Tema 2 - Cuestionario ►
SANTIAGO DUARTE COR
Área personal Mis cursos 2021 2021-2S Licenciatura en Tecnologías de la Información Base de datos
corporativas__2021-2S - SEGUNDO SEMESTRE Grupo FBA Semana 1 Tema 2 - Cuestionario
Seleccione una:
a. Que se analiza? Como se mide? Cuantos grupos de información? Que contiene cada Grupo?
b. Cómo se analiza? Que se mide? Cuantos grupos de información? Que contiene cada Grupo?
c. Que se analiza? Que se mide? Como se agrupa la información? Que contiene cada Grupo?
Respuesta correcta
La respuesta correcta es: Que se analiza? Que se mide? Como se agrupa la información? Que contiene
cada Grupo?
Pregunta 2 Correcta Puntúa 1,00 sobre 1,00
Seleccione una:
Verdadero
Falso
La clave subrogada (SK) es el identificador INTERNO que se usa para identificar de forma única los
registros de la dimensión.
Seleccione una:
Verdadero
Falso
Seleccione una:
Verdadero
Falso
La tabla dimensión está conformada por 4 campos, y tiene un campo PK y otro FK.
Seleccione una:
Verdadero
Falso
La tabla HECHOS está conformada por una columna por cada dimensión y otra por cada métrica.
Seleccione una:
Verdadero
Falso
◄ Tema 1 - Cuestionario
Ir a...
Tarea Obligatoria ►
Tema 4 - Transformaciones
Transformación de Dimensión en ODS
Tecnaldgica
partir de las
TRANSFORMACIONES a las
EXTRACCION
H_INSCRIPTO
DCARRERA
D_GENERACION
D SEMESTRE
D ESTUDIANTE
Tablas ODS
TRANSFORMACION
ODS H_INSCRIPTO
ODS_D CARRERA
ODS D GENERACION
ODS D_SEMESTRE
ODS D_ESTUDIANTE
Fuente
Inscriptos.xls
Hoja DIM_Carrera
Hoja DIM_Generacion
Hoja DIM_Semestre
Select
Para cada DIMENSION se carga desde Tabla Fuente Para la Dimensión ESTUDIANTE, se carga
ODS D ESTUDIANTE
De Tabla Fuente
a columna DIMENSION_PK
De Columna
De Columna DOCUMENTO
DESCRIPCION ESTUDIANTE_PK
a columna
a Columna DIMENSION_DESC
a columna CARRERA_PK
Columna de DESCRIPCION
lave
De Columna CARRERA
De Columna DESCRIPCION
DOCUMENTO ESTUDIANTE PK
CARRERA
DESCRPOON
CARRERAPK
CARRERA DESC
DIMENSIONES-Transformaciones
-Normalizar los valores de la Clave de Negocio pasando a Mayús cula (UPPER) los valores.
Tabla Columna
D_dimension
H_hecho
dimension
dimension, dimension, .
-Eliminar posibles espacios en blanco al inicio y fin de los textos con la función TRIM(columna)
ODS_H_INSCRIPTOS
CARRERA
GENERACION
SEMESTRE
SEMESTRE FECHA
0OCUMENTO
CARRERA
GENERACION
SEMESTRE
SEMESTRE FECHA
DOCUMENTO
а Tabla
NUMERO (INTEGER)
HECHOS-Transformaciones
Por ejemplo dimensión CARRERA con el nombre de la carrera escrita con y sin acento
LECHERÍA
MECATRÓNICA
con acento
con acento
LECHERIA LECHERÍA
MECATRÓNICA
-Eliminar espacios en blanco al inicio y fin de los textos con la función TRIM(texto)
MECATRONICA a
La tabla DT_tiempo se crea en la Fase 3 del ETL- carga DWH, con clave SK numérico
que NO es autoincremental
LTRIM(texto)
TRIM(texto)
EJEMPLO:
FROM DUAL
UNION
1 A > -B
A >-B
FROM DUAL
3 A > -B
UNION 4
CA >-B
FROM DUAL
UNION
FROM DUAL
UTEC
veridad Telgia
TRANSFORMACION de DIMENSIONES
tabla ODS_D_CARRERA
( CARRERA PK
CARRERA DESC
)3;
TRIM
( CARRERA PK,
CARRERA DESC)
VARCHAR2(50) UNIQUE,
constraint_type clave,
column_name columna
user_constraints
user_cons_columns
Lecheria Licenciatura en Leche y Productos Lácteos LECHERIA Licenciatura en Leche y Productos Lácteca
niversidad Te gia
Para cargar datos a las tablas de dimensiones ODS Lenguaje de programación en las
diferentes BD
ODS D_Dimension
ORACLE
PUSa Transact sa
MysQ
stored procedures
que contiene:
-Estructuras de programación (datos y control) “clásicas" de los lenguajes de 3GL como C++, Java,
PHP,etc
-Extensión procedural SQL que permite ejecutar comandos SQLen los programas PL/SQL interactuando
directamente con la BD
IS
comando 1;
comando 2;
idad ligi
Ejemplo de programa/procedimiento
IS
BEGIN
NULL;
Hoja de Trabajo
Generador de Consultas
IS
BEGIN
MULL:
I EJEMPLO d enIVERSIDAD~1
Conexiones
Procedinientos
1 EJEMPLO
Q Buscar
IS
BEGIN
ULLI
se RECOMIENDA
1 EEMPLO
System
UNIVERSDAD
Tablas (Fitrado)
Vistas
ndices
Paquetes
QBuscar
IS
Procedimiento UNIVERSIDAD.EJEMPLO@UNIVERSIDAD
Procedimientos
Editar.
Exportar.
Informes de Diccionario de
Infrermas de Modaiatr do
Depurar.
Compilar Cts-FB
UTEC
ddligica
IS
END pruebaError
Salida de Script
Para ver error de compilación del programa PLSQL al ejecutar el CREATE OR REPLACE PROCEDURE
Se ejecuta el comando
ERRORS
SHOW ERRORS;
Salida de Script
*BA Tarea terminada en 0,038 segundos
5/1 PLS-00103: Se ha encontrado el sinbolo "END" cuando se esperaba uno de los siguientes:
Numero de la línea con error 5/1 indica que el numero de la línea con error es 5
Importante: En el mensaje de error el numero de la línea indica el lugar de referencia para buscar el
Por ejemplo en este caso el mensaje indica la línea 5 y el problema esta en la línea 4
el procedimiento
DESDE SQLDeveloper
EXECUTE P_ODS_D_CARRERA;
Iniciar con
CON despues
ODS
Salida de Scrpt
P_ODS D_CARRERA
Crear Procedimiento
IS
CARRERA PK,
CARRERA DESC
BEGIN
Consultar programas/procedimientos
almacenados en la BD
SQL I Tode
SELECT UPPER(TRIM(CARRERA)),
DESCRIPCION
1P ODS_D_CARRERA
edd a
31/07/15
B.
31/07/2015
31/07/2015
03/03/2013
51 31/07/15 378923
10/07/2013
03/03/2013
MECATRÓNICA
MECATRÓNICA
-Unificar codificación de la dimensión CARRERA con el nombre de la carrera con y sin acento
LECHERÍA
MECATRÓNICA
ENERGÍA
LECHERIA a
MECATRONICA a
ENERGIA a
-Transformar la columna semestre_fecha de tipo DATE a NUMERO para que contenga el numero
yyyymmdd
(añomesdia).
La columna semestre_fecha cuando se cargue a a DWH va a estar relacionada con la dimensión TIEMPO.
La tabla para la dimensión tiempo se va a crear en la Fase 3 del ETL al cargar el DWH.
dT
yyyymmdd (añomesdia)
LECHERÍA
MECATRÓNICA
ENERGÍA
LECHERIA a
TO CHAR(fecha,formato) Convierte a TEXTO una fecha
TO NUMBER(texto)
La transformacion es:
MECATRONICA a
TO NUMBER
(TO_CHAR(SEMESTRE_FECHA,'YYYYMMDD'))
el comando CASE.
correspondiente EJEMPLO
se ejecuta el "then"
CASE - SINTAXIS
CASE
THEN "Sigio 21
*Siglo 20 ELSE
D Siglo
FRCH DUAL :
esultado de la Consulta
CASE
END nombre_columna
UTEC SQL -
CASE
H_INSCRIPTOS
ODS_H_INSCRIPTOS
de
CASE
WHEN UPPER(TRIM(CARRERA))
WHEN UPPER(TRIM(CARRERA))
WHEN UPPER(TRIM(CARRERA))
ELSE UPPER(TRIM(CARRERA))
"LECHERÍA'
"MECATRÓNICA
"ENERGÍA
= 'LECHERIA THEN
= 'MECATRONICA' THEN
= 'ENERGIA THEN
END CARRERA
SELECT
CASE
UPPER(TRI M(CARRERA)) = 'LECHERIA
UPPER(TRI M(CARRERA))
WHEN
ELSE
END CARRERA,
UPPER(TRIM(GENERACION)),
UPPER(TRIM(SEMESTRE)),
MECATRONICA
MECATRÓNICA
2013 20130710
20140305
3123456
UTEC
H_INS CRIPTOS
CREATE OR REPLACE PROCEDURE P ODS H_INSCRIPTOS
IS
BEGIN
* Comando IN SERT */
CARRERA VARCHAR2(20),
VARCHAR2(5),
VARCHAR2(5),
SEMESTRE_FECHA INTEGER,
VARCHAR2(20)
GENERACION
SEMESTRE
DOCUMENTO SELECT
CASE
ELSE UPPER(TRIM(CARRERA))
END CARRERA,
UPPER (TRIM(GENERACION)),
UPPER (TRIM(SEMESTRE)),
THEN 'ENERGÍA'
SEMESTRE_FECHA,
UPPER (TRIM(DOCUMENTO)
FROM H_INSCRIPTOS;
END P_ODS_H_INSCRIPTOS;
Salida de Script x
UTEC
H_INS CRIPTOS
IS
BEGIN
* Comando IN SERT */
CARRERA VARCHAR2(20),
VARCHAR2(5),
VARCHAR2(5),
SEMESTRE_FECHA INTEGER,
VARCHAR2(20)
GENERACION
SEMESTRE
DOCUMENTO SELECT
CASE
ELSE UPPER(TRIM(CARRERA))
END CARRERA,
UPPER (TRIM(GENERACION)),
UPPER (TRIM(SEMESTRE)),
THEN 'ENERGÍA'
SEMESTRE_FECHA,
UPPER (TRIM(DOCUMENTO)
FROM H_INSCRIPTOS;
END P_ODS_H_INSCRIPTOS;
Salida de Script x
UTEC
Síntesis
eidad
DIMENSIONES-Transformaciones
-Normalizar los valores de la Clave de Negocio pasando a Mayúscula (UPPER) los valores.
Tabla Columna
D_dimension
H_hecho
dimension
dimension, dimension, ...
-Eliminar posibles espacios en blanco al inicio y fin de los textos con la función TRIM(columna)
HECHOS-Transformaciones
-Eliminar espacios en blanco al inicio y fin de los textos con la función TRIM(texto)
se ejecuta el "else".
siguiente comando
nombre_procedimiento
IS CASE - SINTAXIS
BEGIN CASE
comando 1;
comando 2;
e caso 1
e caso 2
END nombre_columna
CASE de búsqueda
CASE simple
CASE de busqueda
SELECT
CASE
UPPER(TRIM(CARRERA))
THEN 'LECHERÍA
THEN 'MECATRÓNICA'
THEN 'ENERGÍA
ELSE
END CARRERA
FROM H_INSCRIPTOS;
CASE simple
SELECT
CASE UPPER(TRIM(CARRERA))
THEN 'LECHERÍA'
THEN 'MECATRÓNICA'
THEN 'ENERGÍA'
WHEN 'LECHERIA'
WHEN 'MECATRONICA
WHEN 'ENERGIA'
ELSE UPPER(TRIM(CARRERA))
END CARRERA
FROM H_INSCRIPTOS;
CASE de búsqueda
CASE simple
CASE de busqueda
SELECT
CASE
UPPER(TRIM(CARRERA))
THEN 'LECHERÍA
THEN 'MECATRÓNICA'
THEN 'ENERGÍA
ELSE
END CARRERA
FROM H_INSCRIPTOS;
CASE simple
SELECT
CASE UPPER(TRIM(CARRERA))
THEN 'LECHERÍA'
THEN 'MECATRÓNICA'
THEN 'ENERGÍA'
WHEN 'LECHERIA'
WHEN 'MECATRONICA
WHEN 'ENERGIA'
ELSE UPPER(TRIM(CARRERA))
END CARRERA
FROM H_INSCRIPTOS;
--Ejecutar Procedimiento
EXECUTE P_Var_Case;
的名◆
Hoja de Trabajo
2 EXECUTE P_Var_Case:
Generador de Consultas
Salida de Script x
Primera Quincena
--Ejecutar Procedimiento
EXECUTE P_Var_Case;
的名◆
Hoja de Trabajo
2 EXECUTE P_Var_Case:
Generador de Consultas
Salida de Script x
Primera Quincena
Ir en el Navegador a "Procedimientos"
eaUNIVERSIDAD
Tablas (Filtrado)
Vistas
Paquetes
Nombre: P_ODS_H_DNSCRIPTO
I 2,005_H_INSCRPTO
BEGIN
ULL:
END _ODS_H_INSCRIPTO:|
I P_ODS H_INSCRIPTO
Compilar
ENDF_ODS_K_XRSCRIPIOF
BEGIN
NULL:
END P_ODS_H_INSCRIPTO:|
H_INSCRIPTOS
ODS_H_INSCRIPTOS
de
CASE
WHEN UPPER(TRIM(CARRERA))
WHEN UPPER(TRIM(CARRERA))
= 'LECHERIA THEN
= 'MECATRONICA' THEN 'MECATRÓNICA'
ELSE UPPER(TRIM(CARRERA))
END CARRERA
SELECT
CASE
UPPER(TRI M(CARRERA))
WHEN
ELSE
END CARRERA,
UPPER(TRIM(GENERACION)),
UPPER(TRIM(SEMESTRE)),
Carrera
LECHERIA
MECATRÓNICA
MECATRÓNICA
MECATRÓNICA
2013 20140305 456789
H_INS CRIPTOS
IS
BEGIN
VARCHAR2(20),
VARCHAR2(5),
VARCHAR2(5),
SEMESTRE_FECHA INTEGER,
VARCHAR2(20)
/* Comando INSERT */
CARRERA
GENERACION
SEMESTRE
DOCUMENTO SELECT
CASE
ELSE UPPER(TRIM(CARRERA))
END CARRERA,
UPPER (TRIM(GENERACION)),
UPPER (TRIM(SEMESTRE)),
TO NUMBER (TO_CHAR(SEMESTRE_FECHA,'YYYYMMDD'))
THEN 'ENERGÍA'
SEMESTRE_FECHA,
UPPER (TRIM(DOCUMENTO))
FROM H_INSCRIPTOS;
END P_ODS_H_INSCRIPTOS;
Salida de Script x
iversidad Tecnalg
Ejecutar programa
Desde SQLDeveloper
Renstado de la Consuta
P_ODS_H_INSCRIPTOS;
puede ser:
PROGRAMA
2 15
FROM user_source
= 'P_ODS_D_CARRERA'
line
WHERE name
P ODS H_INSCRIPTOS;
CALL P ODS_H_INSCRIPTOS
ORDER BY
UTEC
Síntesis
idad Tealogia
DIMENSIONES-Transformaciones
-Normalizar los valores de la Clave de Negocio pasando a Mayúscula (UPPER) los valores.
Tabla Columna
D_dimension
H_hecho
dimension
dimension, dimension,..
-Eliminar posibles espacios en blanco al inicio y fin de los textos con la función TRIM(columna)
HECHOS-Transformaciones
-Eliminar espacios en blanco al inicio y fin de los textos con la función TRIM(texto)
siguiente comando
se ejecuta el "else".
nombre_procedimiento
IS CASE - SINTAXIS
BEGIN CASE
comando 1;
comando 2;
E caso 1
+ caso 2
END nombre_columna
Tema 5 - Carga Dimensiones DWH
UTEC Tablas DWH del Modelo Dimensional
En el Tema Modelo Dimensional quedaron creadas las tablas de dimensiones y hecho en DWH para
cargar los datos en la FASE 3 - Carga (Load) a DWH del proceso ETL
DT CARRERA
DT ESTUDIANTE SK.CARRERA
CARRERA PK
VESTUDIANTE PK
DT GENERACION
GENERACION
GENERACION PK
]GENERACION DESC
SK CARRERA
SK GENERACION
SK SEMESTRE
SKESTUDIANTE
SKFECHANSC
CANTIDAD
DT TIEMPO D
DT SEMESTRE
TIEMPO
SEMESTRE
SEMESTRE PK
SEMESTRE DESC
V FECHA
Hoja INSCRIPTOS
Hoja DIM_Carrera
Fase 3- CARGA
HT INSCRIPTOS
DT CARRERA
TRANSFORMACION
INSCRIPTOS H_INSCRIPTOS
D_CARRERA
ODS_H_INSCRIPTOS
Hoja DIM_Generacion
ODS D SEMESTRE
ODS D_ESTUDIANTE
GENERACION D_GENERACION
DT SEMESTRE
DT ESTUDIANTE
SEMESTRE D_SEMESTRE
ESTUDIANTE D ESTUDIANTE
TIEMPO DT TIEMPO
En el Tema Modelo Dimensional quedaron creadas las tablas de dimensiones y hecho en DWH para
cargar los datos en la FASE 3 - Carga (Load) a DWH del proceso ETL
DT CARRERA
DT ESTUDIANTE SK.CARRERA
CARRERA PK
CARRERA DESC HT_INSCRIPTOS ESTUDIANTE
VESTUDIANTE PK
DT GENERACION
GENERACION
GENERACION PK
]GENERACION DESC
SK CARRERA
SK GENERACION
SK SEMESTRE
SKESTUDIANTE
SKFECHANSC
CANTIDAD
DT TIEMPO D
DT SEMESTRE
TIEMPO
SEMESTRE
SEMESTRE PK
SEMESTRE DESC
V FECHA
Hoja INSCRIPTOS
Hoja DIM_Carrera
Fase 3- CARGA
HT INSCRIPTOS
DT CARRERA
TRANSFORMACION
INSCRIPTOS H_INSCRIPTOS
D_CARRERA
ODS_H_INSCRIPTOS
Hoja DIM_Generacion
ODS D SEMESTRE
ODS D_ESTUDIANTE
GENERACION D_GENERACION
DT SEMESTRE
DT ESTUDIANTE
SEMESTRE D_SEMESTRE
ESTUDIANTE D ESTUDIANTE
TIEMPO DT TIEMPO
nOH USER_TABLES
CRDER BY 1:
Consulta
Salida de Script *
(columnas)
con comando
UNIVERSIDAD
DT_CARRERA
2 D7_ESTUDIANTE
3 D7_GENERACION
4 DI_SEMESTRE
DT CARRERA
DT_GENERACION
DT SEMESTRE
DT ESTUDIANTE
SEQ CARRERA
SK_CARRERA
tabla DT_DIMENSION
Secuencias a crear
START WITH 1
TABLA SECUENCIA
INCREMENT BY 1 DT CARRERA
DT ESTUDIANTE
SEQ CARRERA
SEQ SEMESTRE
SEQ ESTUDIANTE
nOH USER_TABLES
CRDER BY 1:
Consulta
Salida de Script *
(columnas)
con comando
UNIVERSIDAD
DT_CARRERA
2 D7_ESTUDIANTE
3 D7_GENERACION
4 DI_SEMESTRE
Para las siguientes tablas de DIMENSIONES
DT CARRERA
DT_GENERACION
DT SEMESTRE
DT ESTUDIANTE
SEQ CARRERA
SK_CARRERA
tabla DT_DIMENSION
Secuencias a crear
START WITH 1
TABLA SECUENCIA
INCREMENT BY 1 DT CARRERA
DT SEMESTRE
DT ESTUDIANTE
SEQ CARRERA
SEQ SEMESTRE
SEQ ESTUDIANTE
JTEC PLSQL – TRIGGER para Secuencias
a)Tipo de triggers.
Triggers de tabla
ON nombre_tabla. <nombre_trigger>
BEFORE|AFTER
DELETE|INSERT|UPDATE
ON <nombre_tabla> b)Evento
puede ser
DECLARE
-- variables
BEGIN
BEFORE
-- Comandos
AFTER
END <nombre_trigger>;
INSERT
obtener los valores de las columnas del registro de la tabla antes del
evento (variable OLD) y los nuevos valores de las columnas del registro
UPDATE
Before After
old
new
:new new
DELETE
Before After
old
null
:old old
Enew null
Objetivo:
Tipo
T CARRERA_SEQ
Manejar la secuencia SEQ_CARRERA
DT CARRERA Tabla ON
a la columna SK CARRERA
--Tabla DT_CARRERA
BEFORE INSERT
ON DT CARRERA
BEGIN
SEQ CARRERA.NEXTVAL
:NEW.SK_CARRERA
DUAL;
SELECT
INTO
FROM
--valor de la secuencia
SELECT SEQ_CARRERA.NEXTVAL
INTO :NEW.SK_CARRERA
FROM DUAL;
Consulta la lista de TRIGGER del usuario con la tabla user_triggers del diccionario de
datos
SELECT
FROM user_triggers
Borrar
Activar
Desactivar
Renombrar
Dimensión
dadlgia
MERGE permite en un mismo comando SQL "mezclar" INSERT y UPDATE, según exista o no el registro, a
se cumple
SI entonces se MODIFICA
NO entonces se INSERTA
MERGE-SINTAXIS
iversidad Tenalgi
CARRERA PK,CARRERA_DESC
ODS D CARRERA
(SELECT
FROM
(CARRERA_PK,CARRERA_DESC)
INSERT
VALUES
TEC
PROCEDIMIENTO P_DWH_DT_CARRERA
Procedimiento P_DWH_DT_CARRERA
USING
(SELECT CARRERA_PK,CARRERA_DESC
FROM ODS_D_CARRERA
(d.carrera_pk = 0.carrera_pk)
INSERT (CARRERA_PK,CARRERA_DESC)
ON
VALUES
(o.CARRERA_PK,o.CARRERA_DESC)
; --Fin Merge
Ejecutar P_DWH_DT_CARRERA
puede ejecutar
DESDE CON
PL/SQL P_DWH_DT_CARRERA;
UTEC Síntesis
TRIGGER
a)Tipo de triggers. MERGE
USING
esta cargado
Para los TRIGGERS existen las Variables OLD y NEW que se usan para
obtener los valores de las columnas del registro de la tabla antes del
NUEVO
; -Fin MERGE
antes del evento
BEFORE|AFTER
DELETE|INSERT|UPDATE
ON <nombre_tabla>
pantalla)
DECLARE
- variables locales
SEQ CARRERA.NEXTVAL
INTO :NEW.SK_CARRERA
DUAL;
SELECT
BEGIN
- Comandos
UTEC SQL –
CASE
veidad Telgi
yyyymmdd (añomesdia)
Se utiliza la funciones acentos
LECHERÍA
MECATRÓNICA
ENERGÍA
LECHERIA a
TO NUMBER(texto)
La transformacion es:
TO NUMBER
MECATRONICA a
el comando CASE.
correspondiente EJEMPLO
se ejecuta el "then"
CASE - SINTAXIS
CASE
THEN "Siglo 21
*Siglo 20 ELSE
END Siglo
FROH DUAL :
esultado de la Consulta
CASE
WHEN condicion 1
WHEN condicion 2
10 SIGLO
HOY
END nombre_columna
idad algia
H_INSCRIPTOS
ODS_H_INSCRIPTO
de
CASE
WHEN UPPER(TRIM(CARRERA))
WHEN UPPER(TRIM(CARRERA))
ELSE UPPER(TRIM(CARRERA))
= 'LECHERIA THEN
'MECATRÓNICA'
'ENERGÍA'
= 'MECATRONICA' THEN
= 'ENERGIA' THEN
END CARRERA
SELECT
CASE
UPPER(TRI M(CARRERA))
WHEN
ELSE
END CARRERA,
UPPER(TRIM(GENERACION)),
UPPER(TRIM(SEMESTRE)),
MECATRONICA
MECATRONICA
veridad Teal
H_INS CRIPTOS
IS
BEGIN
/* Comando IN SERT */
VARCHAR2(20),
VARCHAR2(5),
VARCHAR2(5),
CARRERA
GENERACION
SEMESTRE
SEMESTRE_FECHA INTEGER,
CASE
ELSE UPPER(TRIM(CARRERA))
END CARRERA,
UPPER (TRIM(GENERACION)),
UPPER (TRIM(SEMESTRE)),
THEN 'ENERGÍA'
SEMESTRE_FECHA,
UPPER (TRIM(DOCUMENTO))
FROM H_INSCRIPTOS;
Salida de Script x
idd lg
Ejecutar programa
Desde SQLDeveloper
Resultado de le Consulte
puede ser:
1 PROCEDONE ODs_D_CARRERA
2 13
FROM
P ODS H_INSCRIPTOS;
CALL P_ODS_H_INSCRIPTOS
user_source
line
UTEC
Síntesis
idad lgi
DIMENSIONES-Transformaciones
-Normalizar los valores de la Clave de Negocio pasando a Mayúscula (UPPER) los valores.
Tabla
D_dimension
H_hecho
Columna
dimension
dimension, dimension, .
-Eliminar posibles espacios en blanco al inicio y fin de los textos con la función TRIM(columna)
HECHOS-Transformaciones
-Eliminar espacios en blanco al inicio y fin de los textos con la función TRIM(texto)
siguiente comando
se ejecuta el "else".
nombre_procedimiento
IS CASE - SINTAXIS
BEGIN CASE
comando 1;
comando 2;
e caso 1
+ caso 2
END nombre_columna
Tema 5 – Complemento Carga de dimensiones
UTEC PL/SQL: EDITAR- Compilar - Ejecutar
1-Crear/Editar:
2-Compilar :
CREAR PROCEDIMIENTO
_UNIVERSIDAD
de T Crear Procedimiento
Vistas
Paquetes
I POWM_OT_CARRERA_
BEGIN
MULL:
ED P_DH_DT_CARaERA|
COMPILAR PROCEDIMIENTO
COMPILAR TRIGGER
Ejecutar PLSQL
DESDE COMANDO
PL/SQL P_DWH_DT_CARRERA;
Depurador de código (DEBUG) permite ejecutar un programa paso a paso para verificar/comprobar su
Preferencias
Depurador
See nd etn e
Salcter
Satr m Apda de
En el navegador se marca/señala
esta compilado
Disparadores
TAUD DT ESTUDIANTE
dad
Ejecutar DEPURAR el trigger El Depurador genera un programa PLSQL para ejecutar el INSERT que
Desgino
OT CARRERA
T CARRERA SEQ
Rerámetros:
Parámetro
SK CARRERA
CARRERA PK
CARRERA DESC
NUMBER N 1
VARCHAR2 IN
VARCHAR2 N
NULL
NULL
Roque PLUSQL
-Tabla Dr
-Eyecutar
--Inicie co
SELECT SEOCARRERA.TAL
DT CARRERA DECLARE
MGEN
S values
SGIN
INTO EN.SK.CARRERA
PH DUAL:
ploque PL/SQL
1 DECLARE
CARRERA_PK
2BEGIN
S values
7 rollback:
e END:
'BIOMÉDICA'
CARRERA_DESC
Aceptar
ROLLBACK
UTEC
Depurar T_CARRERA_SEQ
se divide en 2 partes
T CARRERA SEQ
DCARRERA TEO a -
TROM DOAL
D LCARRERA_SEO
-Fin trigger
2)Depurador
ЕС PROCEDIMIENTO P_DWH_DT_CARRERA
Procedimiento P DWH_DT_CARRERA
IS
USING
(SELECT CARRERA_PK,CARRERA_DESC
ON (d.carrera_pk = o.carrera_pk)
INSERT (CARRERA_PK,CARRERA_DESC)
VALUES
(0.CARRERA_PK,0.CARRERA_DESC)
; --Fin Merge
puede ejecutar
DESDE CON
PL/SQL P_DWH_DT_CARRERA;
ТЕС
Síntesis
TRIGGER
USING
esta cargado
obtener los valores de las columnas del registro de la tabla antes del
NUEVO
; -Fin MERGE
pantalla)
BEFORE AFTER
DELETE|INSERT UPDATE
ON <nombre_tabla>
DECLARE
- variables locales
BEGIN
INTO :NEW.SK_CARRERA
DUAL;
- Comandos
END <nombre_trigger>; FROM
ТЕС
Síntesis
TRIGGER
USING
esta cargado
Para los TRIGGERS existen las Variables OLD y NEW que se usan para
obtener los valores de las columnas del registro de la tabla antes del
NUEVO
; -Fin MERGE
pantalla)
BEFORE AFTER
DELETE|INSERT UPDATE
ON <nombre_tabla>
DECLARE
- variables locales
BEGIN
INTO :NEW.SK_CARRERA
DUAL;
- Comandos
UTEC SQL -
CASE
H_INSCRIPTOS
ODS_H_INSCRIPTO
de
CASE
WHEN UPPER(TRIM(CARRERA))
WHEN UPPER(TRIM(CARRERA))
WHEN UPPER(TRIM(CARRERA))
ELSE UPPER(TRIM(CARRERA))
"LECHERÍA
'MECATRÓNICA
"ENERGÍA
= 'LECHERIA' THEN
= 'MECATRONICA' THEN
= 'ENERGIA' THEN
END CARRERA
SELECT
CASE
THEN 'LECHERÍA'
THEN 'ENERGÍA'
WHEN
END CARRERA,
UPPER(TRIM(GENERACION)),
UPPER(TRIM(SEMESTRE)),
456789 20130303
20130710
LECHERIA 2013
MECATRONICA 20130303
20130710
2013 3123456
UTEC PLSQL –
iveridad Teliga
H_INS CRIPTOS
IS
BEGIN
VARCHAR2(20),
VARCHAR2(5),
VARCHAR2(5),
SEMESTRE_FECHA INTEGER,
VARCHAR2(20)
/* Comando IN SERT */
CARRERA
GENERACION
SEMESTRE
DOCUMENTO SELECT
CASE
ELSE UPPER(TRIM(CARRERA))
END CARRERA,
UPPER (TRIM(GENERACION)),
UPPER (TRIM(SEMESTRE)),
THEN 'LECHERÍA'
THEN 'ENERGÍA'
SEMESTRE_FECHA,
UPPER (TRIM(DOCUMENTO))
FROM H_INSCRIPTOS;
END P_ODS_H_INSCRIPTOS;
Salida de Script x
widad lga
Ejecutar programa
Desde SQLDeveloper
Restade de le Cansute
P_ODS_H_INSCRIPTOS;
2 25
3 E Insnte de progrene
2NSERT D CRREA
puede ser:
FROM user_source
= 'P_ODS_D_CARRERA'
line
WHERE name
P_ODS_H_INSCRIPTOS;
CALL P_ODS_H_INSCRIPTOS
ORDER BY
UTEC Síntesis
dad ligia
DIMENSIONES-Transformaciones
-Normalizar los valores de la Clave de Negocio pasando a Mayúscula (UPPER) los valores.
Tabla
D_dimension
H_hecho
-Eliminar posibles espacios en blanco al inicio y fin de los textos con la función TRIM(columna)
Columna
dimension
dimension, dimension,.
HECHOS-Transformaciones
-Eliminar espacios en blanco al inicio y fin de los textos con la función TRIM(texto)
siguiente comando
se ejecuta el "else".
nombre_procedimiento
IS CASE - SINTAXIS
BEGIN CASE
comando 1;
comando 2;
WHEN condicion 1
WHEN condicion 2
END nombre_columna
Pregunta 1
Un ODS es un almacén de datos temporal en el cual se cargan en el cual se cargan los
datos desde las fuentes de información (datos operacionales, planillas, etc.).
Seleccione una:
Verdadero
Falso
Retroalimentación
Pregunta 2
Seleccione las caracteristicas que debe cumplir un Data Warehouse:
Seleccione una:
a.
b.
Integrado e Historico
c.
d.
Retroalimentación
Respuesta correcta
La respuesta correcta es: Orientado a temas, No volatil, Integrado, Historico
Pregunta 3
Enunciado de la pregunta
Almacena los datos descriptivos, por lo general son tablas con Respuesta 1
un porcentaje muy bajo de filas en relación a las tablas de TABLA DE DIMENSIONES
hechos, pero pueden contener muchas mas columnas.
Respuesta 2
Almacena los indicadores del negocio tanto básicos como
calculados. TABLA DE HECHOS
Los atributos se organizan de esta forma, que son los niveles Respuesta 3
para analizar/agrupar la información en el cubo del modelo JERARQUIA
dimensional
Retroalimentación
Respuesta correcta
La respuesta correcta es: Almacena los datos descriptivos, por lo general son tablas con un
porcentaje muy bajo de filas en relación a las tablas de hechos, pero pueden contener
muchas mas columnas. → TABLA DE DIMENSIONES, Almacena los indicadores del negocio
tanto básicos como calculados. → TABLA DE HECHOS, Los atributos se organizan de esta
forma, que son los niveles para analizar/agrupar la información en el cubo del modelo
dimensional → JERARQUIA
Pregunta 4
Enunciado de la pregunta
a.
b.
Mantener los datos cada vez que se hace una nueva carga
c.
Unificar la clave de negocio de aquellas dimensiones que se cargan desde distintas fuentes
d.
e.
Retroalimentación
Respuesta correcta
Las respuestas correctas son: Asegurar la integridad y calidad de los datos en el proceso de
carga ETL, Unificar la clave de negocio de aquellas dimensiones que se cargan desde distintas
fuentes, Normalizar los valores de la clave del negocio
Pregunta 5
El órden del proceso ETL es el siguiente:
Seleccione una:
a.
b.
c.
Retroalimentación
Respuesta correcta
La respuesta correcta es: Extracción, Transformación y Carga
Pregunta 6
En la fase de transformación del ETL se aplican las reglas de negocio o funciones
sobre los datos extraidos para convertirlos en datos que serán cargados al DWH
Seleccione una:
Verdadero
Falso
Retroalimentación
Pregunta 7
La fase de carga es el momento en el cual los datos que aún no fueron extraidos son
transformados luego que fueron cargados en el DWH
Seleccione una:
Verdadero
Falso
Retroalimentación
Pregunta 8
¿El predicado DISTINCT permite realizar en algunos casos lo mismo que la sentencia
GROUP BY?
Seleccione una:
Verdadero
Falso
Retroalimentación
Pregunta 9
Enunciado de la pregunta
a.
Permite listar los valores repetidos, escribiendose despues del SELECT y antes de la lista de
columnas
b.
Permite listar los valores unicos, sin repetidos, escribiendose al final de la consulta.
c.
Permite listar los valores unicos, sin repetidos, escribiendose despues del SELECT y despues
de la lista de columnas
d.
Permite listar los valores unicos, sin repetidos, escribiendose despues del SELECT y antes de la
lista de columnas
Retroalimentación
Respuesta correcta
La respuesta correcta es: Permite listar los valores unicos, sin repetidos, escribiendose
despues del SELECT y antes de la lista de columnas
Pregunta 10
El operador EXISTS:
Seleccione una:
a.
b.
c.
Es un operador de condición que se usa en el WHERE y está asociado a una comparación por
un tipo de dato particcular. Devuelve verdadero cuando la subconsulta si devuelve registro y
devuelve falso cuando no devuelve ningun registro
d.
Retroalimentación
Respuesta correcta
La respuesta correcta es: Es un operador de condición que se usa en el WHERE y está asociado
a una subconsulta. Devuelve verdadero cuando la subconsulta si devuelve registro y devuelve
falso cuando no devuelve ningun registro
Tema 6 - Dimensión Tiempo / Auditoría
ÚTEC Dimensión Tiempo y Auditoria
Contenido
Dimensión Tiempo: Jerarquía y Niveles
Tabla DT_TIEMPO en DWH
PLSQL – FUNCION
PROCEDIMIENTO CARGA Dimensión TIEMPO en DWH
AUDITORIA - Historial de Cambios
AUDITORIA a NIVEL de Registro - Tabla DT_CARRERA
AUDITORIA – Trigger T_AUD_DT_CARRERA
1)TABLA DT_TIEMPO
2)FUNCION F_SEMESTRE
3)PROCEDIMIENTO P_DWH_DT_TIEMPO
3) PROCEDIMIENTO P_DWH_DT_TIEMPO
Programa almacenado en la BD
P DWH DT TIEMPO
1) TABLA DT_TIEMPO
debe:
Fecha_Desde
Fecha_Hasta
Fecha Desde
Fecha Hasta
01/01/2013
31/12/2020
Fecha Fecha
2)FUNCION F_SEMESTRE
Por ejemplo
devuelve un valor.
El CASE es el siguiente:
CASE
...)
RETURN tipo_de_dato
IS | AS
bloque_PL/SQL;
Donde
Argumento/Parámetro
RETURN
Columna de un SELECT.
F_SEMESTRE
DATE) (FECHA
--Nombre de la Funcion
--Recibe FECHA
IS
BEGIN --Inicio Funcion
( --Inicio retornar
"Sem1'
"Sem2'
THEN
ELSE
);
Fecha_Desde DATE;
Fecha_Hasta DATE;
/* Mientras (WHILE) se cumpla condicion Fecha_Desde <= Fecha_Hasta se repite el ciclo (LOOP)
Cuando NO se cumpla condicion se termina ciclo (LOOP) y se continua despues del END LOOP
*/
WHILE FECHA_DESDE <= FECHA_HASTA WHILE --Condicion para que el Ciclo se repita
VALUES
FECHA DESDE,
TO CHAR (FECHA_DESDE,'YYYY'),
F_SEMESTRE
(FECHA DESDE)) ;
SELECT
MIN(FECHA) FEC_MIN,
МАX{FECHA) FEC_MAX,
COUNT(*) FEC_CANT
FROM DT TIEMPO;
--Ejecutar Procedimiento
EXECUTE P_DWH_DT_TIEMPO;
AUDITORIA – HISTORIAL DE CAMBIOS
La Auditoria de la Base de Datos tiene como objetivo registrar
Tabla:
ALTA_USUARIO VARCHAR(50)
ALTA_FECHA DATE
MOD_USUARIO VARCHAR(50)
DT CARRERA
auditoria:
ALTA_USUARIO VARCHAR(50)
ALTA_FECHA DATE
MOD_USUARIO VARCHAR(50)
INSERT y el UPDATE
IF INSERTING THEN
END IF;
IF UPDATING THEN
END IF;
ADD (
ALTA_USUARIO VARCHAR(50)
ALTA_FECHA DATE
MOD_USUARIO VARCHAR(50)
);
IF INSERTING THEN
SELECT USER,
SYSDATE
INTO :NEW.ALTA_USUARIO,
:NEW.ALTA_FECHA
FROM DUAL;
END IF;
IF UPDATING THEN
SELECT USER,
SYSDATE
INTO :NEW.MOD_USUARIO,
:NEW.MOD_FECHA
FROM DUAL;
END IF;
T_AUD DT_CARRERA
ON DT CARRERA
BEGIN
IF INSERTING THEN
SELECT USER,
SYSDATE
INTO :NEW.ALTA_USUARIO,
:NEW.ALTA_FECHA
FROM DUAL;
END IF;
IF UPDATING THEN
SELECT USER,
SYSDATE
INTO :NEW.MOD_USUARIO ,
:NEW.MOD_FECHA
FROM DUAL;
END IF;
tabla user_source
FROM
ORDER BY line;
AUDITORIA – TRIGGER T_AUD_DT_CARRERA
Test de funcionamiento para el trigger T AUD DT_CARRERA
EXECUTE P_DWH_DT_CARRERA;
ORDER BY CARRERA_PK;
UPDATE DT_CARRERA
Donde
SK CARRERA
SK_GENERACION
SK SEMESTRE
SK FEC_INSCR
SK ESTUDIANTE
REFERENCES DT_CARRERA(SK_CARRERA),
REFERENCES DT_GENERACION(SK_CARRERA),
REFERENCES DT Generacion(SK_Generacion),
REFERENCES DT_Estudiante(SK_Estudiante),
REFERENCES DT Tiempo(SK_Tiempo)
SELECT
C.SK CARRERA,
G.SK GENERACION,
S.SK SEMESTRE,
E.SK_ESTUDIANTE,
T.SK TIEMPO,
CANTIDAD
ON C.CARRERA_PK = H.CARRERA
ON G.GENERACION_PK = H.GENERACION
ON S.SEMESTRE_PK = H.SEMESTRE
ON E.ESTUDIANTE_PK = H.DOCUMENTO
ON T.SK_TIEMPO = H.SEMESTRE_FECHA
PERIODICIDAD/AUDITORIA Carga HECHO en DWH
cliente.
La periodicidad definida
puede ser
anual
semestral
trimestral
mensual
semanal
diaria
La periodicidad de la carga
semestral
a la tabla
la columna
HT_INSCRIPTOS
PERIODO_CARGA
YYYYSS
columnas para
ALTA USUARIO
ALTA_FECHA.
Auditoria
Comando SQL
ALTA_USUARIO VARCHAR(50),
ALTA_FECHA DATE
);
AUDITORIA Trigger T_AUD_HT_INSCRIPTOS
AUDITORIA A NIVEL DE REGISTRO
"UNIVERSIDAD"
ALTA_USUARIO
ALTA_FECHA
ON HT INSCRIPTOS
BEGIN
SELECT USER,
SYSDATE
INTO :NEW.ALTA_USUARIO
:NEW.ALTA_FECHA
DUAL; FROM
END T_AUD_HT_INSCRIPTOS ;
Procedimiento de Carga HECHO en DWH
Para un determinado PERIODO de CARGA
entonces se requiere
cargar nuevamente
HT INSCRIPTOS
P_DWH_HT_INSCRIPTOS
El Procedimiento debe
la periodicidad de la carga
WHERE
PERIODO_CARGA = parametro
P_DWH_HT_INSCRIPTOS
IS
valor de p_periodo
*/
WHERE
PERIODO_CARGA = p_periodo
SK CARRERA
SK_GENERACION
SK_SEMESTRE
SK_ESTUDIANTE
SK_FECHA_INSC
CANTIDAD
PERIODO_CARGA
SELECT
C.SK CARRERA,
G.SK_GENERACION,
S.SK SEMESTRE,
E.SK ESTUDIANTE,
T.SK_TIEMPO,
CANTIDAD,
P_PERIODO
ODS H_INSCRIPTOS
FROM H
ON C.CARRERA_PK = H.CARRERA
DT GENERACION
ON G.GENERACION_PK = H.GENERACION
DT SEMESTRE
ON S.SEMESTRE_PK = H.SEMESTRE
DT ESTUDIANTE
ON E.ESTUDIANTE_PK = H.DOCUMENTO
DT TIEMPO
ON T.SK_TIEMPO = H.SEMESTRE_FECHA
Nombre de la Tabla
P DWH_HT_INSCRIPTOS para
-Obtener la Cantidad de los registros Borrados
SELECT INTO
P DWH_HT_INSCRIPTOS
v_Reg_borrados integer;
Reg_insertados:= SQL%ROWCOUNT;
v_Reg_insertados integer;
HISTORICO en P_DWH_HT_INSCRIPTOS
Ejecutar procedimiento P DWH_HT_INSCRIPTOS para el periodo
BDC-T-EM-006
Seleccione, para cada característica, cual corresponde a OLTP y cual a OLAP
OLAP
Predomina la Consulta
Respuesta 1
OLAP
Dato Histórico
Respuesta 2 OLTP
Respuesta 5
Estructura Multidimensional
Retroalimentación
Respuesta correcta
La respuesta correcta es: Predomina la Consulta → OLAP, Dato Histórico → OLAP, Actividad operativa → OLTP, BD Normalizada → O
Estructura Multidimensional → OLAP
Pregunta 2
Parcialmente correcta
Puntúa 0,60 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
BDC-T-EM-005
Seleccione la respuesta que corresponde
ETL
Proceso de Carga/Integración de Datos
Respuesta 1
Pentaho
Procesamiento analítico en línea Respuesta 2
DWH-DataWareHouse
Enunciado de la pregunta
Retroalimentación
Respuesta parcialmente correcta.
Ha seleccionado correctamente 3.
La respuesta correcta es: Proceso de Carga/Integración de Datos → ETL, Procesamiento analítico en línea → OLAP, Almacén de Datos
Datos Corporativa → DWH-DataWareHouse, Herramienta de BI → Pentaho, Procesamiento de Transacciones en Línea → OLTP
Pregunta 3
Correcta
Puntúa 1,00 sobre 1,00
BDC-T-EM-008
Seleccione Verdadero o Falso para las siguientes afirmaciones sobre modelo
dimensional En el Modelo dimensional los datos están desnormalizados Respuesta 1
para realizar consultas de alto rendimiento VERDADERO
Respuesta 2
El modelo dimensional NO usa Cubos/Consultas OLAP
FALSO
Modelo DIMENSIONAL compuesto por una tabla “de hechos” (fact) Respuesta 3
y un conjunto de tablas llamadas “dimensiones“ VERDADERO
Retroalimentación
Respuesta correcta
La respuesta correcta es: En el Modelo dimensional los datos están desnormalizados para realizar consultas de alto rendimiento →
VERDADERO, El modelo dimensional NO usa Cubos/Consultas OLAP → FALSO, Modelo DIMENSIONAL compuesto por una tabla “de h
(fact) y un conjunto de tablas llamadas “dimensiones“ → VERDADERO, El modelo dimensional es una adaptación del modelo relacion
almacén de datos de BI, orientado a consultas → VERDADERO
Pregunta 4
Correcta
Puntúa 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
BDC-T-EM-007
Para cada figura seleccione el Tipo de modelo dimensional que corresponde
Figura C
Respuesta 2
Figura B
Respuesta 3
Modelo 3FN
BDC-T-EM-004
Seleccione Verdadero o Falso
Respuesta 1
BI -Business Intelligence - Inteligencia de negocio usa Cubos de
VERDADERO
información
Respuesta 2
VERDADERO
Modelo Dimensional se construye con dimensiones que agrupan los
hechos a analizar Respuesta 3
FALSO
Retroalimentación
Respuesta correcta
La respuesta correcta es: BI -Business Intelligence - Inteligencia de negocio usa Cubos de información →
VERDADERO, Modelo Dimensional se construye con dimensiones que agrupan los hechos a analizar →
VERDADERO, Base de datos corporativa tiene un Modelo de datos orientado a transacciones → FALSO, Base de
Datos Corporativa se usa para la toma decisiones y análisis/inteligencia del negocio → VERDADERO
Cuestionario 2
a.
Que se analiza? Que se mide? Como se agrupa la información? Que contiene cada Grupo?
b.
Cómo se analiza? Que se mide? Cuantos grupos de información? Que contiene cada Grupo?
c.
Como se analiza? Como se mide? Como se agrupa la información?
d.
Que se analiza? Como se mide? Cuantos grupos de información? Que contiene cada Grupo?
Retroalimentación
Respuesta correcta
En un Reporte Analítico, los hechos determinan que se analiza y que se mide.
La clave subrogada (SK) es el identificador INTERNO que se usa para identificar de forma única los
registros de la dimensión.
Verdadero
La tabla dimensión está conformada por 4 campos, y tiene un campo PK y otro FK.
La tabla HECHOS está conformada por una columna por cada dimensión y otra por cada métrica.
Cuestionario 3
Un ODS es un almacén de datos temporal en el cual se cargan en el cual se cargan los datos desde las
fuentes de información (datos operacionales, planillas, etc.).
Seleccione una:
Verdadero
a.
Integrado e Historico
b.
Orientado a temas, No volatil, Integrado, Historico
c.
Orientado a procesos, No volatil, Integrado, Historico
d.
Orientado a temas, volatil, Integrado
Retroalimentación
Respuesta correcta
La respuesta correcta es: Orientado a temas, No volatil, Integrado, Historico
Pregunta 3
a.
Mantener los datos cada vez que se hace una nueva carga
b.
Unificar la clave de negocio de aquellas dimensiones que se cargan desde distintas fuentes
c.
Almacenar los datos historicos finales
d.
e.
Normalizar los valores de la clave del negocio
Asegurar la integridad y calidad de los datos en el proceso de carga ETL
a.
Carga, Transformación y Extracción
b.
Extracción, Carga, Transformación
c.
Transformación, Extracción y Carga
d.
Extracción, Transformación y Carga
En la fase de transformación del ETL se aplican las reglas de negocio o funciones sobre los datos
extraidos para convertirlos en datos que serán cargados al DWH Seleccione una:
Verdadero
Falso
Retroalimentación
La respuesta correcta es 'Verdadero'
Pregunta 7
Correcta
Puntúa 0,50 sobre 0,50
Marcar pregunta
Enunciado de la pregunta
La fase de carga es el momento en el cual los datos que aún no fueron extraidos son transformados
luego que fueron cargados en el DWH
¿El predicado DISTINCT permite realizar en algunos casos lo mismo que la sentencia GROUP BY?
Seleccione una:
Retroalimentación
Pregunta 9
Correcta
Puntúa 0,50 sobre 0,50
Seleccione la opción correcta de acuerdo a la definición del predicado
DISTINCT Seleccione una:
a.
Permite listar los valores unicos, sin repetidos, escribiendose despues del SELECT y antes de la lista de columnas
b.
Permite listar los valores unicos, sin repetidos, escribiendose al final de la consulta.
c.
Permite listar los valores repetidos, escribiendose despues del SELECT y antes de la lista de columnas
Marcar pregunta
Enunciado de la pregunta
d.
Permite listar los valores unicos, sin repetidos, escribiendose despues del SELECT y despues de la lista de columnas
a.
Es un operador de condición que se usa en el SELECT y está asociado a una subconsulta. Devuelve verdadero
cuando la subconsulta si devuelve registro y devuelve falso cuando no devuelve ningun registro
b.
Es un operador de condición que se usa en el WHERE y está asociado a una subconsulta. Devuelve verdadero cuando la subconsulta s
devuelve registro y devuelve falso cuando no devuelve ningun registro
c.
Es un operador de condición que se usa en el WHERE y está asociado a una subconsulta. Devuelve verdadero
cuando la subconsulta no devuelve registros y devuelve falso cuando si devuelve registros
d.
Es un operador de condición que se usa en el WHERE y está asociado a una comparación por un tipo de dato
particcular.
Devuelve verdadero cuando la subconsulta si devuelve registro y devuelve falso cuando no devuelve ningun
registro
Retroalimentación
Respuesta correcta
La respuesta correcta es: Es un operador de condición que se usa en el WHERE y está asociado a una subconsulta.
Devuelve verdadero cuando la subconsulta si devuelve registro y devuelve falso cuando no devuelve ningun
registro
Cuestionario 4
Verdadero
Falso
Retroalimentación
La respuesta correcta es 'Verdadero'
Pregunta 2
Correcta
Puntúa 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Para eliminar espacios en blanco en el extremo derecho de la cadena de caracteres utilizamos la función
LTRIM Seleccione una:
Verdadero
Falso
Retroalimentación
RTRIM: es la función para quitar espacios en blanco de extremo derecho La respuesta
correcta es 'Falso'
Una de las ventajas de crear procedimientos (PROCEDURES) en PL/SQL es tener un conjunto de
comandos SQL almacenados para poderlos ejecutar todos juntos en forma repetida.
COMPILAR: Es el proceso para revisar la lógica de ejecución de los comandos de un programa PL/SQL
La función TO_NUMBER(texto) nos permite convertir un valor númerico en una cadena de caracteres.
Seleccione una:
Verdadero
Identificador interno que se usa para identificar de forma única los
registros de la dimensión se llama:
Respuesta 1
Clave Subrogada
Para eliminar los espacios en blanco en ambos extremos de una cadena Respuesta 2
de caracteres utilizamos la función: TRIM
Respuesta 5
Clave de Negocio
Retroalimentación
Respuesta correcta
La respuesta correcta es: Identificador interno que se usa para identificar de forma única los registros de la
dimensión se llama: → Clave Subrogada, Para eliminar los espacios en blanco en ambos extremos de una cadena
de caracteres utilizamos la función: → TRIM, Para crear un programa PL/SQL se usa el siguiente comando →
CREATE OR REPLACE PROCEDURE, Lenguaje de programación cuyo nombre es Procedural Language/Structured
Query Language → PL/SQL, Clave que el cliente reconoce en su negocio se le llama: → Clave de Negocio
Cuestionario 5
La fase 3 de carga es la ultima fase del proceso ETL, donde se cargan los datos al almacén de datos
corporativos DWH, a partir del cual después, usando herramientas de BI se forman los Cubos de
Información OLAP para los reportes de análisis y cuadros/tableros de mando.
Seleccione una:
Verdadero
Seleccione las estructuras que se manejaron a lo largo del proceso ETL para la dimensión CARRERA
(según la nomenclatura propuesta en el material de estudio):
Seleccione una:
a.
Fase 1: Extracción: D_CARRERA
Fase 2:
Transformación:
DT_CARRERA Fase
3: Carga:
ODS_D_CARRERA
b.
Fase 1: Extracción: ODS_D_CARRERA
Fase 2:
Transformación:
D_CARRERA Fase
3: Carga:
DT_CARRERA
c.
Fase 1: Extracción: DT_CARRERA
Fase 2: Transformación: ODS_D_CARRERA
Fase 3: Carga: D_CARRERA
a.
Fase 1: Extracción: ODS_H_INSCRIPTOS
Fase 2:
Transformación:
H_INSCRIPTOS Fase
3: Carga:
HT_INSCRIPTOS
b.
Fase 1: Extracción: H_INSCRIPTOS
Fase 2: Transformación:
HT_H_INSCRIPTOS Fase
3: Carga:
ODS_H_INSCRIPTOS
c.
Fase 1: Extracción: H_INSCRIPTOS
Fase 2: Transformación: ODS_H_INSCRIPTOS
Fase 3: Carga: HT_INSCRIPTOS
Puntúa 0,50 sobre 0,50
Marcar pregunta
d.
Fase 1: Extracción: HT_INSCRIPTOS
Fase 2: Transformación: ODS_H_INSCRIPTOS
Fase 3: Carga: H_INSCRIPTOS
Retroalimentación
Respuesta correcta
La respuesta correcta es: Fase 1: Extracción: H_INSCRIPTOS
Fase 2: Transformación: ODS_H_INSCRIPTOS
Fase 3: Carga: HT_INSCRIPTOS
Pregunta 4
Correcta
Enunciado de la pregunta
Para conocer la estructura interna de una tabla (columnas, obligatoriedad y tipo de dato) se utiliza la
sentencia:
Seleccione una:
a.
SHOW COLUMNS
b.
USER_TABLES
c.
DESCRIBE
Determine si la siguiente afirmación es VERDADERA o FALSA:
TRIGGER – DISPARADOR es un tipo de objeto de la BD que contiene código PLSQL para ejecutarse en
forma automática cuando se realiza una determinada acción o evento en la base de datos.
Por ejemplo podemos programar un trigger que se ejecuta (dispara) cuando se adiciona (INSERT) o
modifica (UPDATE) o elimina (DELETE) un registro de determinada tabla.
Retroalimentación
La respuesta correcta es 'Verdadero'
Pregunta 6
Correcta
Seleccione una:
Enunciado de la pregunta
a.
CREATE OR REPLACE TRIGGER <nombre_trigger>
BEFORE|AFTER
SELECT
ON <nombre_tabla>
Puntúa 0,50 sobre 0,50
Marcar pregunta
FOR EACH ROW
DECLARE
-- variables
BEGIN
-- Comandos
END <nombre_trigger>;
b.
CREATE OR REPLACE TRIGGER <nombre_trigger>
BEFORE|AFTER
DELETE|INSERT|UPDATE
ON <nombre_tabla>
FOR EACH ROW
DECLARE
-- variables
BEGIN
-- Comandos
END <nombre_trigger>;
c.
CREATE OR REPLACE TRIGGER <nombre_trigger>
DELETE|INSERT|UPDATE
ON <nombre_tabla>
FOR EACH ROW
DECLARE
-- variables
BEGIN
-- Comandos
END <nombre_trigger>;
d.
CREATE OR REPLACE TRIGGER <nombre_trigger>
BEFORE|AFTER
DELETE|INSERT|UPDATE
ON <nombre_tabla>
FOR EACH ROW
DECLARE
-- variables
Verdadero
Falso
Marcar pregunta
Enunciado de la pregunta
Retroalimentación
La afirmación es falsa. La afirmación correcta es:
Para los TRIGGERS existen las Variables OLD y NEW , que se usan para obtener los valores de las columnas del registro de la tabla ante
evento (variable OLD) y los nuevos valores de las columnas del registro durante el evento (variable NEW).
La respuesta correcta es 'Falso'
Pregunta 8
Correcta
Puntúa 0,50 sobre 0,50
Seleccione la opción correcta y mas completa que describe el funcionamiento de las VARIABLES
ESPECIFICAS DE LOS TRIGGERS:
Seleccione una:
a.
Con :OLD.nombre_columna referenciamos el valor de la columna despues del evento. Tiene valor en UPDATE y
DELETE
Con :NEW.nombre_columna referenciamos el valor de la columna asignado antes del evento. Tiene valor en
INSERT y DELETE
b.
Con :OLD.nombre_columna referenciamos el valor de la columna antes del evento. Tiene valor en UPDATE y DELETE
Con :NEW.nombre_columna referenciamos el nuevo valor de la columna asignado por el evento. Tiene valor en UPDATE e
INSERT
c.
Con :OLD.nombre_columna referenciamos el valor de la columna antes del evento. Tiene valor en INSERT y
DELETE
Con :NEW.nombre_columna referenciamos el nuevo valor de la columna asignado por el evento. Tiene valor en
UPDATE y DELETE
d.
Con :OLD.nombre_columna referenciamos el valor de la columna antes del evento. Tiene valor en UPDATE y
DELETE
Con :NEW.nombre_columna referenciamos el nuevo valor de la columna asignado por el evento. Tiene valor en
INSERT
Seleccione la sintaxis correcta para cada uno de los comandos que se utilizan para manipular TRIGGERS:
Seleccione una:
a.
Activar: ALTER TRIGGER NombreTrigger ENABLE;
b.
Activar: ALTER TRIGGER NombreTrigger ENABLE;
Borrar: DROP TRIGGER NombreTrigger;
Desactivar: DISABLED TRIGGER NombreTrigger DISABLE;
Renombrar: ALTER TRIGGER Nombretrigger RENAME TO NuevoNombre;
c.
Activar: ALTER TRIGGER NombreTrigger ENABLE;
Borrar: DROP TRIGGER NombreTrigger;
Desactivar: ALTER TRIGGER NombreTrigger DISABLE;
Renombrar: ALTER TRIGGER Nombretrigger RENAME TO NuevoNombre;
d.
Activar: ALTER TRIGGER NombreTrigger;
Borrar: DROP TRIGGER NombreTrigger;
Desactivar: ALTER TRIGGER NombreTrigger;
Renombrar: ALTER TRIGGER Nombretrigger RENAME TO NuevoNombre;
a.
MERGE INTO Tabla_a_Cargar
USING
(Consulta con datos a cargar )
ON (Condición a cumplir por los registros)
WHEN MATCHED THEN
--Si se cumple la condicion = registro ya esta cargado
-- se ejecuta comando UPDATE
; --Fin MERGE
b.
MERGE INTO Tabla_a_Cargar
USE
(Consulta con datos a cargar )
ON (Condición a cumplir por los registros)
WHEN MATCHED
--Si se cumple la condicion = registro ya esta cargado
-- se ejecuta comando UPDATE
WHEN NOT MATCHED
--NO se cumple la condicion = registro NUEVO
-- se ejecuta comando INSERT
; --Fin MERGE
c.
MERGE INTO Tabla_a_Cargar
USING
(Consulta con datos a cargar )
ON (Condición a cumplir por los registros)
WHEN NOT MATCHED THEN
--NO se cumple la condicion = registro NUEVO
-- se ejecuta comando INSERT
; --Fin MERGE
d.
MERGE INTO Tabla_a_Cargar
USING
(Consulta con datos a cargar )
ON (Condición a cumplir por los registros)
WHEN MATCHED THEN
--Si se cumple la condicion = registro ya esta cargado
-- se ejecuta comando UPDATE
WHEN NOT MATCHED THEN
--NO se cumple la condicion = registro NUEVO
-- se ejecuta comando INSERT
; --Fin MERGE
Retroalimentación
Respuesta correcta
La respuesta correcta es: MERGE INTO Tabla_a_Cargar
USING
(Consulta con datos a cargar )
ON (Condición a cumplir por los registros)
WHEN MATCHED THEN
--Si se cumple la condicion = registro ya esta cargado
-- se ejecuta comando UPDATE
WHEN NOT MATCHED THEN
--NO se cumple la condicion = registro NUEVO
-- se ejecuta comando INSERT
; --Fin MERGE
Cuestionario 6 n una tabla de
dimensión que utilidad tiene definir
JERARQUIAS?
Seleccione una:
a.
Permiten agrupar/organizar una dimensión en varios niveles.
b.
Permites organizar los campos de las dimensiones en subniveles
c.
Permite organizar los hechos para calcular en subniveles
Para la dimensión TIEMPO, que utilidad tiene definir una función
SEMESTRE Seleccione una:
a.
Dada una fecha calcule el semestre al que pertenece
b.
Devuelve una cadena de caracteres cualquiera a partir de una fecha
c.
Dada una fecha calcule una fecha del semestre al que pertenece
d.
Dada una cadena de caracteres calcule el semestre al que pertenece
Retroalimentación
Respuesta correcta
La respuesta correcta es: Dada una fecha calcule el semestre al que pertenece
Pregunta 3
Correcta
Puntúa 0,50 sobre 0,50
Marcar pregunta
Enunciado de la pregunta
a.
Permite ejecutar una función repetidamente con los mismos valores que se ingresan en los parámetros
b.
Permite calcular un valor de salida a partir de los parámetros para una función
c.
Permite ingresar un único valor a una función para que se ejecute con diferentes valores en la misma ejecución
Marcar pregunta
Enunciado de la pregunta
d.
Permite ejecutar la misma función con diferentes valores cada vez que se lo llama
Retroalimentación
Respuesta correcta
La respuesta correcta es: Permite ejecutar la misma función con diferentes valores cada vez que se lo llama
Pregunta 4
Parcialmente correcta
Puntúa 0,40 sobre 0,50
Una función se puede usar/llamar en/desde:
Elije las opciones (pueden ser más de una)
correctas Seleccione una o más de una:
a.
Columna de un SELECT.
b.
En el comando CREATE TABLE
c.
VALUES de un comando INSERT.
d.
En el comando ALTER TRIGGER
e.
ORDER BY y GROUP BY.
f.
SET de un comando UPDATE.
g.
Condiciones en cláusulas WHERE y HAVING.
Retroalimentación
Pregunta 5
Correcta
Puntúa 0,50 sobre 0,50
Marcar pregunta
Enunciado de la pregunta
a.
Falta incremento/decremento de la variable que condiciona el LOOP
c.
Mal el formato del WHILE
d.
Encabezado del procedure incorrecto
e.
Pasaje de parámetros en el procedure incorrecta
f.
Formato del INSERT incorrecta
b.
Definición de variable incorrecta
a.
Almacena en la tabla DT_Carrera antes de modificar un registros, con los nuevos valores de usuario y fecha.
b.
Almacena en la tabla DT_Carrera después de modificar un registros, con los nuevos valores de usuario y fecha.
c.
Almacena en la tabla DT_Carrera los valores actuales de usuario y fecha antes de modificar un registros
d.
Almacena en la tabla DT_Carrera después de modificar un registros, los valores de usuario y fecha anteriores a ser
modificados
Para crear la función que, dada un Fecha, devuelva a que Semestre pertenece, realicé:
Seleccione una:
a.
CREATE OR REPLACE PROCEDURE F_SEMESTRE (FECHA DATE)
RETURN VARCHAR
IS
BEGIN
RETURN (CASE
WHEN TO_CHAR(FECHA, 'MM') < '07' THEN 'Sem1'
ELSE 'Sem2'
END
);
END F_SEMESTRE;
b.
CREATE OR REPLACE FUNCTION F_SEMESTRE (FECHA DATE)
RETURN VARCHAR
IS
BEGIN
RETURN (CASE
WHEN TO_DATE(FECHA, 'MM') < '06' THEN 'Sem1'
ELSE 'Sem2'
END
);
END F_SEMESTRE;
c.
CREATE OR REPLACE FUNCTION F_SEMESTRE (FECHA DATE)
RETURN VARCHAR
IS
BEGIN
CASE
WHEN TO_CHAR(FECHA, 'MM') < '07' THEN 'Sem1'
ELSE 'Sem2'
END
;
END F_SEMESTRE;
d.
CREATE OR REPLACE FUNCTION F_SEMESTRE (FECHA DATE)
RETURN VARCHAR
IS
BEGIN
RETURN (CASE
WHEN TO_CHAR(FECHA, 'MM') < '07' THEN 'Sem1'
ELSE 'Sem2'
END
);
END F_SEMESTRE;
Retroalimentación
Respuesta correcta
La respuesta correcta es: CREATE OR REPLACE FUNCTION F_SEMESTRE (FECHA DATE) RETURN VARCHAR
IS
BEGIN
RETURN (CASE
WHEN TO_CHAR(FECHA, 'MM') < '07' THEN 'Sem1'
ELSE 'Sem2'
END
);
END F_SEMESTRE;
Cuestionario 7
a.
La misma es definida por el sistema
b.
No es algo que afecte a la utilización del DWH, por lo cual es irrelevante.
c.
La misma se debe acordar con el cliente
d.
La misma queda a criterio del DBA o Analista de BI
Retroalimentación
Respuesta correcta
La respuesta correcta es: La misma se debe acordar con el cliente
Pregunta 2
Correcta
Puntúa 0,60 sobre 0,60
Marcar pregunta
Enunciado de la pregunta
En PLSQL se usa SQL%ROWCOUNT para obtener el número de registros procesados por el último
comando SQL del/los tipos:
Seleccione una:
a.
Todas las opciones mencionadas son válidas
b.
DELETE
c.
INSERT y UPDATE
Verdadero
Falso
Retroalimentación
La respuesta correcta es 'Falso'
Pregunta 4
Correcta
Puntúa 0,80 sobre 0,80
Marcar pregunta
Enunciado de la pregunta
En el Diccionario de Datos existe la tabla/vista USER_OBJECTS para consultar los OBJETOS del Usuario, lo
cual permite mostrar la siguiente información:
Seleccione una:
a.
OBJECT_TYPE, OBJECT_NAME, MODIFICATED, LAST_DDL_TIME, STATUS
b.
OBJECT_TYPE, OBJECT_NAME, CREATED, LAST_DDL_TIME, STATUS
c.
OBJECT_FILE, OBJECT_NAME, CREATED, LAST_DDL_TIME, STATUS
d.
OBJECT_TYPE, OBJECT_NAME, CREATED, FIRST_DDL_TIME, STATUS
Seleccione los tipos de objetos posibles que se almacenan en la tabla (de las opciones correctas
seleccione la mas completa): Seleccione una:
a.
PROCEDURE USER TABLE INDEX SEQUENCE FUNCTION TRIGGER
b.
PROCEDURE VIEW TABLE INDEX SEQUENCE FUNCTION TRIGGER
c.
VIEW TABLE INDEX SEQUENCE PROCEDURE TRIGGER
d.
PROCEDURE VIEW TABLE INDEX SEQUENCE FUNCTION TRIGGER COLUMN
Cuando un PLSQL (....) está asociado a una tabla, depende de la tabla?
Seleccione una:
Verdadero
Falso
Retroalimentación
La respuesta correcta es 'Verdadero'
Pregunta 7
Incorrecta
Puntúa 0,00 sobre 0,60
Marcar pregunta
Enunciado de la pregunta
a.
Ninguna de las anteriores
b.
Se eliminan registros de la tabla de la que depende
c.
Se borra la tabla y se vuelve a crear
Se modifica la estructura de la tabla de la que depende.
d.
Se cargan nuevos datos en la estructura
Se modifica la estructura de la tabla de la que depende.
Retroalimentación
Respuesta incorrecta.
La respuesta correcta es: Se borra la tabla y se vuelve a crear Se modifica
la estructura de la tabla de la que depende.
Pregunta 8
Correcta
Puntúa 0,60 sobre 0,60
En las Base de Datos para el ANALISIS, los datos personales son necesarios para el análisis en si, no
necesitandose para relacionar información.
S
e
l
e
c
c
i
o
n
e
u
n
a
:
V
e
r
d
a
d
e
Marcar pregunta
Enunciado de la pregunta
r
o
Falso
Retroalimentación
La respuesta correcta es 'Falso'
Cuestionario 8
Las tablas de dimensión transformadas se cargan:
Seleccione una:
a.
En tablas ODS_D_xxxxx
b.
En tablas D_xxxxx
c.
En tablas D_ODS_xxxxx
La clave de negocio de la dimensión Estudiante se carga desde los HECHOS debido a:
Seleccione una:
a.
Que se extraen desde los inscriptos eliminando valores repetidos
b.
Que se combinan más de un campo
c.
Que se extraen desde los inscriptos dejando valores repetidos
Dentro del Proceso ETL, las transformaciones se realizan a los efectos de:
Seleccione una:
a.
Unificar valores de los campos de las tablas de dimensión y de hechos
b.
Unificar únicamente valores de las claves de negocio en la fase 1
c.
Unificar todos los campos de la tabla de hechos
d.
Unificar únicamente valores de las claves subrogadas
Retroalimentación
Respuesta correcta
La respuesta correcta es: Unificar valores de los campos de las tablas de dimensión y de hechos
Pregunta 4
Correcta
Puntúa 0,50 sobre 0,50
La documentación del DWH se genera con el fin de:
Seleccione una:
Marcar pregunta
Enunciado de la pregunta
a.
Conocer todos los índices y restricciones de nuestro DWH
b.
Conocer todas las claves de referencia de nuestro DWH
c.
Conocer todo los datos cargados en nuestras tablas de dimensión y hechos
d.
Conocer el resumen de todos los elementos que conforman nuestro DWH
Para el ejemplo del material de clases, uno de los usos de los Triggers es:
Seleccione una:
a.
Cargar el período de carga de la tabla de hechos
b.
Cargar todos los datos de las tablas de dimensiones
c.
Cargar las claves subrogadas de las tablas de dimensión y de hechos
d.
Cargar la auditoría de nuestro DWH
a.
Controlar las claves de negocio de las dimensiones
b.
Controlar las claves subrogadas y de negocio de nuestro DWH
c.
Controlar la integridad referencial de nuestro DWH
d.
Controlar las claves subrogadas de las dimensiones
a.
Ser los valores que conoce la tabla de hechos y que relacionan las tablas de dimensión
b.
La tabla de hecho define la codificación de los valores de nuestro DWH
c.
Que la dimension de TIEMPO definen la codificación de los valores de nuestro DWH
d.
Ser los valores que conoce el negocio y codifica los valores a ser utilizados en nuestro DWH
a.
Está conformada por todas las claves subrogadas y de forma que identifiquen cada registro de la tabla de hechos
b.
Es necesario evitar duplicados en la tabla de dimension
c.
Está conformada por todas las claves de negocio
d.
Es necesario definir unicidad en la clave de negocio
Retroalimentación
Respuesta correcta
La respuesta correcta es: Está conformada por todas las claves subrogadas y de forma que identifiquen cada registro de la tabla de he
Pregunta 9
Correcta
Puntúa 1,00 sobre 1,00
En las tablas de dimensión (DT_xxxxxx) generalmente
se definen Seleccione una:
Marcar pregunta
Enunciado de la pregunta
a.
Cuatro campos: la clave primaria, la clave subrogada, la fecha y la descripcion
b.
Cuatro campos: la clave primaria, la clave secundaria, la clave de negocio y la descripción
c.
Tres campos: la clave sugrogada, la clave de negocio y la descripción
d.
Tres campos: la clave primaria, la clave subrogada y la clave de negocio
Retroalimentación
Respuesta correcta
La respuesta correcta es: Tres campos: la clave sugrogada, la clave de negocio y la descripción