Logo Studenta

DocsTec-1115

¡Este material tiene más páginas!

Vista previa del material en texto

USO DE TRIGGERS Y SNAPSHOTS COMO TÉCNICA INCREMENTAL EN EL 
PROCESO DE EXTRACCIÓN, TRANSFORMACIÓN Y TRANSFERENCIA 
DE DATOS (ETT) EN UN DATA WAREHOUSE. 
 
 
 
 
TESIS 
 
 
MAESTRÍA EN CIENCIAS EN TECNOLOGÍA INFORMÁTICA 
 
 
 
 
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY 
CAMPUS MONTERREY 
 
 
 
DIVISIÓN DE GRADUADOS EN ELECTRÓNICA, COMPUTACIÓN, 
INFORMÁTICA Y COMUNICACIONES 
 
 
 
POR 
MA. ELIZABETH ALCALÁ FLORES 
 
 
 
 
JUNIO 2003
 
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY 
 
 
DIVISIÓN DE ELECTRÓNICA, COMPUTACIÓN, 
INFORMACIÓN Y COMUNICACIONES 
 
 
PROGRAMAS DE GRADUADOS EN ELECTRÓNICA, COMPUTACIÓN, 
INFORMACIÓN Y COMUNICACIONES 
 
 
Los miembros del comité de tesis recomendamos que la presente tesis de Ma. 
Elizabeth Alcalá Flores sea aceptada como requisi to parcial para obtener el grado 
académico de Maestra en Ciencias en Tecnología Informática. 
 
 
Comité de tesis: 
 
 
 Carmen Isabel Reyes Peraza, MC
Asesor
 Juan Carlos Lavariega Jarquín, PhD.
Sinodal
 María Cristina Hernández Rodríguez, MC.
Sinodal
 
 
 
 
_________________________________________ 
David Alejandro Garza Salazar, PhD. 
Director del Programa de Graduados en Electrónica, 
Computación, Información y Comunicaciones. 
 
 
JUNIO 2003
 
USO DE TRIGGERS Y SNAPSHOTS COMO TÉCNICA INCREMENTAL EN EL 
PROCESO DE EXTRACCIÓN, TRANSFORMACIÓN Y TRANSFERENCIA 
DE DATOS (ETT) EN UN DATA WAREHOUSE. 
 
 
 
 
 
 
POR: 
 
MA. ELIZABETH ALCALÁ FLORES 
 
 
 
 
 
 
TESIS 
 
 
Presentada al Programa de Graduados en Electrónica, 
Computación, Información y Comunicaciones. 
 
 
 
Este trabajo es requisito parcial para obtener el título de 
Maestro en Ciencias en Tecnología Informática 
 
 
 
 
 
 
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS 
SUPERIORES DE MONTERREY 
 
 
 
 
 
JUNIO 2003
iv 
DEDICATORIA 
 
 
A mis padres, por haberme dado la vida, por su inmenso amor, 
porque los quiero mucho y por ser mi mayor bendición. 
 
 
 
 
A Marisol, a Norma, a Nora y a Thelma, por tantos momentos 
que hemos compartido y que sé son inolvidables para las cinco, por 
ser mis hermanas. 
 
 
 
 
A Horacio, por tener un lugar especial en mi corazón, por ser el 
ADMV y por contar con él en estos momentos. 
 
 
 
 
A mis sobrinos, Isis Vianney y Héctor Josué por siempre tener 
una sonrisa para mí. 
 
 
A Oraldo y a Susy, por ser mis mejores amigos y por los ánimos 
que siempre me dieron para terminar este trabajo. 
 
 
 
Dedico especialmente este trabajo a Dios, porque gracias a él 
tengo a tantas personas que me quieren a mi lado. 
 
 
v 
AGRADECIMIENTOS 
A la Lic. Carmen Isabel Reyes Peraza por su apoyo, sus consejos, 
su paciencia, su tiempo y sobre todo por haber aceptado ser parte de 
este trabajo como asesora. 
 
 
 
A la Ing. María Cristina Hernández Rodríguez y al Dr. Juan Carlos 
Lavariega Jarquín por las valiosas recomendaciones y observaciones 
que me hicieron para realizar un mejor trabajo. 
 
 
 
A mis padres, por esa confianza que tienen en mí y por el apoyo 
incondicional que siempre me han demostrado. 
 
 
 
A mis hermanas, por hacerme sentir cerca cuando estoy lejos y 
por creer en mí. 
 
 
A Horacio (ADMV) por estar conmigo cuando lo necesito, pero 
sobre todo por su amor incondicional. 
 
 
 
 
A todas la personas que de una u otra forma me apoyaron para la 
realización de esta tesis. 
 
 
vi 
RESUMEN 
En la actualidad, nuestra sociedad ha colocado a la información en un lugar de vital 
importancia, particularmente en las organizaciones ya que éstas necesitan tener un 
buen control y manejo de los datos para poder obtener mejores resultados en sus 
acciones. Como parte primordial para esto, es necesario contar con sistemas de 
información apropiados, dentro de ellos se encuentra el Data Warehousing. 
 
Un sistema Data Warehousing cuenta con varios procesos para su funcionamiento, 
uno de ellos y quizá el más importante es aquel que se encarga de la extracción, la 
transformación y la transferencia de los datos del sistema operacional fuente hacia el 
Data Warehouse, mismo que es conocido como el proceso ETT. Este proceso es uno de 
los que más tiempo y recursos demanda en la implementación de un Data Warehouse, y 
a pesar de ello existe una limitada investigación y documentación en torno a él. 
 
Para llevar a cabo el desarrollo del proceso ETT existen dos tipos de técnicas que se 
pueden emplear, las secuenciales y las incrementales. Las secuenciales se caracterizan 
por extraer, transformar y transferir todos los datos del sistema operacional fuente que 
son requeridos en el Data Warehouse, en cambio las incrementales se concentran en 
extraer, transformar y transferir únicamente las actualizaciones que surgieron en el 
sistema operacional fuente. 
 
La tesis que se presenta proporciona un estudio, con información necesaria, para 
llevar a cabo el proceso ETT con la técnica secuencial a través de archivos de datos y 
con la técnica incremental utilizando una combinación de Triggers y Snapshots. 
 
Además ofrece una comparación entre dichas técnicas para determinar en que 
medida es mejor una que otra y cuáles son los beneficios que cada una ofrece en el 
proceso de extracción, transformación y transferencia de datos desde un sistema 
operacional fuente hacia el Data Warehouse. 
 
 
vii 
TABLA DE CONTENIDO 
Dedicatoria ...................................................................................iv 
Agradecimientos..............................................................................v 
Resumen .......................................................................................vi 
Tabla de contenido ........................................................................vii 
Lista de Figuras.............................................................................. x 
Lista de Tablas .............................................................................xii 
CAPÍTULO 1. Introducción ................................................................. 1 
1.1 Definición del problema....................................................................2 
1.2 Objetivos .....................................................................................2 
1.2.1 Objetivos Específicos............................................................................2 
1.3 Justificación..................................................................................3 
1.4 Hipótesis ......................................................................................3 
1.5 Restricciones .................................................................................4 
1.6 Aportaciones de la investigación..........................................................4 
1.7 Organización del Documento ..............................................................5 
CAPÍTULO 2. Marco Conceptual.......................................................... 6 
2.1 Definiciones del Data Warehouse .........................................................6 
2.2 Características del Data Warehouse ......................................................8 
2.3 Ventajas del Uso del Data Warehouse....................................................9 
2.4 Desventajas del Uso del Data Warehouse.............................................. 10 
2.5 Procesos que conforman la operación de un Data Warehouse...................... 10 
2.6 Proceso de Extracción, Transformación y Transferencia (ETT) de datos.......... 12 
2.6.1 Extracción ....................................................................................... 13 
2.6.2 Transformación................................................................................. 13 
2.6.3 Transferencia ................................................................................... 13 
2.6.4 Problemas en el proceso ETT ................................................................ 14 
CAPÍTULO 3. Técnicas Empleadas en el Proceso de Extracción, 
Transformación y Transferenciade Datos (ETT)..................16 
viii 
3.1 Clasificación de las técnicas empleadas en el proceso ETT......................... 16 
3.2 Técnicas Secuenciales .................................................................... 16 
3.2.1 Archivos de datos. ............................................................................. 17 
3.2.2 Queries distribuidos ........................................................................... 17 
3.3 Técnicas Incrementales................................................................... 18 
3.3.1 Snapshots ........................................................................................ 19 
3.3.2 Time Stamp ..................................................................................... 20 
3.3.3 Particionamiento............................................................................... 21 
3.3.4 Triggers ......................................................................................... 21 
3.3.5 Snapshots diferenciales ....................................................................... 22 
3.3.6 Habilitación de Consultas (Queryable) ..................................................... 22 
3.3.7 Monitoreo de registros ........................................................................ 22 
3.4 Ejemplos para el uso de las técnicas secuenciales e incrementales ............... 23 
3.4.1 Con archivos de datos. ........................................................................ 24 
3.4.2 Con queries distribuidos ...................................................................... 26 
3.4.3 Con Snapshots .................................................................................. 27 
3.4.4 Con Triggers..................................................................................... 27 
CAPÍTULO 4. Definición del Caso de Estudio: El Data Warehouse del Área 
de Escolar del Tecnológico de Monterrey y su Proceso ETT ....29 
4.1 Los servicios escolares del Tecnológico de Monterrey en el Data Warehouse .... 29 
4.2 Proceso ETT que se siguió en el caso de estudio ..................................... 32 
4.2.1 Extracción y Transformación................................................................. 37 
4.2.2 Transferencia ................................................................................... 39 
4.3 Pruebas realizadas ........................................................................ 40 
CAPÍTULO 5. Combinación de Triggers y Snapshots para el proceso ETT....42 
5.1 Explicación general del Proceso ETT que se propone con una combinación de 
Triggers y Snapshots. ..................................................................... 42 
5.2 Cambios estructurales al Data Warehouse del área de escolar del 
Tecnológico de Monterrey................................................................ 44 
5.3 Desarrollo de Triggers, para la extracción local ...................................... 46 
5.3.1 Validación ....................................................................................... 46 
5.3.2 Extracción - Actualización.................................................................... 48 
5.3.3 Manejo de Excepciones ....................................................................... 51 
5.4 Desarrollo de Trigger para la transferencia de los datos a la tabla 
concentradora. ............................................................................ 51 
5.4.1 String de Conexíón............................................................................. 52 
5.4.2 DbLink… .......................................................................................... 52 
5.5 Desarrollo de Snapshot ................................................................... 53 
ix 
5.5.1 Creación del Snapshot......................................................................... 53 
5.5.2 Creación del Snapshot Log.................................................................... 53 
5.6 Pruebas realizadas ........................................................................ 54 
CAPÍTULO 6. Resultados Obtenidos....................................................56 
6.1 Proceso ETT utilizando archivos de datos.............................................. 56 
6.1.1 Ventajas. ........................................................................................ 57 
6.1.2 Desventajas ..................................................................................... 57 
6.2 Proceso ETT utilizando Snapshots y Triggers .......................................... 58 
6.2.1 Ventajas. ........................................................................................ 60 
6.2.2 Desventajas ..................................................................................... 60 
6.3 Comparación de las dos técnicas del proceso ETT realizadas....................... 61 
CAPÍTULO 7. Conclusiones y Trabajos Futuros .....................................63 
7.1 Conclusiones ............................................................................... 63 
7.2 Trabajos futuros ........................................................................... 65 
Bibliografía ..................................................................................66 
Anexos ........................................................................................68 
A.1 Diccionario de datos de la tabla ST4ORGN ............................................ 68 
A.2 Diccionario de datos (modelo de datos del sistema operacional que se utilizó 
para crear la tabla Profesor del Data Warehouse).................................... 68 
A.3 Indicaciones para extraer los datos y manejo de errores ........................... 73 
A.4 Código del programa para la extracción y transformación de los datos del 
sistema operacional del Tecnológico de Monterrey. ................................. 77 
A.5 Código del programa de transferencia de datos en el Data Warehouse........... 79 
A.6 Trigger SP1PERS_UPDATE................................................................. 84 
A.7 Trigger SI1FACD_UPDATE................................................................. 84 
A.8 Trigger SIBINST_UPDATE.................................................................. 85 
A.9 Trigger SP1IDEN_UPDATE................................................................. 86 
A.10 Trigger SO1DEGR_UPDATE................................................................ 87 
A.11 Trigger DWH_ESCOLAR_UPDATE......................................................... 89 
Vita… . .........................................................................................91 
 
