You are on page 1of 52

13019 Diseo de bases de datos

Captulo 2 Modelado orientado a objetos


Wladimiro Daz
Wladimiro.Diaz@uv.es

Universitat de Valncia

13019 Diseo de bases de datos p. 1/52

El modelo orientado a objetos


La dcada de los 90: la era de la programacin orientada a

objetos.
Necesidad de este paradigma: los usuarios demandan
programas y entornos de trabajo simples y fciles de
usar.
Implicaciones: mayor nmero de lneas de cdigo que
es necesario organizar, gestionar y mantener.
Proporciona mejores herramientas para:
Obtener un modelo del mundo real cercano a la

perspectiva del usuario.


Interaccionar fcilmente con un entorno de
computacin, empleando metforas familiares.
Facilitar la modificacin y la extensin de los
componentes sin codificar de nuevo desde cero.

13019 Diseo de bases de datos p. 2/52

El modelo orientado a objetos

Las tcnicas de orientacin a objetos pretenden satisfacer


tanto las necesidades de los usuarios finales como las de
los desarrolladores de software mediante una cierta capacidad de modelar el mundo real.

13019 Diseo de bases de datos p. 3/52

El modelo orientado a objetos


La programacin tradicional est orientada a los

procedimientos.
En la programacin orientada a objetos las entidades

centrales son los datos (objetos).


Los objetos se comunican entre s mediante el uso de
mensajes y el conjunto de objetos que responden a los
mismos mensajes se implementan mediante clases.
La clase describe e implementa todos los mtodos que
capturan el comportamiento de sus instancias.
La implementacin est totalmente oculta (encapsulada)
dentro de la clase, de modo que puede ser extendida y
modificada sin afectar al usuario.
Una clase es como un mdulo. Sin embargo, tambin es
posible extender y especializar una clase (mecanismo
de herencia).
13019 Diseo de bases de datos p. 4/52

Ambito del modelo orientado a objetos


Los principios de la tecnologa orientada o objetos se
aplican a todos los aspectos del proceso de desarrollo del
software:
Metodologa.
Herramientas de diseo y anlisis.
Interfaces de usuario.
Lenguajes de programacin.
Bases de datos.
Sistemas operativos.
...

13019 Diseo de bases de datos p. 5/52

Terminologa comn y principios bsicos


Modularizacin Mdulos fciles de manejar y que

comprenden las estructuras de datos y las operaciones


permisibles.
Encapsulado Distingue entre la interfase a un objeto

(qu es lo que hace), de la implementacin (cmo lo hace).


Tipos de datos abstractos Agrupa todos los objetos

que tienen la misma interfase y los trata como si fueran del


mismo tipo.
Herencia Reutilizacin, ya que permite definir nuevos

tipos en funciones de otros tipos. El nuevo tipo hereda las


estructuras de datos y los mtodos del tipo precedente.

13019 Diseo de bases de datos p. 6/52

Terminologa comn y principios bsicos


Mensajes Un objeto lleva a cabo sus acciones cuando

recibe un mensaje concreto, codificado de una forma


simple, estndar e independiente de cmo o dnde est
implementado el objeto.
Polimorfismo Diferentes objetos responden al mismo

mensaje. El sistema determina en tiempo de ejecucin qu


cdigo invocar dependiendo del tipo de objeto (tcnicas de
Overloading y Dynamic binding).

13019 Diseo de bases de datos p. 7/52

Conceptos de objeto y clase


Un objeto es un concepto, abstraccin o cosa que tiene un
cierto significado para una aplicacin
Se presentan como nombres propios o referencias

especficas en la descripcin o discusin de un problema:


Algunos objetos tienen una entidad real (por ejemplo la

empresa Seat).
Otros son entidades conceptuales (por ejemplo, la frmula

para resolver una ecuacin de segundo grado).


Existen objetos que se introducen por razones de

implementacin y carecen de equivalencia en la realidad


fsica (por ejemplo, un rbol binario).

13019 Diseo de bases de datos p. 8/52

Conceptos de objeto y clase


Cada objeto tiene existencia propia y puede ser

identificado. Se ha definido la identidad como:


aquella propiedad de un objeto que lo distingue del
resto de objetos
En la etapa de anlisis de una aplicacin es posible dar por

