Documente Academic
Documente Profesional
Documente Cultură
Subclases ‘definidas por condición’, ‘por atributo’ Especialización: disjunta vs. solapada
y ‘ por el usuario’
FIGURA ATLETA EMPLEADO
TipoTrabajo Nombre
EMPLEADO d o
Especialización definida TipoTrabajo DNI
sobre el atributo de
EMPLEADO TipoTrabajo POLÍGONO ELIPSE CIEN DOSCIENTOS TRES_MIL GERENTE
‘Secretario’ ‘Técnico’ ‘Ingeniero’
SECRETARIO TÉCNICO INGENIERO • Restricción de disyunción: d
– Cada entidad de la superclase FIGURA pueden ser miembro
Pulsaciones Nivel Tipo como mucho de una de sus subclases.
– Si las subclases se definen por atributo, este será monovalor. A
• Definidas por condición: sólo aquellos EMPLEADOS cuyo atributo • Restricción de solapamiento (overlapped): o A
TipoTrabajo=‘Secretario’ pertenecen a la subclase SECRETARIO. Encima o
– Es el caso contrario a la disyunción. =
del circulo se escribe la “condición”.
– Opción por defecto (si no se indica nada es solapada)
• Definidas por atributo: cuando TODAS las subclases de EMPLEADO están B C B C
– Una misma entidad de ATLETA puede ser miembro de varias de
definidas por una condición sobre el mismo atributo, como ocurre en el
sus subclases (por ejemplo, ser al mismo tiempo atleta de cien y
ejemplo.
de doscientos metros).
• Definidas por el usuario: cuando no existe una condición para determinar la • Caso especial: cuando el predicado da lugar a una sola subclase.
pertenencia a una subclase.
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 7 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 8
Especialización: total vs. parcial Reglas de inserción y eliminación de entidades
• Eliminación de una entidad c1 de una Eliminación de la
PLANTILLA_UNIVERSIDAD ATLETA C entidad c1 de C
superclase C:
total d parcial o – Se elimina automáticamente de Si c1 también es
todas las subclases a la que miembro de P y Q
pertenezca. también debe
PROFESOR ADMINISTRACIÓN_SERVICIOS CIEN DOSCIENTOS TRES_MIL PÉRTIGA P Q R desaparecer de esas
subclases
• Inserción de una entidad en una
superclase: Inserción de la entidad
• Especialización total: A C
– Si sus subclases están ‘definidas A c1 en C con valor de su
– Toda entidad de la superclase debe ser miembro de alguna subclase de la por una condición’ (o atributo) se atributo A = ‘r’
especialización. podría insertar automáticamente la La entidad c1 se puede
‘p’ ‘q’ ‘r’
– Cuando la superclase se extrae por generalización la especialización suele entidad en las subclases que le insertar
corresponden. P Q R automáticamente en R
ser total.
C Inserción de la entidad
• Especialización parcial: – Se insertará al menos en una
c1 en C
subclase si la especialización es
– Es el caso contrario a la especialización total. total.
La entidad c1 se deberá
– Puede haber entidades de la superclase que no pertenezcan a ninguna de P Q R insertar en P, Q o en R
las subclases de la especialización
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 9 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 10
• Retícula: hay alguna subclase que participa en más de una relación. En el ejemplo
• Jerarquía: toda subclase participa en una única relación superclase/subclase. GERENTE_INGENIERÍA.
Ello da lugar a una estructura en árbol. • Estas subclases se llaman subclases compartidas y heredan los atributos y
• Las entidades de INFORMÁTICO son miembros de TÉCNICO. Por tanto relaciones de todas sus superclases (de INGENIERO, GERENTE y ASALARIADO).
Este mecanismo se llama herencia múltiple.
heredan todos los atributos y relaciones de TÉCNICO además de heredar los
• Los atributos de EMPLEADO se heredan por varios caminos (INGENIERO, GERENTE
atributos y relaciones de EMPLEADO.
y ASALARIADO). Las reglas de herencia establecen que debería incluirse una sola
vez cada elemento proveniente de EMPLEADO. No hay conflicto.
• Algunos mecanismos de herencia no permiten la herencia múltiple.
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 11 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 12
Conflictos con la herencia múltiple Ejemplo de diseño: UNIVERSIDAD
La universidad mantiene la sig. información: (grupo-sección) en las que está o estuvo
NºCamas Matrícula matriculado.
• Por cada alumno su carrera o carreras y
Servicios CARAVANA VEHÍCULO Plazas las notas que ha recibido en cada • Interesa distinguir qué alumnos han acabado
Precio asignatura. la carrera (licenciados) y cuáles son
Precio becarios (pueden serlo alumnos de últimos
• Proyectos de investigación realizados
AUTOCARAVANA cursos o licenciados). Cada becario tiene un
por el profesorado y becarios. Para cada
profesor que es su tutor de tesis.
uno se guarda su nombre, código, fecha
de inicio, subvención obtenida, entidad • Para cada departamento se guarda su
• AUTOCARAVANA hereda de CARAVANA y de VEHÍCULO. nombre, teléfono y despacho de la secretaría
que subvenciona, investigador principal
• El atributo “Precio” no está muy claro de dónde se hereda. (profesor) y profesores y becarios y quién es su director (un profesor).
participantes. • Por cada asignatura se mantiene su nombre,
– En estos casos se produce un conflicto. código, descripción y departamento. Cada
• Para cada persona se guarda su
– EER no proporciona reglas de resolución de conflictos (tampoco UML: nombre, nº de la seguridad social,
nuevo cuatrimestre se pueden organizar
“porque la experiencia muestra que el diseñador debería resolverlos varios grupos de la misma asignatura
dirección, sexo y fecha de nacimiento. (secciones). Para cada uno se guarda la
explícitamente”).
• Para los profesores además se tiene su asignatura, el número de grupo, el profesor
– Algunos lenguajes OO como Eiffel permiten al programador resolver rango (CU, TU, etc.), nº de despacho, responsable (único) de la asignatura en ese
explícitamente los conflictos. extensión, departamento y salario. grupo junto al cuatrimestre y año en el que se
• Para los alumnos se tiene el nº de años impartió.
– También se pueden encontrar reglas de solución implícita de conflictos,
pero “suelen deparar sorpresas desagradables al programador”. que llevan haciendo cada carrera y las
asignatura-grupo-cuatrimestre-año
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 13 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 14
PERTE-
PROFESOR Salario ALUMNO incluyen operaciones sobre objetos.
ES_ NECE (1,1)
RESONSABLE Rango ( 1,N) • Dichas operaciones pueden servir para especificar requisitos funcionales
o durante el diseño de la BD.
( 1,1) (0,N) (1,1) (0,N) (0,N)
∪
Código
∪
(1,1
PARTICIPA ES_
Descripción ASIGNATURA IMPARTE ES_IP ) BECARIO LICENCIADO
_P TUTOR
Nombre ( 0,N) ( 0,N)
( 1,N) CURSA_
TIENE (1,1) O_
(0,N) PARTICI
PROYECTO CURSÓ
Nº PA_B
(1,1)
Cuatri- Clave- (1,1)
mestre parcial SECCIÓN- Nota
GRUPO Código Nombre Entidad Subvención FechaInicio
Año
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 17 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 18
• Asociación: (tipo de relación de E/R) se representa con una línea que une dos
• En una clase no es necesario tener atributos clave, puesto que los objetos clases. Son opcionales el nombre (TrabajaEn) y el triángulo negro que indica
tienen su propio identificador. el orden de lectura (EmpleadoÆTrabajaEnÆDepartamento).
• El problema surge al transformar los diagramas a determinados modelos de • Cada relación entre un empleado y un departamento se llama enlace.
BD, como el relacional. • Multiplicidad mín..max
• Una clave es una restricción de un atributo (simple o compuesto). Las – Equivalente a (mín, máx) de E/R. En lugar de N se usa *.
restricciones se indican entre llaves ( {...} ) – Los mín..máx se colocan en los extremos inversos a los (mín, máx) de E/R.
– Se emplean estas dos abreviaturas:
* ≡ 0..*
1 ≡ 1..1
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 19 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 20
Clases asociación y roles Agregación y composición
{ordered} Persona
1 1 PERSONA
Solicitud
* Representación
*
Reserva DNI
... FechaNac
DNI FechaNac Edad /Edad { Edad = FechaHoy
... - FechaNac }
• La lista de solicitudes relacionadas con una representación teatral concreta • Los atributos derivados se representan con un “/” al principio del nombre.
estará ordenada (ordered).
• La fórmula, o explicación, de cómo se obtiene el atributo se pone
• La lista de reservas relacionadas con una representación teatral concreta no opcionalmente en forma de restricción ( {...} )
tendrá ningún orden concreto
• La multiplicidad de los objetos relacionados debe ser mayor que uno ( * en el Empresa
1 *
Departamento
ejemplo) contratante 1
compañía 1 ubicación
• Ordered no significa ordenación según un atributo o atributos de la clase *
{ Persona.contratante = Persona
Solicitud. En su lugar, añade automáticamente un nuevo elemento a la Persona.ubicación.compañía } /Trabaja *
asociación y los objetos quedan ordenados respecto a él.
• La ordenación según un atributo (sorted en inglés) se expresa mediante una • Puede haber asociaciones derivadas (redundantes) obtenidas a partir de
otras.
restricción (entre “{“ y “}”).
• También se usa el símbolo “/”. Pueden acompañarse de alguna restricción que
se deba cumplir, como en el caso de /Trabaja.
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 25 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 26
Clase calificada
Nombre Número Departamento Banco Tablero
Indicando la Atributo calificador
Nombre multiplicidad del NºCuenta Fila
DEPARTAMENTO Número atributo Columna
Lugares[*] Multiplicidad * reducida *
Lugares ... ... mediante el calificador 0..1 1
Cliente 1
Clase objetivo Casilla
• Las multiplicidades más comunes de un atributo son: 1 (exactamente un
valor) y 0..1 (vacío o un valor).
• Sólo sirve para asociaciones binarias.
• * significa desde cero (vacío), a un número indefinido de valores. • El calificador: es uno o varios atributos de la clase objetivo o de la asociación.
• Otra forma de representar atributos con múltiples valores (multivalor en E/R)
• Un banco está relacionado con todos sus clientes (sería * en el lado de cliente).
es la siguiente:
Departamento Pero un banco y un nº de cuenta determinan a un cliente o a ninguno si el nº
Nombre Número Nombre de cuenta no existe. En otros ejemplos el calificador podría relacionar con
Número varios clientes.
Como
DEPARTAMENTO * asociación o • Casilla parece un tipo de entidad débil. El problema es cuando las clases
1..* agregación
Lugares ... Lugares propietarias son varias.
Nombre • Desde el punto de vista de implementación un calificador podría ser un índice.
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 27 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 28
Representación de tipos de entidad débil Asociaciones n-arias
Banco Inscripción
Nombre
BANCO Código {clave} Fecha
Código (1,N) Nombre {clave}
1 * 0..1 NO:
TIENE {ident.} Asignatura Profesor
(1,1) 1..* *
Código Sucursal
SUCURSAL Alumno
Dirección Código {c. parcial}
Dirección • No admite agregación, composición ni calificación.
• Admite clases asociación (Inscripción) y poner nombre a la asociación
• Concepto alejado de las clases. UML no dispone de notación especial. (cerca del rombo)
• Elmasri y Navathe proponen usar asociaciones calificadas. Pero, hemos • Como en E/R, en cada enlace de la asociación participan un profesor, un
visto que una asociación calificada no tiene por qué ser una clase sin clave y alumno y una asignatura.
sólo sirve cuando el tipo de entidad propietario (BANCO) es único.
• Multiplicidades (cambia respecto a E/R):
• Usaremos las restricciones {c. parcial} para indicar la clave parcial e {ident.}
– La multiplicidad de un extremo se define respecto a los demás extremos.
para la composición identificadora.
– Profesor (0..1) indica con cuántos profesores se puede relacionar cada
• En los casos donde no haya clave parcial se seguirá sabiendo que es débil
par asignatura-alumno.
porque no habrá clave y porque tendrá una o varias composiciones
identificadoras. – Alumno (*) refleja cuántos alumnos puede tener una asignatura
impartida por un profesor.
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 29 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 30
Herencia Discriminador
ATLETA Enlace
Atleta
o {solapada, parcial} • Nombre opcional que se pone al lado de un triángulo o línea de especialización.
Cien Doscientos Tres_Mil Pértiga
• “posición” y “origen” representan dos dimensiones independientes de
CIEN DOSCIENTOS TRES_MIL PÉRTIGA especialización. Cada una representa una cualidad abstracta del empleado.
• Cada objeto de empleado deberá contener todas las dimensiones (por
EMPLEADO
ejemplo, los objetos de “enlace”)
Empleado
• Si hay varias dimensiones las subclases son clases abstractas, es decir, que
no pueden contener objetos.
INGENIERO GERENTE ASALARIADO Ingeniero Gerente Asalariado • Con un solo discriminador se tiene lo mismo que llamábamos en EER
subclases definidas por atributo.
GERENTE_INGENIERÍA Gerente_ingeniería • Si no hay discriminador, el usuario decide en qué subclase se inserta cada
nuevo objeto.
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 31 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 32
Ejemplo de diseño con d. de clase: UNIVERSIDAD
Calificación Persona
1
Departamento
Nota Nombre
Pertenece
Nombre {clave}
NSS {clave} TfnoSecre
Dirección 0..1 DespachoSecre
Sexo
matriculado
1 responsable
Director
Se pueden añadir FechaNcto
restricciones, 1..*
discriminadores y poner * 1 Asignatura
alguna relación como
derivada (ejemplos:
asignatura-profesor o
Alumno
* Carrera[*]
Profesor
Rango
Nombre
Código {clave}
Descripción Ejercicios
imparte
Nombre Despacho 1
asignatura-alumno) NºAños Extensión
Salario 1
{ident} impartida
* *
Licenciado 1..* 1
Proyecto Sección
Tutor
Becario IdSección {c. parcial}
investigador
Invest_ppal
Nombre 1 NºGrupo *
*
* Código {clave} 1..* * Cuatrimestre
FechaInicio Año
Subvención investigador
Entidad
*
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 33 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 34
Diseña bien un diagrama de clases etc.). Para las esculturas se • Por cada objeto de arte se tiene • En el museo se celebran diferentes
UML o bien EER que recoja la almacena el material (mármol, también información sobre su exposiciones, cada una de ellas
siguiente información sobre un bronce, ...), altura, peso y estilo. origen mediante información de su tiene un nombre que la identifica,
museo: – Basándose en su pertenencia al país y cultura (romano, egipcio, tiene una fecha de comienzo y de
• El museo tiene una colección de museo se distinguen objetos en maya, etc.) y su época finalización e incluye el conjunto de
objetos de arte. Cada uno tiene su préstamo u objetos de la (renacimiento, neoclásico, etc.). objetos de arte exhibidos.
nº de identificación, artista y año de colección permanente. Para • También se guarda información de • Sobre las colecciones de obras de
creación (si se conocen), título y estos últimos se guarda la fecha los artistas: su nombre (se supone arte con las que el museo
una descripción. de adquisición y coste además que único), fecha de nacimiento y intercambia obras es útil guardar su
• Los objetos de arte se clasifican en de si está en exposición o en en su caso de defunción, país de nombre (único), tipo (museo,
varias categorías: almacén. Para las obras en origen, época, estilo principal y colección privada, etc.),
– Basándose en su tipo se préstamo se incluye el nombre descripción. descripción, dirección, teléfono y el
distinguen pinturas, esculturas y de la colección a la que nombre de la persona de contacto.
otros. Las pinturas incluyen el pertenece, la fecha en la que se
tipo de pintura (óleo, acuarela, recibió en préstamo y la fecha
...), soporte (lienzo, papel, ...) y de devolución.
estilo (impresionista, abstracto,
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 35 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 36
PARQUES NATURALES (1/2) PARQUES NATURALES (2/2)
Diseña bien un diagrama de clases UML • Por cada especie vegetal desean • Cada excursión tiene un código que la encarga de registrar quién visita el
o bien EER que recoja la siguiente conocer si tiene floración y, en ese identifica. Además se registra el día, la parque a través de esa entrada y en
información sobre parques naturales caso, en qué periodo florece. De las hora y los alojamientos que la qué fecha.
(PN): especies animales se guardará cuál es organizan. También se almacenan los • Cada guarda tiene asignada un área de
su periodo de celo. Según su su parque y la recorre en un vehículo,
• Por cada comunidad autónoma (CA) se visitantes que se inscriben en cada
alimentación, las especies animales se del que se almacena su tipo y
guarda su nombre, sus parques y el clasifican en herbívoras, carnívoras y excursión.
matrícula. Se pueden asignar varios
organismo responsable de estos. Hay omnívoras. • El personal que trabaja en cada parque guardas a un área del parque y varios
parques que se extienden por varias • También hay registrar qué animales o puede ser: celador, investigador y celadores a una entrada.
CAs. vegetales sirven de alimento a los guarda. Una persona puede • Por cada investigador se recoge su
• De un parque se almacena su nombre animales de los parques. desempeñar varios cargos al mismo titulación y los proyectos de
(no habrá dos de igual nombre), la fecha • Por cada visitante a PNs se recoge su tiempo (por ejemplo, guarda e investigación en los que ha intervenido.
en la que fue declarado PN, sus DNI, nombre, dirección y profesión. Los investigador). Para todos ellos se Para cada proyecto se guarda sobre
diferentes áreas y los km2 de cada una. PN tienen alojamientos propios que guarda su DNI, nombre, dirección, qué especies se ha investigado en el
organizan excursiones. No hay dos teléfono, sueldo, nº de seguridad social mismo.
No hay dos áreas del mismo PN que se
alojamientos de un parque con igual y el parque donde trabaja. • De cada proyecto se registra su
llamen igual. nombre. Además se guarda su nombre, presupuesto y período de
• En cada área de un parque residen capacidad, categoría, visitantes que lo • Cada parque tiene una o varias
realización (fechas de inicio y fin).
varias especies. Cada especie tiene sus utilizaron y en qué habitación y fechas entradas. Éstas se numeran del uno al
nombres científico y vulgar y se conoce el de inicio y fin. nº de entradas al mismo. Cada celador
nº de individuos en cada área. está destinado en una de ellas y se
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 37 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 38
UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 41 UR Fac. C.E.A. e Informática (© A. Jaime) DBD Tema 3 42