Guía Del Modelo de Análisis a la Generación de Scripts en Rational Rose Enterprise Edition 2007 Universidad de los Andes Departamento de Ingeniería de Sistemas y Computación Curso: Isis2501-Conceptos Básicos de Bases de Datos Alcance y Descripción General Este documento describe los pasos para convertir un modelo de análisis de Rational Rose en un modelo entidad - relación a partir del cual puede generarse un script SQL que contiene los comandos de creación de tablas. Los pasos a seguir, en términos generales, se listan a continuación: 1. Creación de componente que representa un esquema. 2. Modificación de clases para convertirlas en tablas. 3. Edición de asociaciones: relaciones uno a muchos, uno a uno y muchos a muchos. En las siguientes secciones se describen cada uno de los pasos mencionados, cualquier duda o inconveniente no dude en comunicarse con la profesora o monitores del curso. Creación de Esquema Pasos para pasar del modelo de análisis al modelo de diseño para la persistencia 1. Abra el archivo del modelo del caso en Rational Rose Enterprise Edition. 2. Haga clic derecho sobre la carpeta Component View que se encuentra a la izquierda de la pantalla. En la ilustración 1 se puede apreciar la ubicación de dicha carpeta. 3. Seleccione New/Component y digite su login de Oracle (s2501axx) como el nombre del componente. Ilustración 1 Creación de un Componente 4. Haga clic derecho sobre el componente creado y seleccione Open Specification 5. En el cuadro que aparece, en la casilla language seleccione Oracle8. 6. Haga clic en Apply. Note que aparece una nueva pestaña llamada Oracle8. 7. En la casilla Stereotype seleccione Schema y haga clic en la pestaña Oracle8. 8. Seleccione la primera fila de la tabla y ponga true en el campo value. Haga clic en Apply. Selección de Clases Persistentes 9. Determine las clases del diagrama que se mapearan directamente a una tabla, es decir, aquellas clases que tendrán un equivalente directo con una tabla en el esquema de la base de datos (la tabla ciudad es un ejemplo típico). En base a su decisión de cómo manejará la herencia, determine también si es necesario crear nuevas clases que representarán tablas o si algunas de las clases deben ser borradas.
10. Haga clic en la pestaña Realizes del cuadro de especificaciones del esquema creado. Aparece un listado como el de la ilustración 2 que incluye, entre otras, las clases del modelo. Para cada clase a convertir, seleccione el nombre de la clase y con clic derecho seleccione la opción Assign. Ilustración 2 Pestaña Realizes de Especificaciones del Componente 11. Seleccionadas las tablas a convertir, es necesario precisar información faltante en el diagrama que es indispensable para convertir una clase en una tabla (tipos de datos y las reglas de integridad). Para ello: Seleccione nuevamente el nombre de la clase. Con clic derecho seleccione la opción Specification Aparece una nueva ventana. En la casilla Stereotype seleccione Relational Table. Haga clic en la pestaña Attributes. Aparecen los nombres de los atributos. Determine el o los atributos que compondrán las llaves primarias de la tablas, si lo cree conveniente cree un nuevo atributo que será una llave subrogada 1 ; omita este paso si la clase representa una tabla asociación puesto que en este caso la herramienta genera automáticamente la llave compuesta conformado por las llaves primarias de las tablas que relaciona. Renombre el o los atributos de modo tal que queden completamente en mayúsculas. Para cada atributo, selecciónelo, haga clic derecho y escoja la opción Specification. Aparece la ventana de la ilustración 3 que contiene las propiedades del atributo. Seleccione el tipo adecuado, por ejemplo VARCHAR. 1 Una llave arbitraria que no guarda relación semántica con el registro que identifica. El poblamiento de esta columna suele ser delegado en el manejador de bases de datos mediante mecanismos como secuencias en Oracle o Autoincrement en MySQL
Manejo de Asociaciones Ilustración 3 Edición de los Atributos Si el atributo es de tipo VARCHAR haga clic en la pestaña Oracle8 y seleccione la fila Length. Haga clic en value, digite la longitud y luego oprima OK. Si el atributo es de tipo NUMBER específique valores apropiados de precisión y longitud Para las clases que no son de asociación, haciendo clic derecho en el espacio en blanco posterior a los atributos, seleccione Insert para añadir una constraint de llave primaria. Como nombre asígnele NombreTabla_pk. Haga clic derecho sobre la constraint y escoja la opción Specification. Aparece una nueva ventana con las propiedades de la constraint. En Initial value ponga el nombre del atributo que es llave primaria (probablemente el que añadió como llave subrogada); si son varios atributos sepárelos por comas. En Export Control seleccione la opción Implementation. Haga clic en la pestaña de Oracle8, aparece otra ventana. En isindex y en isprimarykey debe colocar en value el valor true. Haga clic en OK. Al volver a la ventana anterior nuevamente haga clic en OK. 12. Determine ahora las llaves foráneas que tendrá cada tabla. Para cada asociación de muchos a uno o de uno a uno que se va a convertir siga los siguientes pasos: Advertencia: cada vez que agregue una llave foránea a una tabla, es decir, que siga este proceso, las otras relaciones de la tabla seleccionada que no hayan sido creadas por el asistente Edit Foreign Keys se borrarán del diagrama. Asegúrese que también sean borradas del modelo en el cuadro de especificaciones de la clase, en la pestaña Relations, téngalo en cuenta ante los posibles errores al momento de generar. Borre del modelo (Ctrl+D, no Supr) las relaciones de esa clase inicialmente diagramada. Seleccione la clase que está del lado del muchos (*), es decir, la que tendrá la llave foránea. Haga clic en el menú Tools (de la barra de menús) y desde allí seleccione Oracle8/Edit Foreign Keys. Aparece la ventana mostrada en la ilustración 4.
Ilustración 4 Edición de Llaves Foráneas En la casilla FK_Name ingrese un nombre apropiado para la constraint de la llave foránea. Del cuadro Tables seleccione la tabla que está del lado del uno y oprima el botón Select Primary Keys. La llave primaria de la tabla que está del lado del uno se resalta. Oprima Add Foreign Key. Si existe más de una relación a una misma tabla probablemente quiera especificar el nombre de los campos que representan la llave foránea. Para hacer esto, haga doble clic sobre el nombre del campo y/o columna y escriba el nombre deseado. Haga clic en Finalizar. Seleccione la relación uno a muchos, haga clic derecho sobre el extremo del uno y elija Navigable. 13. Determine las asociaciones de muchos a muchos, para cada asociación de muchos a muchos que se va a convertir siga los siguientes pasos: Cree las asociaciones en caso de que no existan mediante el botón de la barra de controles (como si estuviera relacionando dos clases en un diagrama OO). Seleccione la relación creada y haga clic derecho sobre el extremo que no tiene la flecha. Elija Navigable. Si no existe una tabla asociación para la relación ya diagramada, cree una nueva tabla y aplique el paso 9. Siga también los dos primeros pasos del numeral 11. Cree la relación de asociación entre la relación de muchos a muchos (la ASOCIACIÓN CREADA) y la clase asociación mediante el botón de la barra de controles. Generación de los Scripts de Creación de las Tablas Para generar los scripts de creación de las tablas a partir del modelo de diseño para la persistencia siga los pasos descritos a continuación: 1. Haga clic en el menú Tools (de la barra de menús) y desde allí seleccione Oracle8/Schema Generation. Aparece la ventana mostrada en la ilustración 5 con las opciones de generación.
Ilustración 5 Opciones de Generación 2. Haga clic en Browse para especificar la ubicación y el nombre del archivo que se generará. 3. Del cuadro Select Components seleccione el esquema que quiere generar (probablemente el que creó en el paso 7 de Conversión del Modelo de Análisis al Modelo de Diseño de Persistencia). 4. Haga clic en Generate. Se abre una ventana donde puede verse el script generado. Oprima Done para finalizar el proceso.