x 
LISTA DE FIGURAS 
Figura 2-1 Procesos en un Data Warehouse .................................................... 11 
Figura 2-2 Operaciones involucradas en el proceso ETT...................................... 14 
Figura 3-1 Proceso ETT con archivo de datos .................................................. 17 
Figura 3-2 Proceso ETT con Snapshot ........................................................... 20 
Figura 3-3 Estructura de las tablas de unidades organizacionales .......................... 23 
Figura 4-1 Sistemas operacionales relacionados con el Modelo de datos del Data 
Warehouse del Área de Escolar .................................................................. 30 
Figura 4-2 Modelo de datos de la base de datos operacional utilizado para la generación 
de la tabla Profesor del Data Warehouse....................................................... 31 
Figura 4-3 Tabla Profesor del Data Warehouse del área de escolar. ....................... 33 
Figura 4-4 Ejemplo del contenido del archivo de datos de Profesores..................... 38 
Figura 5-1 Representación gráfica de lo que se propone para llevar a cabo el proceso 
ETT con una combinación del uso de Snapshots y Triggers .................................. 43 
Figura 5-2 Tabla Profesor del Data Warehouse ................................................ 45 
Figura 5-3 Ejemplo dela primera validación que se hace en los triggers creados para la 
actualización de la tabla Profesor. .............................................................. 47 
Figura 5-4 Ejemplo de la segunda validación que se hace en uno de los triggers creados 
para la actualización de la tabla Profesor...................................................... 47 
Figura 5-5 Campos que actualiza el triggers SP1IDEN_UPDATE en la tabla PROFESOR... 48 
Figura 5-6 Campos que actualiza el trigger SP1PERS_UPDATE en la tabla PROFESOR.... 49 
Figura 5-7 Campos que actualiza el trigger SI1FACD_UPDATE en la tabla PROFESOR.... 49 
Figura 5-8 Campos que actualiza el triggers SIBINST_UPDATE en la tabla PROFESOR.... 49 
Figura 5-9 Campos que actualiza el triggers SO1DEGR_UPDATE en la tabla PROFESOR . 50 
Figura 5-10 Campos que actualiza el triggers SO1DEGR_UPDATE en la tabla PROFESOR 52 
xi 
Figura 5-11 Estructura de la tabla MLOG$_DWH_PROFESOR, generada con el Snapshot 
Log ................................................................................................... 54 
 
xii 
LISTA DE TABLAS 
 
Tabla 3-1 Extracción de cambios utilizando time stamp ..................................... 21 
Tabla 4-1 Diccionario de datos de la estructura Profesor. ................................... 34 
Tabla 4-2 Origen de los datos para la tabla Profesor ......................................... 35 
Tabla 4-3 Ejemplo de dónde y cómo obtener los posibles valores para el campo 
CLAVE_CAMPUS de la tabla Profesor del Data Warehouse ................................... 36 
 1 
CAPÍTULO 1. INTRODUCCIÓ N 
El Data Warehouse no es un producto sino un conjunto de procesos, para consolidar 
y administrar datos de variadas bases de datos fuentes, con el propósito de responder 
preguntas de negocios, así como tomar decisiones de una manera más rápida y sencilla 
que antes no era posible. 
 
El Data Warehouse ha evolucionado de tal forma que se ha convertido en una clase 
de aplicación popular en los negocios, debido a que intenta responder a la compleja 
necesidad de obtener información útil, sin sacrificar el rendimiento de las aplicaciones 
operacionales; es decir, cumple con las necesidades actuales y futuras para el manejo, 
explotación y administración de la información. 
 
Los procesos principales que conforman la operación de un Data Warehouse son los 
siguientes: 
 
1. Obtención de los datos operacionales: origen de los datos. 
2. Extracción de los datos: selección sistemática de los datos operacionales que 
serán usados para poblar el Data Warehouse. 
3. Transformación de los datos: proceso de cambio en los datos operacionales para 
lograr los objetivos de orientación a la toma de decisiones del Data Warehouse. 
4. Transferencia o carga de los datos: inserción de los datos en el Data Warehouse. 
5. Herramientas de acceso al Data Warehouse. 
 
Los procesos 2, 3 y 4, conforman lo que se conoce como el proceso de Extracción, 
Transformación y Transferencia de datos, desde su origen en los sistemas operacionales 
hasta su destino en el Data Warehouse, estos tres procesos se identifican mejor como el 
proceso ETT por sus siglas, es en este proceso en donde se lleva a cabo la extracción y 
transformación de los datos que son necesarios del sistema operacional fuente y la 
transferencia de los mismos hacia el Data Warehouse. Este proceso es el que más tiempo 
y recursos demanda en el proyecto, y en el que se enfoca este trabajo de tesis. 
 
Las técnicas para realizar el proceso ETT pueden clasificarse en dos tipos, 
secuenciales que se caracterizan por extraer, transformar y transferir todos los datos 
del sistema operacional fuente que son requeridos en el Data Warehouse e 
incrementales que se concentran en extraer, transformar y transferir únicamente las 
actualizaciones que surgieron en el sistema operacional fuente. Las primeras requieren 
más inversión de tiempo para lograr su propósito, mientras que las segundas pueden ser 
más rápidas, siempre y cuando se empleen adecuadamente y se cuente con las 
capacidades necesarias para realizarlas. 
 
 
 2 
1.1 Definición del problema 
En la actualidad toda organización requiere un uso adecuado de la información, por 
lo que la implementación de un Data Warehouse es cada vez más frecuente. Es por ello 
que resulta necesario contar con documentación que ayude a realizar dicha 
implementación. 
 
Una de las partes más importantes en un proyecto Data Warehouse es el proceso ETT 
encargado de extraer los datos, transformarlos y transferirlos de uno o varios sistemas 
operacionales fuente al Data Warehouse. 
 
Sin embargo, a pesar de lo anterior, existe una limitada investigación y estudios 
sobre este tema, esto conlleva a la elección de una técnica para realizar la extracción, 
transformación y transferencia de datos sin haber hecho una evaluación previa del 
rendimiento y/o los beneficios que ésta ofrece. 
 
En otros casos se decide adquirir un software comercial para realizar dichas tareas lo 
cual representa una gran inversión económica, que independientemente de que se 
cuente con los recursos económicos para ello, es un gasto innecesario. 
 
 
1.2 Objetivos 
El objetivo de esta tesis es proporcionar un estudio con información necesaria para 
utilizar los archivos de datos y una combinación de Triggers y Snapshots como técnicas 
de extracción, transformación y transferencia de datos en un Data Warehouse. Además 
de determinar en que medida el uso de la combinación de Snapshots y Triggers es más 
eficiente y ofrece mejores resultados que el uso de archivos, como técnicas 
incrementales. 
 
1.2.1 Objetivos Específicos 
Los objetivos específicos a cumplir en el trabajo presentado son: 
 
? Realizar el proceso ETT, del Data Warehouse del área de escolar del Tecnológico de 
Monterrey, con técnicas incrementales usando una combinación de Triggers y 
Snapshots, así como archivos de datos para hacer una comparación entre las dos 
técnicas. 
? Definir las ventajas, desventajas y características que ofrecen el uso de la 
combinación de Triggers y Snapshots y el uso de archivos de datos en el proceso 
ETT. 
? Llevar a cabo la investigación de acción, utilizando la base de datos de Escolar del 
Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Monterrey. 
 3 
