Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
El modelo E/R es suficiente para aplicaciones tradicionales como el procesamiento de datos en negocios e industria Existen BD con requisitos ms complejos: CAD/CAM (diseo asistido por ordenador), multimedia, telecomunicaciones, minera de datos, warehousing (almacenes de datos), sist. de informacin geogrfica, indexacin web, EER aade al E/R: el mecanismo de herencia de atributos y relaciones los conceptos asociados a la herencia: superclase-subclase, generalizacin-especializacin, etc. El mecanismo de herencia se ha desarrollado en otras reas de la informtica como los modelos semnticos de datos, el modelo orientado a objetos o la representacin del conocimiento. UML (lenguaje unificado de modelado) se utiliza muchsimo para diseo de aplicaciones y sus diagramas de clases son una notacin alternativa a EER.
DBD Tema 3 2
El modelo entidad-relacin mejorado (EER) Elmasri/Navathe 07 The Unified Modeling Language Reference Manual Rumbaugh/Jacobson/Booch 99
Introduccin Superclases y subclases Herencia de atributos y relaciones Generalizacin y especializacin Restricciones: disjunta/solapada, total/parcial Jerarquas de especializacin y retculas (herencia mltiple) UML: conceptos de clase e instancia (objeto) Conceptos de E/R en los diagramas de clase UML Herencia en los diagramas de clase UML Ejemplo de diseo con diagramas de clase UML
DBD Tema 3 1
Superclases y subclases
EMPLEADO superclase subclases
Heredados por las subclases Atributo especfico de los becarios
Herencia
Heredada por las subclases
(0,N)
(0,N)
MATRICULADA
CURSO
Atributo especfico de los alumnos
ALUMNO
Carrera
Cada subclase representa a un subconjunto de las entidades de EMPLEADO. La relacin entre una superclase y cualquiera de sus subclases se llama relacin is-a (es un). Toda entidad de una subclase ser al mismo tiempo entidad de su superclase: Por ejemplo la TCNICO Ana es tambin una EMPLEADO. Aunque tiene un papel diferente como TCNICO y como EMPLEADO genrico. Cuando se implementa la BD, Ana puede estar representada por una entidad en TCNICO y otra en EMPLEADO, pero ambas representan a la misma persona. Una entidad puede ser al mismo tiempo miembro de varias subclases: por ejemplo el SECRETARIO Fermn puede ser tambin un ASALARIADO. Una entidad de la superclase no tiene por qu ser al mismo tiempo miembro de alguna subclase.
DBD Tema 3 3
Es el mecanismo por el cual entidades ms especficas (de subclases) incorporan atributos y relaciones definidos para entidades ms generales (de superclases). Un BECARIO, por ejemplo hereda los atributos de PERSONA. As pues las entidades de BECARIO tienen los atributos Nombre, DNI y Salario. Tanto las entidades de BECARIO como las de ALUMNO pueden relacionarse con entidades de CURSO por ser al mismo tiempo entidades de PERSONA. Se hereda de la superclase, pero adems de la superclase de la primera y as sucesivamente hasta la superclase raz. Una subclase con sus atributos especficos ms los atributos y relaciones heredados es un tipo de entidades. Por eso se representan con rectngulo.
DBD Tema 3 4
Generalizacin
Precio Precio Precio Matrcula Empleados Secretarios Tcnicos
Especializacin
Nombre Especializar SECRETARIO TCNICO ASALARIADO EMPLEADO DNI Sueldo
(0,1)
VEHCULO
Generalizar
COCHE
Matrcula Plazas
CAMIN
Matrcula Tonelaje
COCHE CAMIN
Plazas Tonelaje
Asalariados
Pulsaciones
Nivel
AFILIADO
(1,N)
Se identifican rasgos comunes entre varios tipos de entidad y se crea una superclase para todos ellos. En el ejemplo los tipos de entidad COCHE y CAMIN de la izquierda se generalizan a la derecha en la superclase VEHCULO con los atributos comunes. Se est realizando un refinamiento bottom-up o ascendente.
Es el proceso de dividir un tipo de entidad en subclases. Es lo contrario a generalizar: aqu el refinamiento es top-down o descendente. Un conjunto de subclases se define a partir de alguna caracterstica distintiva. Podemos tener varias especializaciones sobre el mismo tipo de entidad: Por tipo de trabajo: Secretario, Tcnico, Gerente Por mtodo de pago: Asalariado, Por horas Por qu es necesaria la especializacin/generalizacin: Atributos que se aplican slo a algunas entidades del tipo de entidades: agrupar en una subclase estas entidades y definir en ella los atributos. Por ejemplo si slo se almacenan las pulsaciones para los SECRETARIOS. Relaciones donde slo pueden participar algunas entidades del tipo de entidades. Por ejemplo si slo los ASALARIADOS pueden afiliarse a SINDICATO.
DBD Tema 3 6
SINDICATO
DBD Tema 3
EMPLEADO
EMPLEADO
Nombre
d
TipoTrabajo Tcnico
DNI
POLGONO ELIPSE Ingeniero CIEN DOSCIENTOS TRES_MIL GERENTE
INGENIERO Tipo
Definidas por condicin: slo aquellos EMPLEADOS cuyo atributo TipoTrabajo=Secretario pertenecen a la subclase SECRETARIO. Encima del circulo se escribe la condicin. Definidas por atributo: cuando TODAS las subclases de EMPLEADO estn definidas por una condicin sobre el mismo atributo, como ocurre en el ejemplo. Definidas por el usuario: cuando no existe una condicin para determinar la pertenencia a una subclase.
DBD Tema 3 7
Restriccin de disyuncin: d Cada entidad de la superclase FIGURA pueden ser miembro como mucho de una de sus subclases. Si las subclases se definen por atributo, este ser monovalor. Restriccin de solapamiento (overlapped): o Es el caso contrario a la disyuncin. Opcin por defecto (si no se indica nada es solapada) Una misma entidad de ATLETA puede ser miembro de varias de sus subclases (por ejemplo, ser al mismo tiempo atleta de cien y de doscientos metros). Caso especial: cuando el predicado da lugar a una sola subclase.
DBD Tema 3
A A = B C B C
o
ATLETA parcial
o
Eliminacin de la entidad c1 de C Si c1 tambin es miembro de P y Q tambin debe desaparecer de esas subclases Insercin de la entidad c1 en C con valor de su atributo A = r r La entidad c1 se puede insertar automticamente en R Insercin de la entidad c1 en C La entidad c1 se deber insertar en P, Q o en R
10
PROFESOR ADMINISTRACIN_SERVICIOS
Especializacin total: Toda entidad de la superclase debe ser miembro de alguna subclase de la especializacin. Cuando la superclase se extrae por generalizacin la especializacin suele ser total. Especializacin parcial: Es el caso contrario a la especializacin total. Puede haber entidades de la superclase que no pertenezcan a ninguna de las subclases de la especializacin
DBD Tema 3 9
A A p
Q C
P
UR Fac. C.E.A. e Informtica ( A. Jaime)
DBD Tema 3
Jerarquas de herencia
Nombre NSS Direccin
Retculas de herencia
(con herencia mltiple)
NSS Direccin
EMPLEADO
FechaNcto
Nombre
EMPLEADO
FechaNcto
SECRETARIA TCNICO
Pulsaciones Nivel
SECRETARIA TCNICO
EscalaPago Pulsaciones Nivel
Tipo
DIRIGE
(1,1)
Salario
AFILIADO
(1,N)
INFORMTICO
PROYECTO
SINDICATO
GERENTE_INGENIERA
Jerarqua: toda subclase participa en una nica relacin superclase/subclase. Ello da lugar a una estructura en rbol. Las entidades de INFORMTICO son miembros de TCNICO. Por tanto heredan todos los atributos y relaciones de TCNICO adems de heredar los atributos y relaciones de EMPLEADO.
Estas subclases se llaman subclases compartidas y heredan los atributos y relaciones de todas sus superclases (de INGENIERO, GERENTE y ASALARIADO). Este mecanismo se llama herencia mltiple. Los atributos de EMPLEADO se heredan por varios caminos (INGENIERO, GERENTE y ASALARIADO). Las reglas de herencia establecen que debera incluirse una sola vez cada elemento proveniente de EMPLEADO. No hay conflicto. Algunos mecanismos de herencia no permiten la herencia mltiple.
DBD Tema 3 12
CARAVANA
VEHCULO
Plazas Precio
AUTOCARAVANA
AUTOCARAVANA hereda de CARAVANA y de VEHCULO. El atributo Precio no est muy claro de dnde se hereda. En estos casos se produce un conflicto. EER no proporciona reglas de resolucin de conflictos (tampoco UML:
porque la experiencia muestra que el diseador debera resolverlos explcitamente).
Algunos lenguajes OO como Eiffel permiten al programador resolver explcitamente los conflictos. Tambin se pueden encontrar reglas de solucin implcita de conflictos, pero suelen deparar sorpresas desagradables al programador.
UR Fac. C.E.A. e Informtica ( A. Jaime) DBD Tema 3
(grupo-seccin) en las que est o estuvo matriculado. Interesa distinguir qu alumnos han acabado la carrera (licenciados) y cules son becarios (pueden serlo alumnos de ltimos cursos o licenciados). Cada becario tiene un profesor que es su tutor de tesis. Para cada departamento se guarda su nombre, telfono y despacho de la secretara y quin es su director (un profesor). Por cada asignatura se mantiene su nombre, cdigo, descripcin y departamento. Cada nuevo cuatrimestre se pueden organizar varios grupos de la misma asignatura (secciones). Para cada uno se guarda la asignatura, el nmero de grupo, el profesor responsable (nico) de la asignatura en ese grupo junto al cuatrimestre y ao en el que se imparti.
DBD Tema 3
14
Nombre Carrera
NSS Nombre Direccin DIRIGIDO NumDespacho (0,1) PERTENECE (0,N) (1,1) ES_IP (1,1) PROFESOR Extensin
PERSONA
Sexo FechaNacimiento
( 1,N)
Salario Rango
o
BECARIO
UML cubre adems del diseo de BD, la especificacin detallada de aplicaciones. Para ello emplea varios tipos de diagramas (de casos de uso, de clases, de secuencias, ...). UML usa diagramas de clases para el diseo de BD. En los diagramas de clases, adems de atributos y relaciones, tambin se incluyen operaciones sobre objetos. Dichas operaciones pueden servir para especificar requisitos funcionales durante el diseo de la BD.
IMPARTE
LICENCIADO
DBD Tema 3
16
Nombre de la clase
Proyecto Nombre: string {clave} Nmero {clave} Localizacin aade_empleado aade_proyecto cambio_director ...
PROYECTO
Las operaciones son de inters en las BD Orientadas a Objetos o para el diseo de los programas de aplicacin.
Empleado Nombre: DomNombre {clave} NombreP Iniciales Dominio Apellido estructurado Salario ...
DBD Tema 3 18
NombreP
Iniciales Nombre
EMPLEADO
Apellido Salario
...
DBD Tema 3
17
Atributo clave
NSS Proyecto Nombre: string {clave} Nmero {clave} Localizacin aade_empleado aade_proyecto cambio_director ... Salario
EMPLEADO (1,1)
TRABAJA_EN
Asociacin
...
Opcionales
(1,N) DEPARTAMENTO
PROYECTO
Nombre
Nmero
...
En una clase no es necesario tener atributos clave, puesto que los objetos tienen su propio identificador. El problema surge al transformar los diagramas a determinados modelos de BD, como el relacional. Una clave es una restriccin de un atributo (simple o compuesto). Las restricciones se indican entre llaves ( {...} )
Asociacin: (tipo de relacin de E/R) se representa con una lnea que une dos clases. Son opcionales el nombre (TrabajaEn) y el tringulo negro que indica el orden de lectura (Empleado TrabajaEn Departamento). Cada relacin entre un empleado y un departamento se llama enlace. Multiplicidad mn..max Equivalente a (mn, mx) de E/R. En lugar de N se usa *. Los mn..mx se colocan en los extremos inversos a los (mn, mx) de E/R. Se emplean estas dos abreviaturas: * 0..* 1 1..1
DBD Tema 3 20
DBD Tema 3
19
Agregacin y composicin
Clase asociacin: contiene los atributos de la asociacin
Dirige
...
FechaInicio
EMPLEADO (0,1)
DIRIGE
agregaciones
El todo * Las partes 1
composiciones
El todo
Carta
* 1
Ventana
1 0..1 1 1 1 2
(1,1) DEPARTAMENTO
Nombre
Nmero
...
FechaInicio
Direccin
Cuerpo
Las partes
Cabecera
Panel
Deslizador
No es una clase Roles en asociaciones reflexivas Agregacin: Es una forma de asociacin que especifica una relacin entre el todo y sus partes. Composicin: Es una forma de agregacin con dependencia de existencia entre las partes y el todo. Esto supone que si el todo desaparece de la BD automticamente desaparecen todas sus partes. No tiene sentido que en la parte del rombo negro haya multiplicidad superior a 1. Slo tienen sentido para asociaciones binarias
DBD Tema 3 22
NSS
Salario
...
EMPLEADO
SUPERVISA
supervisor 0..1
supervisado (0,1)
supervisor (0,N)
21
Navegabilidad de asociaciones
NSolicitud Producto
Notas y restricciones
Representa a una entidad incluida * 0..1 compaa
...
SOLICITUD PRODUCTO
subordinado *
Persona empleado
Empresa Nota con una restriccin. Hace referencia a las asociaciones que conectan las lneas punteadas
NProducto
Nombre
...
{ Persona.compaa = Persona.jefe.compaa }
En el ejemplo, los objetos solicitud saben qu productos incluyen, pero un producto desconoce en qu solicitudes figura. En UML las asociaciones son bidireccionales a menos que se indique lo contrario (unidireccionales) mediante una punta de flecha que indica la direccin en la que se puede navegar (navegabilidad). Esto mismo ocurre con agregaciones y composiciones (son asociaciones). Las asociaciones se implementan en el modelo relacional de BD con claves extranjeras (forneas). All la navegabilidad no tiene sentido, ya que las relaciones se resuelven con la operacin de reunin (join)
DBD Tema 3 23
Las notas son comentarios que figuran dentro de un rectngulo con la esquina doblada. Pueden incluir comentarios, restricciones o cdigo de operaciones. Las restricciones son condiciones que se deben cumplir y se ponen entre { y }. Las hemos usado anteriormente para indicar las claves. La restriccin del ejemplo exige que la compaa para la que trabaja una persona debe ser la misma que la compaa donde trabaja su jefe. Pueden situarse al lado de cualquier elemento, por ejemplo al lado de atributos ( {ser mltiplo de 10} ).
DBD Tema 3 24
Ordered
{ordered}
* Solicitud
Representacin
...
La lista de solicitudes relacionadas con una representacin teatral concreta estar ordenada (ordered). La lista de reservas relacionadas con una representacin teatral concreta no tendr ningn orden concreto La multiplicidad de los objetos relacionados debe ser mayor que uno ( * en el ejemplo) Ordered no significa ordenacin segn un atributo o atributos de la clase Solicitud. En su lugar, aade automticamente un nuevo elemento a la asociacin y los objetos quedan ordenados respecto a l. La ordenacin segn un atributo (sorted en ingls) se expresa mediante una restriccin (entre { y }).
Los atributos derivados se representan con un / al principio del nombre. La frmula, o explicacin, de cmo se obtiene el atributo se pone opcionalmente en forma de restriccin ( {...} )
Empresa
contratante 1 1 compaa * *
Departamento
1 ubicacin *
Persona
Puede haber asociaciones derivadas (redundantes) obtenidas a partir de otras. Tambin se usa el smbolo /. Pueden acompaarse de alguna restriccin que se deba cumplir, como en el caso de /Trabaja.
DBD Tema 3 26
DBD Tema 3
25
Multiplicidad de un atributo
Nombre Nmero Departamento Nombre Nmero Lugares[*] ...
Asociaciones calificadas
Clase calificada Banco
NCuenta
DEPARTAMENTO
Tablero
Fila Columna
Lugares
...
0..1 Cliente
Las multiplicidades ms comunes de un atributo son: 1 (exactamente un valor) y 0..1 (vaco o un valor).
1 1 Casilla
Slo sirve para asociaciones binarias. El calificador: es uno o varios atributos de la clase objetivo o de la asociacin. Un banco est relacionado con todos sus clientes (sera * en el lado de cliente). Pero un banco y un n de cuenta determinan a un cliente o a ninguno si el n de cuenta no existe. En otros ejemplos el calificador podra relacionar con varios clientes. Casilla parece un tipo de entidad dbil. El problema es cuando las clases propietarias son varias. Desde el punto de vista de implementacin un calificador podra ser un ndice.
DBD Tema 3 28
Lugares
...
* 1..*
Lugares Nombre
DBD Tema 3 27
Asociaciones n-arias
Inscripcin Fecha Asignatura
* * 0..1
{ident.}
(1,1) SUCURSAL
Profesor
NO:
Alumno No admite agregacin, composicin ni calificacin. Admite clases asociacin (Inscripcin) y poner nombre a la asociacin (cerca del rombo) Como en E/R, en cada enlace de la asociacin participan un profesor, un alumno y una asignatura. Multiplicidades (cambia respecto a E/R): La multiplicidad de un extremo se define respecto a los dems extremos. Profesor (0..1) indica con cuntos profesores se puede relacionar cada par asignatura-alumno. Alumno (*) refleja cuntos alumnos puede tener una asignatura impartida por un profesor.
UR Fac. C.E.A. e Informtica ( A. Jaime) DBD Tema 3 30
Concepto alejado de las clases. UML no dispone de notacin especial. Elmasri y Navathe proponen usar asociaciones calificadas. Pero, hemos visto que una asociacin calificada no tiene por qu ser una clase sin clave y slo sirve cuando el tipo de entidad propietario (BANCO) es nico. Usaremos las restricciones {c. parcial} para indicar la clave parcial e {ident.} para la composicin identificadora. En los casos donde no haya clave parcial se seguir sabiendo que es dbil porque no habr clave y porque tendr una o varias composiciones identificadoras.
DBD Tema 3 29
Herencia
PLANTILLA_UNIVERSIDAD
d
Discriminador
Plantilla_Universidad tipo {disjunta, total}
Empleado posicin
discriminador
origen
PROFESOR ADMINISTRACIN_SERVICIOS
Profesorado
Administracin_Servicios
Supervisor
Operario
Nacional
Extranjero
ATLETA
o
Enlace
EMPLEADO
31
GERENTE_INGENIERA
UR Fac. C.E.A. e Informtica ( A. Jaime)
Gerente_ingeniera
DBD Tema 3
Nombre opcional que se pone al lado de un tringulo o lnea de especializacin. posicin y origen representan dos dimensiones independientes de especializacin. Cada una representa una cualidad abstracta del empleado. Cada objeto de empleado deber contener todas las dimensiones (por ejemplo, los objetos de enlace) Si hay varias dimensiones las subclases son clases abstractas, es decir, que no pueden contener objetos. Con un solo discriminador se tiene lo mismo que llambamos en EER subclases definidas por atributo. Si no hay discriminador, el usuario decide en qu subclase se inserta cada nuevo objeto.
DBD Tema 3 32
Se pueden aadir restricciones, discriminadores y poner alguna relacin como derivada (ejemplos: asignatura-profesor o asignatura-alumno)
Director
Pertenece
* 1
1 *
Ejercicios
*
33 UR Fac. C.E.A. e Informtica ( A. Jaime) DBD Tema 3 34
imparte *
impartida
Invest_ppal
DBD Tema 3
MUSEO (1/2)
Disea bien un diagrama de clases UML o bien EER que recoja la siguiente informacin sobre un museo: El museo tiene una coleccin de objetos de arte. Cada uno tiene su n de identificacin, artista y ao de creacin (si se conocen), ttulo y una descripcin. Los objetos de arte se clasifican en varias categoras: Basndose en su tipo se distinguen pinturas, esculturas y otros. Las pinturas incluyen el tipo de pintura (leo, acuarela, ...), soporte (lienzo, papel, ...) y estilo (impresionista, abstracto, etc.). Para las esculturas se almacena el material (mrmol, bronce, ...), altura, peso y estilo. Basndose en su pertenencia al museo se distinguen objetos en prstamo u objetos de la coleccin permanente. Para estos ltimos se guarda la fecha de adquisicin y coste adems de si est en exposicin o en almacn. Para las obras en prstamo se incluye el nombre de la coleccin a la que pertenece, la fecha en la que se recibi en prstamo y la fecha de devolucin.
MUSEO (2/2)
Por cada objeto de arte se tiene tambin informacin sobre su origen mediante informacin de su pas y cultura (romano, egipcio, maya, etc.) y su poca (renacimiento, neoclsico, etc.). Tambin se guarda informacin de los artistas: su nombre (se supone que nico), fecha de nacimiento y en su caso de defuncin, pas de origen, poca, estilo principal y descripcin. En el museo se celebran diferentes exposiciones, cada una de ellas tiene un nombre que la identifica, tiene una fecha de comienzo y de finalizacin e incluye el conjunto de objetos de arte exhibidos. Sobre las colecciones de obras de arte con las que el museo intercambia obras es til guardar su nombre (nico), tipo (museo, coleccin privada, etc.), descripcin, direccin, telfono y el nombre de la persona de contacto.
DBD Tema 3
35
DBD Tema 3
36
DBD Tema 3
37
DBD Tema 3
38
AERDROMO (1/2)
Disea bien un diagrama de clases UML o bien EER que recoja la siguiente informacin sobre un aerdromo privado: Cada avin tiene un n de matrcula, es de un tipo y se guarda en un hangar. Cada tipo de avin tiene un n de modelo (nico) y cierta capacidad y peso. Cada hangar tiene un nmero, capacidad y una ubicacin. La BD tambin lleva el control del propietario(s) actual de cada avin as como de los mecnicos que han llevado su mantenimiento. Tambin se guarda la fecha de adquisicin de cada avin por su propietario actual o propietarios actuales. Tambin se almacenan los servicios realizados por cada mecnico a cada avin. Cada registro de servicio incluye la fecha en la que se realiz, el nmero de horas invertidas y el tipo de trabajo. No puede haber dos servicios realizados al mismo avin en la misma fecha con el mismo tipo de trabajo. Por cada persona se guarda su n de seguridad social, nombre, direccin y telfono. Para los mecnicos se guarda tambin su salario y turno. Para los pilotos su n de licencia y restricciones. Tambin se guarda el tipo de aviones en los que est autorizado a volar cada piloto y los tipos de avin en los que puede dar mantenimiento cada mecnico.
AERDROMO (2/2)
Considera ahora que un propietario es una persona o una corporacin. En el caso de las entidades corporativas los datos que se mantienen incluyen su nombre, direccin telfono y NIF
DBD Tema 3
39
DBD Tema 3
40
DBD Tema 3
DBD Tema 3
42
CONCESIONARIO
Un concesionario de automviles se dedica a la venta de vehculos nuevos y nos pide que diseemos un diagrama de clases UML o uno EER, con la informacin que maneja, de acuerdo a lo siguiente: El concesionario slo vende vehculos nuevos, pero rebaja el precio si el cliente cede su vehculo usado. El concesionario maneja numerosos vehculos. Desea conservar la matrcula, color y modelo de cada uno. Como decamos distinguen dos tipos de vehculo: nuevo y usado. Para los usados guardarn el kilometraje y la cantidad rebajada (por la cesin del vehculo usado). Tambin distinguen dos clases de vehculo nuevo: vendido y en existencias. Por cada vehculo vendido se guarda la fecha de la venta. Se tiene informacin de dos tipos de persona: clientes y vendedores. Para ambos interesa saber su dni, nombre, direccin y telfono. De los vendedores se conoce tambin su n de seguridad social y la cantidad total (en euros) de sus ventas. Como decamos, cada vehculo es de un modelo. Puede haber muchos vehculos del mismo modelo. Marca, modelo y cilindrada, conjuntamente, distinguen un modelo de otro. Un modelo puede disponer de varias opciones (por ejemplo aire acondicionado, pintura metalizada, ...). Cada opcin se identifica por un nombre e incluye una descripcin. Se puede disponer de la misma opcin en diferentes modelos. Una opcin tiene un coste diferente dependiendo del modelo. Adems de este coste, se guarda el precio base (sin opciones) de cada modelo. Para cada coche vendido se guarda qu opciones incluye, el precio final (precio base, ms el coste de las opciones, menos la rebaja por el coche usado), qu coche usado se ha cedido (puede que ninguno) para rebajar el coste del vehculo, qu cliente compr el vehculo y qu vendedor gestion la venta
DBD Tema 3 43
DBD Tema 3
46