supuesto que los objetos tienen identidad.


En el diseo, es necesario adoptar una metodologa para

implementar dicha identidad (direcciones de memoria,


cdigos numricos o una combinacin de los valores de
ciertos atributos).
Esta nocin de identidad es una parte integral y muy importante de la tecnologa orientada a objetos

13019 Diseo de bases de datos p. 9/52

Objetos
Los objetos y sus relaciones se describen mediante

diagramas de instancias:
barcelona:Ciudad

sim143:Simulacin

nombreCiudad=Barcelona
poblacin=6000000

descripcin=Normal
fechaEjecucin=14Dic1999
convergencia=false

unArbolBinario:ArbolBinario
IAH:Aeropuerto
cdigoAeropuerto=IAH
nombreAeropuerto=Intercont
zonaHoraria=Central

MAD:Aeropuerto
cdigoAeropuerto=MAD
nombreAeropuerto=Barajas
zonaHoraria=MET

unArbolBinario pertenece a la clase ArbolBinario y no se

han especificado los valores de los atributos.


El objeto IAH pertenece a la clase Aeropuerto y tiene los

valores IAH, Intercont y Central.

13019 Diseo de bases de datos p. 10/52

Objetos
Cuando se construye un modelo es necesario decidir qu

objetos mostrar y cuales ignorar.


Un objeto representa slo los aspectos relevantes de un

problema.
No resulta til modelar detalles irrelevantes o extraos, ya

que el mbito de un objeto depende slo de qu necesita la


aplicacin.

13019 Diseo de bases de datos p. 11/52

Clases
Un objeto es una instancia (u ocurrencia) de una clase.
Una Clase es la descripcin de un grupo de objetos con:
Propiedades similares (atributos del objeto).
Comportamiento (operaciones y diagramas de estado) y

semntica comn.
Y que establecen el mismo tipo de relaciones con otros
objetos.
Las clases proporcionan un mecanismo para compartir la
estructura entre objetos similares

13019 Diseo de bases de datos p. 12/52

Clases
Algunas clases tienen una contrapartida real (persona y

empresa por ejemplo).


Otras son entidades conceptuales (ecuacin algebraica).
Adems, existen clases que son slo artefactos de una

implementacin especfica (por ejemplo, rbol binario).


Las clases y sus relaciones se describen mediante

diagramas de clases:
ArbolBinario

Ciudad
nombreCiudad
poblacin

Aeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria

Simulacin
descripcin
fechaEjecucin
convergencia
calcular

13019 Diseo de bases de datos p. 13/52

Clases
No se especifican ni los atributos ni las operaciones de la

clase ArbolBinario.
La clase Ciudad tiene los atributos nombreCiudad y

poblacin.
La clase Aeropuerto cuenta con los atributos

cdigoAeropuerto, nombreAeropuerto y zonaHoraria.


No se muestran las operaciones de Ciudad y Aeropuerto.

Esto no significa que ambas clases carezcan de


operaciones, sino slo que se ha decidido no mostrarlas.
La clase Simulacin tiene los atributos descripcin,

fechaEjecucin y convergencia as como la operacin


calcular.

13019 Diseo de bases de datos p. 14/52

Diagramas de clases y objetos


Tanto los diagramas de clases como los de instancias

constituyen una expresin del modelo orientado a objetos.


Del mismo modo que una clase describe un conjunto de

objetos, un diagrama de clases describe un conjunto de


diagramas de instancias.
Un diagrama de clases permite representar de forma

abstracta el conjunto de diagramas de instancias,


documentando la estructura de los datos.

13019 Diseo de bases de datos p. 15/52

Valores y atributos de objeto


Un valor es un trozo de informacin (dato).
Un atributo de objeto es una propiedad de una clase a la

que se le asigna un nombre y que contiene un valor para


cada objeto de la clase.
Los modelos orientados a objetos se construyen sobre

estructuras: clases y relaciones.


Los atributos tienen una importancia menor y se utilizan

para elaborar las clases y las relaciones.


Es importante no confundir valores y objetos: Los objetos

tienen identidad mientras que los valores no.

13019 Diseo de bases de datos p. 16/52

Valores y atributos de objeto


