Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelado semntico El modelo entidad/relacin Elementos del modelo E/R Representacin grfica del modelo E/R Entidades fuertes y entidades dbiles Especializacin y generalizacin Heursticas de diseo conceptual Proceso de creacin del esquema conceptual Enfoques para el diseo del esquema conceptual Identificacin de entidades, relaciones y atributos Refinamiento del esquema conceptual Apndice: Metodologa incremental para el diseo conceptual
Bibliografa
Craig Larman: Applying UML and patterns: An introduction to objectoriented analysis and design and iterative development
Prentice Hall PTR, 3 edicin, 2004, ISBN 0131489062 En castellano como: UML y Patrones Prentice Hall, 2 edicin, 2004, ISBN 8420534382
Modelado semntico
Modelo de datos
Mecanismo formal para representar datos de manera general y sistemtica (descripcin de datos, operaciones y reglas de integridad).
Ejemplos de modelos de datos: Modelos basados en grafos (en red y jerrquico) Modelo relacional Modelos orientados a objetos Modelos lgicos
Modelado semntico
Consiste en estudiar los datos que se pretenden almacenar en la base de datos antes de elegir el modelo de datos concreto que se va a usar en la base de datos.
NOTA: El modelado semntico o modelado conceptual de una base de datos forma parte de lo que se suele denominar modelado del dominio en Ingeniera del Software (la representacin visual de las clases de objetos relevantes en el dominio de un sistema concreto).
El modelado conceptual es subjetivo: No existe una forma nica de modelar un problema. Para asegurar un buen diseo, hay que revisar y refinar el esquema obtenido (p.ej. en el diseo lgico analizaremos las dependencias funcionales existentes y normalizaremos nuestro esquema).
DISEO CONCEPTUAL
OBJETIVOS Comprensin de la estructura, semntica, relaciones y restricciones de la BD. Descripcin estable del contenido de la base de datos. Comunicacin entre usuarios, analistas y diseadores. TAREAS Modelado de los datos del sistema RESULTADOS Representacin grfica del modelo de datos (E/R, UML, CASE*Method) Diccionario de datos
UML
Caractersticas Grado Nmero de tipos de entidades que participan en la conexin. Nmero de elementos de un tipo que se conectan con un elemento de otro (restriccin que se observa en el dominio del problema y que controla las ocurrencias de las relaciones). En el caso de las relaciones binarias (grado 2): Relaciones muchos a muchos (n:m) Relaciones uno a muchos (1:m) Relaciones uno a uno (1:1)
4
Cardinalidad
Representacin de la cardinalidad mxima de una relacin Relacin uno a uno E/R clsico
Notacin UML
E/R clsico
Notacin UML
E/R clsico
Notacin UML
Representacin de la cardinalidad mnima de una relacin La notacin UML permite especificar la cardinalidad mnima (obligatoriedad)
Relacin opcional
Un cliente puede o no ser titular de una cuenta
Relacin obligatoria
Una cuenta ha de tener un titular como mnimo
Relaciones involutivas Una relacin involutiva es una relacin de un tipo consigo mismo E/R clsico
Notacin UML
Relaciones n-arias El grado de una relacin no tiene por qu ser siempre 2. Pueden existir relaciones ternarias, cuaternarias
Ahora bien, siempre se puede reemplazar una relacin n-aria por nuevo tipo de entidad y un conjunto de relaciones binarias:
Agregaciones en el modelo E/R para expresar relaciones entre relaciones o relaciones entre relaciones y conjuntos de entidades.
Empresa entrevista
Solicitante de empleo
Oferta de empleo
Siempre se puede eliminar la agregacin si creamos un nuevo tipo de entidad que represente la relacin que dio lugar a la agregacin:
NOTA IMPORTANTE: En UML no existe la agregacin del modelo E/R extendido. Cuando se habla de agregacin en UML, se est haciendo referencia a la relacin que existe entre un todo y sus partes (una relacin binaria normal con una semntica particular).
Atributos Propiedades que caracterizan a las ocurrencias de un tipo de entidad o de un tipo de relacin.
E/R Clsico
Notacin UML
TIPOS DE ATRIBUTOS Atributos compuestos vs. Atributos simples (atmicos) Los atributos compuestos se pueden dividir en componentes ms pequeos con significado propio p.ej. direccin = calle + municipio + CP + provincia Atributos monovaluados vs. Atributos multivaluados Un atributo monovaluado tiene un nico valor para una entidad particular. Atributos almacenados vs. Atributos derivados p.ej. la edad de una persona [atributo derivado] se puede calcular (derivar) de su fecha de nacimiento [atributo almacenado], que es lo que almacenaremos en la base de datos.
Diseo de Bases de Datos 8
Ejemplo: Un apunte (entidad dbil) slo puede existir asociado a una cuenta (entidad fuerte).
E/R clsico
Notacin UML
Caractersticas Si se elimina una ocurrencia del tipo de entidad fuerte, habr que eliminar las ocurrencias del tipo de entidad dbil que dependen de ella. p.ej. Si eliminamos una cuenta, sus apuntes han de desaparecer de la base de datos (si no, tendramos apuntes que corresponden a una cuenta que no existe) La entidad dbil no tiene suficientes atributos propios para formar una clave primaria: La clave primaria de la entidad dbil incluye a la clave primaria de la entidad fuerte de la que depende existencialmente. p.ej. {CCC} es la clave primaria de la entidad fuerte Cuenta {CCC, Nmero} es la clave primaria de la entidad dbil Apunte
-
Especializacin y generalizacin
Supertipo Subtipo Tipo de entidad que incluye uno o ms subgrupos distintos de ocurrencias que deben ser representados en el modelo de datos. Cada uno de los subgrupos de ocurrencias de un tipo de entidad que se han de representar en el modelo de datos.
Especializacin Generalizacin
Proceso de extraer diferencias entre las ocurrencias de un tipo de entidad para distinguir los subtipos que lo forman. Proceso de encontrar la parte comn de las ocurrencias de distintos tipos de entidad para extraer el supertipo que los engloba.
Relacin de especializacin (relacin ES-UN) Relacin que se establece en un diagrama E/R entre un supertipo y sus subtipos.
E/R clsico
Notacin UML
Los subtipos heredan los atributos de los supertipos: Los subtipos poseen todos los atributos del supertipo ms algunos propios. La clave primaria de los subtipos es la clave primaria del supertipo.
10
2.2
11
Identificacin de entidades
Cmo se pueden identificar las entidades que han de formar parte del esquema conceptual de nuestra base de datos (de menor a mayor dificultad)?: 1. Reutilizando modelos ya existentes. 2. Utilizando una lista de categoras. 3. Identificando sintagmas nominales en los requerimientos.
Patrones de diseo: Reutilizacin de modelos ya existentes El enfoque ms sencillo consiste en recurrir a modelos publicados en catlogos de patrones de diseo que suelen existir para distintos dominios de aplicacin:
David C. Hay: Data Model Patterns: Conventions of thought Dorset House, 1996. ISBN 0-932633-29-3 Martin Fowler: Analysis Patterns: Reusable object models Addison-Wesley, 1996. ISBN 0-201-89542-0 Jim Arlow & Ila Neustadt: Enterprise Patterns and MDA: Building better software with archetype patterns and UML. Pearson Education, 2003. ISBN 032111230X
Los patrones de diseo describen soluciones elegantes a problemas que se repiten a menudo. Estas soluciones nos pueden servir de punto de partida en el diseo de nuestro esquema conceptual.
12
Utilizacin de listas de categoras Podemos comenzar nuestro diseo conceptual construyendo una lista de entidades candidatas a partir de una lista de categoras comunes que, usualmente, merece la pena tener en cuenta: Transacciones econmicas (suelen resultar crticas porque involucran el uso de dinero): ventas, pagos, reservas Detalles de las transacciones (las transacciones suelen involucrar varios artculos, por lo que deberemos considerar la creacin de entidades dbiles asociadas a las transacciones en las que se recojan los detalles particulares de cada transaccin). Productos y/o servicios relacionados con las transacciones (o los detalles de las transacciones): artculo, libro, pelcula, vuelo, asiento, comida El lugar donde se realiza o registra la transaccin: caja, cuenta Los roles de las personas u organizaciones relacionadas con las transacciones (los actores de los casos de uso): empleado, cliente El lugar donde se presta el servicio asociado a la transaccin: sucursal, almacn, aeropuerto, avin Eventos destacados (usualmente ligados a un momento y un lugar que hemos de recordar): venta, vuelo, juego, partido Objetos fsicos tangibles (cuyo seguimiento hemos de realizar de algn modo): lote, avin, cheque, tarjeta de crdito Contenedores de objetos (reales o abstractos) y objetos incluidos en dichos contenedores: almacn/artculo, tablero/casilla, avin/pasajero Documentos de trabajo, financieros o legales: facturas, albaranes, pedidos, contratos, libros de contabilidad Calendarios, manuales y documentos a los que hay que hacer referencia para realizar determinadas tareas (porque contienen datos que cambian con el tiempo): listas de tarifas vigentes, impuestos
13
Anlisis lingstico: Identificacin de sintagmas nominales Las entidades corresponden a objetos que existen en el mundo y que son distinguibles unos de otros, por lo que deben aparecer como sustantivos o sintagmas nominales en los requerimientos del sistema:
Los sintagmas nominales que aparecen en la descripcin textual de los requerimientos del sistema se deben considerar como entidades candidatas (o como atributos de otras entidades)
Debemos ser especialmente cuidadosos porque establecer una correspondencia directa entre nombres y entidades no es posible, ya que las palabras pueden tener varios significados y distintas palabras pueden hacer referencia a lo mismo. La imprecisin del lenguaje natural hace recomendable que combinemos el anlisis lingstico de nuestra especificacin con las tcnicas anteriores (patrones de diseo y listas de categoras). Es conveniente mantener siempre el vocabulario del usuario del sistema para hacer referencia a las entidades que identifiquemos (por ejemplo, pelcula en lugar de producto en un videoclub).
Dnde aparecen los nombres que hacen referencia a las entidades? En la lista de requerimientos funcionales de nuestro sistema. En la especificacin de los casos de uso del sistema. En los documentos adicionales que adjuntamos al documento de especificacin del sistema (vg. modelos de informes).
Entidad o atributo? Si no podemos interpretar X como un simple nmero o texto en el dominio de nuestro sistema, probablemente X sea una entidad y no un mero atributo. p.ej. Un aeropuerto no es slo el destino de un vuelo, por lo que probablemente sea una entidad independiente de vuelo.
Diseo de Bases de Datos 14
Identificacin de relaciones
Las relaciones entre entidades hay que plasmarlas siempre que tengamos que preservar el conocimiento de la relacin por un perodo de tiempo determinado (sean segundos o aos). Debemos evitar aadir demasiadas relaciones a nuestro esquema y eliminar las relaciones redundantes de nuestro esquema (aqullas que se podran reconstruir a partir de otras que ya estn presentes en l). Usualmente, nombraremos nuestra relacin con un sintagma verbal que nos permita leer nuestro diagrama con facilidad (de tal forma que la secuencia NombreEntidad1-VerboRelacin-NombreEntidad2 tenga sentido). Opcionalmente, especificaremos los roles asociados a los extremos de una relacin (especialmente, en las relaciones involutivas). Pueden existir mltiples relaciones entre dos conjuntos de entidades (p.ej. un vuelo parte de un aeropuerto y tiene como destino otro aeropuerto). Las relaciones, usualmente, aparecen como verbos o sintagmas verbales en la especificacin textual de los requerimientos del sistema. Tambin podemos utilizar listas de relaciones comunes (igual que hicimos con las listas de categoras de entidades): A es una transaccin relacionada con otra transaccin B p.ej. pago/venta, cancelacin/reserva A es un detalle de una transaccin B p.ej. factura / lnea de factura A es un producto/servicio asociado a una transaccin (o detalle) B. p.ej. vuelo/reserva, artculo/pedido A es un rol asociado a una transaccin B p.ej. cliente/pago, pasajero/billete A es una parte (fsica o lgica) de B p.ej. asiento/sala, casilla/tablero, profesor/departamento A utiliza/gestiona/posee B p.ej. cajero/caja, piloto/avin
15
Identificacin de atributos
En nuestro esquema conceptual debemos incluir nicamente aquellos atributos que aparezcan referenciados en la especificacin (lista de requerimientos funcionales, casos de uso y documentos adicionales) y, adems, sean estrictamente necesarios para dar soporte a la funcionalidad de nuestro sistema. Los atributos puede que no se incluyan explcitamente en el diagrama asociado al esquema conceptual de una base de datos (para facilitar su interpretacin cuando ste es complejo) pero SIEMPRE debern aparecer en el diccionario de datos asociado al diagrama. En el esquema conceptual se pueden incluir atributos derivados (que, en UML, se marcan con el prefijo /), si bien stos no se almacenarn fsicamente en la base de datos (salvo que nos encontremos con problemas de rendimiento al llegar a la etapa de diseo fsico). Es importante identificar el dominio de los atributos (el conjunto de valores permitido para cada atributo), as como indicar si el atributo puede tomar un valor nulo o no. As mismo, cualquier restriccin reseable deber figurar en el diccionario de datos asociado al modelo conceptual de nuestra base de datos: claves primarias y alternativas, relaciones entre atributos
Atributo o entidad? Debera ser la direccin de un cliente un atributo de la entidad cliente o una entidad independiente relacionada con el cliente? Depende del uso que le vayamos a dar a los datos asociados a la direccin y de la semntica particular de nuestro problema: - Si un cliente puede tener varias direcciones asociadas, podramos definir la direccin como un atributo multivaluado, pero generalmente se opta por crear una entidad independiente para plasmar este hecho (aplicando preventivamente una restriccin particular del modelo relacional que no existe en otros modelos). - Si la estructura del atributo compuesto direccin (calle, localidad, provincia) nos interesa utilizarla para otras cosas, probablemente tambin convertiremos la direccin en una entidad independiente.
Diseo de Bases de Datos 16
OJO!
Usando slo los dos criterios anteriores, podramos llegar a la conclusin de que podemos dividir a los clientes de una empresa en hombres y mujeres pero, tendra sentido? Posiblemente no.
Cundo especializar? Crearemos subtipos en nuestro esquema cuando: El subtipo tiene atributos adicionales que son de inters. Las entidades del subtipo se relacionan con otras entidades de forma diferente a como lo hacen las entidades del supertipo.
Cundo generalizar? Incluiremos un supertipo en nuestro esquema si: Los potenciales subtipos representan variaciones de un concepto similar. Los subtipos verifican la regla del 100% y la regla es-un. Todos los subtipos incluyen el mismo atributo (que pasar a ser un atributo del supertipo). Existen relaciones comunes a los distintos subtipos (los subtipos se relacionan con los mismos conjuntos de entidades y estas relaciones tienen el mismo significado para los distintos subtipos).
Diseo de Bases de Datos 17
Algunas pistas que nos pueden indicar la existencia de una entidad dbil: El ciclo de vida de la entidad dbil siempre est acotado por el ciclo de vida de la entidad fuerte de la que depende (dependencia existencial). Existe una relacin obvia entre un todo (la entidad fuerte) y sus partes (las entidades dbiles). Algunos atributos de la entidad fuerte se propagan a las entidades dbiles que dependen de ella (por ejemplo, el destinatario de los artculos incluidos en un pedido).
Qu beneficios tiene identificar las entidades dbiles? Se muestra explcitamente en el esquema conceptual la dependencia existencial de la entidad dbil (que no puede existir de forma independiente a la entidad fuerte de la que depende). Sirve para que tengamos en cuenta que determinadas operaciones aplicadas a una entidad fuerte (copia o borrado) han de propagarse a las entidades dbiles que dependen de ella.
18
Estrategias para el diseo de esquemas Estrategia descendente Estrategia ascendente Estrategia centrfuga Estrategia mixta
Carlo Batini, Stefano Ceri & Shamkant B. Navathe: Diseo conceptual de bases de datos Addison-Wesley / Daz de Santos, 1991 ISBN 0-201-60120-6
19