? Desarrollar los programas computacionales en lenguaje Pro*C para extraer, 
transformar y transferir los datos de los sistemas operacionales fuente a una de las 
entidades del área de escolar del Data Warehouse del Tecnológico de Monterrey. 
? Crear los Triggers y Snapshots necesarios para extraer, transformar y transferir los 
datos del sistema operacional al Data Warehouse de manera incremental, para una 
de las tablas del Data Warehouse del Tecnológico de Monterrey. 
 
 
1.3 Justificación 
Es evidente que estamos en la era de la información, es decir, todo gira en torno a 
ésta; ello implica que se debe tener el mejor manejo de la misma para obtener 
beneficios óptimos. 
 
El proceso de extracción, transformación y transferencia de datos en un proyecto 
Data Warehouse es de mucha importancia debido, precisamente, a que los datos son la 
materia prima principal en dicho proyecto, tener los datos correctos en el momento 
correcto en el Data Warehouse es lo que se requiere para que la toma de decisiones sea 
eficiente. Este proceso aún no se realiza mediante una técnica estándar y son pocos los 
estudios que se han hecho en torno al tema, a pesar de que éste es una parte 
importante en el proyecto Data Warehouse [Burleson, 1997]. 
 
Con base en el señalamiento de Burleson sobre la escasa existencia de estudios que 
ayuden en el desarrollo del proceso ETT, y la propia experiencia al trabajar con dicho 
proceso de un Data Warehouse, se manifestó la inquietud e interés por realizar un 
estudio sobre las técnicas incrementales usadas en el proceso mencionado, tomando en 
cuenta principalmente como punto de comparación una técnica con uso de la 
combinación de Triggersy Snapshots y una técnica con el uso de archivos de datos. Con 
lo anterior se pretende conocer las características, ventajas y desventajas que cada una 
de las técnicas analizadas puede ofrecer, además de cómo pueden ser utilizadas en un 
Proyecto Data Warehosue. 
 
 
1.4 Hipótesis 
El uso de una combinación de Snapshots y Triggers como técnica incremental en el 
proceso (ETT) de extracción, transformación y transferencia de datos de los sistemas 
operacionales fuente al Data Warehouse, es mejor en cuanto a tiempo de procesamiento 
en comparación con el uso de los archivos de datos, en un esquema de múltiples bases 
de datos. 
 
 
 4 
1.5 Restricciones 
La tesis que se presenta considera algunas restricciones, debido a que el proceso de 
ETT en un proyecto Data Warehouse es extenso y su desarrollo depende de las 
capacidades que los sistemas operacionales y el Data Warehouse tengan. Así pues, las 
restricciones que será preciso tener en cuenta son: 
 
? Únicamente se realizará el estudio del proceso ETT y las técnicas para llevarlo a 
cabo en una parte de un proyecto Data Warehouse. 
? En este documento no se analizarán todas las técnicas existentes de extracción, 
transformación y transferencia de datos. 
? La comparación de dos técnicas será únicamente entre el uso de archivos de datos 
y uso de Snapshots en combinación con el uso de Triggers. 
? La investigación de acción se reduce a una parte del Data Warehouse que se está 
implementando para el área de Servicios Escolares en el Instituto Tecnológico y de 
Estudios Superiores de Monterrey, Campus Monterrey. 
? La base de datos que funge como sistema operacional fuente en el Data Warehouse 
mencionado anteriormente, se encuentra en plataforma Oracle y cuenta con las 
siguientes características. 
o Oracle8 Enterprise Edition Release 8.0.6.3.0 
o PL/SQL Release 8.0.6.3.0 
? La base de datos en el Data Warehouse que se utilizará también está en plataforma 
Oracle, pero con las siguientes características. 
o Oracle8 Enterprise Edition Release 8.0.6.0.0 
o PL/SQL Release 8.0.6.0.0 
 
 
1.6 Aportaciones de la investigación 
Con la culminación de esta tesis se pretende generar las siguientes aportaciones: 
 
1. Obtener una técnica incremental que sea una solución factible de implementar 
en el proceso ETT, para llevar a cabo la extracción, transformación y 
transferencia de datos de una base de datos operacional a un Data Warehouse, a 
través de una combinación que haga uso de Snapshots y Triggers. 
2. La técnica incremental que se proponga con el uso de una combinación de 
Snapshots y Triggers para la plataforma Oracle sirva como base para dar solución 
en otras plataformas. 
3. Hacer la comparación entre el proceso ETT utilizando archivos de datos y el que 
se propone utilizando una combinación de Snapshots y Triggers. 
4. Los encargados del Data Warehouse en el Tecnológico de Monterrey podrán 
contar con un estudio sobre la extracción, transformación y transferencia de 
datos de una base de datos operacional a un Data Warahouse usando la técnica 
propuesta, que fue realizado exclusivamente para el proyecto de Data 
Warehouse del área de escolar del Tecnológico de Monterrey. 
 
 5 
1.7 Organización del Documento 
El presente documento de tesis, está estructurado con siete capítulos, el primero de 
ellos constituye la parte introductoria a todo el documento, enunciando el 
planteamiento del problema, los propósitos y justificación de este estudio, así como las 
hipótesis, restricciones y aportaciones. 
 
En el capítulo dos se incluye una breve introducción de lo qué es el Data Warehouse, 
diferentes definiciones, características, ventajas y desventajas que ofrece un Data 
Warehouse, así como la descripción del proceso de Extracción, Transformación y 
Transferencia (ETT) de datos y los problemas que éste puede presentar en un proyecto 
de Data Warehouse. 
 
La clasificación y descripción de las técnicas empleadas en el proceso ETT y algunos 
ejemplos de ellas forman el capítulo tres. 
 
El capítulo cuatro trata sobre la definición, documentación técnica y de ejecución 
del caso de estudio, como lo es: las bases de datos involucradas y la forma en que se 
realiza el proceso ETT actualmente en el Data Warehouse del Tecnológico de Monterrey. 
 
En el capítulo cinco se describe el proceso ETT que se llevo a cabo con el uso de la 
técnica incremental propuesta, es decir, usando la combinación de Snapshots y Triggers. 
 
Los resultados obtenidos con la implementación de la técnica usando la combinación 
de Triggers y Snpashots y de la técnica usando archivos de datos en el proceso ETT, así 
como la comparación de los resultados de ambas técnicas, están concentrados en el 
capítulo seis. 
 
Por último, en el capítulo siete se plasman las conclusiones generales que se 
obtuvieron de la realización del trabajo de tesis y el planteamiento de trabajos futuros 
que se pudieran derivar del trabajo presentado. 
 
 6 
CAPÍTULO 2. MARCO CONCEPTUAL 
Las necesidades de información hoy en día han variado. La disponibilidad de gran 
cantidad de información es de vital importancia para los negocios, ya que las decisiones 
para el futuro se suelen tomar con base a dicha información. Los procesos que obtienen 
información con la estructura adecuada (resumidos, globalizados, etc.) son sistemas 
que, a priori, involucran un alto costo en consumo de recursos, dado el gran volumen de 
datos sobre el que actúan y el tiempo de procesamiento que conlleva la obtención de las 
nuevas estructuras. 
 
Está claro que las denominadas "bases de datos operacionales" o "de producción" de 
una empresa, no se pueden ver afectadas en sus tiempos de respuesta por dicho 
consumo en recursos, esto, unido al hecho de que la estructura de las bases de datos de 
producción puede no ser la opción óptima para la obtención de la información deseada, 
obliga a la aparición de una nueva estructura en la información: el Data Warehouse, el 
cual consiste en una "réplica masiva de los datos" disponibles en las bases de datos 
operacionales, de tal forma que su estructura ya no responde a las necesidades del 
modelo relacional puro, puesto que en la base de datos del Data Warehouse no se van a 
efectuar las operaciones que se hacen sobre las base de datos operacionales que le 
dieron origen. Dado lo anterior ya no existe la necesidad de mantener una estructura de 
información que esté normalizada, lo que supone un ahorro en el fraccionamiento de la 
información y en las costosas operaciones de recuperación, y al mismo tiempo, se puede 
tener una "réplica" conjunta de todas las bases de datos operacionales de la 
organización. 
 
Así pues tras las dificultades de los sistemas tradicionales para satisfacer las 
necesidades de información, surge el concepto de Data Warehouse como solución. Este 
término establecido por Bill Inmon, se traduce literalmente como almacén de datos. No 
obstante, si el Data Warehouse fuese exclusivamente un almacén de datos, los 
problemas seguirían siendo los mismos que en los Centros de Información. 
 
El presente capítulo tiene como objetivo principal dar una breve introducción de lo 
que es un Data Warehouse, mencionando diferentes definiciones, ventajas, desventajas, 
así como los procesos que lo conforman. De igual manera se hace una descripción del 
proceso de Extracción, Transformación y Transferencia (ETT) de datos dentro de un 
proyecto Data Warehouse y los problemas que se pueden presentar en este proceso. 
 
 
2.1 Definiciones del Data Warehouse 
El concepto de Data Warehousing surgió a mediados de los 80’s, y en esencia 
pretendía proporcionar un modelo arquitectónico para el flujo de datos de los sistemas 
operacionales hacia los ambientes de soporte en la toma de decisiones, al mismo tiempo 
 7 
era un intento por solucionar los diversos problemas asociados con este flujo y con los 
altos costos inmersos en él [Manning, 1999]. 
 
Existen muchas definiciones de Data Warehouse, que han ido surgiendocon el paso 
de los años. 
 
En opinión de algunos autores [Inmon, Gupta, Jonhson, Mayer] un Data Warehouse 
puede definirse de muchas maneras, la siguiente definición toma las puntos más 
importantes que cada uno de los autores mencionados considera como Data Warehouse. 
 
