Sunteți pe pagina 1din 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 modicacin y la extensin de los


componentes sin codicar 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 nales como las de
los desarrolladores de software mediante una cierta capa-
cidad 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
modicada 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 denir 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, codicado de una forma
simple, estndar e independiente de cmo o dnde est
implementado el objeto.

Polimorsmo 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 signicado para una aplicacin

Se presentan como nombres propios o referencias


especcas 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


identicado. Se ha denido 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 im-
portante 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:
cdigoAeropuerto=IAH
nombreAeropuerto=Intercont
zonaHoraria=Central
IAH:Aeropuerto
poblacin=6000000
nombreCiudad=Barcelona
barcelona:Ciudad
descripcin=Normal
fechaEjecucin=14Dic1999
convergencia=false
sim143:Simulacin
nombreAeropuerto=Barajas
zonaHoraria=MET
cdigoAeropuerto=MAD
MAD:Aeropuerto
unArbolBinario:ArbolBinario

unArbolBinario pertenece a la clase ArbolBinario y no se


han especicado 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 especca (por ejemplo, rbol binario).

Las clases y sus relaciones se describen mediante


diagramas de clases:
ArbolBinario
poblacin
nombreCiudad
Ciudad
nombreAeropuerto
zonaHoraria
cdigoAeropuerto
Aeropuerto
descripcin
fechaEjecucin
convergencia
Simulacin
calcular
13019 Diseo de bases de datos p. 13/52
Clases

No se especican 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 signica 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 identicador interno de las
instancias de una clase.

Los identicadores 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


identicadores internos, por ejemplo cuando se utiliza un
modelo relacional.
nmeroBastidor
modelo
color
Vehculo
idAeropuerto
cdigoAeropuerto
nombreAeropuerto
zonaHoraria
Aeropuerto
Adecuado en las etapas
de anlisis y diseo
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
poblacin
nombreCiudad
Ciudad
nombreAeropuerto
zonaHoraria
cdigoAeropuerto
Aeropuerto
descripcin
fechaEjecucin
convergencia
Simulacin
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 polimrcas, 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
nombreCiudad=Pars
poblacin=5000000
paris:Ciudad
ORL:Aeropuerto
cdigoAeropuerto=ORL
nombreAeropuerto=Orly
zonaHoraria=MET
poblacin
nombreCiudad
Ciudad
nombreAeropuerto
zonaHoraria
cdigoAeropuerto
Aeropuerto
Sirve Sirve
(a)
Sirve
(b)
nombreAeropuerto=De Gaulle
zonaHoraria=MET
CHG:Aeropuerto
cdigoAeropuerto=CHG
0..* 0..*
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.


Hotel
nombre
direccin
nmeroHabitaciones
nmeroTelefno
estrellas
precioHabSimple
precioHabDoble
TarjetaCrdito
nombre
AreaMetropolitana
nombre
provincia
pais
nombre
direccin
nmeroTelefno
CadenaHotelera
Acepta
0..*
0..*
0..*
0..*
0..1
0..*
13019 Diseo de bases de datos p. 23/52
Multiplicidad
La multiplicidad especica el nmero de instancias de una
clase que se pueden relacionar con una instancia de la
clase relacionada
cero o ms (varios)
cero o uno
exactamente uno
Clase
{ordenado}
1..*
uno o ms
varios ordenados
nmero explcito
Clase
Clase Clase
Clase
Clase
2..4
0..1
0..*
13019 Diseo de bases de datos p. 24/52
Multiplicidad
cdigoPasaje
ReservaVuelo
localizadorRegistro
ReservaViaje
Vuelo
pasaje
Ticket
{ordenado}
Reserva
cdigoPasaje
ReservaVuelo
localizadorRegistro
ReservaViaje
Vuelo
pasaje
Ticket
(a)
(b)
{ordenado}
Reserva
0..1
*
*
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


identicar 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.
cdigoAeropuerto
nombreAeropuerto
Aeropuerto
DescripcinVuelo
nmeroVuelo
salidaPrevista
duracinPrevista
destino
origen
0..*
0..*

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 naliza 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 gura anterior).

Cuando la asociacin tiene lugar entre objetos de la


