Documento Completo Neil

download Documento Completo Neil

of 261

Transcript of Documento Completo Neil

  • 7/25/2019 Documento Completo Neil

    1/261

    Diseo de un Almacn de DatosHistrico en el Marco del Desarrollo de

    Software Dirigido por Modelos

    Mg. Carlos Gerardo Neil

    Directora: Dra. Claudia PonsCodirector: Dr. Gustavo Rossi

    Tesis presentada para obtener elgrado de Doctor en Ciencias Informticas

    Facultad de InformticaUniversidad Nacional de La Plata

    - Noviembre de 2010 -

  • 7/25/2019 Documento Completo Neil

    2/261

    Jurados

    Dr. Jos Angel Olivas VarelaDepartamento de Tecnologas y Sistemas de Informacin

    Universidad Castilla-La Mancha. Espaa

    Dra. Alejandra CechichFacultad de InformticaUniversidad Nacional del Comahue. Argentina

    Dr. Juan Mara AleFacultad de IngenieraUniversidad de Buenos Aires. ArgentinaFacultad de Ingeniera (Departamento de Informtica)Universidad Austral. Argentina

  • 7/25/2019 Documento Completo Neil

    3/261

    Agradecimientos

    Quiero agradecer inicalmente a mis directores, Claudia Pons y Gustavo Rossi, y aldecano de la facultad de Tecnologa Informtica de la UAI, Marcelo DeVincenzi.

    A Claudia porque me acompao la mayor parte del camino, siempredispuesta con su generosidad y simpata; a Gustavo, porque me ayud en loscomienzos y me dio la oportunidad de acercarme a la Universidad Nacional dela Plata para iniciar mis estudios y, a Marcelo, por su apoyo constante y suconfianza en mi tarea en la Universidad Abierta Interamericana.

    Extiendo mi agradecimiento a mi familia que siempre fue y ser unconstante apoyo, a mis seres queridos, a mis compaeros de trabajo, a misamigos del deporte, a mis amigos de la vida y al amor de mi vida.

  • 7/25/2019 Documento Completo Neil

    4/261

    ndice General

    Captulo 1 ______________________________________________________ 1

    Introduccin________________________________________________________ 11.1. Problemas y Soluciones ______________________________________________ 11.1.1. Creacin de Estructuras de Almacenamiento Eficientes ___________ 21.1.2. Simplificacin en la Obtencin de la Informacin _________________ 21.1.3. Automatizacin del Proceso de Desarrollo de Software ____________ 2

    1.2. Nuestra Propuesta: El Data Warehouse Histrico _______________________ 31.3. Objetivo de la Tesis __________________________________________________ 31.4. Contribuciones Principales ___________________________________________ 41.5. Estructura General de la Tesis ________________________________________ 4

    1.5.1. Captulos _______________________________________________________ 41.5.2. Anexos _________________________________________________________ 71.5.3. Acrnimos ______________________________________________________ 7

    1.5.4. Referencias _____________________________________________________ 7Captulo 2 ______________________________________________________ 8

    Base de Datos Temporales __________________________________________ 82.1. Introduccin ________________________________________________________ 82.2. Base de Datos Temporal _____________________________________________ 9

    2.2.1. Definiciones Bsicas _____________________________________________ 92.2.1.1. Instante _____________________________________________________ 92.2.1.2. Intervalo de Tiempo _________________________________________ 92.2.1.3. Crono ____________________________________________________ 102.2.1.4. Marca de Tiempo _________________________________________ 102.2.1.5. Tiempo de Vida ___________________________________________ 10

    2.3. Dimensiones Temporales ___________________________________________ 102.3.1. Tiempo Vlido _________________________________________________ 102.3.2. Tiempo de Transaccin ________________________________________ 112.3.3. Tiempo Definido por el Usuario _________________________________ 112.3.4. Tiempo de Vida de una Entidad ________________________________ 112.3.5. Tiempo de Decisin ___________________________________________ 122.3.6. Tiempo Actual ________________________________________________ 12

    2.4. Tipos de Bases de Datos Temporales ________________________________ 122.5. Actualizacin en una Base de Datos Temporal ______________________ 14

    2.5.1. Esquemas de Base de Datos Temporal __________________________ 142.6. Modelo de Datos Temporales ______________________________________ 14

    2.6.1. Soporte Temporal _____________________________________________ 15

    2.7. Implementacin de Base de Datos Temporales _____________________ 152.8. Trabajos Relacionados _____________________________________________ 162.9. Resumen del Captulo _____________________________________________ 17

    Captulo 3 _____________________________________________________ 18

    Diseo de una Base de Datos Histrica ______________________________ 183.1. Introduccin ______________________________________________________ 183.2. Modelo Temporal _________________________________________________ 18

    3.2.1. Componentes del Modelo Conceptual Temporal _______________ 193.2.1.1. Entidad Temporal _________________________________________ 193.2.1.2. Atributo Temporal _________________________________________ 203.2.1.3. Interrelacin Temporal _____________________________________ 22

    3.2.2. Restricciones Temporales en el Modelo _________________________ 23

  • 7/25/2019 Documento Completo Neil

    5/261

    3.3. Transformaciones Descritas Informalmente __________________________ 233.3.1. Transform. del Modelo de Datos al Modelo de Datos Temporal ___ 24

    3.3.1.1. Entidad temporal __________________________________________ 243.3.1.2. Atributo Temporal _________________________________________ 243.3.1.3. Interrelacin Temporal _____________________________________ 253.3.1.4. Entidades e Interrelaciones ________________________________ 263.3.1.5. Atributos __________________________________________________ 26

    3.3.2. Transformacin del Modelo de Datos al Modelo Relacional ______ 263.3.2.1. Entidad Temporal (considerada como tal) __________________ 263.3.2.2. Entidad Temporal (derivada de un atributo temporal) _______ 263.3.2.3. Entidad Temporal (derivada de una interrelacin temporal) _ 27

    3.3.3. Transformacin del Modelo de Datos a Sentencias SQL __________ 273.4. Alcance y Limitaciones del Modelo ________________________________ 283.5. Resumen del Captulo _____________________________________________ 28

    Captulo 4 _____________________________________________________ 29

    Data Warehouse ___________________________________________________ 294.1. Introduccin ______________________________________________________ 294.2. Data Warehouse __________________________________________________ 304.3. Proceso de Construccin de un Data Warehouse ___________________ 30

    4.3.1. Extraccin ____________________________________________________ 314.3.2. Transformacin y Carga _______________________________________ 314.3.3. Explotacin ___________________________________________________ 32

    4.4. Modelo multidimensional __________________________________________ 324.4.1. Dimensiones y Jerarquas ______________________________________ 324.4.2. Dimensiones Degeneradas___________________________________ 33

    4.5. Clasificacin de Jerarquas ________________________________________ 334.5.1. Jerarquas Simtricas __________________________________________ 344.5.2. Jerarquas Asimtricas _________________________________________ 344.5.3. Jerarquas Estrictas ____________________________________________ 354.5.4. Jerarquas No-Estrictas _________________________________________ 354.5.5. Jerarquas Mltiples ____________________________________________ 354.5.6. Relaciones entre Hechos y Dimensiones ________________________ 36

    4.6. Visin Multidimensional de los Datos ________________________________ 364.6.1. Visin Bidimensional ___________________________________________ 364.6.2. Visin Multidimensional ________________________________________ 374.6.3. Visin Esquemtica ____________________________________________ 374.6.4. Visin Relacional ____________________________________________ 38

    4.7. Arquitectura General de un Sistema de Data Warehouse ____________ 384.8. Implementaciones de un Data Warehouse _________________________ 39

    4.8.1. Implementacin Relacional ___________________________________ 404.8.2. Esquema Estrella ______________________________________________ 404.8.3. Esquema Copo de Nieve ______________________________________ 404.8.4. Esquema Multiestrella __________________________________________ 404.8.5. Esquema K-Dimensional _______________________________________ 41

    4.9. Proceso de Desarrollo de un Data Warehouse ______________________ 414.10. Data Warehouse Temporales _____________________________________ 42

    4.10.1. Modificaciones en un Data Warehouse ________________________ 424.10.2. Actualizacin de Dimensiones ________________________________ 43

    4.11. Data Warehouse Histrico ________________________________________ 434.12. Trabajos Relacionados ____________________________________________ 434.13. Resumen del Captulo ____________________________________________ 43

  • 7/25/2019 Documento Completo Neil

    6/261

    Captulo 5 _____________________________________________________ 46

    Diseo de un Data Warehouse Histrico _____________________________ 465.1. Introduccin ______________________________________________________ 465.2. Modelo Multidimensional Temporal ________________________________ 465.3. Mtodo de Diseo de un Data Warehouse Histrico _________________ 48

    5.3.1. Visin General del Proceso de Transformacin Informal __________ 485.4. Transformaciones Descritas Informalmente __________________________ 505.4.1. Transfor. del Modelo de Datos al Modelo Temporal Adaptado ___ 50

    5.4.1.1. Transf. #1: Modelo de Datos al Modelo de Datos Temporal __ 505.4.1.1.1. Entidad temporal ______________________________________ 515.4.1.1.2. Atributo Temporal ______________________________________ 515.4.1.1.3. Interrelacin Temporal _________________________________ 525.4.1.1.4. Entidades, Interrelaciones y Atributos ___________________ 52

    5.4.1.2. Transf. #2: Modelo de Datos Temp al Modelo Temp Adaptado 525.4.1.2.1. Interrelacin Hecho __________________________________ 53

    5.4.2. Transf. #3: Modelo de Datos Temp al Grafo de Atributos Temp. __ 535.4.2.1. Construccin del Grafo de Atributos Temporal ________________ 54

    5.4.2.2. Algunas Consideraciones Sobre el Grafo de Atributos Temp. 555.4.2.2.1. Interrelacin uno-a-uno ________________________________ 555.4.2.2.2. Interrelacin x-a-muchos ______________________________ 555.4.2.2.3. Entidad, Atributo e Interrelacin Temporales _____________ 555.4.2.2.4. Atributo Multivaluado __________________________________ 565.4.2.2.5. Eliminacin de Detalles Innecesarios ____________________ 56

    5.4.3. Transf. #4: Grafo de Atributos Temp al modelo MD ______________ 565.4.3.1 Hecho ____________________________________________________ 565.4.3.2. Medidas __________________________________________________ 565.4.3.2. Medidas __________________________________________________ 565.4.3.3. Nivel Hoja en la Jerarqua _________________________________ 575.4.3.4. Nivel Hoja Temporal _______________________________________ 57

    5.4.3.5. Niveles en la Jerarqua _____________________________________ 585.4.3.6. Nivel Temporal ____________________________________________ 585.4.4. Transf. #5: Modelo Multidimensional Temp. al Modelo Relacional _ 59

    5.4.4.1. Hecho ____________________________________________________ 595.4.4.2. Nivel Hoja _________________________________________________ 605.4.4.3. Niveles en la Jerarqua _____________________________________ 605.4.4.4. Niveles Temporales ________________________________________ 60

    5.4.5. Transf #6: Modelo Relacional a Tablas Mediante Sentencias SQL _ 615.5. Resumen del Captulo _____________________________________________ 62

    Captulo 6 _____________________________________________________ 63

    Recuperacin de Informacin en Estructuras de Almacenamiento ___ 63

    6.1. Introduccin ______________________________________________________ 636.2. Sistemas de Informacin Automatizados ____________________________ 636.3. Almacenamiento de Datos ________________________________________ 64

    6.3.1. Base de Datos Operacionales __________________________________ 646.3.2. Bases de Datos Temporales ____________________________________ 656.3.3. Data Warehouse ______________________________________________ 656.3.4. Data Warehouse Temporal_____________________________________ 666.3.5. Data Warehouse Histrico _____________________________________ 66

    6.4. El Lenguaje de Consulta Estructurado ______________________________ 666.4.1. Versiones del SQL ______________________________________________ 67

    6.5. Consultas Multidimensionales ______________________________________ 686.5.1. Consultas de Agrupamiento ___________________________________ 69

    6.5.1.1. Consultas en el Modelo Multidimensional ______________________ 69

  • 7/25/2019 Documento Completo Neil

    7/261

    6.5.1.1.1. Roll-Up __________________________________________________ 706.5.1.1.2. Drill-Down _______________________________________________ 706.5.1.1.3. Slice y Dice ______________________________________________ 71

    6.6. Consultas Multidimensionales ______________________________________ 716.7.1. Implementacin de Consultas Multidimensionales en SQL________ 72

    6.7. Consultas Temporales______________________________________________ 736.7.1. Implementacin de Consultas Temporales en SQL _______________ 74

    6.7.1.1. Entidades Temporales _____________________________________ 756.8.1.2. Atributos Temporales ______________________________________ 756.8.1.3. Interrelaciones Temporales _________________________________ 75

    6.8. Resumen del Captulo _____________________________________________ 76

    Captulo 7 _____________________________________________________ 77

    Consultas en un Data Warehouse Histrico __________________________ 777.1. Introduccin ______________________________________________________ 777.2. Consultas en un Data Warehouse Histrico __________________________ 77

    7.2.1. Ejemplo Motivador ____________________________________________ 787.2.2. Visin General del Proceso de Transformacin Informal __________ 79

    7.3. Diseo de una Interface Grfica de Consultas ______________________ 797.3.1. Grafo de Consultas ____________________________________________ 797.3.2. Transfor del Modelo Multidimens. Temp. al Grafo de Consulta ____ 80

    7.3.2.1. Nodo Raz _________________________________________________ 807.3.2.2. Medidas __________________________________________________ 817.3.2.3. Nivel Hoja ________________________________________________ 827.3.2.4. Niveles en la Jerarqua _____________________________________ 827.3.2.5. Niveles Temporales ________________________________________ 83

    7.4. Consultas en un Data Warehouse Histrico __________________________ 837.4.1. Consultas Temporales _________________________________________ 84

    7.4.1.1. Consultas Sobre Entidades Temporales _____________________ 847.4.1.2. Consultas Sobre Atributos Temporales ______________________ 867.4.1.3. Consultas Sobre Interrelaciones Temporales ________________ 88

    7.5. Consultas de Toma de Decisin ____________________________________ 907.5.1. Consultas que Involucra un Nivel de Jerarqua Hoja _____________ 907.5.2. Consultas que Involucra Dos Niveles de Jerarqua Hoja __________ 917.5.3. Consultas que Involucra Tres Niveles de Jerarqua Hoja __________ 927.5.5. Consultas que Admiten Restricciones en la Dimensin Fecha ____ 94

    7.6. Reumen del Captulo _____________________________________________ 90

    Captulo 8 _____________________________________________________ 96

    Arquitectura de Software Dirigida por Modelos ______________________ 968.1. Introduccin ______________________________________________________ 968.2. Visin General del Enfoque MDD ___________________________________ 978.3. Los Modelos en el Contexto de MDD _______________________________ 978.4. Niveles de Madurez de los Modelos ________________________________ 998.5. Los Diferentes Modelos de MDD ___________________________________ 99

    8.5.1. Modelo Computacionalmente Independiente _________________ 1008.5.2. Modelo Independiente de la Plataforma ______________________ 1008.5.3. Modelo Especfico de la Plataforma ___________________________ 1018.5.4. Modelo de Implementacin __________________________________ 102

    8.6. Transformacin de Modelos _______________________________________ 1028.6.1. Transformacin PIM a PIM _____________________________________ 1038.6.2. Transformacin PIM a PSM ____________________________________ 1038.6.3. Transformacin PSM a PSM ____________________________________ 1048.6.4. Transformacin PSM a PIM ____________________________________ 1048.6.5. Puentes de Comunicacin ____________________________________ 104

  • 7/25/2019 Documento Completo Neil

    8/261

    8.7. El Proceso de Desarrollo en MDD __________________________________ 1048.7.1. Beneficios de MDD ___________________________________________ 105

    8.7.1.1. Productividad ___________________________________________ 1058.7.1.2. Portabilidad _____________________________________________ 1068.7.1.3. Interoperabilidad ________________________________________ 1068.7.1.4. Mantenimiento y Documentacin ________________________ 106

    8.8. Propuestas Concretas para MDD __________________________________ 1078.8.1. Arquitectura de Softwarte Dirigida por Modelos ________________ 107

    8.8.1.1. MDA y Perfiles UML _______________________________________ 1088.8.2. Grados y Mtodos de Transformacin de Modelos en MDA ____ 108

    8.8.2.1. Transformacin Manual ___________________________________ 1098.8.2.2. Transformacin Usando Perfiles UML _______________________ 1098.8.2.3. Transformacin Usando Patrones y Marcas _________________ 1098.8.2.4. Transformacin Automtica _______________________________ 109

    8.8.3. Modelado Especfico del Dominio _____________________________ 1108.9. Resumen del Captulo ____________________________________________ 110

    Captulo 9 ____________________________________________________ 111

    Lenguajes para la Transformacin de Modelos _____________________1119.1. Introduccin _____________________________________________________ 1119.2. Visin General del Proceso de Transformacin _____________________ 1119.3. Transformaciones Modelo a Modelo _______________________________ 113

    9.3.1. Manipulacin Directa ________________________________________ 1139.3.2. Propuesta Operacional _______________________________________ 1139.3.3. Propuesta Relacional _________________________________________ 1139.3.4. Propuesta Basada en Transformaciones de Grafos _____________ 1139.3.5. Propuesta Hbrida ____________________________________________ 114

    9.4. El Estndar para Transformaciones de Modelos_____________________ 1149.4.1. QVT Declarativo ______________________________________________ 115

    9.4.1.1. Lenguaje Relations _______________________________________ 1159.4.2. Relaciones, Dominios y Pattern Matching______________________ 1159.4.3. Relaciones Top Level _________________________________________ 116

    9.5. Definicin Formal de las Transformaciones Usando QVT _____________ 1179.6. Transformaciones Modelo a Texto _________________________________ 120

    9.6.1. Caractersticas de los Lenguajes Modelo a Texto _______________ 1209.6.2. Requisitos de un Lenguaje Modelo a Texto _____________________ 121

    9.6.2.1. Requisitos obligatorios ____________________________________ 1219.6.2.2. Requisitos opcionales: ____________________________________ 121

    9.7. El Estndar Para Expresar Transformaciones Modelo a Texto _________ 1219.7.1. Descripcin General del Lenguaje ____________________________ 1229.7.2. Texto Explcito vs. Cdigo Explcito _____________________________ 1259.7.3. Rastreo de Elementos Desde Texto (Traceability) _______________ 1269.7.4. Archivos de Salida ____________________________________________ 126

    9.8. Herramientas de Soporte para Transformaciones de Modelos _______ 1279.8.1. Herramientas de Transformacin de Modelo a Modelo _________ 1279.8.2. Herramientas de Transformacin de Modelo a Texto ___________ 130

    9.9. Resumen del Captulo ____________________________________________ 131

    Captulo 10 ___________________________________________________ 132

    Metamodelado ___________________________________________________13210.1. Introduccin ____________________________________________________ 13210.2. Metamodelos y Meta Object Facility _____________________________ 132

    10.2.1. Mecanismos para Definir la Sintaxis de un Leng. de Modelado _ 13310.2.2. Contenedor vs. Referencia __________________________________ 13410.2.3. Sintaxis Concreta vs. Sintaxis Abstracta. _______________________ 134

  • 7/25/2019 Documento Completo Neil

    9/261

    10.2.4. Ausencia de una Jerarqua Clara en la Estruct. del Lenguaje. __ 13410.3. Arquitectura de Cuatro Capas ___________________________________ 134

    10.3.1. Meta Object Facility _________________________________________ 13510.3.2. MOF vs. BNF _________________________________________________ 13610.3.3. MOF vs. UML ________________________________________________ 136

    10.4. Metamodelos Usados en las Transformaciones ____________________ 13610.4.1. Metamodelo de Datos ______________________________________ 136

    10.4.1.1. Restricciones en el Metamodelo de Datos ________________ 13710.4.2. Metamodelo de Datos Temporal _____________________________ 138

    10.4.2.1. Restricciones en el Metamodelo de Datos Temporal ______ 13910.4.3. Metamodelo del Grafo de Atributos __________________________ 140

    10.4.3.1. Restricciones en el Metamodelo del Grafo de Atributos ___ 14010.4.4. Metamodelo Multidimensional Temporal _____________________ 141

    10.4.4.1. Restricciones en el Metamodelo Multidimensional Temp. __ 14110.4.5. Metamodelo Relacional _____________________________________ 142

    10.4.5.1. Restricciones en el Metamodelo Relacional _______________ 14210.4.6. Metamodelo de Grafo de Consulta __________________________ 143

    10.4.6.1. Restricciones en el Metamodelo del Grafo de Consultas___ 14310.5. Visin General del Proceso Completo ____________________________ 14410.6. Resumen del Captulo ___________________________________________ 144

    Captulo 11 ___________________________________________________ 145

    Prototipo de Implementacin ______________________________________14511.1. Introduccin ____________________________________________________ 14511.2. Creacin de un Nuevo Proyecto _________________________________ 14511.3 Creacin del Modelo de Datos ___________________________________ 146

    11.3.1. Creacin del Modelo de Datos Temporal _____________________ 14811.3.2. Marcado del Hecho Principal ________________________________ 14911.3.3. Restricciones en el Modelo __________________________________ 150

    11.4. Transformacin al Modelo de Datos Temporal ____________________ 15111.5. Transformacin al Grafo de Atributos _____________________________ 15311.6. Transformacin al Modelo Multidimensional Temporal _____________ 15411.7. Transformacin al Modelo Relacional _____________________________ 15511.8. Transformacin a Sentencias SQL ________________________________ 15511.9. Transformacin al Grafo de Consultas ____________________________ 156

    11.9.1. Marcado del Gafo de Consulta ______________________________ 15711.9.2. Transformacin a Sentencias SQL ____________________________ 158

    11.10. Resumen del Captulo __________________________________________ 159

    Captulo 12 ___________________________________________________ 160

    Trabajos Relacionados ____________________________________________16012.1. Introduccin ____________________________________________________ 16012.2. MDD en el Diseo de Estructuras de Almacenamiento _____________ 16012.3. Consultas Grficas ______________________________________________ 16312.4. Trabajos Relacionados vs. Nuestra Propuesta _____________________ 164

    12.4.1. Utilizacin del enfoque MDD _________________________________ 16412.4.2. Consultas Grficas Automatizadas ___________________________ 165

    12.5. Publicaciones Vinculadas a la Tesis _______________________________ 16512.6. Resumen del Captulo ___________________________________________ 166

    Captulo 13 ___________________________________________________ 167

    Conclusiones _____________________________________________________16713.1. Introduccin ____________________________________________________ 167

    13.2. Resumen _______________________________________________________ 16713.3. Contribuciones Principales _______________________________________ 168

  • 7/25/2019 Documento Completo Neil

    10/261

    13.4. Trabajos Futuros _________________________________________________ 16913.5. Resumen del Captulo ___________________________________________ 170

    Anexo I ______________________________________________________ 171

    ECLIPSE ___________________________________________________________171I.1. Introduccin ______________________________________________________ 171I.2. Eclipse Modeling Framework (EMF) _________________________________ 172

    I.2.1. Descripcin ___________________________________________________ 172I.2.2. Metametamodelo ____________________________________________ 173I.2.3. Pasos Para Generar Cdigo a Partir de un Modelo ______________ 174

    I.2.3.1. Definicin del Metamodelo ________________________________ 174I.2.3.2. El Cdigo Generado ______________________________________ 175I.2.3.3. Anatoma del Editor Bsico Generado _____________________ 176

    I.3. Graphical Modeling Framework ____________________________________ 176I.3.1. Descripcin ___________________________________________________ 176I.3.2. Pasos para Definir un Editor Grfico ____________________________ 177

    I.3.2.1. Modelo de Dominio _______________________________________ 177I.3.2.2. Modelo de Definicin Grfica _____________________________ 177I.3.2.3. Definicin de Herramientas ________________________________ 178

    1.3.3. Definicin de las Relaciones Entre los Elementos ________________ 178I.3.4. Generacin de Cdigo Para el Editor Grfico __________________ 178I.3.5. Anatoma del Editor Grfico ___________________________________ 179

    I.4. Resumen del Anexo _______________________________________________ 179

    Anexo II ______________________________________________________ 180

    ATLAS Transformation _____________________________________________180II.1. Introduccin _____________________________________________________ 180II.2. Visin General del ATL ____________________________________________ 180

    II.2.1. Modulo ATL __________________________________________________ 180II.2.1.1. Estructura de un Modulo ATL ______________________________ 181

    II.2.1.1.1. Seccin Header ________________________________________ 181II.2.1.1.2. Seccin Import _________________________________________ 181

    II.2.2. Helpers_______________________________________________________ 181II.2.3. Rules _________________________________________________________ 182

    II.2.3.1. Matched Rules ___________________________________________ 182II.2.3.2. Called Rules ______________________________________________ 182

    II.3. El lenguaje ATL ___________________________________________________ 183II.3.1. Tipos de Datos ________________________________________________ 183II.3.2. Operaciones Comunes a Todos los Tipos de Datos ______________ 183II.3.3. El Tipo de Dato ATL Module ___________________________________ 184

    II.3.3.1. Tipos de Datos Primitivos __________________________________ 184II.3.4. Colecciones _________________________________________________ 185

    II.3.4.1. Operaciones sobre Colecciones __________________________ 185II.3.4.2. Iteracin Sobre Colecciones ______________________________ 186

    II.3.5. Tipos de Datos Elementos de Modelo __________________________ 186II.3.6. Expresiones Declarativas ______________________________________ 187II.3.7. ATL Helpers ___________________________________________________ 187II.3.8. Reglas de Transformacin ATL _________________________________ 187II.3.9. Cdigo Imperativo ATL ________________________________________ 188II.3.10. Matched Rules ______________________________________________ 189II.3.11. Called Rules _________________________________________________ 189

    II.4. Resumen del Anexo ______________________________________________ 190

  • 7/25/2019 Documento Completo Neil

    11/261

    Anexo III _____________________________________________________ 191

    MOFScript ________________________________________________________191III.1. Introduccin _____________________________________________________ 191III.2. Caracteristicas Principales de MOFScript __________________________ 191

    III.2.1. Texttransformation ___________________________________________ 191

    III.2.2. Importacin _________________________________________________ 192III.2.3. Reglas de Punto de Acceso __________________________________ 192III.2.4. Reglas _______________________________________________________ 193III.2.5. Valores de Retorno ___________________________________________ 193III.2.6. Parmetros __________________________________________________ 194III.2.7. Propiedades y Variables ______________________________________ 194III.2.8. Tipos Integrados ______________________________________________ 194III.2.9. Archivos _____________________________________________________ 194III.2.10. Instrucciones de Impresin ___________________________________ 195III.2.11. Salida de Escape ___________________________________________ 195III.2.12. Iteradores __________________________________________________ 195

    III.2.12.1. Iteradores sobre Variables Listy Hashtable________________ 196

    III.2.12.2. Iteradores sobre String ___________________________________ 196III.2.12.3. Iteradores sobre Integers ________________________________ 196III.2.12.4. Iteradores sobre Stringy Literales Integer _________________ 197

    III.2.13. Instrucciones Condicionales _________________________________ 197III.2.14. Instrucciones While __________________________________________ 197III.2.15. Expresiones Select___________________________________________ 197III.2.16. Expresiones Lgicas _________________________________________ 198

    III.3. Resumen del Anexo ______________________________________________ 198

    Anexo IV _____________________________________________________ 199

    Transformaciones en ATL y MOFScript ______________________________199IV.1. Introduccin ____________________________________________________ 199

    IV.2. Transformaciones M2M Descritas en ATL ___________________________ 199IV.2.1. Transfor. del Modelo de Datos al Modelo de Datos Temporal ___ 199IV.2.2. Transfor. del Modelo de Datos Temporal al Grafo de Atributos __ 204IV.2.3. Transfor. del Grafo de Atributos al Modelo MD Temporal _______ 205IV.2.4. Transfor. del Modelo MD Temporal al Modelo Relacional _______ 209IV.2.5. Transfor. del Modelo MD Temporal al Grafo de Consultasl ______ 209

    IV.3. Transformaciones M2Text Descritas en MOFScript __________________ 214IV.3.1. Transformacin del Modelo Relacional a Sentencias SQL ______ 214IV.3.2. Transformacin del Grafo de Consultas a Sentencias SQL ______ 215

    IV.4. Resumen del Anexo _____________________________________________ 218

    Anexo V _____________________________________________________ 219

    Corroboracin Emprica de la Propuesta ___________________________219V.1. Introduccin _____________________________________________________ 219V.2. Investigacin Cualitativa _________________________________________ 220

    V.2.1. Experimentos Controlados ____________________________________ 220V.2.2. Tcnicas Utilizadas de Recoleccin de Datos __________________ 221

    V.3. Trabajo de Investigacin _________________________________________ 221V.3.1. Objetivos ____________________________________________________ 221V.3.2. Hiptesis de Trabajo __________________________________________ 221V.3.3. Grupo de Estudio ____________________________________________ 222V.3.4. Desarrollo del Trabajo de Investigacin ________________________ 222

    V.3.4.1. Cuestionarios Para Evaluacin de las Hiptesis _____________ 222V.3.4.2. El Mtodo de Diseo _____________________________________ 223V.3.4.3. La Estructura de Almacenamiento ________________________ 223

  • 7/25/2019 Documento Completo Neil

    12/261

    V.3.4.4. La interface Grfica ______________________________________ 223V.3.5. Datos Obtenidos _____________________________________________ 224

    V.3.5.1. El Mtodo de Diseo _____________________________________ 224V.3.5.2. La Estructura de Almacenamiento ________________________ 225V.3.5.3. La Interface Grfica ______________________________________ 226

    V.3.6. Conclusin __________________________________________________ 226V.4. Resumen del Anexo ______________________________________________ 227

    Acrnimos _______________________________________________________228

    Referencias ______________________________________________________234

  • 7/25/2019 Documento Completo Neil

    13/261

    ndice de Figuras

    Captulo 2 ............................................................................................. 8

    Base de Datos Temporales......................................................................... 8

    Figura 2.1. Base de Datos no-Temporal ................................................................. 12Figura 2.2. Base de Datos Histrica ......................................................................... 13Figura 2.3. Base de Datos RollBack ......................................................................... 13Figura 2.4. Base de Datos BiTemporal .................................................................... 14

    Captulo 3 ................................................................................................... 18

    Diseo de una Base de Datos Histrica.................................................... 18

    Figura 3.1. Representacin de una Entidad Temporal ...................................... 20Figura 3.2. Transformacin de un Atributo Temporal en Entidad Temporal .. 21Figura 3.3. Transfor de una Interrelacin Temporal en un Entidad Temporal 22Figura 3.4. Representacin de una Entidad Temporal ..................................... 24Figura 3.5. Representacin de un Atributo Temporal ....................................... 24Figura 3.6. Representacin de una Interrelacin Temporal .............................. 25Figura 3.7. Transfor de un Modelo de Datos a un Modelo de Datos Temp .. 25Figura 3.8. Transformacin de Entidad Temporal en Tabla ............................... 26Figura 3.9. Transformacin de Atributo Temporal en Tabla ............................... 26Figura 3.10. Transformacin de Interrelacin Temporal en Tabla .................... 27

    Captulo 4 ................................................................................................... 29

    Data Warehouse ...................................................................................... 29

    Figura 4.1. Niveles de Jerarqua ............................................................................... 33Figura 4.2. Relaciones entre Niveles de la Jerarqua .......................................... 33Figura 4.3. Clasificacin de Jerarquas .................................................................. 33Figura 4.4. Jerarquas Simtricas .............................................................................. 34Figura 4.5. Jerarquas Asimtricas ........................................................................... 34Figura 4.6. Jerarquas No-Estrictas ........................................................................... 35Figura 4.7. Jerarquas Mltiples ................................................................................ 35Figura 4.8. Relaciones entre Hechos y Dimensiones ........................................... 36Figura 4.9. Visin Multidimensional de los Datos .................................................. 37

    Figura 4.10. Esquema de Hecho ............................................................................. 37Figura 4.11. Esquema Estrella ................................................................................... 38Figura 4.12. Esquema Copo de Nieve ................................................................... 38Figura 4.13. Arquitectura General de un Data Warehouse [CD97] ................. 39

    Captulo 5 ................................................................................................... 46

    Diseo de un Data Warehouse Histrico.................................................. 46

    Figura 5.1. Modelo Multidimensional Temporal .................................................... 47Figura 5.2. Proceso Completo de Transformaciones .......................................... 49

    Figura 5.3. Transformacin de una Entidad Temporal ........................................ 51Figura 5.4. Transformacin de un Atributo Temporal .......................................... 51

  • 7/25/2019 Documento Completo Neil

    14/261

    Figura 5.5. Transformacin de una Interrelacin Temporal .............................. 52Figura 5.6. Transformacin de una Entidad hechoa Interrelacin hecho... 53Figura 5.7. Transfor del Modele temporal Adaptado al Grafo de Atributos . 54Figura 5.8. Instanciacin del Grafo de Atributos ................................................ 55Figura 5.9. Transformacin de la Raz en Hecho .................................................. 56Figura 5.10. Transformacin de Vrtices en Medidas ......................................... 57Figura 5.11. Transformacin de Vrtices en Dimensiones .................................. 57Figura 5.12. Transformacin del Vrtice en Dimensin Temporal ..................... 58Figura 5.13. Transformacin de Vrtices en Jerarquas .................................... 59Figura 5.14. Transformacin del Hecho en Tabla de Hecho ............................. 59Figura 5.15. Transformacin de Vrtices en Jerarquas Temporales ............... 59Figura 5.16. Transformacin del Hecho en Tabla de Hecho ............................. 59Figura 5.17. Transformacin de Dimensiones como Tablas Dimensin ........... 60Figura 5.18. Transformacin de Jerarquas en Tablas Jerarqua ....................... 60Figura 5.19. Transformacin de Jerarquas Temporales en Tablas Jerarquas 61

    Captulo 6 ................................................................................................... 63

    Recuperacin de Informacin en Estructuras de Almacenamiento ..........63

    Figura 6.1. Modelo Multidimensional ...................................................................... 70Figura 6.2. Esquema Estrella ..................................................................................... 72Figura 6.3. Modelo Conceptual Temporal ............................................................ 74

    Captulo 7 ................................................................................................... 77

    Consultas en un Data Warehouse Histrico.............................................. 77

    Figura 7.1. Ejemplo de Consulta Grfica de Toma de Decisin ....................... 78Figura 7.2. Ejemplo de Consulta Grfica Temporal............................................. 79Figura 7.3. Grafo de Consultas ................................................................................ 80Figura 7.4 Esquema General del TMD .................................................................... 80Figura 7.5. Transformacin del Nodo Raz ............................................................. 81Figura 7.6. Transformacin del Hecho en Nodo Raz .......................................... 81Figura 7.7. Transformacin de Medidas ................................................................. 81Figura 7.8. Transformacin de Medidas en Nodos ............................................. 81Figura 7.9. Transformacin de Niveles .................................................................. 82Figura 7.10. Transformacin de Niveles Hoja en Nodos..................................... 82Figura 7.11. Transformacin de Niveles de la Jerarqua ..................................... 82Figura 7.12. Transformacin de Niveles de la Jerarqua de Nodos .................. 83Figura 7.13. Transformacin de Niveles de la Jerarqua Temporales ............... 83Figura 7.14. Transfor de Niveles de la Jerarqua Temporales en Nodos .......... 83Figura 7.15. Modelo Multid Temporal (izquierda) y Relacional (derecha) ..... 84Figura 7.16. Consulta Genrica Sobre Entidades Temporales .......................... 85Figura 7.17. Consulta Sobre una Entidad Temporal ........................................... 85Figura 7.18. Consulta Genrica Sobre Modific. de Atributos Temporales ...... 86Figura 7.19. Consulta Sobre Modificacin de Atributos Temporales ............... 86Figura 7.20. Consulta Genrica Sobre Valores Atributos Temporales ............. 87Figura 7.21. Consulta Sobre Valores Atributos Temporales ................................ 87Figura 7.22. Consulta Genrica Sobre Vinculo Entre Entidades ....................... 88Figura 7.23. Consulta Sobre Vinculo Entre Entidades .......................................... 89Figura 7.24. Consulta Genrica Sobre el Valor del Vnculo Entre Entidades . 89Figura 7.25. Consulta Sobre el Valor del Vnculo Entre Entidades .................... 90Figura 7.26. Consulta Genrica Sobre un Nivel Hoja .......................................... 91

  • 7/25/2019 Documento Completo Neil

    15/261

    Figura 7.27. Consulta Sobre un Nivel Hoja ............................................................. 91Figura 7.29. Consulta Sobre Dos Niveles Hoja ....................................................... 92Figura 7.30. Consulta Genrica Sobre Tres Niveles Hoja .................................... 93Figura 7.31. Consulta Sobre Tres Niveles Hoja ....................................................... 93Figura 7.32. Consulta Genrica Sobre Distintos Niveles de Agrupamiento ... 94Figura 7.33. Consulta Sobre Distintos Niveles de Agrupamiento ..................... 94Figura 7.34. Consultas que Admiten Restricciones en la Dimensin Fecha ... 95

    Captulo 8 ................................................................................................... 96

    Arquitectura de Software Dirigida por Modelos....................................... 96

    Figura 8.1. Modelo de Datos Temporal (PIM) ..................................................... 101Figura 8.2. Modelo de Grafo de Atributos (PIM) ................................................ 101Figura 8.3. Modelo de Datos Multidimensional Temporal (PSM) .................... 102Figura 8.4. Cdigo Fuente (IM) .............................................................................. 102Figura 8.5. Transformacin PIM a PIM ................................................................... 103

    Figura 8.6. Transformacin PIM a PSM .................................................................. 103Figura 8.7. Transformacin PSM a PSM ................................................................. 104Figura 8.8. Ciclo de Vida de Tradicional [KWB03] ............................................. 105Figura 8.9. Ciclo de Vida de Des de Soft Dirigido por Modelos [KWB03] ...... 105

    Captulo 9 ................................................................................................. 111

    Lenguajes para la Transformacin de Modelos..................................... 111

    Figura 9.1. Transf Dentro de las Herramientas de Transformacin [PGP09] .. 112Figura 9.2. Definicin de Transformaciones entre Lenguajes [PGP09]. ......... 112Figura 9.3. Metamodelo de Datos ........................................................................ 117Figura 9.5. Representacin Diagrmatica .......................................................... 120Figura 9.6. Clase Empleado ................................................................................... 122

    Captulo 10 ............................................................................................... 132

    Metamodelado ...................................................................................... 132

    Figura 10.1. Arquitectura de Cuatro Capas ....................................................... 135Figura 10.2. Metamodelo de Datos ...................................................................... 137Figura 10.3. Metamodelo de Datos Temporal .................................................... 138Figura 10.4. Metamodelo Grafo Atributos ........................................................... 141

    Figura 10.5. Metamodelo Multidimensional Temporal ...................................... 142Figura 10.6. Metamodelo Relacional ................................................................... 141Figura 10.7. Metamodelo del Grafo de Consulta .............................................. 143Figura 10.8. Visin Esquemtica de las Transformaciones ............................... 144

    Captulo 11 ............................................................................................... 145

    Prototipo de Implementacin ................................................................ 145

    Figura 11.1. Diagrama del Proyecto Recin Creado ...................................... 146Figura 11.2. Entidad Producto, Cliente y Localidadcon sus Atributos ......... 146Figura 11.3. Entidad Producto y Cliente y Localidadcon sus Atributos ....... 147

    Figura 11.4.relationEnd entre Cliente, LOC-CLI y Localidad ........................ 147

  • 7/25/2019 Documento Completo Neil

    16/261

    Figura 11.5. Interr Venta, con atributos y asociada a Productoy Cliente.. 148Figura 11.6. Transformacin de un Atributo en temporal................................ 148Figura 11.7. Transformacin de la interrelacin LOC-CLI en temporal ........ 149Figura 11.8. Transformacin de una Interrelacin en hecho principal ........ 149Figura 11.9. Validacin de errores en el modelo ............................................... 150Figura 11.10. Entidad Clientecon la propiedad isKeyen true........................ 150Figura 11.11. Atributo isTempde la interrelacin Ventaen false.................. 151Figura 11.12. Diagrama sin errores de validacin. ............................................. 151Figura 11.13. Ejecucin de la transformacin ATL ............................................. 152Figura 11.14. Configuracin para realizar la transformacin .......................... 152Figura 11.15. Ejecucin de la transformacin ATL ............................................. 153Figura 11.16. Diagrama del AGgenerado y modificado ................................ 154Figura 11.17. Ejecucin de la transformacin ATL ............................................. 154Figura 11.18. Ejecucin de la transformacin ATL ............................................. 155Figura 11.19. Ejecucin de la transformacin MOFScript ................................. 156Figura 11.20. Cdigo SQL generado .................................................................... 156Figura 11.21. Generacin del Gafo de Consulta............................................... 157Figura 11.22. Marcado del Gafo de Consulta para consulta MD ................. 158Figura 11.23. Cdigo SQL generado .................................................................... 158Figura 11.24. Marcado del Gafo de Consulta para consulta Temporal ....... 159Figura 11.25. Cdigo SQL generado .................................................................... 159

    Anexo I ...................................................................................................... 171

    ECLIPSE ................................................................................................... 171

    Figura AI.1. Pantalla de Eclipse (parte 1)............................................................. 172Figura AI.2. Pantalla de Eclipse (parte 2)............................................................. 173Figura AI.3. Parte del meta metamodelo Ecore................................................ 173

    Figura AI.4. Obtencin de un modelo EMF ........................................................ 174Figura AI.5. Metamodelo del Lenguaje Relacional ........................................... 174Figura AI.6. Editor Generado con EMF ................................................................. 176Figura AI.7. Componentes y Modelos en GMF................................................... 177Figura AI.8. Editor del Modelo de Definicin Grfica ....................................... 177 Figura AI.9. Editor del Modelo de Definicin de Herramientas ....................... 178Figura AI.10. Editor del Modelo de Definicin de Relaciones ......................... 178Figura AI.11. Anatoma del Editor Grfico ........................................................... 179

    Anexo II ..................................................................................................... 180

    ATLAS Transformation ............................................................................. 180

    Figura AII. 1. Metamodelo de Tipos de Datos ATL ............................................. 183

  • 7/25/2019 Documento Completo Neil

    17/261

    ndice de Tablas

    Captulo 3 ................................................................................................... 18

    Diseo de una Base de Datos Histrica.................................................... 18

    Tabla 3.1. Represent Tabular de las Entidades CLIENTEy CLIENTE-T................ 20Tabla 3.2. Represent Tabular de las Entidades PRODUCTOy PRECIO-T.......... 22Tabla 3.3. Representacin Tabular de las Entidades .......................................... 23

    Captulo 4 ................................................................................................... 29

    Data Warehouse ...................................................................................... 29

    Tabla 4.1. Visin Bidimensional de los Datos ......................................................... 37

    Captulo 6 ................................................................................................... 63

    Recuperacin de Informacin en Estructuras de Almacenamiento......... 63

    Tabla 6.1. Representacin Tabular de Datos ....................................................... 70Tabla 6.2. Resultado de la Operacin Roll-Up..................................................... 70Tabla 6.3. Resultado de la Operacin drill-down................................................ 71Tabla 6.4. Resultado de la Operacin Slice.......................................................... 71Tabla 6.5. Resultado de la Operacin Dice .......................................................... 71

  • 7/25/2019 Documento Completo Neil

    18/261

    1

    1

    Captulo 1

    Introduccin

    Un Decision Support System(DSS)asiste a los usuarios en el proceso de anlisis dedatos en una organizacin con el propsito de producir informacin que lespermita tomar mejores decisiones. Los analistas que utilizan el DSS estn msinteresados en identificar tendencias que en buscar algn registro individual enforma aislada [HRU96]. Con ese propsito, los datos de las diferentestransacciones se almacenan y consolidan en una base de datos centraldenominada Data Warehouse (DW); los analistas utilizan esas estructuras dedatos para extraer informacin de sus negocios que les permita tomar mejoresdecisiones [GHRU97].

    Basndose en el esquema de datos fuente y en los requisitos deinformacin de la organizacin, el objetivo del diseador de un DSSes sintetizaresos datos para reducirlos a un formato que le permita, al usuario de laaplicacin, utilizarlos en el anlisis del comportamiento de la empresa.

    Dos tipos diferentes (pero relacionados) de actividades estn presentes:el diseo de las estructuras de almacenamiento y la creacin de consultas sobreesas estructuras. La primera tarea se desarrolla en el mbito de los diseadoresde aplicaciones informticas; la segunda, en la esfera de los usuarios finales.Ambas actividades, normalmente, se realizan con escasa asistencia deherramientas automatizadas.

    1.1. Problemas y SolucionesA partir de lo expresado anteriormente Identificamos, por consiguiente, tresproblemas a resolver: a) la creacin de estructuras de almacenamientoeficientes para la toma de decisin, b) la simplificacin en la obtencin de lainformacin sobre esas estructuras para el usuario final y, c) la automatizacin,tanto del proceso de diseo de las estructuras de almacenamiento, como en laelaboracin iterativa de consultas por parte del usuario de la aplicacin.

    La solucin propuesta es el diseo de una nueva estructura dealmacenamiento que denominaremos Historical Data Warehouse (HDW) quecombina, en un modelo integrado, un Historical Data Base (HDB) y un DW; eldiseo de una interface grfica, derivada del HDW, que permite realizar

    consultas en forma automtica y, por ltimo, el desarrollo de un mtodo de

  • 7/25/2019 Documento Completo Neil

    19/261

    Captulo 1. Introduccin

    2

    diseo que engloba ambas propuestas en el marco del Model Driven SoftwareDevelopment(MDD).

    1.1.1. Creacin de Estructuras de Almacenamiento Eficientes

    El DW es una copia de los datos de las transacciones de una organizacin,

    estructurados especficamente, para realizar consultas y anlisis [Kim96]; este tipode almacenamiento juega un rol central en los actuales DSS debido a quebrindan informacin crucial para el proceso de toma de decisin estratgica[Inm02].

    Una caracterstica distintiva del DW es que el tiempo es una de lasdimensiones para el anlisis [CD97], [GMR98a], pero ste hace referencia alinstante en que se realiz una transaccin, por lo tanto, no especifica ni cmo nicundo han variado, a travs del paso del tiempo, los valores de las entidades,atributos e interrelaciones vinculadas a esas transacciones. Si bien el TemporalData Warehouse (TDW) contempla, adems de la dimensin temporal, otrosaspectos vinculados con el tiempo [HMV99], [EC00], [EKM01], este modeloconsidera solo las modificaciones que se producen en el esquemadelDW, tanto

    en las dimensiones como en las jerarquas.Por lo tanto, un problema a resolver en este tipo de estructura

    Multidimensional(MD),en vistas a la necesidad de registrar valores que permitanevaluar tendencias, variaciones, mximos y mnimos, es de qu manera plasmaren el diseo de la estructura MD cmo los valoresde las entidades, atributos ointerrelaciones pueden variar en el tiempo; ya que, aunque los datos necesariosestuvieren almacenados, los mecanismos de bsqueda temporales resultarancomplejos [NA02].

    1.1.2. Simplificacin en la Obtencin de la Informacin

    Las herramientas de consulta que dependen de la habilidad de los

    programadores para un uso eficaz y eficiente, imponen una carga cognitivaque puede disminuir la productividad de los usuarios [ON01]. Resulta, por lotanto, un desafo para usuarios no tcnicos especificar consultas en unaestructura de DB [LJ09], ms aun si los datos estn almacenados en unaestructura Temporal Multidimensional(TMD).

    La forma tradicional de acceder a una base de datos ha sido medianteconsultas por medio delStructured Query Language(SQL), un lenguaje diseadoespecficamente para crear, organizar y consultar base de datos.

    Debido a la complejidad en la formulacin de consultas no triviales sehan propuesta diversos enfoques para hacerlas ms accesible a un espectromayor de usuarios [FKSS06]; siguiendo esta lnea, el uso de lenguajes grficospara la realizacin de consultas, comparado con la escritura de expresiones

    algebraicas, facilitara sobremanera las tares del usuario final. Por lo tanto, unlenguaje grfico debera operar sobre una vista grfica explcita del esquemaconceptual y las consultas beberan ser expresadas sobre la representacingrfica en forma incremental [RTTZ08].

    1.1.3. Automatizacin del Proceso de Desarrollo de Software

    Aunque han sido propuestos diversos mtodos1que permiten derivar el esquemaconceptual MD a partir de los datos fuentes de la organizacin y/o de losrequerimientos del usuario (ver [CT98], [GMR98a], [TBC99]), la mayora de ellosdeben ser realizados manualmente [RA08]. Por otro lado, un ambiente visual

    1Utilizaremos el trmino mtodo para referirnos a una forma especfica de resolver un problema ymetodologa como el estudio de un mtodo.

  • 7/25/2019 Documento Completo Neil

    20/261

    Captulo 1. Introduccin

    3

    centrado en el usuario debera incluir herramientas automatizadas para laformulacin de consultas y proveer diferentes metforas de visualizacin [KG95].

    Una solucin a estos problemas lo plantea MDD, este enfoque se haconvertido en un nuevo paradigma de desarrollo de software que prometemejoras en la construccin de software basndose en un proceso guiado pormodelos y soportado por potentes herramientas. En MDD, la construccin de

    software se realiza a travs de un proceso guiado por modelos y soportado porpotentes herramientas que generan cdigo a partir de aquellos. Este nuevoparadigma tiene como objetivos mejorar la productividad y la calidad delsoftware generado mediante una reduccin del salto semntico entre eldominio del problema y de la solucin [PGP09].

    La idea clave subyacente es que, si se trabaja con modelos, seobtendrn importantes beneficios tanto en productividad, portabilidad,interoperatividad y mantenimiento y documentacin [KWB03].

    1.2. Nuestra Propuesta: El Data Warehouse Histrico

    Por lo considerado anteriormente, respecto al almacenamiento de datos, larecuperacin de informacin y la automatizacin de ambos procesos, surge lanecesidad de un mtodo, en un ambiente asistido por herramientasautomatizadas, que faciliten el proceso de diseo de una nueva estructura dealmacenamiento que denominaremos HDW, propuesta que combina, en unmodelo integrado, un HDBy un DWy cuyo objetivo es resolver las limitacionestemporales de las estructuras MD tradicionales y que, adems, le permita, alusuario final, realizar sobre esa estructura TMD, en forma automtica y asistidopor una intuitiva interface grfica, consultas temporales, de toma de decisin ocombinaciones de ambas.

    1.3. Objetivo de la Tesis

    Los objetivos plateados en la tesis son: a) presentar una solucin a lasnecesidades temporales explcitas en los modelos MDmediante el diseo de unHDW, b) enmarcado en el enfoque MDD, derivar una implementacin fsica enun Relational Data Base Management System (RDBMS) delHDW, c) proponer eldiseo de una interface grfica, derivada del HDW, en el marcodeMDD, parala recuperacin de informacin y, d) resolver en forma automtica, mediantesentencias SQL, las consultas realizadas por el usuario final en el HDW.

    La propuesta est resumida en los siguientes tems:

    La creacin de un modelo y un mtodo para el diseo automticode un HDW que incluya, adems del hecho principal de anlisis,estructuras temporales vinculadas a los niveles de las jerarquasdimensionales que posibiliten registrar los datos y recuperar lainformacin que variase en el tiempo.

    La creacin de un lenguaje visual de consultas, derivado de laestructura TMD que permita realizar, en forma automtica, lasconsultas temporales y MD.

    La aplicacin del paradigma MDDen la construccin de un HDW y deuna interface grfica, que facilite el diseo mediante un proceso

    guiado por modelos y asistido por herramientas automatizadas que

  • 7/25/2019 Documento Completo Neil

    21/261

    Captulo 1. Introduccin

    4

    generen cdigo a partir de aquellos, reduciendo, de este modo, elsalto semntico entre el dominio del problema y la implementacinde su solucin.

    1.4. Contribuciones Principales

    Las contribuciones principales de la tesis son:

    La propuesta de un nuevo modelo de datos temporal (HDB)simplificado que permite registrar la variacin de los valores deatributos, entidades e interrelaciones que se modifiquen en el tiempo.

    La propuesta de una nueva estructura de almacenamiento de datos(HDW), que combina e integra en un solo modelo, un DWy un HDB.

    La creacin de un mtodo de diseo que, a partir de un modelo dedatos conceptual y mediante sucesivas transformaciones, permite

    obtener una implementacin lgica de un HDWen un RDBMS.

    La implementacin, mediante el enfoque MDD,del mtodo de diseode un HDW mediante la transformacin automtica de sus modelosabstractos a modelos concretos.

    El desarrollo de un entorno grfico derivado automticamente delHDW, en el marco MDD, para la realizacin de consultas sobre laestructura TMD.

    La generacin automtica, utilizando el enfoque MDD, de sentenciasSQL que permite realizar, sobre el HDW, tanto las consultas

    caractersticas de un DW como las tpicas de un HDB.

    La creacin de un prototipo, basada en tecnologa ECLIPSE, queimplemente el mtodo de diseo del HDW, la interface grfica deconsultas y la realizacin de sentencias SQL.

    1.5. Estructura General de la Tesis

    La estructura general de la tesis est compuesta por: trececaptulos, cada unode ellos desarrollan los aspectos principales del trabajo; cinco anexos, quedescriben los lenguajes de transformacin utilizados, el entorno de desarrollo, las

    transformaciones y la corroboracin emprica; por ltimo, los acrnimos y lasreferencias.

    1.5.1. Captulos

    En el captulo 2, Base de Datos Temporales, se detallan lascaractersticas principales de las Bases de Datos Temporales y sudiferencia con las Bases de Datos Operacionales. Se presentan losprincipales conceptos temporales y los diversos tipos de bases dedatos a partir de las dimensiones temporales. Por ltimo, se muestranlas caractersticas principales de los modelos de datos temporales ysus posibles implementaciones y se resumen las diferentes propuestas

  • 7/25/2019 Documento Completo Neil

    22/261

    Captulo 1. Introduccin

    5

    sobre extensiones del modelo Entidad Interrelacin para capturaraspectos temporales.

    En el captulo 3, Diseo de una Base de Datos Histrica,se describe elmodelo de datos temporal propuesto, que ser utilizado en el diseode Data Warehouse Histrico. Se detallan los principalescomponentes del modelo y se describen las transformacionesinformales para obtener, a partir de un modelo de datos, un modelode datos temporal que admite preservar la historia de entidades,atributos e interrelaciones. Luego, se establecen los criterios para suimplementacin mediante sentencias SQL en un SistemaAdministrador de Base de Datos.Por ltimo se detallan los alcances ylimitaciones del modelo.

    En el captulo 4, Data Warehouse, se presentan las caractersticasprincipales de un Data Warehouse y sus diferencias con los Bases deDatos Operacionales. Se detallan los distintos tipos de jerarquasdimensionales, las diferentes formas de visualizar los datos en la

    estructura Multidimensional y las diferentes alternativas deimplantacin. Se contrastan las diferencias entre el Data Warehousecon el Data Warehouse Temporal y el Data Warehouse Histrico y, porltimo, se describen los ms importantes trabajos donde se vincula almodelo Entidad Interrelacin con el diseo de un Data Warehouse.

    En el captulo 5, Diseo de un Data Warehouse Histrico, se desarrolla elmtodo de diseo de un Data Warehouse Histrico a partir de unmodelo Entidad Interrelacin. Primero, se describe el modelo MDpropuesto. Luego, se detallan, de manera informal, todas lastransformaciones necesarias para obtener sentencias SQL quepermitirn implementar el modelo propuesto en un Sistema

    Administrador de Base de Datos.

    En el captulo 6, Recuperacin de informacin en Estructuras deAlmacenamiento, se presenta, primeramente, un conjunto deestructuras de almacenamientos, junto con sus limitaciones a la horade resolver las necesidades de informacin del usuario, Luego, con elobjetivo de resolver aquellas y a partir del modelo Temporal y delMultidimensional propuestos, se detallan las principales consultastemporales y de toma de decisin que pueden realizarse sobre dichosmodelos. Por ltimo, se describe cmo implementar las consultasTemporales y Multidimensionales mediante sentencias SQL.

    En el captulo 7,Consultas en un Data Warehouse Histrico, se presentauna interface grfica, derivada del modelo MultidimensionalTemporal, que permite realizar, mediante marcas en un grfico,consultas temporales y de toma de decisin. Primeramente, semuestra informalmente la transformacin, paso a paso, del modeloMultidimensional Temporal al Grafo de Atributos. Luego, se detallan lospatrones de consultas temporales y de toma de decisin y, acontinuacin se especifica cmo, mediante marcas en el Grafo deConsulta, se pueden implementar, a travs de transformaciones, lasconsultas temporales y multidimensionales que permiten expresarlasen sentencias SQL.

  • 7/25/2019 Documento Completo Neil

    23/261

    Captulo 1. Introduccin

    6

    En el captulo 8, Arquitectura de Software Dirigida por Modelos, sepresenta, primeramente, una visin general del enfoque de laarquitectura de software dirigida por modelos. Luego, se describen losdiferentes niveles de madurez de los modelos. Posteriormente, sedetallan los diferentes modelos usados y los tipos bsicos detransformaciones entre ellos. luego, se detallan las ventajas de la

    arquitectura de software dirigida por modelos sobre el procesotradicional de desarrollo de software; posteriormente, se especificanlas diferentes propuestas del enfoque dirigida por modelos. Por ltimo,se detallan los distintos grados y mtodos de transformacin demodelos.

    En el captulo 9, Lenguajes para Transformacin de Modelos, seplantea, primero, una visin general del proceso de transformacin.Luego, se analizan los principales mecanismos existentes para ladefinicin de transformaciones modelo a modelo; a continuacin seintroduce el lenguaje QVT, un estndar para transformacionesespecificado por el OMG; luego, se analizan algunos de los

    principales requisitos para que un lenguaje de transformacionesmodelo a modelo sea prctico y usable; a continuacin, se presentanlas principales caractersticas de las transformaciones modelo a texto,en particular, se introducir el lenguaje estndar MOF2Text. Porltimo, se detallan las principales herramientas, tanto detransformacin modelo a modelo, como de transformacin modelo atexto.

    En el captulo 10, Diseo de un Data Warehouse Histrico en el MarcoMDD, se muestra, primeramente, una visin general del concepto demetamodelo. Luego, se detalla la descripcin de todos losmetamodelos usados en las transformaciones: el metamodelo de

    datos, el metamodelo de datos temporal, el metamodelo del grafode atributos, el metamodelo multidimensional temporal, elmetamodelo relacional y, por ltimo, el metamodelo del grafo deconsultas. Por ltimo, para cada uno de ellos, se establecen unconjunto de restricciones OCL asociados a los mismos.

    En el captulo 11, Prototipo de Implementacin,se detalla el prototipodesarrollado en ECLIPSE que permite implementar el DW histrico.Mediante el uso del ejemplo desarrollado en los captulosprecedentes detallamos, para a paso, cmo generar los modelos ylas transformaciones necesarias, tanto para la obtencin del modelomultidimensional temporal, como as tambin obtener las consultas

    automticas sobre el mismo.

    En el captulo 12, Trabajos Relacionados, se presentan, primeramente,los principales trabajos de investigacin vinculados al uso delenfoque conducido por modelos en el diseo de estructuras dealmacenamiento; a continuacin, se detallan diferentes trabajos deinvestigacin relacionados con el uso de consultas grficas sobreestructuras de datos. Posteriormente, establecemos las diferencias denuestra propuesta respecto de los trabajos relacionados. Al final,presentamos los principales trabajos que hemos desarrolladovinculados a la temtica propuesta.

  • 7/25/2019 Documento Completo Neil

    24/261

    Captulo 1. Introduccin

    7

    En el captulo 13,Conclusiones, se presenta, primero, una sntesis dela tesis respecto del diseo de Data Warehouse histrico en elcontexto de laarquitectura de software dirigida por modelos, dondese muestran las diferencias entre nuestro planteo respecto de lostrabajos vinculados. Luego, se detallan los aportes ms significativosde nuestra tesis. Finalmente, se presentan distintas lneas de

    investigacin que permitirn continuar con el trabajo presentado.

    1.5.2. Anexos

    En el Anexo I, Eclipse, se describe, primeramente, las caractersticasprincipales del EMF, el framework de Eclipse para modelado, quepermite la generacin automtica de cdigo para construirherramientas y otras aplicaciones a partir de modelos de datosestructurados; luego detallamos el GMF, un framework de cdigoabierto, completamente integrados a Eclipse, que permite construireditores grficos. Ambos frameworks son utilizados para el desarrollodel prototipo de implementacin del captulo 11.

    En el Anexo II, ATL, se detallan las construcciones ms importantesdel lenguaje de transformacin ATL, lenguaje que permite, aldesarrollador, especificar la forma de producir un conjunto demodelos destinos a partir de un conjunto de modelos fuentes. Ellenguaje ATL es utilizado para describir las transformaciones.

    En el Anexo III, MOFScript, se detallan las construcciones msimportantes del lenguaje de transformacin, modelo a texto,MOFScript, herramienta que asiste en el proceso de desarrollo desoftware, tanto en la generacin de cdigo de implementacin,como de documentacin, a partir de modelos.

    En el Anexo IV, Transformaciones en ATL y MOFScript, se detallantodas las transformaciones que inicialmente fueron descritas demanera informal en el captulo 5 (Diseo de un Data WarehouseHistrico) y en el captulo 7 (Consultas en un Data WarehouseHistrico). Las transformaciones M2M, sern descritas en ATL y lastransformaciones M2Text, en MOFScript.

    En el Anexo V, Corroboracin Emprica de la Propuesta, se evalaempricamente la propuesta de la tesis a partir del uso, por parte deusuarios reales y en un ambiente controlado, del mtodo de diseode un Data Warehouse Histrico, la estructura de almacenamiento

    integrada y la interface grfica de consultas a partir del uso delprototipo que implementa las ideas principales desarrolladas en latesis.

    1.5.3. Acrnimos

    1.5.4. Referencias

  • 7/25/2019 Documento Completo Neil

    25/261

    8

    8

    Captulo 2

    Base de Datos Temporales

    2.1. Introduccin

    Los modelos de datos tradicionales capturan un nico estado de la realidad querepresentan, usualmente el actual; un Operational Data Base (ODB) se diseacon el objetivo de representar esa visin particular de la informacin; los DataBase Management System (DBMS) que lo implementan permiten, medianteoperaciones de actualizacin, la transicin de un estado a otro, reemplazandolos valores anteriores por otros nuevos. Respecto de las consultas, se asume quetodos los hechos almacenados en la base de datos son vlidos en el instante en

    que sta es evaluada. Por lo tanto, si no se dispone de un modelo derepresentacin adecuado, esa informacin tendr validez en un lapsodeterminado, no siempre explicitado.

    Por ejemplo, supongamos que el precio de un producto, en un momentodado, es de p pesos; si ese valor se modificara, ese hecho debera serreflejado en la base de datos mediante actualizaciones o borrados, segn sea lanaturaleza del cambio; si el precio ahora aumentara a pesos, el nuevo valordebera ser p+a pesos. Por lo tanto, debido a esta modificacin, el estadoprevio de la base de datos (en particular, el precio anterior del producto) seperdera. A este tipo de base de datos se la denomina instantnea (snapshot),ya que ofrece una fotografa de la realidad en un momento determinado.

    En muchas organizaciones, este tipo de base de datos satisfara las

    necesidades de informacin del usuario. Por otro lado, el aspecto histrico de lasbase datos, aquel que captura la variacin temporal de los hechos que ocurrenen la realidad se torna necesario en aplicaciones tales como la gestin deproyectos, las historias clnicas en hospitales, el registro temporal delmantenimiento de equipos, el periodo de validez de leyes, etc. En este contexto,y siguiendo con el ejemplo anterior, si ahora el precio del producto fuera de ppesos, desde una fecha f, hasta el da de hoy, estaramos registrando , en estecaso, no solamente la informacin del precio del producto sino que, adems, elperodo de validez de ese precio.

    Presentaremos en este captulo las caractersticas principales de lasTDB, su diferencia con las ODB, los principales conceptos temporales y losdiversos tipos de TDBa partir de las dimensiones temporales. A continuacin, se

    expondrn las caractersticas principales de los modelos de datos temporales y

  • 7/25/2019 Documento Completo Neil

    26/261

    Captulo 2. Base de Datos Temporales

    9

    sus posibles implementaciones y, por ltimo, se resumirn las diferentespropuestas sobre extensiones del modelo ERpara capturar aspectos temporales.

    2.2. Base de Datos Temporal

    En un ODB, la informacin se hace efectiva en el momento en que se asienta enl y sta se considera vlida hasta que una nueva actualizacin la modifique;por lo tanto, no existe una distincin entre el tiempo de registro de esainformacin en la base de datos y el perodo durante el cual los valoresespecficos de los hechos vinculados a esa informacin son vlidos en eluniverso de discurso. As, la base de datos representa nicamente el estadoactual y no la historia de los hechos de la realidad que se estuviere modelando.

    Una base de datos temporal contiene datos actuales, histricos (yfuturos); esto implica, como posicin extrema, que los datos sern solo insertadospero nunca eliminados ni actualizadas (posicin asumida por los DWusados enprocesos de toma de decisin); en el otro extremo estn las bases de datosinstantneas, que solo contienen datos actuales, donde stos son actualizados

    o eliminados cuando los hechos que representan dejan de ser ciertos.Existen varios dominios de aplicaciones donde es necesario acceder no

    solamente al ms reciente estado de la base de datos, sino tambin a estadospasados y aun futuros. Para satisfacer los requerimientos vinculados con eltiempo se precisarn modelos de datos que incorporen explcitamente losaspectos temporales y que permitan registrar, tanto la informacin que variasecon el tiempo, como la que no. El trmino dato temporal se refiere al conceptoen el cual datos u objetos tienen algn tipo de informacin temporal asociadacon l; por ejemplo, mediante alguna marca de tiempo.

    El objetivo de este tipo de almacenamientos, denominado Temporal DataBase (TDB),est descrito sintticamente en la definicin planteada en [Jen+94]Una base de datos que registra algn aspecto vinculado al tiempo, excluyendo

    al tiempo definido por el usuarioSurgen ahora dos cuestiones en el diseo de una TDB; primero, definir

    cmo representar el tiempo en los modelos temporales y, luego, identificardiferentes dimensiones temporales respecto de las cuales los datos sernalmacenados. Por ejemplo, el momento en que los datos son actualizados en lasbase de datos no necesariamente deberan ser los mismos de aquel dondeparte de la realidad representada por esos datos ha cambiado.

    2.2.1. Definiciones Bsicas

    Definiremos, a continuacin, los principales conceptos temporales [Jen+94].

    2.2.1.1. Instante

    Un instante (instant) se define como un punto en un eje que representa altiempo. Se han propuesto varios modelos, tanto en la literatura filosfica comoen la lgica, relacionados con el tiempo; un instante puede ser consideradodiscreto o continuo; los instantes en un modelo discreto son isomrficos a losnmeros naturales, es decir, cada instante tiene un nico sucesor; por otro lado,los instantes en el modelo continuo son isomrficos a los nmeros reales, esto es,entre cualesquiera de dos instantes siempre puede haber otro.

    2.2.1.2. Intervalo de Tiempo

    Un intervalo de tiempo (time interval) es el tiempo transcurrido entre dosinstantes. En general, se considera que un modelo de datos discreto es

  • 7/25/2019 Documento Completo Neil

    27/261

    Captulo 2. Base de Datos Temporales

    10

    adecuado en la mayora de las aplicaciones de TDB; el intervalo de tiempo, porlo tanto, se define como el tiempo transcurrido entre dos instantes, uno inicial yotro final que detallan, respectivamente, el instante inicial y final del mismo[JS97a]. Adems, se define a un elemento temporal (temporal elements) comola unin finita de intervalos de tiempo.

    2.2.1.3. Crono

    Se denomina crono (chronon)al intervalo temporal de duracin mnima y fija; sutamao (granularidad) puede ser expresado, dependiendo de las necesidadesdel usuario, en segundos, minutos, horas, das, semanas, mes, ao, etc. Lagranularidad, por lo tanto, es la duracin de la menor unidad de tiempoalmacenada en la TDB. Este concepto denota el grado de precisin en larepresentacin de los registros temporales.

    2.2.1.4. Marca de Tiempo

    Una marca de tiempo (timestamp)es una marca temporal asociada a un objetoo atributo de la base de datos.

    2.2.1.5. Tiempo de Vida

    El tiempo de vida (lifespan) de un objeto de la base de datos es el tiempo en elcual ste est definido. En los objetos temporales que tienen un tiempo de vidaasociado, ste puede ser representado por intervalos de tiempo nonecesariamente contiguos.

    2.3. Dimensiones Temporales

    Los conceptos previamente expresados sirven de fundamento para definir unconjunto de registros temporales provistos por las TDB. No necesariamente todosellos deben estar presentes en todos los modelos que pretendan preservaraspectos temporales.

    La informacin temporal puede tener diferentes semnticasdependiendo de la dimensin temporal considerada. Una TDB usualmentedefine una o dos de las siguientes dimensiones temporales: tiempo vlido (validtime) y tiempo de transaccin (transaction time). Estas dos dimensionesconstituyen, respectivamente, la historia de los objetos del mundo real y lahistoria de su registro en el DBMS y ambas son ortogonales, esto es,independientes entre s.

    La semntica asociada al tiempo vlido y al tiempo de transaccin es, en

    general, parte de la base de datos, no solo de una aplicacin en particular.

    2.3.1. Tiempo Vlido

    El tiempo vlido se aplica a los hechos; un hecho denota cualquier declaracinque pueda serle asignado un valor de verdad (verdadero o falso) [GJ98]. Eltiempo vlido de un hecho es aquel en el cual ese hecho es, fue o ser ciertoen el modelo de la realidad que se est representando; todos los hechos tienenun tiempo vlido, pero ste puede o no estar registrado explcitamente en labase de datos. Un hecho puede tener asociado varios instantes o intervalostemporales. El tiempo vlido usualmente lo suministra el usuario y puede sermodificado.

    Consideremos, por ejemplo, el siguiente hecho: un empleado E trabajapara la compaa C desde el 1 de enerode 2009 hasta el 31 de diciembre del

  • 7/25/2019 Documento Completo Neil

    28/261

    Captulo 2. Base de Datos Temporales

    11

    mismo ao; el tiempo vlido asociado a ese hecho ser, si usamos un modelo dedatos discreto, el intervalo [01/01/2009, 31/12/09). En la prctica, el tiempo vlidoes el ms importante ya que modela la veracidad de los hechos registrados en eluniverso de discurso, principal objetivo de los sistemas de informacin [BSW92].

    2.3.2. Tiempo de Transaccin

    Un hecho se registra en una base de datos en un momento particular; luego deser almacenado puede ser utilizado hasta que sea eliminado lgicamente. Eltiempo de transaccin de un hecho que es registrado en la base de datos esaquel en el cual ese hecho es actual en ella y puede ser recuperado. El tiempode transaccin podr ser solamente modificado por el DBMS; as, cualquiercambio que el usuario realice sobre los datos, ser expresado mediante unnuevo tiempo de transaccin que reflejar el momento en que se hizo laactualizacin [GMJ98].

    Siguiendo con el ejemplo anterior, si se registra en la base de datos elhecho de que un empleado E trabaja para la compaa C, el da 3 de enerode 2009 y se elimina esa informacin el da 5 de enero de 2010, el tiempo de

    transaccin del hecho se puede representar mediante el intervalo [03/01/2009,05/01/2010).

    Como en el caso del tiempo vlido, el tiempo de transaccin puedetener asociado varios instantes o intervalos de tiempo.

    A diferencia del tiempo vlido, el tiempo de transaccin puede serasociado con cualquier estructura almacenada en la base de datos, no slocon hechos. De este modo, todas las estructuras almacenadas tienen aspectosrelacionados con el tiempo de transaccin. Esta dimensin temporal es utilizadasolamente en meta reglas, por ejemplo, para conocer qu informacin elsistema ha usado en algn punto de su ejecucin [BSW92].

    El tiempo de transaccin no tiene que coincidir, necesariamente, con eltiempo de validez, ste puede ser posterior al tiempo de transaccin, lo que

    implica (y, por lo tanto, se denomina) actualizacin proactiva; anterior al tiempode transaccin, actualizacin retroactiva o, en el caso en que coincida eltiempo vlido y el tiempo de transaccin, actualizacin simultnea.

    2.3.3. Tiempo Definido por el Usuario

    El tiempo definido por el usuario (user-defined time) representa algn aspectodel tiempo que no es interpretado por el DBMScomo un tipo especial de dato,por ejemplo, una fecha de cumpleaos. Los modelos de datos soportan tiemposdefinidos por el usuario mediante, por ejemplo, tipos DATE, DATETIME, etc., paravalores de atributos; el tiempo definido por el usuario puede ser cualquierinstante referido al pasado, presente o futuro, son suministrados por el usuario y

    pueden actualizarse.La distincin entre dato temporal interpretado y no interpretado surgedebido a que modelos de datos temporales propuestos utilizan estructuras dedatos de modelos de datos no temporales y extienden los esquemas conatributos temporales. En el caso en que las consultas sean evaluadas usandosemntica temporal, los atributos temporales son interpretados como tal. Encambio, los atributos definidos por el usuario, no son utilizados de esa forma.

    2.3.4. Tiempo de Vida de una Entidad

    El tiempo de vida (lifespan) de una entidad captura el tiempo de existencia deesa entidad. El tiempo de vida de una entidad E puede ser modelado como

    el tiempo vlido del hecho E existe; sin embargo, en muchas aplicaciones esimportante considerar el tiempo de vida como un aspecto separado. El

  • 7/25/2019 Documento Completo Neil

    29/261

    Captulo 2. Base de Datos Temporales

    12

    concepto de tiempo de vida puede aplicarse, con el mismo significado, a lasinterrelaciones [GMJ98].

    2.3.5. Tiempo de Decisin

    En una TDBpuede considerarse tambin el tiempo de decisin (decision time) de

    un hecho; se lo define como aquel en que el hecho fue decidido. Un hechopuede tener asociado varios tiempos de decisin. Debido a que la cantidad y elsignificado de el tiempo de decisin devaria de aplicacin en aplicacin y,adems, a diferencia del tiempo vlido y de transaccin, aquel no exhibepropiedades especializadas, en general no son considerados en los modelostemporales [GJ98].

    2.3.6. Tiempo Actual

    Una variable especial denominada ahora (now) modela la intuitiva nocin detiempo actual en una base de datos [FM96]. Nowes una palabra que en inglessignifica en este momento. Una variable con este nombre ha sido utilizada en

    modelos de datos temporales relacionales, primariamente como una marca detiempo asociada a tuplas o valores de atributos en relaciones temporales. Lanocin de un valor de tiempo actual siempre creciente se ha expresado envarios modelos de TDBmediante variables tales como until-changed, @, y -

    [Cli+97].

    2.4. Tipos de Bases de Datos Temporales

    Los diferentes tipos de bases de datos estn vinculados, en su definicin, a losconceptos vertidos anteriormente. Una base de datos que modela solamente eltiempo vlido se la denomina HDB, la que modela solamente el tiempo de

    transaccin, RollBack Data Base(RBDB) y la que modela el tiempo vlido y el detransaccin,BiTemporal Data Base(BTDB) [Jen+94].

    Podemos graficar los aspectos temporales mediante dos ejes ortogonalesque representan el tiempo vlido y el tiempo de transaccin.

    Las bases de datos no temporales capturan la realidad del universo dediscurso que modelan y sus cambios en forma dinmica, pero solo registrando unestado: el actual. La modificacin del estado de la base de datos se realizamediante operaciones de insercin, borrado y modificacin y los estadosanteriores de la base de datos son perdidos. En la Figura 2.1 se muestran dosestados diferentes (e1 y e2) de la base de datos, que corresponden,respectivamente, a los instantes ahora1 y ahora2.

    Figura 2.1. Base de Datos no-Temporal

  • 7/25/2019 Documento Completo Neil

    30/261

    Captulo 2. Base de Datos Temporales

    13

    Las HDBregistran la historia de los datos que modelan al mundo real, lasmodificaciones se registran a lo largo de la dimensin tiempo vlido, por lo tanto,el pasado, presente y el futuro pueden ser registrados. Como consecuencia deesto, los lenguajes de consulta son ms complejos ya que precisan recuperardatos de diferentes estados de la base de datos. En la Figura 2.2 se muestrandiferentes estados de la base de datos sobre la dimensin tiempo vlido; se

    observa que los estados ev1 y ev2 corresponden a hechos pasados, el estadoev3, al actual y el ev4 a un estado futuro.

    Figura 2.2.

    Las RBDBregistran los cambios en la base de datos, las modificaciones seregistran a lo largo de la dimensin tiempo de transaccin. A diferencia de lasHDB, no registra estados futuros de la base de datos debido a que el sistemamantiene registros de tiempo de transaccin y no conoce nada referido ahechos futuros. En la Figura 2.3 se muestran diferentes estados de la base dedatos sobre la dimensin tiempo de transaccin; se observa que los estados et 1yet2 corresponden a hechos pasados, el estado et3, al actual y estado et4 querepresentara a hechos futuros no puede ser registrado.

    Figura 2.3. Base de Datos RollBack

    Por ltimo, Un BTDBes una combinacin de una HDBy una RBDB; en estetipo de base de datos temporal, se preservan, para cada estado de la base dedatos, tanto el tiempo vlido como el tiempo de transaccin. En la Figura 2.4 semuestran diferentes estados de la base de datos sobre las dimensiones tiempovlido y tiempo de transaccin.

  • 7/25/2019 Documento Completo Neil

    31/261

    Captulo 2. Base de Datos Temporales

    14

    Figura 2.4. Base de Datos BiTemporal

    2.5. Actualizacin en una Base de Datos Temporal

    La administracin de los datos en un ODBse efecta mediante las operacionesde insert, update, delete y select, las restricciones de integridad son mantenidaspor el DBMS. En las TDB se realizan las mismas operaciones, pero suimplementacin no es exactamente la misma; en las operaciones deactualizacin, los valores pasados no son solamente sustituidos por otros sinotambin son preservados para su posterior utilizacin, esto es, todos los valoresson almacenados en la base de datos con marcas de tiempo asociadas. Por lotanto, el borrado de datos se realiza de manera lgica. No obstante, el borradofsico puede ser efectuado eliminando la informacin que resulte irrelevante (oporque existen imposiciones legales que lo hacen necesario); esta operacin sedenomina vacuuming [HE00].

    2.5.1. Esquemas de Base de Datos Temporal

    De la misma forma que los datos en la base de datos (extensin) requierenconsideraciones especiales para registrar hechos pasados, el esquemaconceptual (intensin) puede sufrir modificaciones y, por lo tanto, precisarmecanismos para registrar su evolucin. Con este objetivo surgieron las bases dedatos temporales que consideran la evolucin de esquemas en el tiempo; estasse disean para resolver, por un lado, el almacenamiento registrado enversiones sucesivas del esquema de la base de datos y sus datos asociados y,por otro, el procesamiento de consultas que involucran ms de un esquema[ME99].

    2.6. Modelo de Datos Temporales

    Aunque los aspectos temporales en las bases de datos son importantes, para lamayora de las aplicaciones stos son difciles de capturar, en forma elegante,mediante un modelo de datos. Las caractersticas temporales han sidomodeladas, frecuentemente, por medio del Entity-Relationship (ER) [Che76]original, con el agregado de entidades, atributos e interrelaciones temporales y,debido a ellos, los diagramas se transformaban en complejos y difciles de leer.Por tal razn muchos usuarios simplemente ignoraban los aspectos temporales ensus diagramas, agregando frases textuales indicando que algunas caractersticas

    temporales, de alguna manera, eran capturadas. C