Un Data Warehouse es una colección de datos orientados a temas específicos, 
integrados, no volátiles, variantes en el tiempo, organizados para soportar necesidades 
empresariales, transformados lógica y físicamente a partir de varias aplicaciones fuentes 
con el fin de proveer beneficios empresariales, eliminar una gran cantidad de datos 
inútiles y no deseados, y cubrir todos los aspectos de los procesos, productos y 
consumidores de la compañía; en otras palabras, es una estructura de base de datos que 
concentra información de manera detallada o resumida que puede provenir de múltiples 
fuentes de datos, que está orientada a servir para el proceso de toma de decisiones, y 
que se encuentra almacenada en una forma fácil de comprender por los usuarios finales. 
Los datos están estructurados de tal forma que permiten hacer más fácil y efectiva su 
administración, acceso y análisis. 
 
Castañeda [2001], menciona que las definiciones del Data Warehouse lo presentan 
de una u otra manera como una solución que se basa en: 
 
1. Datos que pueden provenir de diferentes y variadas fuentes de información. 
2. Datos que ayudan a establecer la situación de la empresa desde una perspectiva 
histórica. 
3. Datos que se convierten en información básica para la toma de decisiones de la 
organización 
4. Datos que deben de tener una presentación ideal para su entendimiento y 
alineación con los objetivos de la empresa, permitiendo así la generación del 
conocimiento. 
 
La innovación de la Tecnología de Información dentro de un ambiente Data 
Warehousing, puede permitir a cualquier organización hacer mejor uso de los datos, 
tratándolos como ingredientes clave para hacer más efectivo el proceso de toma de 
decisiones. Las organizaciones tienen que aprovechar sus recursos de información para 
crear la información de la operación del negocio, pero deben considerarse las 
estrategias tecnológicas necesarias para la implementación de una arquitectura 
completa de Data Warehouse. 
 
Actualmente el Data Warehouse es el centro de atención de las grandes 
instituciones, porque provee un ambiente para que éstas hagan un mejor uso de la 
información que es administrada por diversas aplicaciones operacionales. 
 
 
 8 
2.2 Características del Data Warehouse 
El Data Warehouse puede verse como un lugar en donde están almacenados todos los 
datos necesarios para realizar las funciones de administración de la empresa, de manera 
que puedan utilizarse fácilmente según se necesite. El contenido de los datos, la 
organización y la estructura son dirigidos a satisfacer las necesidades de información. 
 
A continuación se dan a conocer algunas de las características más importantes de 
un Data Warehouse [Solis], [Inmon, 1996]: 
 
? Contiene datos históricos, resumidos y consolidados: 
o Bases de datos muy grandes. 
o Datos de fuentes heterogéneas que requieren de integración para formar parte 
del Data Warehouse. 
? Se puede realizar un procesamiento intensivo de búsquedas-consultas: 
o Dirigidas por tiempo. 
o Modelos multidimensionales y nuevas operaciones como la CUBE* 
? Es orientado al tema: 
o Los datos se organizan de acuerdo al tema, no a la aplicación, por ejemplo una 
compañía de seguros podría organizar sus datos por cliente, premios, y 
reclamaciones, en lugar de por diferentes productos (automóviles, vida, etc.). 
o Los datos organizados por sujetos contienen sólo la información necesaria para 
los procesos de soporte en la toma de decisiones. 
? Es integrado: 
o Cuando los datos residen en muchas aplicaciones separados por los distintos 
entornos operacionales, la descodificación de éstos es a menudo inconsistente. 
Por ejemplo, en una aplicación, la palabra género podría codificarse como "m" 
y "f" en otra como "0" y "1"; cuando los datos fluyen de un entorno operacional a 
un entorno de Data Warehouse, estos asumen una codificación consistente, por 
ejemplo género siempre se transformaría a "m" y "f". 
? Tiene variación-temporal: 
o El Data Warehouse contiene un lugar para guardar datos con una antigüedad de 
5 a 10 años, o incluso más antiguos, para poder ser usados en comparaciones, 
tendencias y previsiones. Estos datos no se modificarán. 
o Se pueden establecer pronósticos para planificar esfuerzos. 
? No es inestables: 
o Los datos no serán modificados o cambiados de ninguna manera una vez que 
han sido introducidos en el Data Warehouse, solamente podrán ser cargados, 
leídos y/o accedidos. 
? Ayuda a realizar la toma de decisiones estratégicas a mediano y largo plazo. 
? Permite que la información de administración sea accesible, correcta, uniforme y 
actualizada. 
? Acceso interactivo e inmediato a información estratégica de un área de negocios. 
 
 
 
* Operación utilizada para calcular subtotales de todas las posibles combinaciones de un grupo de 
dimensiones y además calcular un gran total [ORACLE 8i]. 
 9 
2.3 Ventajas del Uso del Data Warehouse 
Es necesario conocer las ventajas que puede ofrecer un Data Warehouse para 
justificar la elección de un proyecto de este tipo, a continuación se mencionan algunas 
de las más importantes que describe [Díaz]: 
 
? La implementación de un Data Warehouse permite centralizar todos los datos de la 
organización dentro de un único almacenamiento. 
? La administración de un Data Warehouse es más eficiente que administrar varios 
Data marts*. 
? El uso de un Data Warehouse permite identificar nuevas oportunidades de negocios. 
? En un Data Warehouse se obtienen respuestas en tiempos razonables. 
? El Data Warehouse permite analizar desde una perspectiva en el tiempo, con la 
información histórica que se brinde, proporcionando la capacidad de aprender de 
los datos del pasado y de predecir situaciones futuras en diversos escenarios. 
? Permite tener fuentes externas para ayudar con la información que se requiere. 
? La información proveniente de fuentes operacionales es transformada y limpiada 
para lograr consistencia. 
? Simplifica dentro de la empresa la implantación de sistemas de administración 
integral de la relación con el cliente. 
? Menor costo en la toma de decisiones: se suprime el despilfarro de tiempo que se 
producía al intentar ejecutar consultas de datos largas y complejas en las bases de 
datos operacionales, las cuales están diseñadas específicamente para transacciones 
cortas y sencillas. 
? Mayor flexibilidad ante el entorno: el Data Warehouse convierte los datos 
operacionales en información relacionada y estructurada que genera el 
"conocimiento" necesario para la toma de decisiones. Esto permite establecer una 
base única del modelo de información de la organización, que puede dar lugar a 
una visión global de la información en base a los conceptos de negocio que tratan 
los usuarios. Además, aporta una mejor calidad y flexibilidad en el análisis del 
mercado, y del entorno en general. 
? Mejor servicio al cliente: lo que repercute en la relación directa con el cliente, que 
como se sabe, es uno de los pilares básicos en los que descansa cualquier 
organización. De hecho, el que un Data Warehouse implique una mayor flexibilidad 
ante el entorno tiene una consecuencia directa en una mayor capacidad para 
responder a las necesidades de los clientes. 
? Rediseño de procesos: ofrecer a los usuarios una capacidad de análisis de la 
información de su negocio que tiende a ser ilimitada y permite con frecuencia 
obtener una visión más profunda y clara de los procesos de negocio propiamente 
dichos, lo que a su vez permite obtener ideas renovadoras para el rediseño de los 
mismos. 
? La capacidad de decisiones distribuidas es cada vez más necesaria para las 
empresas,y es uno de los aspectos en los que el Data Warehouse puede aportar una 
contribución esencial. 
 
 
* Los Data Marts generalmente se conocen como un componente del Data Warehouse, están 
enfocados en un conjunto de datos específicos o en un proceso del negocio [Hammergren, 1996]. 
 10 
La ventaja principal de este tipo de sistemas se basa en la estructura de la 
información. Este concepto significa el almacenamiento de información homogénea y 
fiable, en una estructura basada en la consulta y el tratamiento jerarquizado de la 
misma, y en un entorno diferenciado de los sistemas operacionales. 
 
 
2.4 Desventajas del Uso del Data Warehouse 
Así como es importante conocer las ventajas de un Data Warehouse, también lo es 
conocer cuáles pueden ser algunas de sus desventajas. 
 
? Realizar una consulta muy compleja en un Data Warehouse con una base de datos 
muy grande puede ser un proceso lento, sobre todo si no se cuenta con una 
plataforma paralela y una capacidad de consultas paralelizadas. 
? La implementación de un Data Warehouse requiere de un equipo considerable de 
analistas, de desarrolladores, de hardware, de software, de tiempo y de dinero. 
? El tiempo de desarrollo e implementación de un Data Warehouse puede durar 
muchos meses o más de un año. 
? La construcción y manejo final de un Data Warehouse por parte de los usuarios 
puede ser muy complejo y difícil sino se cuenta con la capacitación y las 
herramientas adecuadas. 
 
 
2.5 Procesos que conforman la operación de un Data Warehouse 
Es importante considerar los procesos que conforman la operación de un Data 
Warehouse, ya que estos son los que hacen posible la existencia del mismo. A 
continuación se describen dichos procesos clave en la administración y operación de un 
Data Warehouse: 
 
1. Obtención de los datos operacionales: origen de los datos. 
2. Extracción: obtener los datos de las distintas fuentes tanto internas como 
externas, para poblar el Data Warehouse. 
3. Transformación: filtrar, limpiar, depurar, homogeneizar y agrupar los datos 
para lograr los objetivos orientados a la toma de decisiones. 
4. Transferencia y/o Carga: organizar y actualizar los datos en el Data Warehouse. 
5. Explotación: extraer y analizar los datos en los distintos niveles de agrupación 
del Data Warehouse. 
 
Desde el punto de vista del usuario, el único proceso visible es la explotación del 
Data Warehouse, aunque el éxito del Data Warehouse radica en los procesos 2, 3 y 4, 
que alimentan la información del mismo, y suponen el mayor porcentaje de esfuerzo 
(aproximadamente un 80%) a momento de desarrollar un Data Warehouse. 
 
 11 