misma clase (asociacin reexiva, como se muestra en
la gura adjunta.
Modelo correcto Modelo incorrecto
Persona Padre Hijo
2
0..* hijo
padre 2 0..*
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.
Arbitro
puntuacin
Prueba
arbitra
0..* 0..*
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 denir 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 signicado 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 gura


en forma de diamante hueco sobre el extremo de la lnea
de la asociacin que termina en la clase propietaria.
1..*
Asignatura Curso
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.
1..*
Paciente HistorialClinico
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.


Usuario
Tabla
dueo
Autorizacin
autorizado
0..* 0..*
0..*
0..*
autorizador
13019 Diseo de bases de datos p. 34/52
Clases de asociacin
Usuario
Tabla
dueo
Autorizacin
autorizado
0..* 0..*
0..*
0..*
autorizador

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 especicar de forma
precisa la identidad y el recorrido.

En la gura 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:
Persona
rbitro
ReuninAtltica
Prueba
puntuacin
0..*
0..*
competidor
0..*
0..*
13019 Diseo de bases de datos p. 36/52
Asociacin calicada

Una asociacin calicada es una asociacin en la cual los


objetos en el rol de muchos se pueden identicar de forma
no ambiga mediante un atributo denominado calicador.

Un calicador acta como un selector entre los objetos


reduciendo la multiplicidad efectiva de muchos a uno.

Una asociacin calicada con una multiplicidad uno o


cero o uno especica un camino preciso para encontrar el
objeto destino a partir del objeto fuente.
13019 Diseo de bases de datos p. 37/52
Asociacin calicada
Cuenta numeroCuenta
nombreBanco
Banco
nombreBanco
Banco Cuenta
Asociacin no cualificada
Asociacin cualificada
numeroCuenta
0..1
0..*

Ambos modelos son aceptables, pero el modelo cualicado


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 cualicado es ms adecuado, ya que un nmero


de cuenta no tiene sentido si no se especica 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-cualicadas.

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.
AsignaturaImpartida
nmeroAula
LibroTexto Curso
Profesor
0..*
0..*
Asignatura
13019 Diseo de bases de datos p. 39/52
Concepto de generalizacin
Generalizacin es la relacin entre una clase (la supercla-
se) 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 especcos.

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 es-
tructura del sistema. Tiene el mismo signicado que gene-
ralizacin 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
nombreMoneda
fechaValor
valorActual
nombre
fechaVencimiento
valorVencimiento
Bono
tipoSeguro
cuotaAnual
Seguro
BonoInteresFijo
inters
BonoIntersVariable
intersReferencia
frmulaInters
dividendo
Accin
tipoProductoFinanciero
tipoBono
13019 Diseo de bases de datos p. 42/52
Generalizacin

Todos los productos nancieros 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 jo, 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


redenirse en la subclase.

La subclase puede denir 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
nmeroAsiento
DescripcinAvin
fabricante
nmeroModelo
nombreCompaa
LneaAerea
nmeroCuenta
nmeroVuelo
fechaSalida
DescripcinAsiento
tipoAsiento
nmeroRegistro
Avin Vuelo
horaSalidaActual
duracinActual
cdigoPasaje
ReservaVuelo
CuentaUsuarioHabitual
localizadorRegistro
ReservaViaje
pasaje
Ticket
nombreCliente
direccin
nmeroTelfono
Cliente
Asiento
nombreAgente
Agente ticketFacturacin
nmeroReclamacin
AgenteLneaAerea AgenteViajes
AgenciaViajes
nombreAgencia
cdigoAeropuerto
nombreAeropuerto
Aeropuerto
nombreCiudad
Ciudad
salidaPrevista
duracinPrevista
frecuencia
fechaFinServicio
DescripcinVuelo
pasajero
patrn
patrn
fechaInicioServicio
Sirve
0..*
0..*
0..*
0..*
origen
destino
0..1
0..1
0..*
0..1
0..*
0..*
{ordenado}
0..*
0..*
0..*
0..* 0..*
0..*
0..1
0..1
0..* 0..1
0..*
0..1 0..*
0..*
0..* 0..*
13019 Diseo de bases de datos p. 45/52
Diagrama de clases . . .
Un diagrama de clases es la representacin grca 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
reejan mltiples factores, tales como:

El nmero de das que hace que se compr el pasaje.

La posibilidad de devolucin.

Si el pasajero pasar el n 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 deciencias 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 echa que indica la
direccin, dos nodos.
Hoja Rama
GrafoDirigido
GrafoDirigido
Vrtice Nodo
(b) (a)
Nodo
0..*
raz hijo
1..*
1..*
padre
1..*
0..* 0..*
fuente
0..*
0..*
sumidero

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 denicin, 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.
C D
F
E
B A
1
2
3
4
5
6
7
Grafo dirigido X
Diagrama de instancias para el modelo (a)
Diagrama de instancias para el modelo (b)
A:Nodo
B:Nodo
1:Vrtice
2:Vrtice
3:Vrtice
4:Vrtice
fuente
fuente
fuente
fuente
sumidero
sumidero
sumidero
sumidero
fuente
fuente
fuente
sumidero
sumidero
sumidero
C:Nodo
D:Nodo
E:Nodo
F:Nodo
5:Vrtice
7:Vrtice
6:Vrtice
padre
padre
padre
padre
padre
padre
padre
hijo
hijo
hijo
hijo
hijo
hijo
raz
raz
X: GrafoDirigido
A:Rama
B:Rama
E:Rama
D:Rama
C:Rama
F:Hoja
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

S-ar putea să vă placă și