En el anlisis de un modelo: no es necesario aadir un

atributo que acte como identificador interno de las


instancias de una clase.
Los identificadores del objeto (OIDs) son implcitos a la
metodologa orientada a objetos.
Slo utilizamos aquellos atributos que tienen sentido
para la aplicacin.
Durante la etapa de diseo puede ser necesario utilizar

identificadores internos, por ejemplo cuando se utiliza un


modelo relacional.
Vehculo
nmeroBastidor
modelo
color

Adecuado en las etapas


de anlisis y diseo

Aeropuerto
idAeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria
Inadecuado en la etapa
de anlisis aunque correcto
en la etapa de diseo

13019 Diseo de bases de datos p. 17/52

Operaciones y mtodos
Una operacin es una funcin o procedimiento que se

puede aplicar por un objeto o sobre un objeto.


Cada operacin acta sobre un objeto que es su argumento

implcito.
ArbolBinario

Ciudad
nombreCiudad
poblacin

Aeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria

Simulacin
descripcin
fechaEjecucin
convergencia
calcular

La clase Simulacin contiene la operacin calcular cuyo

argumento implcito es un objeto de la clase Simulacin.

13019 Diseo de bases de datos p. 18/52

Operaciones y mtodos
Al nombre de la operacin se pueden aadir detalles

opcionales tales como la lista de argumentos o el tipo del


resultado.
Algunas operaciones son polimrficas, esto es, aplicables a

muchas clases. La implementacin de una operacin para


una clase concreta se denomina mtodo.

13019 Diseo de bases de datos p. 19/52

Conceptos de enlace y asociacin


Un enlace (link ) es una conexin fsica o conceptual entre

objetos. Muchos enlaces interconectan dos objetos, pero es


posible la existencia de enlaces entre tres o ms objetos.
Una asociacin es la descripcin de un grupo de enlaces

con una estructura y semntica comn.


De acuerdo con esto:
Un enlace es una instancia de una asociacin. Los enlaces

de una asociacin relacionan objetos relacionan objetos de


las mismas clases y tienen propiedades similares (atributos
del enlace).
Una asociacin describe un conjunto de enlaces

potenciales del mismo modo que una clase describe un


conjunto potencial de objetos.

13019 Diseo de bases de datos p. 20/52

Conceptos de enlace y asociacin


CHG:Aeropuerto

ORL:Aeropuerto

cdigoAeropuerto=CHG
nombreAeropuerto=De Gaulle
zonaHoraria=MET

Sirve

cdigoAeropuerto=ORL
nombreAeropuerto=Orly
zonaHoraria=MET
paris:Ciudad
nombreCiudad=Pars
poblacin=5000000

Sirve

(a)
Aeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria

0..*

Sirve

0..*

Ciudad
nombreCiudad
poblacin

(b)

13019 Diseo de bases de datos p. 21/52

Conceptos de enlace y asociacin


Es importante no confundir un enlace con un objeto.
Los objetos tienen una identidad inherente y existen por

derecho propio.
La identidad de un enlace deriva de los objetos que
relaciona y no puede existir de forma aislada.
En la etapa de anlisis, todas las relaciones entre objetos

se modelan mediante enlaces y los grupos de enlaces


similares se reconocen como asociaciones.
En la etapa de diseo, las asociaciones se pueden

implementar mediante punteros, clves forneas o


mediante cualquier otro mtodo.

13019 Diseo de bases de datos p. 22/52

Conceptos de enlace y asociacin


Las asociaciones constituyen un aspecto importante y

distintivo del modelado OMT (y UML).


Muchas metodologas de desarrollo y lenguajes
orientados a objetos han pasado por alto las
asociaciones.
Una asociacin no es lo mismo que un puntero.
TarjetaCrdito
nombre
0..*
Acepta
0..*
Hotel

AreaMetropolitana
nombre
provincia
pais

0..*

nombre
direccin
0..*
nmeroHabitaciones
nmeroTelefno
estrellas
precioHabSimple
precioHabDoble

CadenaHotelera
0..*

nombre
0..1 direccin
nmeroTelefno

13019 Diseo de bases de datos p. 23/52