En la figura 2-1, se muestran gráficamente los procesos que se llevan a cabo en un 
proyecto Data Warehousing, en ésta se puede ver que los datos operaciones pueden 
tener su origen en fuentes internas y/o externas, ya sean sistemas operacionales 
corporativos, sistemas operacionales departamentales u otros; los datos operacionales 
son los que normalmente están presentes en las organizaciones y es a partir de los 
cuales se realiza la captura de datos que se contemplará en el Data Warehouse. De igual 
manera se pueden ver las tres funciones u operaciones clave en el proceso ETT, 
mostradas en orden, la Extracción, la Transformación y la Transferencia de los datos 
operacionales al Data Warehouse. Y por último se ve la Explotación de los datos 
existentes en el Data Warehouse. 
 
 
Figura 2-1 Procesos en un Data Warehouse 
 
Las tareas de Extracción, Transformación, Transferencia (ETT) o carga de datos 
requieren de mucho tiempo en un proyecto de Data Warehouse; en estas tareas es 
donde se demanda el mayor esfuerzo [ORACLE]. 
 
El proceso de Explotación, también podría denominarse como un componente de 
administración, y los servicios que ofrece incluye un servicio de mantenimiento de datos 
y un servicio de distribución para exportar datos del Data Warehouse a servidores de 
bases de datos descentralizadas, y a otros sistemas de soporte en la toma de decisiones 
de los usuarios. El componente de administración también ofrece servicios de seguridad 
(archivo, respaldos, recuperación) y monitorización. 
 
El Data Warehouse no produce resultados en forma mágica. Los administradores de 
empresas y los analistas deben acceder y recuperar los datos del Data Warehouse y 
convertirlos en información y en hechos. Estos hechos conforman los cimientos de una 
base de conocimientos que sirve para determinar la salud de la empresa y la dirección 
futura del negocio. Como en las granjas, los usuarios sólo cosecharán la información que 
se pueda derivar de los datos que sembraron en el Data Warehouse, y sólo mediante el 
uso de herramientas adecuadas, algunas de ellas son: 
 
? Las de acceso y recuperación. 
? Las de reportes de base de datos 
Extracción 
Transform
ación 
Transferencia 
 
Data 
Warehouse 
Ex
pl
ot
ac
ió
n 
 
 Fuentes Externas 
 
 
 Fuentes 
Interna
s 
Da
to
s 
O
pe
ra
ci
on
al
es
 
Proceso ETT 
 12 
? Las de análisis 
? Las de data mining (minería de datos). 
 
Uno de los retos al cosechar un Data Warehouse consiste en no convertir montículos 
de información en montañas de datos. Es fácil caer en la trampa de "entre más, mejor". 
No es esencial conocer todos los hechos, sólo los cruciales. 
 
Herramientas de soporte de decisiones es el término genérico para referirse a las 
aplicaciones y herramientas del Data Warehouse que se emplean para recuperar, 
manipular y analizar los datos, y para presentar después los resultados. Estas 
herramientas se usan en dos modalidades: verificación y descubrimiento. En la 
modalidad de verificación, el usuario empresarial crea una hipótesis -una cuestión 
empresarial- e intenta confirmarla accediendo a los datos en el Data Warehouse. Las 
herramientas que implementan la modalidad de verificación son de consulta, de 
sistemas de reporte y de análisis multidimensional. En la modalidad de descubrimiento, 
las herramientas intentan descubrir características en los datos como patrones de 
compra o la asociación entre la adquisición de artículos diferentes. En la modalidad de 
descubrimiento, o eureka, el usuario empresarial no conoce ni sospecha los patrones y 
asociaciones descubiertos. La herramienta de Data Mining es un ejemplo de la modalidad 
de descubrimiento. Desde la perspectiva de disponibilidad de herramientas, las dos 
modalidades de verificación y descubrimiento se clasifican en tres enfoques: 
Procesamiento Informático, Procesamiento Analítico y Data Mining*. 
 
 
2.6 Proceso de Extracción, Transformación y Transferencia (ETT) de 
datos. 
La extracción, transformación y transferencia de los datos de los sistemas 
operacionales fuente al Data Warehouse forman el proceso mejor conocido como ETT en 
un proyecto Data Warehouse. 
 
El propósito del Data Warehouse de servir como un medio para poder analizar el 
negocio, hace latente la necesidad mantener actualizados los datos regularmente, en 
otras palabras, el proceso ETT no se realiza una sola vez, constantemente se lleva a 
cabo, razón por la cual frecuentemente se ha considerado como una tarea difícil en el 
proyecto del Data Warehouse. 
 
En el proceso ETT se encuentran los pasos por los que atraviesan los datos para ir 
desde el sistema operacional (fuente de datos utilizada) hasta el Data Warehouse. 
 
La extracción es lo primero que se hace, después en algunas ocasiones se requiere 
de la transformación y por último se lleva a cabo la Transferencia de los datos. 
 
 
* es al análisis de la información con el fin de descubrir patrones, relaciones, reglas, asociaciones 
o incluso excepciones que sean útiles para la toma de decisiones [Estivill, 1997]. 
 13 
2.6.1 Extracción 
La extracción se refiere al mecanismo por medio del cual los datos operacionales son 
leídos desde su fuente original. 
 
Diseñar y crear el proceso de extracciónusualmente es la tarea que más tiempo 
consume en el proceso ETT y por supuesto en el proyecto de Data Warehouse completo. 
Los sistemas operacionales fuente pueden ser muy complejos, por lo que determinar 
cuales datos son necesarios para el proyecto en ocasiones es una tarea difícil, sobre todo 
porque dichos sistemas no pueden ser modificados, su accesibilidad y desempeño no 
pueden ser afectados para satisfacer las necesidades del proceso de extracción del Data 
Warehouse [Oracle]. 
 
2.6.2 Transformación 
La transformación (también conocida como limpieza) es la etapa por la que algunas 
veces pueden atravesar los datos de las distintas fuentes para ser estandarizados, 
normalizando y fijando una estructura para ellos en el Data Warehouse. En algunas 
ocasiones esta operación no es requerida debido a que en e Data Warehouse se espera el 
dato tal y como se encuentra en el sistema operacional. 
 
Algunas de tipos de transformaciones que comenta [Flower, 2003] que pueden ser 
aplicadas, son las siguientes: 
 
? Tipo de coerción, es cuando se necesita hacer una transformación en los datos 
porque el tipo de columna en las tablas del Data Warehouse son diferentes del tipo 
de columna en los sistemas operacionales. Por ejemplo, supóngase que existen dos 
sistemas operacionales fuentes que tienen información sobre productos, en uno de 
los sistemas el identificador del producto es de tipo char(10) porque los códigos 
usados son alfanuméricos y en el otro sistemas está definido como numérico. Esto 
quiere decir que el dato en el campo numérico deberá ser transformado a un dato 
alfanumérico. 
? Manipulación de cadenas (strings), es cuando se requiere aplicar operaciones de 
concatenación, eliminación de espacios (trim), convertir a mayúsculas (up case), 
etc., en los datos. 
? Cálculos matemáticos, es cuando se hace uso de las funciones aritméticas. 
? Asignación condicional, se refiere a derivar el valor para los campos de las tablas 
de Data Warehouse a través de la aplicación de ciertas condiciones a los datos de 
los sistemas operacionales. 
? Agregación, es cuando se necesita un dato resultado de generar una consulta con 
una función de agregación. 
 
2.6.3 Transferencia 
La transferencia literalmente consiste en el acto de mover los datos de un sistema 
operacional a otro; en el ambiente del Data Warehouse consiste básicamente en llevar 
 14 
(remota o localmente) los datos leídos y estandarizados (extraídos y transformados) al 
Data Warehouse. 
 
Una forma gráfica de ver las operaciones involucradas en el proceso ETT es la 
mostrada en la figura 2-2, como se menciono anteriormente, la transformación de los 
datos puede o no existir ya que depende de cómo se encuentren los datos en las bases 
de datos fuente y la necesidad de integración. 
 
 
Figura 2-2 Operaciones involucradas en el proceso ETT 
 
2.6.4 Problemas en el proceso ETT 
Al ser el proceso ETT uno de los más importantes en un proyecto Data Warehouse, es 
necesario tener presente los problemas que pueden ocurrir en éste. 
 
El proceso ETT tiene como meta llevar los datos del sistema operacional fuente al 
Data Warehouse; para lograrlo es necesario que tanto la extracción como la 
transformación y la transferencia de los datos se lleve a cabo satisfactoriamente, sin 
embargo [Montolio, 2001] argumenta que esto plantea una serie de problemas que son 
inherentes a dicho proceso, mismos que a continuación se describen. 
 
? El primero de estos problemas es el de la integración de los datos, dado que una 
situación normal en este entorno es que cada una de las bases de datos 
operacionales esté soportada por manejadores de bases de datos de diferentes 
fabricantes, esto puede provocar que un atributo sea de tipo diferente en cada uno 
de los sistemas operacionales, aún cuando los sistemas provengan del mismo 
fabricante se puede presentar lo anterior, debido a que las bases de datos pudieron 
haber sido diseñadas e implementadas por distintos equipos/departamentos y en 
Extracción 
 
Sistemas 
Operacionales 
 
Datos 
externos 
 
Transformación 
Transferencia 
 
Data 
 Warehouse 
 15 
