MANUAL de MIGRACIÓN DE MODELOS DE DATOS ERWIN 4.1 a ERWIN 7 Versión 1.0 Área de Integración y Arquitectura de Aplicaciones MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Hoja de Control Título Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Documento de Referencia Responsable Área de Integración y Arquitectura de Aplicaciones Versión 1.0 Fecha Versión 08/11/2012 Registro de Cambios Versión Responsable del Causa del Cambio Cambio Fecha del Cambio Área de Integración y 1.0 Arquitectura de Versión inicial del documento Aplicaciones 2 de 65 24/04/2013 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Índice 1. INTRODUCCIÓN ................................................................................................................................................................ 4 1.1. 1.2. 1.3. CUMPLIMIENTO DE LA NORMATIVA DE LOS MODELOS MIGRADOS ............................................................ 4 AUDIENCIA OBJETIVO .............................................................................................................................................. 4 CONOCIMIENTOS PREVIOS ...................................................................................................................................... 5 2. CREACIÓN DEL MODELO DE DATOS ERWIN 7 NORMALIZADO ....................................................................... 6 3. MIGRACIÓN DE LAS TABLAS Y VISTAS .................................................................................................................. 10 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 4. ACTUACIONES PREVIAS ......................................................................................................................................... 10 SECUENCIAS .............................................................................................................................................................. 17 TABLAS TEMPORALES ............................................................................................................................................ 23 TABLAS ....................................................................................................................................................................... 27 INDICES ....................................................................................................................................................................... 31 VISTAS ........................................................................................................................................................................ 34 OBJETOS EXTERNOS ..................................................................................................................................................... 38 4.1. 4.2. 4.3. TABLAS Y VISTAS EXTERNAS ............................................................................................................................... 38 SINÓNIMOS REMOTOS PÚBLICOS......................................................................................................................... 38 SINÓNIMOS REMOTOS DE MODELOS DE DATOS PARA DOCUMENTUM (PRIVADOS) .............................. 41 5. CARGAS DE DATOS ........................................................................................................................................................ 43 6. ÁREAS DE DISEÑO .......................................................................................................................................................... 44 7. MIGRACIÓN DE PROCEDIMIENTOS, FUNCIONES Y PAQUETES ...................................................................... 46 8. MIGRACIÓN DE TRIGGERS ......................................................................................................................................... 58 8.1. 9. TRIGGERS DE DOCUMENTUM ............................................................................................................................... 59 REVISIONES ADICIONALES ......................................................................................................................................... 60 9.1. 9.2. 9.3. 10. REVISIÓN Y MODIFICACIÓN DE RELATIONSHIPS E INDICES ......................................................................... 60 REVISAR EN CAMPOS DE TABLAS LA PROPIEDAD NULL OPTION ................................................................. 62 REVISAR NOMBRE DE INDICES ............................................................................................................................. 62 REALIZAR COMPARACION DEL MODELO DE DATOS ERWIN CONTRA BASE DE DATOS .................. 65 3 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 1. INTRODUCCIÓN El presente documento tiene por objeto servir como guía para realizar la migración de los modelos de datos realizados con la herramienta Erwin V4, a la nueva versión de la normativa de Base de Datos de ICM que utiliza la herramienta Erwin V7. La migración no sólo contempla la actualización de la versión de la herramienta, sino una reestructuración del modelo que permita cumplir la nueva normativa de base de datos, salvo algunas normas muy concretas. Migrando los modelos a esta nueva versión de la normativa se consiguen, entre otros, los siguientes beneficios: - Posibilidad de comparar el modelo con la base de datos real: La nueva normativa establece un procedimiento de comparación del modelo Erwin V7 con la base de datos real, para ver que dicho modelo representa la realidad. - Posibilidad de solicitar instalaciones entregando el modelo Erwin V7: Con la anterior normativa y Erwin V4, la solicitud de instalación de los modelos de datos en los distintos entornos de ICM (desarrollo, validación, producción, etc.) se realizaba entregando Scripts SQL. Con la nueva versión, se entrega directamente el modelo Erwin V7. Gracias a que la nueva versión permite la comparación del modelo con la base de datos real, al final de la migración de un modelo podemos estar seguros de que el modelo representa la realidad. Así, durante la migración se pueden ir realizando sucesivas comparaciones con la base de datos para ir viendo cómo va el proceso de migración, y si se observan diferencias con la base de datos. 1.1. CUMPLIMIENTO DE LA NORMATIVA DE LOS MODELOS MIGRADOS La migración de un modelo en ningún caso supone modicar el modelo de datos real, lo único que se migra es el fichero ERWIN que representa dicho modelo. Si se migra un modelo siguiendo esta guía correctamente, el nuevo modelo ya cumple con la normativa actual de Base de Datos, salvo las siguientes normas, cuyo cumplimiento no se exige si se trata de modelos migrados: - GENIntReferencial: Los modelos de datos migrados no tienen que cumplir necesariamente esta norma que obliga a que los modelos se desarrollen utilizando integridad referencial. - TABObligaPK: Los modelos de datos migrados no tienen que cumplir necesariamente esta norma que obliga a que toda tabla tenga una PK única y numérica que se extrae de una secuencia. - TABNombrePK: Los modelos de datos migrados no tienen que cumplir necesariamente esta norma que define el nombre de la PK. - TABNombreIndices: Los modelos de datos migrados no tienen que cumplir necesariamente esta norma que indica la nomenclatura que deben seguir los índices del modelo. 1.2. AUDIENCIA OBJETIVO Este documento va dirigido a desarrolladores de modelos de datos de aplicaciones de ICM que cuentan con un modelo antiguo realizado con la versión de Erwin 4, y desean actualizarlo a la versión 7, además de cumplir la 4 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 nueva normativa de base de datos. 1.3. CONOCIMIENTOS PREVIOS Para un completo entendimiento del documento, el lector deberá tener conocimientos previos sobre Bases de Datos, Erwin 7 y conocer perfectamente la nueva Normativa de Base de Datos. La nueva normativa de base de datos se encuentra disponible en el portal de ArquitecturaSW a través de la siguiente URL: http://www.madrid.org/arquitecturasw/modelos-de-datos/normativa 5 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 2. CREACIÓN DEL MODELO DE DATOS ERWIN 7 NORMALIZADO Para comenzar con la migración del modelo de ERWIN V4.1 a ERWIN 7, lo primero a realizar es crear el modelo partiendo de la plantilla disponible, y modificar dicha plantilla para adaptarla a nuestro proyecto. En los siguiente pasos se muestra cómo realizarlo. Paso 1. Obtener la plantilla de partida y copiarla a un directorio local: En el navegador ir la URL http://portalcorporativo/arquitecturasw/modelos-de-datos/normativa y pulsar sobre Plantilla de Partida para bajarnos a nuestro directorio de trabajo la plantilla de partida Erwin 7 Paso 2. Cambiar el nombre al fichero: Renombraremos la plantilla Erwin 7 con el siguiente formato XXXX-ERW.erwin, donde XXXX es el nombre del proyecto, según se indica en la normativa. En el ejemplo utilizado en este documento, trabajaremos con un nombre de proyecto denominado USU: Paso 3. Indicar el Nombre del Modelo de datos y el Author: 6 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Ir a la opción de menú Model -> Model Properties, en la pestaña General, modificar los datos del recuadro Model Info para indicar: · Name: Model de datos de la aplicación XXXX (sustituir XXXX por el código de Aplicación) · Author: Autor del modelo Paso 4. Renombrar los tablespaces: Ir a la opción de menú Database -> Tablespaces Debemos renombrar con el botón Rename los tablespaces sustituyendo XXXX por nuestro código de Aplicación 7 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 NOTA: Sólo para Business Objects Recordar que según la normativa, los tablespaces para modelos de datos de Business Objects los tablespaces deben nombrarse de la siguiente forma: - TBSBLOB_DW_XXXX_100: Tablespace que se asignará a las columnas de tipo BLOB o CLOB - TBSDAT_DW_XXXX_100: Tablespace para las tablas - TBSIND_DW_XXXX_100: Tablespace para los índices Paso 5. Renombrar el Subject Area 90 - Área de Creación del Esquema DBA_XXXX Ir a la opción de menú Model -> Subject Areas, y renombrar el Subject Area “90 - Área de Creación del Esquema DBA_XXXX”, sustityendo XXXX por el código de Aplicación. NOTA: Sólo para Business Objects Según la normativa de modelos de datos para business objects, el esquema debe denominarse DBA_DW_XXXX, por lo tanto para modelos de datos de esta tecnología se sustituirá “DBA_XXXX” por “DBA_DW_XXXX”, siendo XXXX el código de aplicación. Paso 6. (Sólo para modelos de Business Objects): Cambiar el valor de la UDP DESTINO GRANT: NOTA Este paso sólo se realizará para modelos de datos que utilicen la tecnología Business Objects. Para el resto de modelos se saltará este paso y se procederá con el siguiente Recordar que según la normativa la modificación de UDPs se debe realizar dos veces, en la petaña UDPs de Model Properties, y en UDP Dictionary. Si no se hace, se producirán comportamientos inexperados. 8 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 En el valor de la UDP DESTINO GRANT escribiremos el nombre del ROL según se indica en la normativa (XXXX_DW_ALL, donde XXXX es el código de aplicación): Paso 7. (Sólo para modelos de Business Objects): Crear el Script de creación del ROL: En los proyectos de Business Objects no se realiza un GRANT TO PUBLIC para todos los objetos del modelo. En lugar de esto, se utiliza un fichero SQL que crea un rol denominado XXXX_ALL_BO que permite el acceso a todos los objetos del esquema DBA_DW_XXXX, y se realiza un GRANT de cada objeto al rol. El script SQL tiene que incluirse en la carpeta “carga_inicial” de la entrega, en un fichero denominado “00_PRE_CREACION.SQL”. En la plantilla de partida viene un Script de ejemplo para creación de este rol. Por tanto, si se trata de un modelo en esta tecnología, se deberá de abrir dicho fichero, y dejar el siguiente contenido (sustituir XXXX por el código de aplicación): DROP ROLE XXXX_DW_ALL; CREATE ROLE XXXX_DW_ALL; A continuación se muestran las normas a aplicar para la creación y asignación de roles en los proyectos de Business Objects. 9 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 3. MIGRACIÓN DE LAS TABLAS Y VISTAS 3.1. ACTUACIONES PREVIAS Una vez que tenemos el fichero modificado para adaptarlo a nuestro proyecto, lo primero que debemos hacer es migrar las tablas y vistas desde el modelo de ERWIN 4 al modelo de ERWIN 7. Para ello, trabajaremos con los dos modelos abiertos simultáneamente desde ERWIN 7, según se indica en los siguientes pasos: Paso 8. Arrancar la herramienta ERWIN 7: Arrancar la herramienta Erwin 7 en: Inicio -> Todos los programas – Erwin – Erwin Data Modeler 7.3 Paso 9. Abrir el modelo de Erwin 7 XXXX-ERW.erwin (en adelante MODELO NUEVO): Ir a la opción de menú File -> Open y seleccionar el Modelo NUEVO (fichero Erwin 7 Erwin 7 XXXX-ERW.erwin) 10 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 En la parte infierior izquierda de de la herramietna Erwin 7 pulsar sobre la pestaña Subject Area y en la parte superior izquierda en la listade valores Seleccionar “Subect Area: 01 - Área General del Modelo de Datos”: 11 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Paso 10. Abrimos desde Erwin 7 el modelo de datos Erwin 4.1 que queremos migrar (en adelante MODELO ANTIGUO): Ir a la opción de menú File -> Open y seleccionar el Modelo ANTIGUO (fichero Erwin 4.1 XXXX.er1) En la lista de valores Tipo seleccionar CA ERwin 4.1 x (*.er1) para poder visualizar el Modelo Antiguo 12 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Al abrir el modelo de datos Erwin 4.1, aparece un mensaje que nos indica que el erwin que estamos abriendo no pertenece a la versión 7 y si queremos cambiar de Versión (en el ejemplo mostrado el fichero con el MODELO ANTIGUO se llama USU.er1): Pulsar sobre SI, y aparece una ventana con el resultado del cambio a versión 7 13 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Pulsamos sobre Close y aparece la siguiente ventana indicándonos que ya tenemos abierto y disponible en versión 7 el fichero USU.erwin, además nos indica que el fichero erwin 4.1 USU.er1 no ha sido modificado: Pulsamos sobre Aceptar. Paso 11. Guardar el fichero USU.erwin: Pulsar la opción de menú: File -> Save as Guardamos en la carpeta en la que estamos realizando la migración el fichero USU.erwin, éste fichero (ahora en erwin 7) contiene los objetos que pasaremos posteriormente a nuestro modelo de datos Erwin 7 normalizado USUERW.erwin 14 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 NOTA Notar que existen en este momento tres ficheros, de los cuáles sólo trabajaremos con los dos últimos: 1) USU.er1: Fichero original, que contiene el modelo en ERWIN V4.1. No lo usaremos más de aquí en adelante, salvo para alguna consulta concreta. 2) USU.erwin: Fichero que contiene el modelo en ERWIN V4.1 automáticamente convertido a ERWIN 7. Utilizaremos este fichero como punto de partida para la migración. 3) USU-ERW.erwin: Fichero que contendrá el modelo final, y que hemos creado partiendo de la plantilla de ERWIN 7. De ahora en adelante mantendremos los dos modelos (USU.erwin y USU-ERW.erwin) abiertos en la herramienta ERWIN 7, e iremos migrando objetos de uno al otro. Paso 12. Copiar todos los objetos visuales del modelo USU.erwin al USU-ERW.erwin: En este momento, disponemos en una única sesión de la herramienta Erwin 7 de los dos modelos abiertos (el modelo Antiguo y el Modelo Nuevo). Posicionarse en el Modelo Antiguo, para ello seleccionar la opción del menú Window -> “XXXX.erwin” Ejecutar la opción de menú Edit -> Select All Ejecutar la opción de menú Edit -> Copy Group 15 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Posicionarse en el Modelo Nuevo, para ello seleccionar la opción del menú Window -> “XXXX-ERW.erwin” Ejecutar la opción de menú Edit -> Paste Si tenemos en nuestro Modelo de datos campos de diferentes tablas con el mismo nombre nos aparecerán varios mensajes como el siguiente: 16 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Para todos los mensajes que aparezcan de éste tipo, Pulsar sobre el botón OK. Ahora tenemos en nuestro Modelo Nuevo todas las Tablas y Vistas que hemos copiado y pegado desde el Modelo Antiguo: A partir de este momento trabajaremos la mayor parte del tiempo con el Modelo Nuevo, por lo que procederemos a cerrar el Modelo Antiguo para que no se produzcan confusiones. Para ello ejecutar la opción de menú Window -> XXXX.erwin para activar el modelo antiguo: Cerrar el Modelo Antiguo, ejecutando la opción de menú: File -> Close NOTA Para evitar posibles pérdidas de datos, se recomienda grabar frecuentemente el Modelo Nuevo con todas las modificaciones que se van realizando. 3.2. SECUENCIAS Paso 13. Migración de Secuencias 17 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Debido a que en Erwni V4 no existía el objeto Sequence, la forma de dar de alta las secuencias era crear un objeto tabla vacío (sin campos) y con un Script Template asociado que es el que llevaba la definición de la secuencia. Se pueden reconocer estas tablas porque no tienen campos, y siguen la nomenclatura XXXX_SEC_[NOMBRE]: En la nueva normativa de base de datos ya se utilizan los objetos Sequence de Erwin V7. Por tanto, el proceso de migración de Secuencias va a consister en dar de alta las Secuencias como nuevos objetos de tipo Sequence, utilizando la definición de la secuencia que proviene del modelo anterior. Para cada secuencia que exista en nuestro Modelo Antiguo realizar las siguientes acciones: · Abrir el script template que contenía la secuencia antigua, y anotar la información de la secuencia: 18 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar la opción de menú: Database -> Sequences Y Pulsar sobre el botón New, para dar de alta el nombre de la Secuencia. · Rellenar el campo Owner: indicar el esquema de base de datos Propietario del objeto · En la pestaña General configurar los diferentes campos con los valores correspondientes de la secuencia, éstos valores podemos localizarlos en el objeto tabla (original) de la Secuencia en el Script Template asociado. 19 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Comment añadir los Comentarios que debe tener la secuencia. Nota: Si la tabla vacía que representaba la secuencia en el modelo original ya tenía comentarios, podemos obtenerlos de ella. · En la pestaña Synonym pulsar sobre el botón NEW e indicar el nombre del Sinónimo de la Secuencia (que normalmente coincidirá con el nombre de la Secuencia). Pulsar sobre el botón OK 20 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 NOTA: Sólo para Documentum Según la normativa de modelos de datos para documentum, no se deben asignar sinónimos públicos a las secuencias de modelos en esta tecnología. Por tanto este punto se omitirá si se trata de un modelo de Documentum. · Seleccionar (pulsar) el nombre del Sinónimo y chequear los check: Create or Replace y Public. 21 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Ya hemos definido la Secuencia, pulsar sobre el botón Close · Como ya hemos creado la secuencia, la tabla vacía original que representaba la sencuencia debe ser borrada del Modelo de Datos. Para ello seleccionar la tabla de la Secuencia , pulsar la tecla Supr, a continuación aparecerá una pantalla indicándonos, si borramos el objeto solamente del Subjec Area o del Modelo de datos · Pulsar sobe la opción “Delete them from the entire model” y pulsar sobre el botón OK Nota: Más adelante borraremos los Script Templates antiguos que ya no utilizaremos. 22 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 3.3. TABLAS TEMPORALES Paso 14. Migración de Tablas Temporales Debido a que en Erwni V4 no existía el objeto Tabla Temporal, la forma de dar de alta las tablas temporales era crear un objeto tabla vacío (sin campos) con un Script Template asociado que es el que lleva la definición de la tabla temporal. El proceso de migración de tablas temporales va a consistir en dar de alta las tablas temporales como un objeto Tabla Temporal, partiendo de la definición del modelo antiguo. Para cada tabla temporal que exista en nuestro modelo realizar las siguientes acciones: · Abrir el Script Template asociado a la tabla antigua. · Crear una tabla nueva, en la botonera superior Pulsar el botón de creación “Independent table” , · A continuación pulsar en la zona del subject area donde se desea crear la tabla 23 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar sobre la nueva tabla con el botón derecho del ratón y Pulsar la opción Tables · Rellenar el campo Name con el nombre de la tabla temporal, así como el Owner: 24 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Comment añadir los Comentarios que debe tener la tabla temporal. Nota: Si la tabla vacía que representaba la tabla temporal en el modelo original ya tenía comentarios, podemos obtenerlos de ella. · En la pestaña General chequear chequear Global Temporary y chequear las opciones correspondientes a la tabla temporal (recordar que la definición de la tabla temporal la teníamos anotada, se encontraba en el Script Template que abrimos anteriormente). 25 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar sobre Close para cerrar la definición de la tabla y poder proceder a crear las columnas, índices, etc. · · Pulsar sobre la nueva tabla temporal con el botón derecho del ratón y: 1) Pulsar la opción Columns y definir los campos de la tabla 2) Pulsar la opción Indexes y definir los índices. 3) Pulsar la opción Triggers para definir triggers En este momento ya habremos creado la tabla temporal, por lo que el objeto tabla original antiguo debe ser borrado totalmente del Modelo de datos. Para ello seleccionar el objteo tabla original antiguo de la tabla temporal, pulsar la tecla Supr, a continuación aparecerá una pantalla indicándonos, si borramos el objeto solamente del Subjec Area o del Modelo de datos: 26 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · 3.4. Pulsar sobe la opción “Delete them from the entire model” y pulsar sobre el botón OK TABLAS Paso 15. Asignar a las tablas el Owner, el Sinónimo Público y los Tablespaces de Datos y Lob Pulsar la opción de menú Model -> Tables Para cada tabla que exista en nuestro modelo realizar las siguientes acciones: · Seleccionar tabla de la lista desplegable 27 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Escribir el esquema propietario del objeto en el campo Owner · En la pestaña Synonym pulsar sobre el botón NEW e indicar el nombre del Sinónimo de la Tabla (normalmente coincidirá con el nombre de la Tabla). Pulsar sobre el botón OK. · Seleccionar (pulsar) el nombre del Sinónimo y chequear los check: Create or Replace y Public 28 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar la pestaña General y Pulsar el check Physical Properties · Pulsar el botón Storage Properties y seleccionar el tablespace de datos correspondiente TBSDAT_XXXX_100 29 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar el botón OK · Si la tabla contiene campos CLOB o BLOB: Los contenidos de las columnas de tipo LOB (BLOB y CLOB) se almacenan en ‘Tablespaces’ específicos para estas columnas, separados del resto de los datos de la tabla. Si la tabla incluye columnas de tipo LOB (excepto campos lob de tablas temporales que no se definen tablespace lob) , se debe modificar la pestaña “LOB Storage” según se muestra en la siguiente figura: 1) Seleccionar en Column la columna Lob 30 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 2) Pulsar sobre la opción “Parameters” de la columna de tipo LOB, y ahí seleccionar el tablespace específico para campos LOB (TBSBLOB_XXXX_100), y marcando las opciones que se muestran a continuación: · CHUNK: 4096 · “Retain old versión type” -> PCTVERSION -> 10 · “Cache” -> NO-CACHE -> Logging -> LOGGING 3) Pulsar el botón Close 3.5. INDICES Paso 16. Comprobar si está activada la casilla Show Fk Indexes Si no está activada la casilla Show Fk Indexes, Activarla para que aparezcan los índices asociados a RelationShips 31 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Paso 17. Asignar a todos los índices de tablas de nuestro modelo el tablespaces de índices Pulsar la opción de menú Model -> Indexes -> Table Para cada tabla que exista en nuestro modelo realizar las siguientes acciones: · Seleccionar la tabla de la lista desplegable 32 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Seleccionar tabla de la lista desplegable Una vez seleccionada la tabla realizaremos las siguientes acciones para cada índice de la tabla: o Seleccionar el índice y pulsar la pestaña Physical o Pulsar el botón “Storage Properties…” y seleccionar en la lista desplegable TABLESPACE el tablespace de índices TBSIND_XXXX_100 33 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 o 3.6. Pulsar el botón Close VISTAS Paso 18. Asignar a todas las vistas de nuestro modelo el Owner, el sinónimo público y comprobar sintaxis Pulsar la opción de menú Model -> Database Views Para cada vista que exista en nuestro modelo realizar las siguientes acciones: · Seleccionar la vista de la lista desplegable · Escribir el esquema propietario del objeto en el campo Owner · Checkear la opción Create Or Replace 34 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Synonym pulsar sobre el botón NEW e indicar el nombre del Sinónimo de la Vista (normalmente coincidirá con el nombre de la Vista). Pulsar sobre el botón OK. · Seleccionar (pulsar) el nombre del Sinónimo y chequear los check: Create or Replace y Public 35 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar en la pestataña User Defined SQL · Si está chequeado el check User-Defined SQL, comprobar , como se indica en la normativa que no se debe incluir el “;” al final de la definición de la vista. 36 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar sobre el botón Close 37 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 4. OBJETOS EXTERNOS 4.1. TABLAS Y VISTAS EXTERNAS Si existen tablas o vistas externas, que no pertenezcan al esquema principal del proyecto, deberemos mostrar el objeto en color amarillo. Para ello, en la opción “Object Font Color - Fill Color” indicaremos el color amarillo, según se muestra en la siguiente figura: Recordar que las tablas o vistas externas siempre llevan el check Generate desactivado. 4.2. SINÓNIMOS REMOTOS PÚBLICOS Debido a que en Erwni V4 no existía el objeto Synonym, la forma de dar de alta los sinónimos remotos era crear una tabla o vista que tiene el nombre del sinónimo remoto (con la opción Generate desactivada) y que tiene asignado un Script template con la definición del sinónimo remoto. Si se trataba de un sinónimo remoto para un objeto de otro tipo (procedure, function, package) se creaba un Script template a nivel de modelo con la definición del sinónimo remoto. En la nueva normativa de base de datos ya se pueden crear sinónimos remotos. Por tanto, el proceso de migración va a consistir en dar de alta los sinónimos remotos partiendo de la definición de los Script Templates en el modelo original. Para ello, para cada sinónimo remoto que exista en nuestro Modelo Antiguo realizar las siguientes acciones: · (Sólo para tablas y vistas): si el objeto remoto es un objeto tipo tabla o vista que representará el objeto destino del Sinónimo, realizar las siguientes acciones: 1) Desactivar la casilla “Generate” del objeto, para que no se trate de crear este objeto remoto. 2) Activar la casilla de Create or Replace 3) En la opción “Object Font Color - Fill Color” indicar el color rojo, para poder identificar en el modelo de forma visual el sinónimo remoto, según se muestra en la siguiente figura: · Abrir el script template que contenía el sinónimo remoto antiguo, y anotar la información del sinónimo remoto: 38 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar la opción de menú: Database -> Synonyms Y Pulsar sobre el botón New, para dar de alta el nombre del sinónimo. · Pulsar el botón OK 39 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Activar el check Create or Replace, Pulsar la pestaña General y: Rellenar el campo Object Name: Indicar el nombre del objeto Rellenar el campo Object Owner: Indicar el esquema propietario del objeto Rellenar el campo DB Link: Seleccionar un dblink de la lista. Si el sinónimo apunta a un db-link que no está definido en el modelo ERWIN, deberá pulsarse sobre el recuadro a la derecha de la selección del db-link para definir el dblink que se utilizará. · En la pestaña Comment añadir los Comentarios que debe tener el sinónimo remoto: Si la tabla vacía que representaba la secuencia en el modelo original ya tenía comentarios, podemos obtenerlos de ella. 40 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Paso 19. Ya hemos definido el sinónimo remoto, pulsar sobre el botón Close Borrar Todos los Script Template Todos los Script Template del modelo deben borrarse, ya que no serán necesarios con la nueva normativa de base de datos. Para ello, seleccionamos los Script Template con el botón derecho y pulsamos sobre “Delete”: Una vez borrados, no debe haber ningún Script Template en el modelo: 4.3. SINÓNIMOS REMOTOS DE MODELOS DE DATOS PARA DOCUMENTUM (PRIVADOS) En modelos de datos de Documentum, para cada una de las tablas externas registradas en documentum, se creará un sinónimo privado remoto, cuyo nombre debe de coincidir con el nombre con el que se ha registrado la tabla en documentum. Su creación se realizará según la normativa para Sinónimos Remotos , pero creando sinónimos privados y rellenando el Object Owner. Para cada tabla externa en modelos de Documentum, verificaremos que la tabla tiene la opción de generate a 41 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 false, y la creación en la pantalla de synonyms del sinonimo remoto Privado con el Object Owner relleno: 42 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 5. CARGAS DE DATOS En Erwin V7 Las cargas de datos iniciales no se incluyen dentro del modelo ERWIN, se incluyen como ficheros SQL dentro del directorio “carga_inicial” de la entrega. En modelos antiguos, pueden encontrarse cargas de datos en ficheros (igual que en los nuevos), pero también es posible que aparezcan como Script Templates dentro del propio modelo. Al copiar los objetos del modelo de datos antiguo al nuevo, no se han copiado los Script Template de cargas de datos. Debemos abrir el Modelo Erwin antiguo, y para cada uno de los Script Templates de carga de datos que aparecen crear un fichero con extensión “.sql” en el directorio “carga_inicial” del nuevo modelo. Nota: Para crear un script de carga de datos iniciales, se debe realizar conforme a las normas de carga de datos de la Normativa de Erwin 7 (nomenclatura, contenido, etc.). 43 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 6. ÁREAS DE DISEÑO Para visualizar las Áreas de diseño, pulsar sobre la opción de menú Model -> Subject Areas En el área de diseño “01 - Área General del Modelo de Datos” ya tenemos todas las tablas y vistas de nuestro proyecto (incluyendo objetos externos pertenecientes a otros esquemas de bases de datos). Paso 20. Subject Área “90 - Área de Creación del Esquema DBA_XXXX” En este subject área hay que incluir uno a uno todos los objetos del esquema de nuestro proyecto DBA_XXXX. No se incluirán tablas externas de otros esquemas. Para incluir los objetos: · Abrir el Subject Área seleccionándolo en el menú desplegable: · Pulsar en la pestaña inferior “Model” para ver todos los objetos del modelo: 44 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Paso 21. Arrastrar UNA A UNA las tablas y vistas que deseamos incluir en el Subject Área: Subject Área 02 - Área de Definición de Jobs Si existieran jobs de bases de datos en nuestro proyecto debemos incorporarlos en ésta área de diseño tal como se indica en la normativa. Si no existen jobs de bases de datos eliminaremos éste subjectarea, pulsando en el nombre del Subject Área y seleccionando la opción Delete. Paso 22. Subject Área DOCUMENTUM Recordar que en modelos de datos para aplicaciones de Documentum, además de las normas comunes sobre áreas de diseño, se debe añadir un nuevo área de diseño con el nombre de DOCUMENTUM, que contendrá aquellos objetos oracle que deben crearse en la base de datos de documentum. Este Subject Área sólo debe existir un Subject Área en proyectos Documentum. Para el resto de proyectos éste área de diseño debe borrarse , pulsando en el nombre del Subject Área y seleccionando la opción Delete. Paso 23. Subject Área Área de diseño LOPD 45 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Si el modelo incluye tablas que contengan datos personales susceptibles de ser tratados de forma especial según la LOPD, se incluirá un área de diseño específica que contenga todos los objetos afectados. El nombre de esta área será: “80 – Área de Datos Personales Protegidos”. Se incluirán en este Subject Área los objetos uno a uno según se ha indicado en apartados anteriores. Paso 24. Otras Áreas de diseño parciales existentes Si en nuestro modelo de datos erwin 4 existían áreas de diseño parciales “conceptuales” con algunos de los objetos del esquema, debemos crear éstas áreas de diseño parciales “conceptuales” con un nombre con el siguiente formato: “XX – Descripción del área de diseño conceptual”. Si no es necesario el uso de areas de diseño parciales, se eliminarán los dos ejemplos que vienen en la plantilla: “06 - Área de Diseño Parcial 2” y “15 - Área de Diseño Parcial n” Para Crear otra área de diseño ya existente Pulsar sobre el botón New e incluir el nombre del área de diseño Pulsar el botón OK. Una vez creadas éstas áreas de diseño conceptuales iremos añadiendo uno a uno los objetos que deban estar incluidos en ellas. Se incluirán en este Subject Área los objetos uno a uno según se ha indicado en apartados anteriores. 7. MIGRACIÓN DE PROCEDIMIENTOS, FUNCIONES Y PAQUETES Se deben dar de alta en el modelo de datos erwin todos los procedimientos, funciones y paquetes que existen en el modelo de datos erwin 4.1 , asi como aquellos que no encontrándose en el modelo de datos erwin 4.1, están en ficheros sql, se copiará a nuestro modelo de datos normalizado erwin 7 Paso 25. Añadir Procedimientos Realizar las siguientes acciones para cada procedimiento: 46 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar la opción de menú Database -> Stored Procedures -> Model Level · Pulsar el botón “New...” dar de alta el nombre del procedimiento · Pulsar el botón OK · Escribir el esquema propietario del objeto en el campo Owner · Chequear la opción Create or Replace · En la pestaña Comment añadir los Comentarios que debe tener el procedimiento 47 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Code añadir el código del procedimiento realizando copy/paste desde el modelo anterior (o en el fichero SQL si estaba en uno). · Si existe al final del código el carácter / de finalización de script sql se debe borrar. · Si existen al final del código sentencias de creación de sinónimo público y grant a este sinónimo, se deben borrar. · En la primera línea del código de la cabecera debe sustiuirse lo siguiente: o Antes: CREATE OR REPLACE PROCEDURE NOMBRE_PROCEDIMIENTO o Después: CREATE %CreateOrReplace PROCEDURE %ProcedureOwner(.)%TemplateName 48 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Synonym pulsar sobre el botón New e indicar el nombre del Sinónimo del procedimiento (normalmente coincidirá con el nombre del procedimiento). Pulsar OK. · Seleccionar (pulsar) el nombre del Sinónimo y chequear los check: Create or Replace y Public · Pulsar sobre el botón Close. Paso 26. Añadir Funciones Realizar las siguientes acciones para cada función: 49 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar la opción de menú Database -> Functions -> Model Level · Pulsar el botón New.. dar de alta el nombre de la función · Pulsar el botón OK · Escribir el esquema propietario del objeto en el campo Owner · Chequear la opción Create or Replace · En la pestaña Comment añadir los Comentarios que debe tener la función 50 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Code añadir el código de la función realizando copy/paste desde el modelo anterior (o en el fichero SQL si estaba en uno). · Si existe al final del código el carácter / de finalización de script sql se debe borrar. · Si existen al final del código sentencias de creación de sinónimo público y grant a este sinónimo, se deben borrar. · En la primera línea del código de la cabecera debe sustiuirse lo siguiente: o Antes: CREATE OR REPLACE FUNCTION NOMBRE_FUNCION o Después: CREATE %CreateOrReplace FUNCTION %ProcedureOwner(.)%TemplateName 51 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Synonym pulsar sobre el botón NEW e indicar el nombre del Sinónimo de la función (normalmente coincidirá con el nombre de la función). Pulsar sobre el botón OK · Seleccionar (pulsar) el nombre del Sinónimo y chequear los check: Create or Replace y Public · Pulsar sobre el botón Close. 52 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Paso 27. Añadir paquetes Realizar las siguientes acciones para cada paquete: · Pulsar la opción de menú Database -> Package · Pulsar el botón New.. dar de alta el nombre del package · Pulsar el botón OK · Escribir el esquema propietario del objeto en el campo Owner · Chequear la opción Create or Replace · En la pestaña Comment añadir los Comentarios que debe tener el package 53 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Specification añadir la cabecera del package realizando copy/paste · Si existe al final del código el carácter / de finalización de script sql se debe borrar · Si existen al final del código sentencias de creación de sinónimo público y grant a este sinónimo, se deben borrar. · En la primera línea del código de la cabecera debe sustiuirse lo siguiente: o Antes: CREATE OR REPLACE PACKAGE NOMBRE_PAQUETE o Después: CREATE %CreateOrReplace PACKAGE %ProcedureOwner(.)%TemplateName · En la pestaña Body añadir el cuerpo del package realizando copy/paste · Si existe al final del código el carácter / de finalización de script sql se debe borrar · Si existen al final del código sentencias de creación de sinónimo público y grant a este sinónimo, se deben borrar. · En la primera línea del código de la cabecera debe sustiuirse: o Antes: CREATE OR REPLACE PACKAGE BODY NOMBRE_PAQUETE o Después: CREATE %CreateOrReplace PACKAGE BODY %ProcedureOwner(.)%TemplateName 54 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · En la pestaña Synonym pulsar sobre el botón NEW e indicar el nombre del Sinónimo del package, normalmente coincidirá con el nombre del package. Pulsar sobre el botón OK · Seleccionar (pulsar) el nombre del Sinónimo y chequear los check: Create or Replace y Public 55 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Paso 28. · Pulsar sobre el botón Close. Comprobar el orden de procedimientos, funciones y paquetes Pulsar en cualquiera de éstas tres opciones de menú: Database -> Stored Procedures -> Model Level Database -> Functions -> Model Level Database -> Packages · Pulsar la pestaña Object Creatior Order Comprobar y modificar si es necesario, el orden de creación de procedimientos, funciones y paquetes para su correcta compilación. 56 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 57 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 8. MIGRACIÓN DE TRIGGERS Al pegar los objetos del modelo original al migrado, ya se han traspasado los triggers. Sin embargo es necesario realizar una serie de pasos adicionales para normalizarlos. La migración de triggers normalizados consiste en rellenar el campo Owner y activar la opción Create or Replace, así como incluir la variable %TriggerName en la pestaña Code. Recordar que el nombre del objeto trigger debe coincidir con el nombre del trigger existente en base de datos y que las opciones de la pestaña General deben corresponder con la realidad Para cada trigger que exista en nuestro Modelo realizar las siguientes acciones: · · Rellenar el campo Object Owner: Indicar el esquema propietario del objeto · Chequear el check Create or Replace Pulsar la pestaña Code. Si el nombre del Trigger aparece con un nombre fijo o con una variable distinta a %TriggerName sustituirlo por ésta variable y si no están incluidas las Variables de definición del trigger correpondientes a la pestaña General incluirlas. El código del comienzo del trigger debe quedar así: create or replace trigger %TriggerName %Fire %Actions(" or ") on %TableName %RefClause %Scope 58 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · 8.1. Pulsar el botón Close TRIGGERS DE DOCUMENTUM Para definir triggers en modelos de datos para aplicaciones de Documentum, debe crearse una tabla sin campos y, sin sinónimo público cuyo nombre debe seguir la siguiente nomenclatura: [XXXX]_TD_[DESCRIPCIÓN]_S Donde [XXXX]_TD_[DESCRIPCIÓN]_S es el nombre del tipo documental sobre el que se va a definir el trigger. 59 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 9. REVISIONES ADICIONALES 9.1. REVISIÓN Y MODIFICACIÓN DE RELATIONSHIPS E INDICES NOTA Este paso sólo se realizará para modelos de datos que NO tengan integridad referencial (Primary Keys y Foreign Keys) física en base de datos, sólo en el modelo ERWIN. Revisión y modificación de RelationShips e índices SOLO Para modelos de datos que no tienen Foreign keys y Primary Keys físicas creadas en base de datos, se debe: · Desactivar (Deschequear) el check generate en todas las RelationShips · Desactivar (deschequear) en índices de tipo pk el check Generate as Constraint Para ello seguiremos los siguientes pasos: Paso 29. Desactivar RelationShips Pulsar docle click sobre cualquier RelationShip del modelo de datos par abrir el cuadro de diálogo de RelationShips Realizar las siguientes acciones para todas las relationships del modelo de datos: Seleccionar una RelationShip de la lista desplegable Deschequear el check Generate 60 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 Paso 30. Desactivar en índices de tipo pk el check Generate as Constraint Pulsar la opción de menú Model -> Indexes –> Table Realizaremos las siguientes acciones para cada tabla: · Seleccionar la tabla en la lista desplegable Tables · Pulsar sobre el índice de tipo pk y deschequear el check Generate as Constraint (situado en la parte inferior): 61 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 9.2. REVISAR EN CAMPOS DE TABLAS LA PROPIEDAD NULL OPTION Al realizar la operación de Copy Group / Paste de los objetos visuales (tablas y vistas) se ha comprobado que en en los campos de tabla la propiedad Null Option a veces se pierde, no la copia correctamente. Se deberá revisar la propiedad Null Option de los campos de todas las tablas. 9.3. REVISAR NOMBRE DE INDICES Si existen índices de tablas en el modelo de datos erwin 4.1 que tenian el nombre correspondiente a la normativa de erwin 4.1, es decir comienzan por X, (Ejemplo: XPK[Nombre_de_tabla], XAKnn[NombreTabla], XIEnn[NombreTabla], XGRnn[NombreTabla], …), en erwin 7 al realizar la operación de Copy Group / Paste de los objetos visuales (tablas y vistas) son renombrados automáticamente suprimiendo la X. Es necesario comprobar aquellos índices que se han renombrado automáticamente en la operación de Copy Group / Paste para renombrarlos y que coincidan con el nombre de índice original del modelo de datos Erwin 4.1. Paso 31. Renombrar nombre de índices que han sido cambiados en la operación de Copy Group / Paste Realizaremos las siguientes acciones para todos los índices de cada tabla que se han renombrado automáticamente en la operación Copy Group / Paste. Primero pulsaremos la opción de menú Model -> Indexes –> Table. Y ahí, para cada tabla y cada índice: · Seleccionar la tabla en la lista desplegable Tables 62 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · · Pulsar sobre el índice a renombrar Pulsar el botón Rename y Renombrar añadiendo una X en el inicio del nombre (o como sea necesario para que corresponda al nombre original). 63 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 · Pulsar el botón OK 64 de 65 MANUAL INTERNO Manual de Migración de Modelos de Datos Erwin 4.1 a Erwin 7 10. REALIZAR COMPARACION DEL MODELO DE DATOS ERWIN CONTRA BASE DE DATOS Recordar que según se va migrando el modelo de datos, se deben ir realizando comparaciones con la base de datos real para ver que no se esté omitiendo ningún objeto. Para comparar el modelo contra la base de datos real debe seguirse el apartado de la normativa de base de datos “COMPARACIÓN DEL MODELO CON LA BASE DE DATOS REAL”. Al final de la migración de un modelo, la comparación no debe dar ninguna diferencia. 65 de 65