Tema2-ModeloClasesUML Clase2
Tema2-ModeloClasesUML Clase2
Tema2-ModeloClasesUML Clase2
I. BD Orientadas a Objetos
Tema 1. Bases de Datos Orientadas a Objetos
Tema 2. El modelo de clases de UML
Ejercicios de modelado conceptual OO
Tema 3. El modelo objeto-relacional
Prcticas de BDOR en Oracle
Tema 4. Diseo de BDOR
Ejercicios de diseo de BD (objeto-)relacionales con UML
II. BD Activas
Tema 5. Bases de Datos Activas
Tema 6. Disparadores en Oracle
Prcticas de Disparadores en Oracle
III. BD Semiestructuradas
Tema 7. XML y las BD
Diseo conceptual
Diseo lgico
SQL-92 (BDR)
SQL:2003 (BDOR)
ODMG (BO)
Implementacin
Cdigo SQL (R o OR) para Oracle 10g
Cdigo para POET
Bibliografa
S.W. Ambler.
ndice de Contenido
1.3. Generalizaciones
2. Mecanismos de extensin
2.1. Restricciones
2.2. Estereotipos para el diseo de BD
3. Ejemplo
2. Mecanismos de extensin
2.1. Restricciones
2. Mecanismos de extensin
Restricciones:
{restriccin}
OCL
{or}
{subconjunto}
Imparte
Pertenece
Curso
Curso
Empleado
Dirige
Departamento
{ordenado}
Alumnos
2.1. Restricciones
2. Mecanismos de extensin
Docente
Alumno
Persona
{overlapping, complete}
Empleado
Alumno
parcial y solapada
total y solapada
Empleado
Persona
{disjoint, incomplete}
Analista
Vendedor
parcial y exclusiva
{disjoint, complete}
Hombre
Mujer
total y exclusiva
2.1. Restricciones
2. Mecanismos de extensin
Icono {raz}
origen: Punto
mostrar()
obtenerID: Integer
IconoRectangular
altura: Integer
anchura: Integer
{root}:sin padres
operacin abstracta
IconoArbitrario
borde: ColeccinDeLneas
Botn
mostrar()
BotnOK {hoja}
mostrar()
2. Mecanismos de extensin
2.2. Estereotipos
Estereotipos:
Permiten crear nuevos tipos de bloques de construccin
a partir de los existentes, pero que sean especficos a
un problema:
interface
type
actor
exception
signal
process
thread
metaclass
etc.
2.2. Estereotipos
2. Mecanismos de extensin
Elemento UML
Estereotipo
Base de datos
Componente
<<Database>>
Esquema
Paquete
<<Schema>>
Tablespace
Componente
<<Tablespace>>
Tabla
Clase
<<Table>>
Vista
ndice
Clase
Clase
<<View>>
<<Index>>
Columna
Atributos
<<Column>>
Clave Primaria
Atributos
<<PK>>
Clave Ajena
Atributos
<<FK>>
Atributo multivaluado
Atributos
<<MA>>
Atributo derivado
Atributos
<<DA>>
Atributo Compuesto
Atributos
<<CA>>
Restriccin de no nulidad
Restriccin de unicidad
Atributos
Atributos
<<NOT NULL>>
<<UNIQUE>>
Disparador
Restriccin
Restriccin
Restriccin
<<Trigger>>
<<Check>>
Procedimiento Almacenado
Clase
<<Stored Procedure>>
Icono
3. Ejemplo
Un estudio de arquitectura desea crear una base de datos para
gestionar sus proyectos. Nos dan las siguientes especificaciones:
Cada proyecto tiene un cdigo y un nombre. Un proyecto tiene uno y solo un jefe de
proyecto y un jefe de proyecto slo puede estar involucrado en un proyecto o en ninguno.
De cada jefe de proyecto se desean recoger sus datos personales (cdigo, nombre,
direccin y telfono). Un jefe de proyecto se identifica por un cdigo. No hay dos nombres
de jefe de proyecto con el mismo nombre.
Un proyecto se compone de una serie de planos, pero stos se quieren guardar de modo
independiente al proyecto. Es decir, si en un momento dado se dejara de trabajar en un
proyecto, se desea mantener la informacin de los planos asociados.
De los planos se desea guardar su nmero de identificacin, la fecha de entrega, los
arquitectos que trabajan en l y un dibujo del plano general con informacin acerca del
nmero de figuras que contiene.
Los planos tienen figuras. De cada figura se desea conocer, el identificador, el nombre, el
color, el rea y el permetro. Adems, de los polgonos se desea conocer el nmero de
lneas que tienen, adems de las lneas que lo forman. El permetro se desea que sea un
mtodo diferido; el rea se desea implementarlo como genrico para cualquier tipo de
figura, pero adems se desea un mtodo especfico para el clculo del permetro de los
polgonos.
De cada lneas que forma parte de un polgono se desea conocer el punto de origen y el de
fin (segn sus coordenadas, X e Y), as como la longitud. Cada lnea tiene un identificador
que permite diferenciarlo del resto. La longitud de la lnea se puede calcular a partir de sus
puntos origen y final.
3. Ejemplo
JefeProyecto
<<persistent>>
<<PK>> Cod_JefeProyecto
<<AK>> Nombre
<<CA>> Direccion: {Tipo_Via, Nombre_Via, 1
Poblacion, CP, Provincia}
Telefono
Proyecto
<<persistent>>
dirige
<<PK>> Cod_Proyecto
0..1 Nombre
1..*
Figura
Figura
<<persistent>>
<<PK>> Figura_Id
Cod_Figura
Nombre
<<AK>> Nombre
Color
Plano
<<persistent>>
<<PK>> Cod_Plano
Fecha_Entrega
1..1 <<MA>> Arquitectos
Dibujo_Plano
<<DA>> Num_Figuras
tiene
1..*
Linea
<<persistent>>
Poligono
<<persistent>>
Num_Lineas
1..*
<<PK>> Id_Linea
<<DA>> Longitud
<<MA>><<CA>> Puntos: {Coord_X, CoordY}
2. Mecanismos de extensin
2.2. Estereotipos
Compone <<composes>>
Clase del Metamodelo: Asociacin
Icono: None
<<udt>>
<<persistent>>
ARRAY <<array>>
Clase del Metamodelo: Atributo
Icono:
MULTISET <<Multiset>>
Clase del Metamodelo: Atributo
Icono: Ninguno
2. Mecanismos de extensin
2.2. Estereotipos
<<persistent>>
Compone <<composes>>
Clase del Metamodelo: Asociacin
Icono: None
VARRAY <<varray>>
Clase del Metamodelo: Atributo/Clase
Icono:
Enunciado 1
La cadena de Video-Clubs Glob-Gusters ha decidido, para mejorar su
servicio, emplear una base de datos para almacenar la informacin
referente a las pelculas que ofrece en alquiler. Esta informacin es la
siguiente:
Una pelcula se caracteriza por su ttulo, nacionalidad, productora y
fecha (p.e., Quo Vadis, Estados Unidos, M.G.M., 1955).
En una pelcula pueden participar varios actores (nombre,
nacionalidad, sexo) algunos de ellos como actores principales.
Una pelcula est dirigida por un director (nombre, nacionalidad).
De cada pelcula se dispone de uno o varios ejemplares diferenciados
por un nmero de ejemplar y caracterizados por su estado de
conservacin.
Un ejemplar se puede encontrar alquilado a algn cliente (DNI,
nombre, direccin, telfono). Se desea almacenar la fecha de
comienzo del alquiler y la de devolucin.
Cada socio puede tener alquilados, en un momento dado, 4
ejemplares como mximo.
Un socio tiene que ser avalado por otro socio que responda de l en
caso de tener problemas en el alquiler.
Enunciado 10
Se desea crear una BD de recetas de cocina con los siguientes requisitos:
Cada receta tiene un identificador, adems de un nombre y una
descripcin. SE debe guardar tambin los ingredientes de los que consta
adems de la cantidad necesaria para cada uno de ellos.
Las recetas se publican en libros de cocina. Cada libro se identifica por un
ISBN. No puede haber dos libros con el mismo ttulo. Adems, se desea
conocer la fecha de edicin del libro.
De cada cocinero se desea conocer su nombre, su cdigo de
identificacin as como su nacionalidad. No puede haber dos cocineros
con el mismo nombre.
Un cocinero puede escribir libros de recetas. De stos cocineros se desea
conocer, adems de los datos anteriormente descritos, el nmero de libros
escritos. Un libro puede ser escrito por un mximo de cinco autores y un
autor puede escribir varios libros. Un cocinero no tiene que ser
necesariamente autor de libros.
Tambin hay cocineros que inventan recetas. Un cocinero puede o no ser
creador de recetas y en caso de serlo puede haber creado varias. Cada
receta corresponde a un slo creador.
Un cocinero que sea autor tambin puede ser creador de recetas y
viceversa.
Enunciado 2
La empresa de formacin X, desea llevar un control informatizado de
los cursos que imparte as como de lo profesores que participan en
dichos cursos. Para ello, nos han dado las siguientes especificaciones:
Cada curso, del que se desea conocer el ttulo, el nmero de
horas y el tema o los temas que trata, se identifica por un cdigo
de cuso.
Cada curso puede tener una serie de cursos cuyo realizacin
previa es obligatoria (prerrequisito) o recomendada.
Cada curso se puede impartir una o varias veces, en diferentes
fechas y en cada edicin del mismo pueden participar diferentes
empleados.
Los empleados, de los que se desea conocer su cdigo de
empleado, nombre, DNI y fecha de antiguedad en la empresa,
pueden impartir y recibir cursos pero con la restriccin de que en
una mismo edicin de un curso no pueden participar como
profesores y como alumnos.