diferentes fechas. Es evidente que, por trivial que sea, dicha integración supone un 
trabajo extra. 
? El segundo de los problemas que conlleva este proceso es elegir el momento en que 
se produce la carga o transferencia al Data Warehouse. Lo importante en este tema 
se centra en que la extracción se debe realizar en un momento en que todas las 
bases de datos estén en un estado “estable” de tal forma que se minimicen las 
posibles inconsistencias, que por otra parte, de producirse, deben detectarse y 
corregirse en este punto, ya que es el único en el que se debe permitir la 
actualización. 
? Asociado a lo anteriormente expuesto, está el hecho de que para realizar la carga o 
transferencia de datos, no se puede parar la operación diaria de la organización 
porque normalmente es fundamental para su buen funcionamiento. Esto nos lleva a 
diseñar y preparar los procedimientos necesarios para minimizar el tiempo 
destinado a dichas actividades. Todo ello lleva a que, en general, se realice una 
carga en un área temporal sobre la que sí está permitido hacer transformaciones 
asociadas a la integración y comprobación de coherencia anteriormente 
mencionadas. 
? Adquiere especial importancia también, la existencia de un buen diccionario de 
datos o “metadatos” ya que es absolutamente necesario conocer, de la estructura 
final del Data Warehouse, todos los detalles posibles. Esto quiere decir que un 
diccionario de datos de estas características no puede ser un mero registro de las 
características principales de los atributos, sino que debe contemplar todas las 
especificaciones tales como el atributo del que proviene, de qué base de datos, 
qué transformación ha sufrido, por qué es necesario para el Data Warehouse, etc. 
? Por último hay que tener en cuenta detalles de más bajo nivel que pueden afectar 
al proceso de carga debido a las características del sistema usado. Así, una mejora 
en la carga la constituye el hecho de eliminar completamente los índices de la base 
de datos para pasar a proceder con la carga y, finalmente volver a generar los 
índices (ya que de mantenerse los índices, lo normal es que por cada registro que 
se inserta en una tabla el manejador de bases de datos debe proceder a reordenar 
todos los índices). 
 16 
CAPÍTULO 3. TÉCNICAS EMPLEADAS EN EL PROCESO DE 
EXTRACCIÓ N, TRANSFORMACIÓ N Y TRANSFERENCIA DE 
DATOS (ETT) 
El proceso ETT es la clave para el éxito de un Data Warehouse, es por ello que se 
considera importante que la elección de las técnicas a usar en dicho proceso esté en 
función principalmente de la plataforma en la que se encuentren las bases de datos, 
tanto de los sistemas operacionales fuente como del Data Warehouse, del volumen y de 
la volatilidad de los datos [Hammergren, 1996]. 
 
Como parte de este capítulo se describen algunas de esas técnicas empleadas en el 
proceso ETT, dando una breve explicación y algunos ejemplos de técnicas secuenciales y 
técnicas incrementales. 
 
 
3.1 Clasificación de las técnicas empleadas en el proceso ETT 
Es muy poca la documentación publicada que existe en cuanto a la forma en que se 
pueden clasificar las técnicas usadas en el proceso ETT, una clasificación general de 
éstas es separarlas en técnicas secuenciales y en técnicas incrementales [Palomar, 
2002]. 
 
? Las técnicas secuenciales son aquellas en las que se extraen y transfieren todos los 
datos del sistema operacional fuente que son requeridos para el Data Warehouse, 
es decir se obtienen todos los datos sin importar si hubo alguna actualización o no 
en ellos. 
? Las técnicas incrementales son las que se concentran únicamente en la extracción y 
transferencia de los datos que sufrieron alguna actualización en el sistema 
operacional fuente y que tiene que ser actualizado en el Data Warehouse. 
 
 
3.2 Técnicas Secuenciales 
De acuerdo a [ORACLE 8i], existendos categorías para las técnicas secuenciales del 
proceso ETT. 
 
? Las técnicas para extraer datos de un sistema operacional colocándolos dentro de 
un archivo (por ejemplo descargas de datos y exportaciones a través de programas 
computacionales que generan archivos de datos). 
 17 
? Las técnicas para extraer datos de un sistema operacional y transferirlos 
directamente al Data Warehouse (por ejemplo gateway y queries distribuidos). 
 
3.2.1 Archivos de datos. 
La extracción y transferencia de datos con archivos puede realizarse con queries 
hechos en SQL (Standard Query Language) dirigiendo la salida a un archivo de datos, los 
queries obtendrán los datos que se encuentren en las tablas indicadas y que cumplan con 
las condiciones dadas. 
 
Otra forma de obtener los datos es con programas computacionales, en un lenguaje 
que sea soportado por la plataforma, como se puede ver en la figura 3-1 esta técnica 
consiste en hacer un programa para la extracción de los datos operacionales de las 
fuentes existentes y la transformación de los que lo requieran, dichos datos son 
guardados en un archivo plano, el cual se transfiere a la máquina del Data Warehouse, a 
través de otro programa computacional se hace la carga de los datos, usando el archivo 
que resulto con el primer programa. El primer programa, obviamente se ejecuta en la o 
las bases de datos fuente y el segundo en la base de datos del Data Warehouse. 
 
 
Figura 3-1 Proceso ETT con archivo de datos 
 
3.2.2 Queries distribuidos 
La técnica de queries distribuidos consiste en extraer datos de una tabla del sistema 
operacional fuente y transferirlos directamente a otra tabla en el Data Warehouse. Éste 
es quizá el método más simple para mover datos entre las bases de datos involucradas, 
porque se combina la extracción y la transferencia en un sólo paso, y por otra parte, 
requiere un mínimo de programación. Para hacer uso de los queries distribuidos, ambas 
bases de datos, la del sistema operacional fuentes y la del Data Warehouse, deben de 
tener la capacidad de accesar tablas en una base de datos diferente. 
 
 
 
Programa de 
extracción y 
transformación 
Transferencia del 
archivo generado 
 
Programa de 
transferencia 
y/o carga 
 
Data 
Warehouse 
Lee los datos del archivo 
Extracc_datos.dat 
Genera el archivo 
Extracc_datos.dat 
Datos 
operacionales 
fuente 2 
Datos 
operacionales 
fuente 1 
 18 
3.3 Técnicas Incrementales 
Las técnicas incrementales permiten reducir considerablemente el tiempo 
destinado, tanto para la extracción como para la transferencia de datos, esto se debe a 
que sólo se extraen, se transforman y se transfieren los datos que han tenido alguna 
modificación, o que son nuevos para el Data Warehouse [Fiore, 1998]. De ahí que, 
resulta deseable el uso de técnicas incrementales como parte del proceso ETT. 
 
Para [Bokun, 1998] existen dos categorías de técnicas incrementales, él las nombra 
captura estática e incremental de cambios en los datos. 
 
? Las técnicas para la captura estática de los datos que han cambiado, son las que 
extraen los datos en un tiempo determinado. A veces todos los datos son 
recuperados, pero solamente un subconjunto será utilizado. Para realizar este tipo 
de técnicas se pueden utilizar: Snapshots, Timestamp, Comparación de Archivos 
también conocida como Snapshots Diferenciales, Partitioning, Monitoreo de 
registros, entre otros. 
? Las técnicas para la captura incremental de los datos que han cambiado, son 
técnicas que dependen del tiempo para capturar los cambios en un sistema 
operacional, son la mejor opción cuando los cambios en los datos son 
significativamente más pequeños que el tamaño del conjunto de datos en un 
periodo de tiempo especifico. Estas técnicas son más complejas que las anteriores, 
porque están más relacionadas con los DBMS (Sistema manejador de Bases de datos) 
o con el software operacional que actualiza los DBMS. Para llevar a cabo este tipo 
de técnica se utilizan: captura asistida por aplicaciones, captura basada en triggers 
y captura de registro de transacciones. 
 
El uso de técnicas incrementales para detectar y extraer los cambios en los datos del 
sistema operacional fuente, depende de la capacidad de soporte que tenga los propios 
sistemas, tanto el operacional como el Data Warehouse [Adiwijaya, 1997]. 
 
Previo a utilizar una técnica incremental por lo menos debe existir una extracción y 
transferencia completa de los datos operacionales para alimentar el Data Warehouse, 
por lo que parece necesario hacer uso de una técnica secuencial antes de utilizar por 
primera vez una técnica incremental. 
 
En algunos proyectos de Data Warehouse las técnicas incrementales no son usadas 
como parte del proceso de extracción. En lugar de esto, las tablas completas del Data 
Warehosue son extraídas en un momento determinado, para ser comparadas con una 
previa extracción que se hace del sistema operacional fuente, identificando el cambio 
en los datos y de esta manera actualizar el Data Warehouse. Esta actividad no tiene un 
impacto significante en los sistemas fuentes, pero si lo tiene en el Data Warehouse, 
particularmente si el volumen de los datos es muy grande [Oracle 8i]. 
 
Para que una técnica de extracción incremental tenga el mínimo impacto en el 
sistema operacional fuente según [Ram, 2000] se requiere: 
 
 19 
? No afectar en el desempeño del sistema operacional fuente. Esto debido a que uno 
de los propósitos primarios de un Data Warehouse es tomar el proceso de la carga 
de sistemas operacionales. 
? Tener la facilidad de capturar los cambios en los datos. 
? No modificar las aplicaciones existentes. 
 
3.3.1 Snapshots 
Un Snaphot captura los datos que se encuentran en una estructura, de la base de 
datos fuente, en un momento determinado. Para [Corke, 2000] un Snapshots es como un 
proceso programado para ejecutarse automáticamente y satisfacer tanto la volatibilidad 
de los datos como los requerimientos de actualización de los mismos. 
 
La extracción y transferencia de los datos con el Snapshot pueden darse de dos 
formas [Bokun, 1998]: 
 
? Recargar, consiste en obtener todos los datos de los sistemas operacionales que son 
necesarios en el Data Warehouse tal y como están en un tiempo determinado, para 
ello se asume que previamente a la ejecución del Snapshot se eliminan y recrean la 
o las tablas en el Data Warehouse o se borran todos los registros que contienen 
dichas tablas. 
? Añadir, es cuando se asume que existen datos en las tablas en donde se hará la 
carga de información y que la información en esas tablas cumple con reglas 
predefinidas, por ejemplo que si un registro existe se sobrescribirá y sino se 
insertará. 
 
El resultado de las operaciones que realiza el Snapshot es casi igual que el de 
realizar una copia tradicional; la principal diferencia es que el tiempo requerido para 
crear una copia con Snapshots se mide en segundos a diferencia del tiempo que se 
requiere para realizar la duplicación tradicional la cual se mide en minutos u horas. 
 