Multiplicidad
La multiplicidad especifica el nmero de instancias de una
clase que se pueden relacionar con una instancia de la
clase relacionada

1..*

exactamente uno

Clase

uno o ms

Clase

0..1

cero o ms (varios)

Clase

{ordenado}

varios ordenados

Clase

0..*

cero o uno

Clase

2..4

nmero explcito

Clase

13019 Diseo de bases de datos p. 24/52

Multiplicidad
Vuelo

Ticket
pasaje

Reserva

ReservaVuelo
cdigoPasaje

ReservaViaje
{ordenado}

localizadorRegistro

(a)
Vuelo

Ticket
pasaje
0..1

Reserva
*

ReservaVuelo
cdigoPasaje

ReservaViaje

{ordenado}

localizadorRegistro

(b)
13019 Diseo de bases de datos p. 25/52

Multiplicidad
Un vuelo puede ser reservado por mltiples reservas de

vuelo.
El cdigo de pasaje de un vuelo reservado determina el

precio del pasaje que cobrar la lnea area.


Una reserva de viaje consiste en mltiples reservas de

vuelo que estn ordenadas a medida que un pasajero viaja


de una ciudad hasta la siguiente.
La lnea area utiliza un localizador de registro para

identificar una reserva de viaje en su sistema de


informacin.

13019 Diseo de bases de datos p. 26/52

Roles
Un rol es uno de los extremos de una asociacin al que se

le puede asignar un nombre.


Aeropuerto
cdigoAeropuerto
nombreAeropuerto

DescripcinVuelo
origen

destino

0..*

0..*

nmeroVuelo
salidaPrevista
duracinPrevista

Los nombres de rol son especialmente tiles en el recorrido

de las asociaciones debido a que se pueden tratar como


pseudo-atributos:
unaDescripcinVuelo.origen hace referencia al
aeropuerto de origen del vuelo.
unaDescripcinVuelo.destino hace referencia al
aeropuerto en el que finaliza el vuelo.

13019 Diseo de bases de datos p. 27/52

Roles
Ya que el rol es un pseudo-atributo, el nombre de rol no

puede entrar en contradiccin con cualquier otro atributo o


rol de la clase que lo origina.
Los nombres de rol son opcionales si el modelo no es

ambigo. La ambigedad puede aparecer cuando:


