AllFusion Erwin Data Modeler Autores: Marco A. Guevara Injoque César R. Flores Nazario © Derechos Reservados 2002 ERwin Conceptos Básicos de Modelamiento Lógico • Introducción Marco A. Guevara Injoque 2 Cesar R. Flores Nazario ERwin Definición de Dato Es la representación de un mensaje. Debe ser OBJETIVO Definición de Información Son los datos procesados. Debe ser SUBJETIVO Dato + Proceso = Información Información = Significado percibido al recibir un mensaje Base de Datos Conjunto de datos organizados de tal manera, que pueda extraerse información y que pueda ser compartida. Entre los usuarios debe existir un consenso en lo que representan los datos (la información a obtener) Definición de Modelo Representación grafica de la realidad que son clarificados a través de texto explicativo. Ejemplo: Una representación a escala de una casa, Una representación de un automóvil, etc. Definición de Modelo de Datos Estructuras de datos y reglas de negocio que representan los requerimientos de un sistema. Marco A. Guevara Injoque 3 Cesar R. Flores Nazario ERwin Tipos de Modelo de Datos Los modelos de datos pueden ser: • Lógico: Orientado a la empresa, Definiciones y Reglas de Negocio • Físico: Restringido por el DBMS • Dimensional: DataWarehousing, Diseño de DataMart Entidad Una persona, lugar, evento o concepto acerca del cual el negocio necesita guardar datos. Atributo Propiedad de una entidad que almacenara datos Llave Primaria (PK) Un atributo (Llave simple) o conjunto de atributos (Llave compuesta) que identifican únicamente una instancia (fila o registro) de una entidad. En ERwin la llave primaria esta posicionada sobre la línea en una entidad. Llave Alterna (AK) Un atributo (Llave simple) o conjunto de atributos (Llave compuesta) que identifican únicamente una instancia (fila o registro) de una entidad, pero que NO ES ESCOGIDA como llave primaria. En ERwin, se muestra por el diagrama (AKx,y) donde x representa un numero entero incrementado para cada llave alterna en una entidad; y representa el orden del atributo llave. Entrada Inversa (IE) Se utilizan cuando uno o mas atributos son usados frecuentemente para acceder a una o mas instancias (filas o registros) de las entidades. EN ERwin son mostrados en diagramas (IEx,y) después de cada atributo de la entrada inversa. donde x representa un numero entero incrementado para cada llave alterna en una entidad; y representa el orden del atributo llave. Relación Un enlace lógico entre dos entidades que representa una regla de negocio o una restricción. Llave Foránea (FK) Una llave foránea es una llave primaria de una entidad padre (Fuerte) que es AGREGADA a la entidad hijo (Débil) a través de su relación. Marco A. Guevara Injoque 4 Cesar R. Flores Nazario ERwin Relación Identificada La llave primaria de la entidad padre es migrada a través de la RELACION para FORMAR parte de la llave primaria de la entidad hijo. Relación Obligatoria No-Identificada La llave primaria de la entidad padre es migrada como un atributo no llave (no forma parte de la llave primaria de la entidad hijo) de la entidad hijo. La FK necesariamente tiene que tener un valor real de la PK. Relación No-Obligatoria No-Identificada La llave primaria de la entidad padre es migrada como un atributo no llave (no forma parte de la llave primaria de la entidad hijo) de la entidad hijo. La opcianalidad en el lado del padre indica que la FK en la entidad hijo puede existir sin la información de la PK de la entidad padre. Relación Muchos a Muchos La llave primaria de la entidad padre no es migrada como llave foránea. Cada frase representa la regla desde la perspectiva • Padre a Hijo • Hijo a Padre Rol de ERwin en el Modelamiento de Datos ERwin es una herramienta de base de datos que le ayuda a diseñar, generar y mantener aplicaciones de base de datos de calidad y alto rendimiento. Desde un modelo lógico de sus requerimientos de información y reglas del negocio que definen su base de datos, hasta un modelo físico, optimizado por las características específicas de su base de datos de destino, ERwin le permite visualizar la estructura adecuada, los elementos clave y un diseño optimizado de su base de datos. ERwin genera tablas automáticamente y miles de líneas de stored procedures y código trigger para las principales bases de datos. Su tecnología "complete-compare" permite el desarrollo interactivo, de manera que su modelo está siempre sincronizado con su base de datos. A través de la integración con los ambientes de desarrollo líderes en la industria, ERwin también acelera la creación de aplicaciones data-centric. Beneficios de ERwin • • Asegura consistencia, reuso, e integración de los datos del proyecto al proporcionar el bosquejo que las IT necesitan para entender, analizar y comunicar la estructura de la base de datos. Mejora la productividad entre los desarrolladores cuando los diseños de la base de datos son divididos, compartidos, y reutilizados. Marco A. Guevara Injoque 5 Cesar R. Flores Nazario ERwin • • • El ambiente gráfico facilita la visualización de la estructura completa, los elementos claves y el diseño optimizado de la base de datos. Le ahorra tiempo al acelerar la creación de bases de datos de alta calidad, transaccionales de alto rendimiento y para data warehouse. Mantiene los recursos y mejora la precisión al sincronizar el modelo y la base de datos. Para el presente manual seguiremos haciendo uso del caso de estudio que se planteo en el manual de Modelamiento de Procesos. Marco A. Guevara Injoque 6 Cesar R. Flores Nazario ERwin Herramientas de Navegación de ERwin 3.52 • Caja de Herramientas • La Barra de Herramientas • El Editor de Diagramas • Ventana Principal de ERwin Marco A. Guevara Injoque 7 Cesar R. Flores Nazario ERwin La Barra de Herramientas de ERwin Guardar Nuevo Modelo Modelo Vista de No Exportar Examinar Disminuir Área de Herramienta Atributos Magnificar Modelo Reportes Zoom Selección ModelMart Imprimir Modelo Abrir Modelo Vista de Fit Servidor Definición Model de Datos Vista de Aumentar Ingeniería Tabla Zoom Reversa Tipo de Modelo Área de Negocios Barra de Herramientas Lógica IDEF1X Siempre seleccione la flecha para regresar al modo Mouse después de manipular objetos Agregar Texto Agregar Entidad Agregar Categoría Herramienta de manipulación de Atributos Relación Identificada Relación No Identificada Relación Muchos a Muchos Barra de Herramientas Lógica IE Agregar Entidad Siempre seleccione la flecha para regresar al modo Mouse después de manipular objetos Agregar Texto Agregar Categoría Herramienta de manipulación de Atributos Relación Identificada Relación No Identificada Relación Muchos a Muchos Marco A. Guevara Injoque 8 Cesar R. Flores Nazario ERwin El Editor de Diagrama Para crear un Modelo en ERwin utilice el Editor de Diagrama. Para ello realizar los siguientes pasos: 1. Desde el menú Edit, elegir Diagram... 2. Ingrese Nombre y Autor 3. Seleccione el Servidor de Base de Datos (Target Server) 4. Clic en OK para retornar al modelo Marco A. Guevara Injoque 9 Cesar R. Flores Nazario ERwin Ventana Principal de ERwin Barra de Tareas Menú Principal Barra de Texto Barra de Herramientas Área de Visualización Marco A. Guevara Injoque 10 Cesar R. Flores Nazario ERwin Creando Entidades y Atributos • Construyendo Entidades • El Editor en Pantalla • Creando Atributos Marco A. Guevara Injoque 11 Cesar R. Flores Nazario ERwin Tipos de Entidades en ERwin En ERwin el modelo lógico puede contener dos tipos de entidades: independiente y dependiente. Una entidad independiente es una entidad que puede identificarse sin determinar su relación con otra entidad. Cada entidad tiene llave propia, se representa como una caja con rincones cuadrados. Una entidad dependiente es una entidad que para identificarse requiere de su relación a otra entidad o entidades. Se representa como una caja con rincones redondeados. Entidad Independiente Entidad Dependiente Construyendo y Nombrando Entidades Para crear una entidad realizar lo siguiente: 1. Seleccione Entidad de la Caja de Herramientas 2. Cambia el Cursor 3. Clic en el fondo del diagrama 4. Tipee el nombre de la entidad 5. Finalmente seleccione la flecha Marco A. Guevara Injoque 12 Cesar R. Flores Nazario ERwin Nota: ERwin establece un nombre por defecto para la Entidad así como para cualquier objeto construido. El Editor de Entidades Utilice el editor de entidades para ingresar/editar, definiciones de entidades y sus notas, para explorar definiciones, cambiar el nombre a la entidad o para asignar propiedades definidas por el usuario UPD. Para ello realizar lo siguiente 1. Clic derecho en una Entidad para mostrar el menú contextual 2. Escoja Entity Editor 1. Ingrese la Definición en el tab Definition 2. Seleccione el Combo Box en la parte superior de la ventana de dialogo para elegir otra entidad a ser editada 3. Finalmente clic en OK Marco A. Guevara Injoque 13 Cesar R. Flores Nazario ERwin Finalmente la entidad quedara definida tal como se muestra en la figura: Haga clic aquí para visualizar definiciones de entidades El Editor en Pantalla El editor en pantalla permite crear en forma rápida el nombre de la entidad, atributos, y llaves. Para ello realizar lo siguiente: 4. Seleccione una Entidad. 5. Presione TAB para pasar al área de los atributos llaves y escriba el nombre de los atributos 6. TAB para pasar al área de los atributos no-llave y escriba el nombre de estos Marco A. Guevara Injoque 14 Cesar R. Flores Nazario ERwin Nota: 1. Si la llave primaria es compuesta use la tecla ENTER para escribir atributos adicionales en esta área 2. Utilizar la tecla ENTER para incluir mas atributos El Editor de Atributos El editor es utilizado construir y editar llaves primarias y atributos no-llave, explorar entidades, definir atributos, asignar dominios y crear llaves alternas y entradas inversas. Para ingresar al editor de atributos realizar lo siguiente: 1. Clic derecho en una entidad 2. Elija la opción Attribute Editor 3. Finalmente ERwin le mostrara la siguiente ventana 1. Seleccione el CheckBox “Primary Key” en el tab General para designar que un atributo es parte de la llave primaria 2. Seleccione el CheckBox “Logical Only” para indicar que un atributo seleccionado no aparezca como una columna en el modelo fisico 3. Seleccione el CheckBox “Required” para indicar que un atributo debe tener un valor Marco A. Guevara Injoque 15 Cesar R. Flores Nazario ERwin Para el caso en estudio las entidades a crear son las siguientes: PRODUCTO CLIENTE PERSONAL USUARIO PROFORMA NOTA DE PEDIDO FACTURA BOLETA El modelo quedara tal como se muestra en la siguiente figura: Haga clic aquí para visualizar atributos Marco A. Guevara Injoque 16 Cesar R. Flores Nazario ERwin Creando Llaves • Llaves Primaria • Llaves Alternas • Llaves Inversas Marco A. Guevara Injoque 17 Cesar R. Flores Nazario ERwin Creando Llaves Primaria (PK) Por definición un Llave Primaria es aquella que identifica de manera única una fila de la entidad. Esta debe cumplir ciertos requisitos: 1. No cambia con el tiempo 2. No acepta valores NULL 3. No acepta valores repetidos En ERwin para crear una Llave Primaria realizar lo siguiente: 1. Clic derecho sobre la entidad 2. Seleccione Key Group... 3. Posteriormente ERwin le mostrara la siguiente ventana: Marco A. Guevara Injoque 18 Cesar R. Flores Nazario ERwin 4. En la zona de Available Attributes seleccione el atributo CODIGO DE PERSONAL 5. Posteriormente haga clic en el botón para elegir el atributo como PK 6. En el cuadro combinado que tiene como titulo Entity elija otra entidad y seleccione el atributo que usted ha elegido como Llave Primaria 7. Repita el paso 5 8. Finalmente Clic en OK Otra forma de crear Llaves Primarias es haciendo uso de la herramienta de manipulación de atributos de la barra de trabajo de ERwin de la siguiente manera: 1. Clic en la caja de herramienta que tiene como titulo manipulación de atributos 2. Haga clic en el atributo CODIGO DE PERSONAL, arrástrelo y ubíquelo por encima de la línea y suelte. 3. Automáticamente ERwin creara la Llave Primaria. 4. Realizar los mismos pasos para las demás entidades. Para el caso en estudio las lleves primaria del modelo serán las que se muestran a continuación: Marco A. Guevara Injoque 19 Cesar R. Flores Nazario ERwin Entidades del Modelo con sus Llaves Primarias (PK) Creando Llaves Alternas (AK) Una llave alterna (AK) es un atributo o grupos de atributos que no fueron elegidos como Llaves Primarias. En ERwin para crear una Llave Alterna realizar lo siguiente: 1. Clic derecho sobre la entidad 2. Seleccione Key Group... 3. ERwin le mostrara la siguiente ventana 1. Haga clic en el botón NEW 2. ERwin le mostrara la siguiente ventana Marco A. Guevara Injoque 20 Cesar R. Flores Nazario ERwin 1. Seleccione Key Group y escriba AK 2. Un nombre por defecto es creado pero puede ser modificado. 3. Finalmente clic en OK 4. Luego seleccione los atributos que van a ser incluidos dentro de la llave. 5. Clic en la flecha derecha para incluir atributos 6. Finalmente clic en OK Marco A. Guevara Injoque 21 Cesar R. Flores Nazario ERwin Creando Llaves Inversas (IE) Para crear Llaves Inversa o Entrada Inversa repita los mismos pasos que siguió para crear una Llave Alterna. En la ventana New Key Group elija el botón que tiene como titulo Inversion Entry (no-unique). Tal como se muestra en la figura: Finalmente Seleccione los atributos que van a ser incluidos dentro de la llave y haga clic en la flecha derecha para incluirlos. El modelo quedara tal como se muestra en la figura: Marco A. Guevara Injoque 22 Cesar R. Flores Nazario ERwin El Modelo para el caso en estudio la entidad personal quedara tal como se muestra en la figura: Entidad Personal con una Llave Alterna (AK1.1) y con una Entrada Inversa (IE1.1) definidas Marco A. Guevara Injoque 23 Cesar R. Flores Nazario ERwin Creando Relaciones • Relación Identificada • Relación no Identificada • Relación Muchos a Muchos Marco A. Guevara Injoque 24 Cesar R. Flores Nazario ERwin Creando Relaciones ERwin define tres tipos de relaciones: 1. Relación Identificada 2. Relación no Identificada 3. Relación Muchos a Muchos Para todos los casos la construcción de las relaciones es tal como se detalla a continuación: 1. Seleccione el tipo de relación de la caja de herramienta 2. Seleccione la entidad Padre 3. Seleccione la entidad hijo 4. Seleccione la flecha de la caja de herramienta para desactivar la relación Para el ejemplo las relaciones quedaran establecidas de acuerdo a la siguiente figura: Nota: Las relaciones están sin editarse dentro del modelo, a continuación pasaremos a hablar sobre la edición de la relaciones. Marco A. Guevara Injoque 25 Cesar R. Flores Nazario ERwin Editando la Relaciones Para editar una relación realizar lo siguiente: 1. Haga doble clic sobre la relación 2. ERwin le mostrara la siguiente ventana: Utilizar el TAB General para: 1. Ingresar frases a la relación 2. Cambiar Cardinalidad 3. Cambiar el tipo de relación 4. Marcar la relación como solamente Lógica Para el presente modelo edite las siguientes relaciones de acuerdo a la tabla que se muestra a continuación: Entidades Relacionadas Personal-Usuario Cliente-Proforma Pro forma-Pedido Pedido-Boleta Pedido-Factura Usuario-Cliente Usuario-Producto Usuario-Proforma Usuario-Pedido Usuario-Boleta Usuario-Factura No Null X SI SI SI SI SI SI SI SI SI SI Cardinalidad Zero-uno X Zero-uno Zero-uno Zero-uno X X X X X X Finalmente el modelo se visualizara tal como se muestra en la figura: Marco A. Guevara Injoque 26 Cesar R. Flores Nazario ERwin Creando Frase-Verbo a las Relaciones Una frase verbo permite describir la relación entre dos entidades, para ello realizar lo siguiente: 1. Doble clic sobre la relación 2. En el TAB General ingrese a la zona que tiene como titulo Parent-to-Child y escriba el verbo para la relación 3. Finalmente clic en OK Marco A. Guevara Injoque 27 Cesar R. Flores Nazario ERwin Si aplicamos esta opción a todas nuestra relaciones dentro del modelo estas se visualizaran tal como se muestra en la figura: Nota: El modelo lógico debe tener todas sus entidades totalmente relacionadas, no puede existir ninguna entidad acéfala ya que dejaría de ser un modelo EntidadRelación Marco A. Guevara Injoque 28 Cesar R. Flores Nazario ERwin Creando Áreas de Negocio y Stored Display Marco A. Guevara Injoque 29 Cesar R. Flores Nazario ERwin Áreas de Negocio (Subject Área) Permiten trabajar con un subconjunto de entidades mientras se mantiene la integridad de todo el modelo. Para crear una Área de Negocio realizar lo siguiente: 1. Haga clic en el icono de la barra de herramienta de ERwin 2. También desde el menú Edit elija Subject Área 3. ERwin le mostrara la siguiente ventana 1. Haga Clic en New 2. En la opcion Name ingrese un nombre para el área de negocio. 3. Clic en OK 4. Luego haga clic en el TAB Members y ERwin le mostrara la siguiente ventana 1. Mueva las entidades que se incluirán dentro del área de negocio 2. Incluya entidades relacionadas a una entidad utilizando los dos últimos botones 3. Seleccione un grupo de entidades combinando CTRL y/o SHIFT Marco A. Guevara Injoque 30 Cesar R. Flores Nazario ERwin Para visualizar realizar lo siguiente: 1. seleccione la opcion área de negocio y despliegue el botón de flecha hacia abajo 2. Seleccione el nombre del área de negocio que fue creado 3. Finalmente ERwin le mostrara lo siguiente: Área de Negocio creada con sus respectivas entidades Creando Stored Display Permiten crear Tabs en la parte inferior de la ventana principal de ERwin. Para ello realizar lo siguiente: 1. Desde el Menú Edit seleccione Stored Display... 2. ERwin le mostrara la siguiente ventana 1. Seleccione Rename 2. Ingrese el nuevo nombre 3. Clic en OK 4. Para crear mas Stored Display clic en el botón New Marco A. Guevara Injoque 31 Cesar R. Flores Nazario ERwin 1. Clic en cada TABs para seleccionar el nivel apropiado de visualización y reordenar el modelo 2. El ordenamiento y los niveles de visualización permanecen almacenados Finalmente el modelo se visualizara tal como se aprecia en la siguiente figura: Stored Display creados en ERwin a nivel de entidades Marco A. Guevara Injoque 32 Cesar R. Flores Nazario ERwin Stored Display creados en ERwin a nivel de Llaves (PK) Opciones de Visualización Estas opciones permiten visualizar de distinta manera el modelo ERwin. Para ello distinguimos las siguientes opciones de visualización: 1. Nivel de Entidad 2. Nivel de Atributo 3. Nivel de Llave Primaria 4. Nivel de Definición 5. Nivel de Iconos Marco A. Guevara Injoque 33 Cesar R. Flores Nazario ERwin Nivel de Entidad Para ello, en la barra de herramientas de ERwin seleccione el botón Nivel de Atributo Para ello, en la barra de herramientas de ERwin seleccione el botón Nivel de Llave Primaria Para ello, en la ventana de fondo haga clic derecho y elija la opcion Display Level, posteriormente elija la opcion Primary Key Marco A. Guevara Injoque 34 Cesar R. Flores Nazario ERwin Creando Atributos Independientes Marco A. Guevara Injoque 35 Cesar R. Flores Nazario ERwin Creando Atributos Independientes En ERwin, un dominio es un objeto independiente que se utiliza para asignar rápidamente las propiedades a un atributo o la columna. Una vez que se haya definido el dominio, se pueden emplear en ambos modelos: lógico y físico. Entre sus ventajas tenemos: • Promueve la consistencia • Reduce el tiempo en el desarrollo y la conservación (si cambia el dominio, todas columnas asociadas con el dominio se cambian también) • Apoyo a las propiedades definidas por el usuario • Define los atributos y las columnas Los tipos de dominio que se pueden crear en ERwin son: • String Cadena • Number Numero • DateTime FechaHora • Blob General Para crear un Dominio realizar los siguientes pasos: 1. En el examinador de Atributos independientes haga clic en cualquier tipo de dominio por ejemplo String Haga doble clic sobre cualquier tipo de dominio Marco A. Guevara Injoque 36 Cesar R. Flores Nazario ERwin 2. ERwin le mostrara la siguiente ventana: Haga clic en el botón New para crear un nuevo Dominio. 3. Finalmente el dominio se visualizara en el Diccionario de Dominios Dominio creado de tipo cadena Marco A. Guevara Injoque 37 Cesar R. Flores Nazario ERwin Por otro lado desde el Examinador de Atributos también se pueden crear Dominios para ello realizamos lo siguiente: Utilizar CRTL + clic para seleccionar todos los atributos en la entidad y luego arrastrelo al examinador de atributos Copiar los atributos existentes al explorador de atributos independientes para ser utilizados como estándar Finalmente el explorador de atributos se visualizara tal como se muestra en la siguiente figura: Dominios creados por la copia de los atributos de la entidad personal Marco A. Guevara Injoque 38 Cesar R. Flores Nazario ERwin Utilizando Atributos Independientes Los atributos independientes pueden utilizarse para asignar atributos existentes en el dominio en el Editor de Atributos. Cuando la herencia esta configurada correctamente, cualquier cambio hecho al dominio afectara automáticamente a los atributos referidos dentro de las entidades. 1. Crear una Entidad 2. Haga clic en la herramienta de manipulación de atributos de la caja de ERwin 3. Seleccione un atributo independiente del examinador de atributos 4. Arrástrelo y colóquelo en la zona de atributos de la Entidad Marco A. Guevara Injoque 39 Cesar R. Flores Nazario ERwin Refinando el Modelo de Datos • Unificación • Rolenames • Relaciones Recursivas • Resolución Muchos a Muchos Marco A. Guevara Injoque 40 Cesar R. Flores Nazario ERwin Unificación Cuando un atributo es migrado como una llave foránea dentro de una entidad en la que este ya existe, los dos son unificados dentro de un solo atributo. Esto se deriva de una regla IDEF en la cual si un objeto tiene el mismo nombre entonces es la misma cosa. Para demostrar este ejemplo en el modelo que se muestra, vamos a crear una entidad y en ella vamos a incluir un atributo con el mismo nombre de la llave primaria de la entidad padre y luego procederemos a establecer la relación. Entidad creada con un atributo llamado código de cliente. Al establecer la relación ERwin le mostrara la siguiente ventana: Este cuadro de dialogo muestra las siguientes opciones: 1. Reemplazar el atributo 2. Renombrar el atributo 3. Crear un nuevo nombre a la llave foránea. Finalmente haga clic en OK para establecer la relación. Marco A. Guevara Injoque 41 Cesar R. Flores Nazario ERwin Rolenamed Foreign Key Es un atributo cuyo nombre ha sido cambiado en la llave foránea para mostrar su rol. Para ilustrar el ejemplo veamos el caso de una tienda que vende y alquila herramientas al mismo tiempo, a su vez esta tienda pertenece a una división dentro del negocio. Según lo planteado el grafico se muestra tal como se aprecia. El grafico muestra la relación entre tienda y herramientas, nótese que al realizar la relación la misma PKs concatenadas migran a la entidad herramientas. Pero cada relación tiene que cumplir su rol respectivo dentro de la entidad hija (vende y alquila) , para ello utilizamos el Rolenaming. Para ello realizamos lo siguiente: 1. Haga doble clic en la relación 2. Elija el TAB Rolename 3. En el cuadro de texto escriba el nombre para cada llave para cambiar el rol dentro de la entidad. Cambie el rol para cada llave Marco A. Guevara Injoque 42 Cesar R. Flores Nazario ERwin 4. Finalmente el modelo se vera tal como se aprecia en la figura: Creando una Relación Recursiva Es una relación que se establece entre una misma entidad. Para el presente ejemplo vamos a crear una entidad llamada empleados y vamos a establecer la relación entre si misma, tal como se aprecia en la siguiente figura: Al establecer la relación no se puede apreciar la FK dentro de la entidad, para ello utilizar Rolename para poder visualizar la FK dentro de la entidad 1. 2. 3. 4. Clic derecho en la relación Elija Relationship Editor Ingrese una frase Asigne una Rolename a la llave foránea 5. Clic en OK para regresar al modelo Marco A. Guevara Injoque 43 Cesar R. Flores Nazario ERwin Finalmente la relación quedara tal como se aprecia en la siguiente figura: Aquí se puede apreciar la llave foránea sobre la misma entidad Resolviendo Relaciones Muchos a Muchos Para resolver relaciones muchos a muchos se tienen que crear entidades asociativas. También podemos resolverlas utilizando la opción Many to Many que proporciona ERwin para dichas relaciones. Para el ejemplo veamos la siguiente relación: Un método alternativo para resolver dicha relación es la siguiente: 1. Clic derecho en la relación Muchos a Muchos 2. Elija la opción Resolve Many to Many 3. Analice los resultados cuidadosamente Marco A. Guevara Injoque 44 Cesar R. Flores Nazario ERwin 4. Finalmente la relación quedara resuelta tal como se aprecia en la siguiente figura Entidad agregada a través de la relación Muchos a Muchos Nivel de Visualización Para ello, en la barra de herramientas de ERwin seleccione el botón Nivel de Iconos Para ello, en la ventana de fondo haga clic derecho y elija la opcion Display Level, posteriormente elija la opcion Icon. Marco A. Guevara Injoque 45 Cesar R. Flores Nazario ERwin Refinando el Modelo de Datos • Generalización Jerárquica • Integridad Referencial Marco A. Guevara Injoque 46 Cesar R. Flores Nazario ERwin Jeneralización Jerárquica Se define como un conjunto de entidades que comparten atributos comunes. Para comprender la definición veamos un ejemplo: Padre Genérico (Supertipo). Contiene atributos y llaves generalizados Categoría (Subtipo). Entidad que contiene llaves foráneas migradas y atributos distintivos. Símbolos de las Relaciones Completa (Obligatorio) Incompleta (Opcional) Utilizar el símbolo de categoría completa donde todos los subtipos son mostrados. Cada instancia del Supertipo debe tener una instancia en uno de los subtipos. Utilizar el símbolo de incompleta donde todos los subtipos no son mostrados debido a que ellos no requieran de atributos distintivos. Cada instancia del Supertipo podría tener una instancia en uno de los subtipos. Marco A. Guevara Injoque 47 Cesar R. Flores Nazario ERwin Para entender esta definición veamos un ejemplo: Ejemplo de Categoría Completa Vemos el siguiente modelo donde la Regla de negocio indica que: Un vehículo debe ser un CAMION o una EMBARCACION. No puede ser otra cosa mas. La grafica será tal como se muestra en la figura: Discriminador de Categoría Tipo de vehículo Marco A. Guevara Injoque 48 Cesar R. Flores Nazario ERwin Ejemplo de Categoría Incompleta Vemos el siguiente modelo donde la Regla de negocio indica que: Un vehículo PODRIA ser un CAMION o una EMBARCACION. Podría ser también un AUTO pero no necesitamos registrar atributos distintivos de AUTOS por eso no lo modelamos. La grafica será tal como se muestra en la figura: Discriminador de Categoría Tipo de vehículo Crear una Generalización Jerárquica Para crear una Generalización Jerárquica realizar los siguientes pasos: 1. Seleccione el icono relación de categoría desde la caja de herramientas 2. Seleccione la entidad Supertipo 3. Seleccione la entidad subtipo (hijo) 4. Repita los siguientes pasos para cada entidad subtipo adicional a ser conectada a. Clic en el símbolo de relación de categoría b. Clic en la entidad subtipo Marco A. Guevara Injoque 49 Cesar R. Flores Nazario ERwin 5. Finalmente clic derecho en el símbolo de categoría para cambiar el tipo(exclusiva o inclusivo) Haga clic aquí, para enlazar a la entidad Luego clic derecho aquí, para editar la subcategoría Elija la opción Inclusiva en el grupo de opciones. Finalmente clic en OK. Marco A. Guevara Injoque 50 Cesar R. Flores Nazario ERwin Finalmente la subcategoría se vera tal como se muestra en la siguiente figura: Integridad Referencial (RI) Se define como reglas que determinan lo que pasa cuando una fila de la entidad Padre o Hijo es insertada, actualizada o eliminada. Evita la data huérfana y asegura que las reglas de negocio se cumplan. ERwin asocia por defecto opciones RI para cada acción en una relación, basado en el tipo de relación, acción y rol de la entidad (padre/hijo). Estos valores por defecto están basados en el sentido de GENERALIDAD; ellos pueden ser sobrescritos para todo el modelo o para una acción dada en una relación establecida. ACCION TIPO DE RELACION Identificada Al Eliminar en el hijo Al Insertar en el hijo Al Actualizar en el hijo Al Eliminar en el padre Al Insertar en el padre Al Actualizar en el padre Ninguna Restricción Restricción Restricción Ninguna Restricción Marco A. Guevara Injoque No Identificada (Acepta NULL) Ninguna Set Null Set Null Set Null Ninguna Set Null 51 No Identificada (No Acepta NULL) Ninguna Restricción Restricción Restricción Ninguna Restricción Subcategoría Ninguna Restricción Restricción Cascada Ninguna Cascada Cesar R. Flores Nazario ERwin Opciones de Integridad Referencial Para cambiar las opciones de Integridad Referencial para un relación especifica realizar lo siguiente: 1. Clic derecho en la línea de relación 2. Elija la opción Relationship Editor… 3. En el editor de relaciones seleccione el TAB RI Actions 4. Seleccione las opciones de Integridad referencial desde el ComboBox 5. Clic en OK para retornar al modelo Cambie las opciones de Integridad Referencial para la relación establecida. Finalmente clic en OK. Marco A. Guevara Injoque 52 Cesar R. Flores Nazario ERwin Bases del Modelamiento Físico Marco A. Guevara Injoque 53 Cesar R. Flores Nazario ERwin Representación Física del Modelo de Datos ERwin mantiene las representaciones Lógica y Física del modelo de datos. Soporta características físicas del servidor objetivo (Target Server). Sincroniza el modelo físico de datos con el catalogo del servidor objetivo. Vista en el Modelo Lógico Vista en el Modelo Físico Objetos Logical Only (Solo Lógicos) Entre estos objetos tenemos: 1. Las relaciones Muchos a muchos solamente se muestran en el modelo lógico 2. Los símbolos de Generalización Jerárquica cambian en el modelo Físico 3. Entidades, atributos individuales o relaciones podrían ser diseñadas como solo lógicos. RELACIONES MUCHOS A MUCHOS Modelo Lógico Marco A. Guevara Injoque 54 Cesar R. Flores Nazario ERwin Modelo Físico GENERALIZACION JERARQUICA Modelo Lógico Modelo Físico Objetos Physical Only (Solo Físicos) Entre estas tenemos: 1. Vistas son solo mostrados en el modelo físico 2. Tablas columnas o relaciones también pueden ser designadas como físico. Selección del Servidor ERwin administra el modelo físico según el servidor de base de datos seleccionado. Las opciones de columna están disponibles para el tipo de datos seleccionado. Las propiedades de almacenamiento físico pueden ser asignadas para una base de datos específica. Las opciones de índice son especificadas para los servidores que las soporten. Selección del Cliente ERwin soporta desarrollo de aplicaciones cliente tan bien como el diseño y construcción de la base de datos. Edwin administra la parte del modelo basado en la herramienta cliente seleccionada. Marco A. Guevara Injoque 55 Cesar R. Flores Nazario ERwin Seleccionando el Servidor de Datos • Reconfigurando nombres físicos • Configurando valores por RI • Selección del Cliente Marco A. Guevara Injoque 56 Cesar R. Flores Nazario ERwin Seleccionando el Servidor Para elegir el servidor realizar los siguientes pasos: 1. Clic en el icono desde la barra de herramientas 2. O también desde el menú Server elija la opción Target Server 3. ERwin le mostrara la siguiente ventana: 1. Seleccione el botón radio correspondiente al Servidor elegido 2. Si se aplica, seleccione el numero de la versión desde el combobox 3. Seleccione la opción NULL para valores no llaves para el modelo 4. Seleccione el tipo de datos por defecto 5. Configure el nombre por defecto de las tablas 6. Configure el nombre por defecto de los índices Reconfigurando Nombres físicos Configure los nombres físicos para el modelo haciendo clic en RESET NAMES. ERwin le mostrara la siguiente ventana: 1. Configure las propiedades del DBMS 2. Seleccione las opciones a ser configuradas 3. Clic en OK para regresar a la ventana de selección del servidor Marco A. Guevara Injoque 57 Cesar R. Flores Nazario ERwin Configurando los valores por defecto de RI… Para cambiar las opciones por defecto de la Integridad Referencial haga clic en el botón RI DEFAULTS….Tal como se aprecia en la siguiente ventana: La configuración de este cuadro de dialogo afectan las opciones de Integridad Referencial asignadas al modelo. Seleccionando el cliente Para elegir al cliente realizar las siguientes acciones: Desde el menú Client elija la opción Target Client… ERwin le mostrara la siguiente ventana: Elija una de las opciones que se indican. Finalmente clic en OK.. Marco A. Guevara Injoque 58 Cesar R. Flores Nazario ERwin ERwin le mostrara la siguiente ventana; haga clic en Si Marco A. Guevara Injoque 59 Cesar R. Flores Nazario ERwin Modelamiento Físico • Asignando Propiedades a las Columnas • Asignando Tipo de Datos • Creando Reglas de Validación • Usando el Editor de Tablas • Índices Marco A. Guevara Injoque 60 Cesar R. Flores Nazario ERwin Asignando Propiedades a Columnas Para asignar propiedades a las columnas realizar lo siguiente: 1. Clic derecho sobre la tabla 2. Elija Column Editor… En esta ventana especifique la información del cliente y del servidor incluyendo tipo de dato y regla de validación. En el TAB General seleccione: • Un dominio • Configure la Llave Primaria • Configure Physical Only Asignando Tipo de Datos Para asignar tipo de dato a las columnas realizar lo siguiente: 1. Clic derecho sobre la tabla 2. Elija Column Editor… 3. Elija el TAB que tiene como nombre el servidor de base de datos elegido Elija el TAB DBMS y seleccione: • Tipo de dato • Longitud si es necesario • Opción NULL Marco A. Guevara Injoque 61 Cesar R. Flores Nazario ERwin Creando Reglas de Validación (Validation Rule) Es una expresión que establece un rango de valores aceptables que pueden ser almacenadas en una columna Pueden ser ingresadas y mantenidas desde ERwin y permiten que el servidor de bases de datos valide la información a ser almacenada. Permite que la aplicación cliente valide la información antes de hacer una llamada a la base de datos. Para crear una regla de validación en ERwin realizar los siguientes pasos: 1. Cambiar al Modelo físico 2. Clic derecho en la tabla y elija la opción Column Editor… 3. ERwin le mostrara la siguiente ventana: 1. Clic al costado del ComboBox “VALID” 2. ERwin le mostrara la siguiente ventana Marco A. Guevara Injoque 62 Cesar R. Flores Nazario ERwin 1. 2. 3. 4. Clic en el botón NEW Ingrese un nombre Clic en OK Luego haga clic en el botón VALID VALUE 5. ERwin le mostrara la siguiente ventana. 1. Escriba el nombre de la regla de validación 2. Clic en OK 1. Clic en NEW 2. Ingrese un nombre 3. Ingrese un valor para Display Value 4. Describa la definición de la regla 5. Clic en OK Marco A. Guevara Injoque 63 Cesar R. Flores Nazario ERwin Posteriormente ERwin le mostrara nuevamente la ventana anterior con la regla de validación creada: Clic en OK nuevamente para regresar al editor de columnas donde la regla será ligada a la columna tal como se muestra en la figura. Marco A. Guevara Injoque 64 Cesar R. Flores Nazario ERwin Dominio Conjunto de propiedades de atributos/columnas definidas por el usuario. Utilizar los dominios para: • Ahorrar tiempo • Evitar errores • Estandarizar el Modelo Todo lo que puede especificar para una columna con aquellas especificadas para el dominio lógico. Estas propiedades están relacionadas con aquellas especificadas para el dominio lógico. Crear dominios para la información de uso común. Dominios creados en el modelo Lógico Asignando Tipo de Datos a un Dominio Para asignar un tipo de datos a un dominio realizar lo siguiente: 1. Pasar al modelo Físico 2. En el examinador de dominios haga doble clic sobre uno de ellos 1. Elija el TAB 2. Elija el tipo de dato 3. Repita el mismo paso para cada dominio Marco A. Guevara Injoque 65 Cesar R. Flores Nazario ERwin Indices Estructura asociada con una tabla para realizar la búsqueda más fácil. Existe una relación entre el número de índices y la performance en las actualizaciones. La elección depende del negocio: • Son actualizaciones o consultas mas criticas • Cual es el volumen de la tabla • Cual volátil es la tabla Creación de Índices Para crear índices realizar los siguientes pasos: 1. Clic derecho en la tabla 2. Elija SQL Server Index 3. ERwin mostrara el siguiente cuadro de dialogo: Nótese que existe un índice creado, como PK. Para crear un nuevo índice: 1. Clic en New 2. Marque o desmarque el checkbox “UNIQUE” 3. Ingrese el nombre del índice 4. clic en OK 5. Luego seleccione las columnas que van a formar parte del índice. Marco A. Guevara Injoque 66 Cesar R. Flores Nazario ERwin En el TAB Comment ingrese el propósito del índice, finalmente clic en OK para regresar al modelo Marco A. Guevara Injoque 67 Cesar R. Flores Nazario