El uso de Snapshots como herramienta para la extracción y transferencia de los 
datos al Data Warehouse, puede o no tener resultados benéficos dependiendo de cómo y 
cuándo se utilice. 
 
 20 
 
Figura 3-2 Proceso ETT con Snapshot 
 
3.3.2 Time Stamp 
El timestamp especifica la hora y la fecha en que un registro fue modificado por 
última vez. Está técnica se puede emplear cuando las tablas de algún sistema 
operacional tiene columnas timestamp (guardar la fecha de actualización), entonces el 
dato más reciente puede ser fácilmente identificado usando dichas columnas. 
 
Si el timestamp no está disponible en un sistema operacional, el sistema puede ser 
modificado para incluirlos. Esto requiere, primero, modificación de las tablas del 
sistema operacional para incluir la nueva columna timestamp y segundo, crear un trigger 
para actualizar la columna timestamp cada vez que una operación modifique un registro.Las técnicas basadas en timestamp requieren un barrido completo de la tabla, a 
menos de que exista un índice definido en el atributo de la fecha de actualización. Esta 
técnica es claramente aplicable a la extracción de datos de los sistemas operacionales 
fuente que soportan timestamp nativamente y que tienen poca actividad de cambio. 
 
La tabla 3.1 muestra los resultados obtenidos por [Ram, 1998] del tiempo requerido 
para la extracción de datos que sufrieron algún cambio en una base de datos fuente, 
aplicado a una tabla de 1G con 10 millones de registros de 100 bytes. Se hizo la 
extracción para tamaños de 100, 200, 400, 600, 800 Megas y la tabla completa. Así 
mismo se muestran los tiempos cuando los datos son dirigidos a un archivo, a una tabla y 
a una tabla con exportación. 
 
SISTEMA OPERACIONAL 
 
Data 
Warehouse 
Estado de la tabla de 
10:00 am a 11:00 am 
SNAPSHOT 
Dato 1 
Actualiza 2 
Dato 3 
 
Estado del Snapshot de 
la tabla X a las 10:30 am 
Tabla X 
Dato 1 
Actualiza 2 
Dato 3 
 
Tabla X 
Actualiza 1 
Actualiza 2 
Actualiza 3 
 Estado de la tabla de 
11:00 am a 12:00 am 
 21 
 
Tabla 3-1 Extracción de cambios utilizando time stamp 
 
3.3.3 Particionamiento 
El concepto de particionamiento es dividir una tabla en partes separadas, lo cual 
aumenta la velocidad de acceso a una partición individual de las bases de datos y 
también puede ser utilizado como una técnica incremental en el proceso ETT del Data 
Warehouse, para esto es necesario que las tablas tengan una partición por fechas que 
permitan identificar rápidamente un nuevo dato o cambios en los datos. 
 
3.3.4 Triggers 
Los triggers almacenan procedimientos que pueden contener instrucciones de 
actualización, eliminación o inserción de datos que se invocan cuando ciertas 
condiciones o eventos ocurren. Así pues al hacer uso de los triggers no se tienen que 
extraer y transferir los datos que no sufrieron algún cambio y esto disminuye la cantidad 
de registros que tienen que ser procesados. Cabe aclarar que la base de datos fuente 
tiene doble trabajo de carga cuando toda la población que es parte del Data Warehouse 
sufre algún cambio. 
 
La técnica de extracción de datos basada en triggers es considerada muy simple de 
implementar y no requiere de cambios en la aplicación del sistema operacional fuente. 
Debido a que esta técnica está basada en eventos, es una de las mejores opciones 
cuando la captura de cambios es requerida para mantener actualizado el Data 
Warehouse. 
 
Hay dos formas de emplear los triggers: a nivel base de datos y a nivel de aplicación. 
Cabe mencionar que la primera opción es menos costosa que la segunda. 
 
Los triggers se pueden crear en los sistemas operacionales para no perder de vista 
los registros actualizados recientemente. Se pueden usar en conjunto con las columnas 
timestamp para permitir identificar la hora y fecha exacta cuando un registro tuvo la 
última modificación. Para esto se crea un trigger en cada una de las tablas fuente de las 
que se requiere capturar el cambio en los datos. Siguiendo cada instrucción que es 
ejecutada en la tabla fuente, los triggers actualizan la columna timestamp con la hora 
actual. Así, la columna timestamp provee la hora y la fecha de la última actualización 
realizada al registro. 
 
 Extracción de 
 Cambios 
Salida a 
100M 200M 400M 600M 800M 1G 
Archivo 17min 26min 43min 59min 1hr 19min 1hr 36min 
Tabla 29min 55min 1hr 45min 2hr 40min 3hr 29min 4hr 24min 
Tabla + 
exportación 32min 1hr 8min 2hr 8min 
3hr 
17min 4hr 25min 5hr 56min 
 
 22 
Con el uso de triggers se pueden actualizar e insertar registros del Data Warehouse, 
dependiendo de la acción que se realice en los sistemas operacionales fuente. 
 
3.3.5 Snapshots diferenciales 
Está técnica también es conocida como comparación de archivos y consiste en 
mantener una imagen de los datos importantes para el Data Warehouse antes y después 
de los últimos cambios registrados. Se hace una descarga del estado actual de las tablas 
de la base de datos del sistema operacional fuente en un tiempo indicado, para 
compararla con el Snapshot generado en el mismo sistema y que previamente fue 
almacenado. Para detectar los cambios, uno a uno los registros obtenidos antes y 
después del cambio son comparados y para detectar los datos nuevos (inserción) y los 
datos que ya no existen (eliminación) se hace una comparación de la llave de los 
registros. 
 
Como se puede ver esta forma de extraer y transferir los datos requiere del uso de 
una técnica de carga y descarga de la base de datos de los sistemas operacionales fuente 
y además programación computacional para comparar los Snapshots obtenidos antes y 
después de que suceden los cambios y poder detectar los cambios en los datos. 
 
Esta técnica es compleja por naturaleza y se recomienda usarla sólo cuándo es la 
única solución, es decir en casos donde ninguna otra técnica es factible de usar [Bokun, 
1988]. 
 
3.3.6 Habilitación de Consultas (Queryable) 
Para esta técnica se asume que el sistema operacional fuente es queryable. Para 
detectar y extraer los cambios del sistema operacional fuente, los queries deben ser 
editados. El valor actual de los datos relevantes es comparado con su valor anterior, una 
diferencia en el valor indica que ocurrió un cambio, en este caso el sistema central es el 
que realiza la mayor parte de las tareas de detección y extracción de cambios. 
 
3.3.7 Monitoreo de registros 
El monitoreo de registros consiste en aplicar los cambios que están archivados en los 
registros del sistema de procesamiento en línea, también conocido como OLTP por sus 
siglas en inglés On Line Transaction Processing, a los datos que se encuentran en el Data 
Warehouse. 
 
Cada una de las técnicas anteriormente descritas debe de ser cuidadosamente 
evaluada por los dueños de los sistemas operacionales fuente antes de la 
implementación, sobre todo cuando es necesario realizar modificaciones en dichos 
sistemas. 
 
 23 
Identificar y extraer sólo los datos que han cambiado después de la última 
actualización del Data Warehouse, hace más eficiente el proceso ETT porque sólo se 
extrae un volumen de datos muy pequeño. Desafortunadamente para muchos sistemas 
operacionales esta tarea puede ser muy difícil o inapropiada para la operación del 
sistema. 
 
Las técnicas incrementales pueden trabajar en conjunto con las técnicas 
secuenciales. Por ejemplo, la técnica timestamp puede ser usada cuando los datos se 
descargan en archivos de datos y cuando se accesan vía query distribuido o Snapshots. 
 
Así mismo, las ventajas y desventajas que cada una de las técnicas pueda ofrecer 
depende particularmente de las capacidades que tengan los sistemas operacionales 
fuente y el Data Warehouse, así como también del tiempo promedio de cambio en dichos 
datos. 
 
 
3.4 Ejemplos para el uso de las técnicas secuenciales e incrementales 
Para efecto de los ejemplos se considerará lo siguiente: 
 
? En el sistema operacional fuente existe una tabla que almacena las unidades 
organizacionales de una institución educativa, esta tabla es nombrada ST4ORGN 
(diccionario de datos, en el anexo A.1) cuya estructura se muestra en la figura 3-1 
a. 
? El Data Warehouse tiene una tabla llamada UNID_ORG, la cual contendrá los 
campos mostrados en la figura 3-1 b. 
? El origen de los campos de la tabla UNID_ORG se indica en la figura 3-1 con las 
flechas. 
 
 
Figura 3-3 Estructura de las tablas de unidades organizacionales 
a) Base de datos fuente b) Base de datos del Data 
 Warehouse 
 24 
Tomando en cuenta lo anterior, la aplicación de las técnicas para mantener 
actualizada la tabla UNID_ORG con los datos operacionales, es presentada a 
continuación. 
 
3.4.1 Con archivos de datos. 
En la base de datos fuente, se genera una consulta, usando SQL, para obtener los 
datos que se requieren de la tabla ST4ORGN para alimentar la tabla UNID_ORG del Data 
Warehouse. 
 
SETECHO OFF 
SPOOL unidades_org.dat /* Se direcciona la salida a un archivo */ 
SELECT ST4ORGN_CODE, /* Se hace la consulta de los datos que 
 ST4ORGN_EFF_DATE, se ocupan */ 
 ST4ORGN_CODE_PRED, 
 ST4ORGN_EFF_DATE_PRED, 
 ST4ORGN_NOMBRE, 
 ST4ORGN_SIGLAS 
FROM SATURN.ST4ORGN 
SPOOL OFF; 
 
Haciendo uso de un programa computacional, en un lenguaje permitido por la 
plataforma del sistema operacional fuente, por ejemplo Pro*C, el siguiente código 
corresponde a una función para extraer los datos de la tabla indicada en un archivo 
plano. Primero se genera un archivo tipo texto con el nombre de Unidades_Org.dat, 
después con la ayuda de un query (utilizando lenguaje SQL) se hace el cursor para 
extraer todos los datos de la tabla ST4ORGN, cada registro producido por el query se 
escribe (utilizando lenguaje C) en el archivo que previamente fue creado. 
 