Se dan mltiples asociaciones entre las mismas clase
(como hemos visto en la figura anterior).
Cuando la asociacin tiene lugar entre objetos de la
misma clase (asociacin reflexiva, como se muestra en
la figura adjunta.
padre

Persona

0..*

Padre

Hijo

2
hijo

0..*

Modelo correcto

Modelo incorrecto

13019 Diseo de bases de datos p. 28/52

Atributos de enlace
El atributo de un objeto es una propiedad de la clase con un

nombre que describe un valor contenido por cada objeto de


la clase.
De modo similar, un atributo de enlace es una propiedad de

una asociacin con nombre que describe un valor


contenido por cada enlace de la asociacn.
Un atributo de enlace es una propiedad de la asociacin no

se puede adscribir a ninguna de las clases asociadas.


0..*

0..*

Prueba

Arbitro
arbitra

puntuacin

13019 Diseo de bases de datos p. 29/52

Atributos de enlace
un rbitro asigna una puntuacin a los esfuerzos realizados

por un competidor (atleta) de una prueba de decatlon.


La puntuacin es el atributo de la asociacin entre las

clases Prueba y Arbitro.


Las asociaciones muchos-a-muchos proporcionan el

argumento ms convincente y la razn fundamental de los


atributos de enlace.
Un atributo de este tipo es sin duda alguna del enlace y
no puede asignarse a ninguno de los dos objetos
relacionados.
La puntuacin depende tanto del atleta como del rbitro

13019 Diseo de bases de datos p. 30/52

Agregacin, composicin y propiedad


La agregacin es una relacin del tipo partetodo entre

dos clases.
UML permite definir dos tipos de agregacin:
Agregacin simple: tambin denominada agregacin

compartida. Permite modelar una relacin partetodo en


la cual un objeto es propietario de otro objeto pero no en
exclusividad. El objeto posedo puede ser a su vez
posedo por otros objetos.
Composicin. Tambin denominada en ocasiones
agregacin fuerte o agregacin compuesta. Permite
modelar una relacin partetodo en la que un objeto es
propietario en exclusiva del otro objeto.

13019 Diseo de bases de datos p. 31/52

Agregacin simple
No cambia el significado de la navegacin entre el todo y

sus partes.
No liga la vida del todo y las partes.
UML representa la agregacin simple mediante una figura

en forma de diamante hueco sobre el extremo de la lnea


de la asociacin que termina en la clase propietaria.
Curso

Asignatura
1..*

Departamento

Empleado
0..*

13019 Diseo de bases de datos p. 32/52

Composicin
Representa una fuerte relacin de pertenencia y vidas

coincidentes de la parte y el todo.


Las partes se crean despus del objeto al que pertenecen y

una vez creadas viven y mueren con l.


Una parte puede formar parte de slo un objeto compuesto.
El objeto compuesto debe gestionar la creacin y

destruccin de las partes.


La composicin se representa mediante un diamante

slido sobre el extremo de la lnea de la asociacin que


termina en la clase propietaria.
Paciente

HistorialClinico
1..*

13019 Diseo de bases de datos p. 33/52

Clases de asociacin
Una clase de asociacin es una asociacin cuyos enlaces

pueden participar en asociaciones posteriores.


Una clase de asociacin tiene caractersticas de asociacin

y de clase:
Como el enlace de una asociacin, las instancias de
una clase de asociacin obtienen su identidad de las
instancias de las clases que las constituyen.
Como una clase, pueden participar en asociaciones.
autorizador

Usuario
0..*

dueo

autorizado

0..*

Autorizacin
0..*
0..*

Tabla

13019 Diseo de bases de datos p. 34/52

Clases de asociacin
autorizador

Usuario
0..*

dueo

autorizado

0..*

Autorizacin
0..*
0..*

Tabla

Un usuario puede ser el dueo de mltiples tablas.


El dueo de una tabla puede autorizar el acceso a dicha

tabla a uno o ms usuarios.


stos pueden a su vez autorizar a otros usuarios. Por

ejemplo:
El usuario A autoriza el acceso a los usuarios B y C.
El usuario A es el autorizador y B y C los autorizados.
B puede a su vez autorizar a un usuario D a acceder a
la tabla.
13019 Diseo de bases de datos p. 35/52

Clases de asociacin
Las clases de asociacin constituyen una faceta importante

del modelado UML porque permiten especificar de forma


precisa la identidad y el recorrido.
En la figura anterior: una tabla y un autorizado implican
necesariamente una autorizacin; un autorizador puede
proporcionar varias de dichas autorizaciones.
En el meeting atltico: Prueba es una clase de
asociacin que describe a una persona que compite en
un evento atltico. Un modelo mejorado es:
ReuninAtltica

0..*

competidor

Persona
0..*
0..*

rbitro

Prueba
0..*

puntuacin
13019 Diseo de bases de datos p. 36/52

Asociacin calificada
Una asociacin calificada es una asociacin en la cual los

objetos en el rol de muchos se pueden identificar de forma


no ambiga mediante un atributo denominado calificador.
Un calificador acta como un selector entre los objetos

reduciendo la multiplicidad efectiva de muchos a uno.


Una asociacin calificada con una multiplicidad uno o

cero o uno especifica un camino preciso para encontrar el


objeto destino a partir del objeto fuente.

13019 Diseo de bases de datos p. 37/52

Asociacin calificada
Banco
nombreBanco

0..1

numeroCuenta

Cuenta

Asociacin cualificada
Banco
nombreBanco

0..*

Cuenta
numeroCuenta

Asociacin no cualificada

Ambos modelos son aceptables, pero el modelo cualificado

aporta ms informacin:
Aade una restriccin en la multiplicidad: la
combinacin de un banco y un nmero de cuenta
conduce a una nica cuenta bancaria.
El modelo cualificado es ms adecuado, ya que un nmero

de cuenta no tiene sentido si no se especifica tambin el


banco.
13019 Diseo de bases de datos p. 38/52

Asociaciones ternarias
El grado de asociacin es el nmero de roles de cada

enlace.
La gran mayora de las asociaciones son binarias o
binarias-cualificadas.
Una asociacin ternaria es una asociacin con tres roles
que no pueden representarse mediante asociaciones
binarias.
Las asociaciones ternarias son poco frecuentes y es
muy difcil encontrar asociaciones de grado mayor.
Profesor

AsignaturaImpartida

Curso

nmeroAula

0..*

LibroTexto
0..*

Asignatura
13019 Diseo de bases de datos p. 39/52

Concepto de generalizacin
Generalizacin es la relacin entre una clase (la superclase) y una o ms variaciones de esta clase (las subclases).
Organiza las clases de acuerdo con sus similitudes y

diferencias.
Proporciona estructura a la descripcin de los objetos.
La superclase contiene los atributos, operaciones,

diagramas de estado y asociaciones comunes.


La subclase aade atributos, operaciones, diagramas de

estado y asociaciones especficos.


Una instancia de una subclase es tambin una instancia de

todas sus superclases.

13019 Diseo de bases de datos p. 40/52

Concepto de especializacin

La especializacin proporciona otra prespectiva de la estructura del sistema. Tiene el mismo significado que generalizacin pero aporta una visin de arriba a abajo.

13019 Diseo de bases de datos p. 41/52

Generalizacin
La generalizacin simple organiza las clases en una jerarqua
en la que cada subclase tiene una nica superclase inmediata.
ProductoFinanciero
nombre
valorActual
fechaValor
nombreMoneda
tipoProductoFinanciero
Accin
dividendo

Seguro

Bono
fechaVencimiento
valorVencimiento

tipoSeguro
cuotaAnual

tipoBono
BonoInteresFijo
inters

BonoIntersVariable
intersReferencia
frmulaInters

13019 Diseo de bases de datos p. 42/52

Generalizacin
Todos los productos financieros tienen un nombre y un

valor actual que se expresa en una determinada moneda.


Las acciones tienen un dividendo que es decidido por los

directores de la compaa.
Los bonos tienen fecha y valor de vencimiento adems de

un tipo de inters bien fijo, bien variable y calculado a partir


de un inters de referencia.
En la clase Seguro se tiene en cuenta que existen

diferentes tipos de seguros: invalidez, vida, riesgo. . .

13019 Diseo de bases de datos p. 43/52

Herencia
La generalizacin es la relacin estructural que permite la

existencia del mecanismo de herencia.


Una subclase hereda los atributos, operaciones, diagramas

de estado y asociaciones de su superclase.


Las propiedades heredadas pueden reutilizarse o

redefinirse en la subclase.
La subclase puede definir nuevas propiedades no

presentes en la superclase.
La generalizacin simple es otro trmino para herencia

simple.
El caso en el que una subclase tiene mltiples superclases

inmediatas se denomina herencia mltiple.

13019 Diseo de bases de datos p. 44/52

Ejemplos: Diagrama de clases


patrn

Ciudad

LneaAerea

nombreCiudad

nombreCompaa nmeroCuenta
nmeroVuelo

0..*

0..1
DescripcinVuelo

Sirve
0..*
Aeropuerto
cdigoAeropuerto
nombreAeropuerto

0..*

0..*

salidaPrevista
duracinPrevista
0..*
frecuencia
destino fechaInicioServicio
fechaFinServicio
origen

DescripcinAvin
fabricante
nmeroModelo
nmeroAsiento
0..1
DescripcinAsiento

fechaSalida
0..1
Vuelo

nmeroRegistro

0..1
CuentaUsuarioHabitual

0..*
{ordenado}

0..*
ReservaViaje

0..*
AgenciaViajes
nombreAgencia

Agente
nombreAgente

0..* 0..*
Asiento

0..*

cdigoPasaje

localizadorRegistro

Avin

0..*

horaSalidaActual
duracinActual
0..*
ReservaVuelo

tipoAsiento

0..*

0..1
Ticket

0..1

pasaje

0..1

0..*
pasajero

0..*

0..*
ticketFacturacin

Cliente
nombreCliente
direccin
nmeroTelfono

nmeroReclamacin

patrn

0..*

AgenteViajes

AgenteLneaAerea

0..*

13019 Diseo de bases de datos p. 45/52

Diagrama de clases . . .
Un diagrama de clases es la representacin grfica que
describe los objetos y sus relaciones.
1. Un aeropuerto sirve a varias ciudades y una ciudad puede
tener varios aeropuertos.
2. Las lneas areas ofertan vuelos entre aeropuertos.
3. Descripcin de vuelo hace referencia a la informacin
pblica que describe un tipo de vuelo entre dos
aeropuertos. Un vuelo hace referencia al viaje concreto que
lleva a cabo un avin en una fecha concreta.

13019 Diseo de bases de datos p. 46/52

Diagrama de clases . . .
4. Normalmente, se registran varias reservas para un vuelo,
cada una con su cdigo de pasaje. Los cdigos de pasaje
determinan el precio del pasaje. Los cdigos de pasaje
reflejan mltiples factores, tales como:
El nmero de das que hace que se compr el pasaje.
La posibilidad de devolucin.
Si el pasajero pasar el fin de semana en la ciudad de
destino.
El tipo de asiento (tipoAsiento).
5. Un pasajero tiene asignado un asiento junto con su reserva
de vuelo. Un asiento puede estar relacionado con multitud
de reservas de vuelo, pero desde luego, no ms de una por
vuelo.

13019 Diseo de bases de datos p. 47/52

Diagrama de clases . . .
6. Una reserva de viaje consiste en una secuencia de
reservas de vuelo.
7. La reserva de viaje la realizan los agentes, que pueden
trabajar bien para la compaa area, bien para una
agencia de viajes.
8. Para cada pasajero que hace una reserva de viaje es
necesario un ticket y en ocasiones, utilizar adems una
cuenta de usuario (en el caso de clientes habituales).

13019 Diseo de bases de datos p. 48/52

Diagrama de instancias
Un diagrama de instancias implica slo objetos, enlaces y
valores.
Los diagramas de instancias son tiles para depurar y

entender los diagramas de clases.


Los diagramas de instancias pueden ayudar a entender las

capacidades y deficiencias de las diferentes


representaciones.
Ejemplo: analicemos los dos diagramas de clases que

modelan el comportamiento de un grafo dirigido:

13019 Diseo de bases de datos p. 49/52

Diagrama de instancias
Un grafo dirigido consiste en un conjunto de nodos y vrtices.
Cada vrtice conecta, mediante una flecha que indica la
direccin, dos nodos.
GrafoDirigido
GrafoDirigido

1..*
0..*
raz

Nodo

1..*
hijo
padre
1..*

Hoja

Rama

0..*

fuente

0..*

Nodo

0..*

Vrtice
sumidero 0..*

(a)

(b)

Modelo (a) describe un grfo dirigido con al menos un

vrtice entre nodos; los vrtices se representan de forma


implcita mediante la asociacin padre-hijo entre Rama y
Nodo. Por definicin, cada nodo tiene uno o ms padres
excepto el nodo raz.
Modelo (b) es ms potente y puede describir cualquier

grafo dirigido.
13019 Diseo de bases de datos p. 50/52

Diagrama de instancias . . .
En el esquema se muestra un grafo dirigido de ejemplo y los
diagramas de instancias asociados a cada diagrama de clases.
Grafo dirigido X
A
1

B
3

Diagrama de instancias para el modelo (a)


hijo
padre
raz

B:Rama

hijo

padre

padre
raz

padre

padre

A:Rama

X: GrafoDirigido

C:Rama

hijo
padre

D:Rama

F:Hoja

hijo
hijo

hijo

E:Rama

padre

Diagrama de instancias para el modelo (b)


sumidero
fuente

A:Nodo

fuente

fuente

C:Nodo

1:Vrtice
sumidero

5:Vrtice
fuente

D:Nodo

2:Vrtice

sumidero

6:Vrtice
sumidero

fuente

3:Vrtice

F:Nodo

sumidero
fuente

E:Nodo

fuente

B:Nodo

4:Vrtice

7:Vrtice

sumidero

sumidero

13019 Diseo de bases de datos p. 51/52

Diagrama de instancias . . .
Modelo (a): se corresponde directamente con el grafo

(nodos que se conectan mediante vrtices).


Modelo (b) es ms complejo: nodos y vrtices son objetos.

13019 Diseo de bases de datos p. 52/52

You might also like