HERRAMIENTA CASE: ERWIN TALLER DE BASE DE DATOS – 2009 –I
UNFV - FIEI
Introducción
Este breve tutorial explica el proceso de crear un modelo de datos utilizando ERWIN. Esto no explicará todos los aspectos de ERWIN, pero si lo mínimo necesario para crear y usar los modelos de datos para esta clase. Esto consiste en tres puntos principales: 1 - Creación de un modelo de datos básico (modelo de datos Conceptual). 2 - Creación de un esquema de base de datos. 3 - Creación de la base de datos. Para la creación del diagrama partiremos del siguiente diagrama de E-R. (1,N)
N:M
(1,N)
Inspeccion a
EMPLEADO (1,1)
PROPIEDAD (0,N)
Es un
1:1
(1,N)
trabaja
gestion a
1:N (0,1)
1:N
(0,1) (1,1)
GERENTE
SOCIO
OFICINA
(1,1)
Empleado (Emp_num, Emp_nom, Emp_apel, Emp_direcc, Emp_provincia, Emp_ciudad, Emp_CP, Emp_telef ,Emp_fax, Ofi_num). Oficina (Ofi_num, Ofi_direcc, Ofi_provincia, Ofi_CP, Ofi_nombre, Ofi_telef, Ofi_fax) Propiedad (Prop_num, Prop_direcc, Prop_provincia, Prop_tipo, Prop_precio, Ofi_num) Inspecciona (Emp_num, Prop_num, Insp_fecha, Insp_coment) Gerente (Emp_num, Ger_salar, Ger_descuento) Socio (Emp_num, Soc_tasa_hora) 1 - La creación de un modelo básico de datos
Abrimos el programa y nos encontramos un primer cuadro de diálogo "ModelMart Connection Manager". Simplemente cancelamos. El siguiente cuadro de dialogo nos pedirá elegir entre la creación de un nuevo modelo, o la apertura de un modelo existente, como muestra en la Figura 1. Para este caso como creamos un nuevo modelo escogemos “Create a new model”.
Figura 1: Crear un nuevo modelo
El siguiente cuadro de diálogo, mostrado en la Figura 2, nos pedirá elegir la plantilla para crear el nuevo modelo. En este punto, podemos asociar el modelo con un sistema de administración de bases de datos, como Microsoft Access , Oracle, DB2, etc. Tendremos la oportunidad de cambiar esta opción más tarde, pero por el momento elegimos Microsoft Access. También, elegimos Lógico/Físico (Logical/Physical) como el nuevo tipo modelo. Esta opción nos permitirá cambiar fácilmente entre un modelo lógico (Diagrama de ER) y un modelo físico (esquema de base de datos).
Figura 2: Selección de un modelo
ERWIN mostrará ahora la ventana principal en la cual se realizará la mayor parte del diagrama, como muestra la figura 3. El lugar de trabajo consiste en dos partes principales. A la izquierda está el navegador, que muestra una jerarquía de artículos, como entidades, dominios y áreas. A la derecha la parte de diseño , que mostrará el diagrama de ER. Cuando creamos objetos estos aparecerán en esta parte.
Figura 3: El lugar de trabajo de ERWIN
Figura 3a:Barra de menus
Menu “File”: Dentro de este menu se encuentran la opciones de crear un nuevo diagrama, abrir, guardar, imprimir, exportar e importar. Menu “Edit”: Copiar un elemento del diagrama, cortar, pegar y seleccionar todo. Menu “View”: Se seleccionan las barras de menu que queremos tener activas. Menu “Format”: Varias opciones, las más relevantes son: -> Display level: Permite ver las entidades del diagrama de distintos modos. -> Entity display: Varias opciones para las entidades como: mostrar identificador de la clave ajena, dominios, identificador de clave primaria, migrar clave ajena... -> Relationship display: varias opciones para la relación como ver el verbo de la relacion, la cardinalidad, la integridas referencial.... Menu “Model”: Permite ver las propiedades de las relaciones, atributos, entidades, crear dominios.... Menu “Tools”: ->Reverse engineer: esta opcioón permite pasar el modelo lógico a uno físico. Menu “Window”: Varias opciones para ver las ventanas de distintos modos. Menu “Help”: Manual de ayuda.
1 2
1234567891011-
3 4
5
6
7 8
9 10
11
Nuevo. Abrir. Guardar. Imprimir. Buscar y crear informe. Ver diagrama a nivel de entidad. Ver diagrama a nivel de atributo. Ver diagrama a nivel de definición. Quitar zoom. Dar zoom. Cambiar entre modelo físico y lógico 1
2
3 4 5
6
7
8
9/ 10 /11 /12 /13/14
15 123456789101112131415-
Tipo de fuente. Tamaño fuente. Negrita. Cursiva. Subrayado. Color de fuente. Color de fondo. Color de línea de entidad. Seleccionar. Crear entidad. Cread subtipo. Relación 1:N identificada. Relación N:N. Relación 1:N no identificada. Dibujar figuras.
Ajuste de Preferencias
ERWIN puede acomodar varios datos que modelan las anotaciones y las convenciones. Antes de comenzar estableceremos ciertas preferencias: Menu Format->Entity Display -> activamos Primary Key Designator. Esto nos mostrará al lado de la clave primaria el icono de una llave. Menu Format->Entity Display -> desactivamos Foreign Key Designator (FK). No mostrará la clave ajena (FK). Menu Format->Entity Display -> desactivamos Show Migrated Attributes. Esto al realizar la relación entre dos entidades no migrará la clave primaria de la primera entidad y no la pondrá como clave ajena en la segunda. Menu Format->Relationship Display -> activamos Verb Phrase. Permite escribir un verbo en la relación. Además, podemos elegir entre dos anotaciones diferentes de diagramas E-R. Model->Model Properties para ver la ventana mostrada en la Figura 3b:
Figura 3b: Elección de anotación Creación de una Entidad
Para crear una nueva entidad, hacemos clic sobre el icono de entidad ( ) sobre la barra de herramientas, o click derecho sobre “Entities” en el navegador. Si pinchamos sobre el icono de entidad, entonces deberemos hacer click sobre la zona de diseño en donde queremos que aparezca la entidad, como muestra la Figura 4. Vemos que el nombre para la entidad es E/x, donde x es algún número (2 en este caso). Al pinchar sobre la entidad vemos las tres partes principales de esta: el nombre de la entidad, el atributo(s) clave primaria, y el atributo (s) clave no primaria. En general, para modificar una de estas tres partes de la entidad pulsaremos la tecla de tabulación para situarnos en la parte que deseamos modificar.
Figura 4: Una nueva entidad Agregando los atributos
Una vez cambiado el nombre (en nuestro caso EMPEADO) pulsamos de nuevo tabulador, y nos situaremos en la parte de clave primaria, Emp_Num en nuestro caso, como muestra la Figura 6. Vemos que debido a las preferencias que elegimos anteriormente (Primary Key Designator), antes del nombre del atributo aparece el icono de una llave que nos indica que es la clave primaria. Pulsamos tabulador una vez más y añadimos el resto de atributos no primarios.
Figura 6: La entidad de Empleado
Vamos a repetir el proceso de creación de entidad para las entidades y atributos que aparecen en la siguiente lista. Entidad Atributos Entidad Atributos
OFICINA
Ofi_Num (pk) Ofi_direcc Ofi_ciudad Ofi_provincia Ofi_CP Ofi_nombre Ofi_telefono Ofi_Fax
INSPECCIÓN
Prop_ID (pk) Prop_Street Prop_City Prop_State GERENTE PROPIEDAD Prop_Type Prop_Baths Prop_Rooms Prop_MonthlyRent
Insp_fecha Insp_Comentario
Ger_salar Ger_coche
SOCIO Soc_tasa_horas Notar que algunas entidades no tienen claves primarias (Gerente, Socio.Cuando realicemos las relaciones del diagrama, la naturaleza de las claves para estas entidades se hará clara.
Figura 7: Las entidades
Creación de Relaciones
ERWIN permite la creación de relaciones con tres clases básicas de la conectividad: de uno a uno, uno a muchos", y muchos a muchos. Dentro de la categoría uno a muchos, ERWIN nos permite que distinguir entre identificación y no identificación en relaciones de tipo uno a muchos. Relaciones "uno a muchos" - Relación identificada
Comenzaremos con dos relaciones, entre Inspección y Empleado y entre Inspección y Propiedad. La inspección está relacionada con Propiedad como con Empleado en una relación de uno a muchos. Cada Inspección se emprende en una Propiedad; cada Propiedad puede someterse a muchas inspecciones. Cada Inspección es llevada a cabo por un Empleado; cada Empleado lleva a cabo muchas Inspecciones. Suponiendo que la regla del negocio vigente aquí está en que cada propiedad tiene a lo más una inspección por día. Por esta razón, decimos que la relación entre la Inspección y la Propiedad es un relación de uno a mucho. Una relación que se identifica se crea haciendo clic primero sobre el icono de relación que se identifica ( ). Para crear la relación pinchamos sobre la entidad “padre” (uno) y luego sobre la entidad “hijo” (muchos) Además vemos que aparece mediante la anotación escogida (Model->Model Properties) tres lineas al final de la linea indicando muchos y una linea continua que indica la identificación, como vemos en la figura 8.
Figura 8: Relación identificada Figura 9: Definición de la relación
Notar que ERWIN ha proporcionado una etiqueta " R/1 "para la relación, que no es muy provechosa. Presionamos dos veces el ratón sobre la relación y se abrirá una ventana en la cual podemos cambiar el nombre a la relación. En los cuadros de texto podemos definir la etiqueta que se colocara sobre la relación en lugar de R/1, también podremos definir la cardinalidad . Figura 9. Como antes, hacemos click sobre el icono, click en la entidad “padre” (empleado), y en la entidad “hijo”(inspección Presionamos dos veces sobre la relación para abrir la ventana de definición de relación y rellenarlo como muestra figura 11. Proporcionamos un verbo significativo a la relación, elegimos la cardinalidad y tenemos la opción de indicar si se permiten valores nulos o no. ¿Dada suceso de entidad de “hijo” (Inspección) tiene que ver con un suceso de la entidad “padre” (Empleado)?. En este caso sí. Cada inspección debe ser realizada por un empleado, o no es considerado una inspección apropiada. La participación de Empleado en la relación es obligatoria.
Figura 10: Relación no identificada Figura 11: Definición de la relación - Relación no identificada
La relación entre Empleado y Oficina es algo diferente. Esta es una relación de tipo uno a muchos, pero esta no se identifica, porque la clave primaria del Oficina no es parte de la clave primaria de la Empleado. Para tal relación, debemos hacer clic sobre el icono de relación que se no identifica ( ), que usa una línea discontinua en vez de una línea continua. Cada empleado es adjudicado a una y sólo una oficina, y cada oficina tiene a uno o varios Empleados. En esta relación uno a mucho, la oficina es la entidad “padre” y el empleado es la entidad “hijo”.Ya que la clave primaria de empleado no incluye la clave primaria del oficina, esta es una relación que se no identifica. Figura 12.
Figura 12: Relación no identificada
Figura 13: Relación que se no identifica con participación obligatoria
La cardinalidad indica que cada oficina tiene que ver con uno o varios (pero no cero) empleados. El Tipo de relación indica que esta es una relación que se no identifica, y que no se permiten nulos. En otras palabras, cada empleado debe tener que ver con una sola oficina. Figura 13. Completamos las relaciones creando una relación entre oficina y propiedad en la cual cada oficina maneja cero, una, o más propiedades, y cada propiedad es manejada por una y sólo una oficina. Figura 12.
Subtipos y Supertipos
Hay dos clases de empleados entre los que deseamos distinguir: gerentes y socios. Cada una de estas dos clases de empleados tiene todas las propiedades del Empleado, pero tiene además un pequeño número de atributos específicos. Sólo los gerentes tienen un sueldo y una concesión de coche. Sólo los socios tienen una tasa por hora. Podemos especificar que Gerente y Socio son subtipos del Empleado. Para hacer esto, usaremos el icono de subtipo ( ). Indicar que el Gerente es un subtipo de Empleado. Hacemos click primero sobre el icono de subtipo, luego sobre el supertipo (Empleado), luego sobre el subtipo (Gerente). Para incluir al socio como un subtipo, hacemos click otra vez sobre el icono de subtipo. Ahora, en vez de hacer clic sobre el supertipo otra vez, haga click sobre el icono de subtipo en el diagrama entre empleado y gerente y seguidamente en socio. Figura 14.
Figura 14: Diagrama final 2 - Creación de un esquema de base de datos
Ahora crearemos un esquema de base de datos basado en el diagrama creado anteriormente Esto consta de dos partes principales. Primero, aseguramos que todas las entidades (fuertes) fundamentales tienen una clave primaria. Segundo, definir los dominios para cada atributo. Uno de los rasgos atractivos de los dominios, es que los dominios pueden ser compartidos por más de un atributo. En un diagrama de E-R, nosotros podemos definir los dominios una vez, y aplicarlo a múltiples atributos. La ventaja de este es la coherencia a través de atributos y facilidad del mantenimiento. Definiremos todos los dominios que necesitaremos en nuestro diagrama ,luego los aplicaremos a nuestros atributos. En el menu Model -> Domain Dictionary, y se nos presentará una venta como la figura 15.
Figura 15: Diccionario de dominios
Crearemos primero un nuevo dominio que podremos aplicar a identificadores numéricos que usaremos, como Emp_num, Prop_num, y Ofi_num. Click sobre “New” para crear un nuevo dominio. Tecleamos el Código como el nombre del dominio en el cuadro de texto de “Logical name” como muestra la Figura 16.
Figura 17 : Adjudicar un tipo de datos al nuevo dominio Figura 16: Nuevo dominio
Volveremos a la ventana de Diccionario de dominio y veremos que un nuevo dominio, Codigo, ha sido creado, como muestra la figura 17. Pulsamos sobre la etiqueta “Datatype”, y elegimos integer como “Datatype” para este dominio. A continuación creamos otro dominio para provincia como char(2). Ahora tenemos que especificar los códigos de provincia que constituyen valores válidos para el dominio. Click sobre los puntos suspensivos que aparecen a la derecha del cuadro llamado “Valid” y veremos una ventana en la cual podemos crear reglas de validación como muestra la Figura 18. Crearemos una nueva regla de validación para el dominio estado. Click sobre “New” y lo denominamos Códigos de provincia y aceptamos. Volveremos a la ventana de las Reglas de la Validación. Aquí, hacemos click en “Valid values list” y comenzamos a teclear códigos estatales válidos en la primera columna de Valor Válida. Figura 19.
Figura 18: Reglas de Validación
Figura 19: Valores validos del dominio
Repetiremos el proceso para el resto de dominios que se detallan a continuación: DOMINIO NOMBRE DIRECC CIUDAD CP TELEFONO SALARIO
DATATYPE REGLA DE VALIDACIÓN CHAR(20) CHAR(100) CHAR(50) CHAR(10) CHAR(15) DECIMAL(9,2) Crear una nueva regla de validación con un valor Mínimo = 0 COMENTARIO CHAR(255) TIPO CHAR(25) Crear una nueva regla de llamada el Tipo de Propiedad con una lista de valores válidos: Casa, Apartamento, Duplex, Comercial FECHA FECHA PRECIO INTEGER Crear una nueva regla llamada no número entero negativo con un valor Mínimo = 0 NUMERO ENTERO NO INTEGER Crear un nuevo validan la regla llamada número entero no NEGATIVO negativo con un valor Mínimo = 0
Aplicación de dominios a atributos
Una vez creados los dominios debemos asociarlos a sus atributos correspondientes. ATRIBUTO Emp_num Emp_nom
DOMINIO Codigo Nombre
ATRIBUTO Ofi_num Ofi_calle
DOMINIO Codigo Calle
Emp_apel Emp_calle Emp_ciudad Emp_provincia Emp_CP Emp_telefono
Nombre Calle Ciudad Estado Zipcode Teléfono
Ofi_CP Ofi_nombre Ofi_telefono Ofi_fax Insp_fecha Insp_comentario
Zipcode Nombre Teléfono Fax Fecha Comentario
Emp_Fax Prop_num Prop_calle Prop_ciudad Prop_provincia Prop_CP Prop_tipo Prop_precio Prop_habitaciones
Teléfono Ger_salar Codigo Ger_coche Calle Soc_tasa_hora Ciudad Estado Zipcode Tipo de Propiedad Dinero Numero entero no negativo
Dinero Dinero Dinero
Para ello presionamos dos veces el ratón sobre una de las entidades en el diagrama. Veremos una lista de atributos en la izquierda, y una lista de dominios sobre el lado derecho. Asociamos un dominio con un atributo pinchando primero sobre el atributo, luego haciendo click sobre el dominio a asociar. No recibiremos ningún mensaje informativo adicional de que esta asociación ha sido hecha. Figura 20.
Figura 20: Asociación de un dominio con un atributo
Finalmente activamos las propiedades que desactivamos al comienzo. Conversión de un Diagrama de E-R en un Esquema Relacional
Finalmente, para transformar el diagrama de E-R lógico en un esquema Relacional físico, simplemente elegimos Físico en vez de Lógico en el cuadro combinado () en lo alto de la ventana como muestra la figura 21.
Figura 21: Modelo Físico del Esquema Relacional
3 - Creación de la base de datos.
Ahora crearemos una base de datos física basada en el esquema relacional desarrollado anteriormente. Este proceso consta de varias partes. Primero, comprobaremos nuestro esquema relacional para asegurarnos que todos los tipos de datos son correctos. Segundo, crearemos una base de datos de Access
vacía para tener nuestra base de datos. Tercero, utilizaremos ERWIN para engendrar un conjunto de tablas dentro de la base de datos que se corresponde a nuestro esquema relacional. Una vez creada la base de datos en blanco en Access debemos ir al menu Tools->Forward Engineer/Schema Generation (En modo Physical). Figura 22
Figura 22: Generar esquema
Pusltamos en generar y veremos una nueva ventana. Tecleamos ADMIN como “User Name”, y en “Browse” buscamos la base de datos que hemos creado previamente. Después de esto pulsamos en “Connect”. Figura 23.
Figura 23: Conexión con la base de datos
Si todo va bien, veremos una ventana indicando los resultados de la generación de esquema. Figura 24.
Figura 24: Esquema generado
Finalmente abrimos la base de datos de Access que creamos antes y verificamos que la base de datos ha sido creada acorde al esquema de E-R . Figura 25.
Figura 25: Base de datos