void Unidades_Organiacionales() 
{ 
 FILE *datos; 
 int contador = 0; 
 str10 CODE, CODE_PRED, SIGLAS; 
 str15 EFF_DATE, EFF_DATE_PRED, DATE; 
 str70 NOMBRE; 
 shoirt CODE_i, CODE_PRED_i, SIGLAS_i, DATE_i, NOMBRE_i, 
EFF_DATE_i, EFF_DATE_PRED_i; 
 
 Crea_Archivo("Unidades_Org.dat",&datos,"w"); 
 
 EXEC SQL DECLARE Cursor_ST4ORGN CURSOR FOR 
 SELECT ST4ORGN_CODE, ST4ORGN_EFF_DATE, 
 ST4ORGN_CODE_PRED, ST4ORGN_EFF_DATE_PRED, 
 ST4ORGN_NOMBRE, ST4ORGN_SIGLAS, 
 ST4ORGN_ACTIVITY_DATE 
 FROM SATURN.ST4ORGN; 
 
 EXEC SQL OPEN Cursor_ST4ORGN; 
 for (;;) 
 { 
 EXEC SQL WHENEVER NOT FOUND DO break; 
 EXEC SQL FETCH Cursor_ST4ORGN INTO 
 :CODE :CODE_i, 
 :EFF_DATE :EFF_DATE_i; 
 
 
/*Declaración de 
variables*/ 
 
 
 
 
 
/*Crea el archivo en 
donde se escribirán 
los datos 
extraídos*/ 
 
/*Declaración del 
cursor principal, 
sólo se consultan 
los datos que se 
ocupan en el Data 
Warehouse */ 
 
 
 
 
 
 
 
 
/*Para cada registro 
arrojado por la 
 25 
 :CODE_PRED :CODE_PRED_i, 
 :EFF_DATE_PRED :EFF_DATE_PRED_i, 
 :NOMBRE :NOMBRE_i, 
 :SIGLAS :SIGLAS_i, 
 :DATE :DATE_i; 
 
 EXEC SQL WHENEVER NOT FOUND continue; 
 if (CODE_i < 0) strcpy(CODE,""); 
 if (EFF_DATE_i < 0) strcpy(EFF_DATE,""); 
 if (CODE_PRED_i < 0) strcpy(CODE_PRED,""); 
 if (EFF_DATE_PRED_i < 0) strcpy(EFF_DATE_PRED,""); 
 if (NOMBRE_i < 0) strcpy(NOMBRE,""); 
 if (SIGLAS_i < 0) strcpy(SIGLAS,""); 
 if (DATE_i < 0) strcpy(DATE,""); 
 
 fprintf(datos,"%s|%s|%s|",CODE,EFF_DATE,CODE_PRED); 
 fprintf(datos,"%s|%s|",EFF_DATE_PRED,NOMBRE); 
 fprintf(datos,"%s|%s|\n", SIGLAS,DATE); 
 contador ++; 
 } 
 EXEC SQL CLOSE Cursor_ST4ORGN; 
 
 EXEC SQL COMMIT WORK; 
 Cierra_Archivo(datos); 
} 
consulta se revisa 
que no haya 
errores*/ 
 
 
 
 
 
 
 
 
 
 
/*Escritura de los 
datos de un registro 
en el archivo*/ 
 
 
 
 
 
 
/*Se cierra el 
archivo*/ 
 
Después de que ya se tiene el archivo plano con los datos necesarios, se procede a la 
transferencia y carga de los datos en el Data Warehouse. Para la transferencia se puede 
utilizar FTP* (File Transfer Protocol). Una vez que el archivo de datos se encuentra en la 
máquina del Data Warehouse se hace uso de otro programa computacional, también 
hecho en Pro*C, para realizar la carga, la función para poblar la tabla UNID_ORG con los 
datos que contiene el archivo generado, es la siguiente: 
 
void CargaTabla_UNID_ORG() 
{ 
 int cont_update=0, 
 cont_insert=0, 
 cont_error=0, 
 existen_errores=0, 
 k=0, j=0; 
 char cadena[150], cadena_num[20]; 
 
 Abre_Archivo("Unidades_Org.dat",&datos,"r"); 
 Crea_Archivo("Unidades_Org.ctl",&control,"w"); 
 
 while (!feof(datos)) 
 { 
 leer_campo(datos,cadena); strcpy(CODE,cadena); 
 leer_campo(datos,cadena); strcpy(EFF_DATE,cadena); 
 leer_campo(datos,cadena); strcpy(CODE_PRED,cadena); 
 leer_campo(datos,cadena); strcpy(EFF_DATE_PRED,cadena); 
 leer_campo(datos,cadena); strcpy(NOMBRE,cadena); 
 leer_campo(datos,cadena); strcpy(SIGLAS,cadena); 
 leer_campo(datos,cadena); strcpy(DATE,cadena); 
 leer_fin(datos); if (feof(datos)) break; 
 
 
/*Declaración de 
variables*/ 
 
 
 
 
 
/*Abre el archivo de 
datos y crea un 
archivo para resumir 
las operaciones que 
se realizaron*/ 
 
 
/*Se leen las 
columnas de un 
renglón para obtener 
cada campo de la 
tabla UNID_ORG, 
haciendo uso de la 
función leer_campo*/ 
 
 
 
 
 
* Se recomienda el uso del protocolo de transferencia de archivos, debido a que el método más 
común para transportar datos es éste [ORACLE, 8I]. 
 26 
 existen_errores = 0; 
 
 EXEC SQL SELECT COUNT(*) 
 INTO :cant :cant_i 
 FROM UNID_ORGN 
 WHERE CLAVE_UNID_ORG = :CODE; 
 
 if (cant > 0) 
 { 
 EXEC SQL UPDATE UNID_ORG 
 SET UNID_ORG_FECHA_EFF = :EFF_DATE, 
 CLAVE_UNID_ORG_PRED = :CODE_PRED, 
 UNID_ORG_FECHA_EFF_PRED = :EFF_DATE_PRED 
 NOMBRE_UNID_ORG = :NOMBRE 
 SIGLAS_UNID_ORG = :SIGLAS 
 UNID_ORG_ACTIVITY_DATE = :SYSDATE 
 WHERE CLAVE_UNID_ORG = :CODE; 
 cont_update ++; 
 } 
 else 
 { 
 EXEC SQL 
 INSERT INTO UNID_ORG 
 (CLAVE_UNID_ORG, UNID_ORG_FECHA_EFF, 
CLAVE_UNID_ORG_PRED, UNID_ORG_FECHA_EFF_PRED, 
NOMBRE_UNID_ORG, SIGLAS_UNID_ORG, UNID_ORG_ACTIVITY_DATE) 
 VALUES(:CODE, :EFF_DATE, :CODE_PRED, :EFF_DATE_PRED, 
:NOMBRE, :SIGLAS, :SYSDATE); 
 cont_insert ++; 
 } 
 
 fprintf(control,"\nProcesando # : %d. %c",k-1,13); 
 fprintf(control,"\n\n Terminado .... \n"); 
 fprintf(control,"\nRegistros Totales %d",k-1); 
 fprintf(control,"\nRegistros Insertados UNID_ORG 
%d",cont_insert); 
 fprintf(control,"\nRegistros Actualizados UNID_ORG 
%d",cont_update); 
 fprintf(control,"\nRegistros Con Error UNID_ORG 
%d",cont_error); 
 
 EXEC SQL COMMIT WORK; 
 Cierra_Archivo(datos); 
 Cierra_Archivo(control); 
} 
 
 
/*Para cada registro 
leído se hace una 
consulta para saber 
si ya existe o no en 
la tabla UNID_ORG*/ 
 
 
 
/*Si existe el 
registro se hace una 
actualización de los 
datos*/ 
 
 
 
 
 
 
 
 
 
 
 
/*Sino existe se 
hace una inserción*/ 
 
 
 
 
 
 
 
/*Se escribe en el 
archivo de control 
el resumen de las 
operaciones 
realizadas*/ 
 
 
 
 
 
 
/*Se cierran los 
archivo de lectura y 
escritura*/ 
 
3.4.2 Con queries distribuidos 
Para extraer los datos del sistema fuente haciendo uso de los queries distribuidos es 
necesario que la base de datos tenga los permisos necesarios para ser accesada 
remotamente. Una vez que se ha establecido conexión entre el Data Warehouse y el 
sistema fuente se hace un query similar al que se hizo en el punto 3.4.1. 
 
CREATE TABLE UNID_ORG 
AS 
SELECT ST4ORGN_CODE, /* Se hace la consulta de los datos que se 
 ST4ORGN_EFF_DATE, ocupan */ 
 ST4ORGN_CODE_PRED, 
 27 
 ST4ORGN_EFF_DATE_PRED, 
 ST4ORGN_NOMBRE, 
 ST4ORGN_SIGLAS 
FROM ST4ORGN@SOURSE_DB /* Se hace referencia a la tabla remota 
 En la que se ejecutará el query */ 
 
3.4.3 Con Snapshots 
Para hacer la extracción con el uso de Snapshots, el db link de conexión al sistema 
operacional es creado con el nombre de OPERA_PROD. 
 
create snapshot S_UNID_ORG /* Se crea el snapshot 
tablespace DEVL_DWH 
refresh complete /* Forma de pasar los datos 
start with SysDate 
as 
SELECT ST4ORGN_CODE, /* Se hace la consulta de los datos que se 
 ST4ORGN_EFF_DATE, ocupan */ 
 ST4ORGN_CODE_PRED, 
 ST4ORGN_EFF_DATE_PRED, 
 ST4ORGN_NOMBRE, 
 ST4ORGN_SIGLAS 
FROM ST4ORGN@OPERA_PPRD; 
 
Al ejecutarse el snapshots la tabla

Continuar navegando