Sei sulla pagina 1di 31

Temario

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 Prcticas de XML con XML DB de Oracle

www.kybele.urjc.es

Base de Datos @KYBELE

Diseo conceptual
Modelo E/R Extendido Modelo de clases de UML

Diseo lgico
SQL-92 (BDR) SQL:2003 (BDOR)
ODMG (BO)

Implementacin
Cdigo SQL (R o OR) para Oracle 10g Cdigo para POET

www.kybele.urjc.es

Base de Datos @KYBELE

Modelo de Clases UML

Bibliografa Complementaria

Tecnologa y Diseo de Bases de Datos. Piattini, M.G., Marcos, E., Calero, C., Vela, B. Ra-Ma, 2006. Bases de Datos Objeto Relacionales. Marcos, E., Vela, B. y Vara J.M., Dickinson, Septiembre 2005. El Lenguaje de Modelado Unificado. G. Booch, J. Rumbaugh, I. Jacobson. Addison Wesley, 1999. Persistence Modeling in the UML. S.W. Ambler. Software Development, 1999.
www.kybele.urjc.es Base de Datos @KYBELE

ndice

1. Diagrama de clases UML


1.1. Clases 1.2. Asociaciones 1.3. Generalizaciones

2. Mecanismos de extensin
2.1. Restricciones
2.2. Estereotipos para el diseo de BD

3. Ejemplo

www.kybele.urjc.es

Base de Datos @KYBELE

1. Diagrama de clases UML Diagramas UML (Tcnicas)


Clases: clases, relaciones, interfaces y colaboraciones. Vista de diseo esttica y de procesos.

Objetos: objetos y relaciones. Vista de diseo esttica y de procesos desde una perspectiva prototpica (diagramas de colaboracin pero sin envo de mensajes).
Caso de uso: conjunto de casos de uso, actores y relaciones. Modelado y organizacin del comportamiento.

Interaccin: objetos, relaciones y mensajes:


Secuencia: ordenacin temporal de mensajes Colaboracin: organizacin estructural de los objetos que envan y reciben mensajes Estados: estados, transiciones, eventos y actividades. Comportamiento dirigido por eventos de una clase, interfaz, o colaboracin. Actividades : modelan el funcionamiento y resaltan el flujo de control entre objetos. Diagramas de componentes: organizacin y dependencias entre un conjunto de componentes. Diagramas de despliegue: configuracin de nodos de procesamiento en tiempo de ejecucin y los componentes que residen en ellos.

www.kybele.urjc.es

Base de Datos @KYBELE

1. Diagrama de clases UML

Permiten modelar: El vocabulario de un sistema Colaboraciones Esquema de una BD Se componen de: Clases Interfaces Relaciones:

Dependencia

Asociacin
Generalizacin

www.kybele.urjc.es

Base de Datos @KYBELE

1. Diagrama de clases UML

1.1. Clases

Clases

Descripcin de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semntica.
Nombre Atributo: tipo = valor {propiedad} Mtodo (parmetros):tipo {propiedad} Responsabilidades

Visibilidad: + pblico # protegido privado

Pueden ser concretas o abstractas


Persona nombre direccin telfonos crear() eliminar()
www.kybele.urjc.es Base de Datos @KYBELE

Persona

1. Diagrama de clases UML

1.2. Asociaciones

Asociacin

Las asociaciones representan relaciones existentes entre clases. navegavilidad Asociaciones: - Binarias Direccin del nombre - Reflexivas - Ternarias
multiplicidad rol Multiplicidad: 0, 1 N..M * 3..* 1 2..5 3, 4, 6..* Nombre multiplicidad rol

Persona

1..*

Trabaja_en

1 patrn

empleado
www.kybele.urjc.es

Empresa

Rol empleado: Relacin de Persona con respecto a Empresa


Base de Datos @KYBELE

1. Diagrama de clases UML

1.2. Asociaciones

Asociacin n-aria
Las asociaciones representan relaciones existentes entre ms de dos clases.

* ao jugador *

Equipo
equipo

Temporada

Jugador

www.kybele.urjc.es

Base de Datos @KYBELE

1. Diagrama de clases UML

1.2. Asociaciones

Clases de Asociacin
En una asociacin entre dos clases, la propia asociacin puede tener atributos.

Persona

1..* empleado

1 patrn

Empresa

Trabaja_En Descripcin Fecha_Contratacin Salario

www.kybele.urjc.es

Base de Datos @KYBELE

1. Diagrama de clases UML

1.2. Asociaciones

Agregacin:

Una agregacin es una asociacin que permite representar objetos compuestos. Cuando los objetos de una clase (TODO) estn compuestos por la unin de los objetos de otra clase (PARTE) existe una agregacin.
Parte Todo

Universidad

1..*

1..*

Estudiante

Composicin (agregacin fsica):


Universidad
1
www.kybele.urjc.es

Departamento
1..*
Base de Datos @KYBELE

1. Diagrama de clases UML

1.3. Generalizacin

Generalizacin:

La generalizacin es una asociacin entre una clase ms general (superclase o clase padre) y una clase ms especfica (subclase o clase hija). Lleva implcito dos principios: herencia (simple o mltiple) e inclusin.
Padre

Hijo

Hijo

Persona

Parcial Exclusiva
www.kybele.urjc.es

Hombre

Mujer

Base de Datos @KYBELE

1. Diagrama de clases UML

1.3. Generalizacin

Herencia Mltiple:
Bpedo nro patas Con Pelos cubertura comida Animal comida Carnvoro Cuadrpedo nro patas Herbvoro

Con Plumas

cobertura
cobertura

Con Escamas

Conejo

www.kybele.urjc.es

Base de Datos @KYBELE

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.
www.kybele.urjc.es Base de Datos @KYBELE

3. Ejemplo
JefeProyecto
Cod_JefeProyecto Nombre Direccion: {Tipo_Via, Nombre_Via, Poblacion, CP, Provincia} Telefono dirige 1 0..1 Cod_Proyecto Nombre Proyecto

1..* Figura Figura Cod_Figura <<PK>> Figura_Id Nombre <<AK>> Nombre Color tiene 0..* 1..1 Plano Cod_Plano Fecha_Entrega Arquitectos Dibujo_Plano Num_Figuras

Linea

Poligono
Num_Lineas 1..* Id_Linea Longitud Puntos: {Coord_X, CoordY}

www.kybele.urjc.es

Base de Datos @KYBELE

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.

www.kybele.urjc.es

Base de Datos @KYBELE

ndice

1. Diagrama de clases UML


1.1. Clases 1.2. Asociaciones 1.3. Generalizaciones

2. Mecanismos de extensin
2.1. Restricciones
2.2. Estereotipos para el diseo de BD

3. Ejemplo

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin

Mecanismos de extensin de UML


Permiten adecuar la semntica de los elementos de modelos particulares Extienden las posibilidades de anotacin

Estereotipos: palabras claves que alteran el significado o funcionalidad de un elemento. <<persistent>>


Valor etiquetado: comentarios que permiten aadir informacin al elemento. {versin=3.1} Restriccin: limitan la funcionalidad de un elemento. {edad>18}

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin 2.1. Restricciones


{restriccin} OCL

Restricciones sobre asociaciones


Empleado
Recibe

Empleado
Imparte Pertenece {subconjunto} Dirige

Curso

{or}

{ordenado}

Curso

Departamento

Alumnos

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin 2.1. Restricciones Restricciones sobre generalizaciones


Persona
{overlapping, incomplete} {overlapping, incomplete}

Persona
{overlapping, complete}

Docente

Alumno

Empleado

Alumno

parcial y solapada
Empleado
{disjoint, incomplete}

total y solapada
Persona
{disjoint, complete}

Analista

Vendedor

Hombre

Mujer

parcial y exclusiva
www.kybele.urjc.es

total y exclusiva
Base de Datos @KYBELE

Mecanismos de Extensin 2.1. Restricciones Restricciones sobre generalizaciones


Clases abstractas

Icono {raz} origen: Punto mostrar() obtenerID: Integer

{root}:sin padres

operacin abstracta

IconoRectangular altura: Integer anchura: Integer

IconoArbitrario borde: ColeccinDeLneas

Botn mostrar()
{leaf}: sin hijos

BotnOK {hoja} mostrar()

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin 2.2. 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.

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin Estereotipos para el diseo de BD Objeto Relacionales:


Elemento BD Base de datos Esquema Tablespace Tabla Vista ndice Columna Clave Primaria Clave Ajena Atributo multivaluado Atributo derivado Atributo Compuesto Restriccin de no nulidad Restriccin de unicidad Disparador Restriccin Procedimiento Almacenado Elemento UML Componente Paquete Componente Clase Clase Clase Atributos Atributos Atributos Atributos Atributos Atributos Atributos Atributos Restriccin Restriccin Clase Estereotipo <<Database>> <<Schema>> <<Tablespace>> <<Table>> <<View>> <<Index>> <<Column>> <<PK>> <<FK>> <<MA>> <<DA>> <<CA>> <<NOT NULL>> <<UNIQUE>> <<Trigger>> <<Check>> <<Stored Procedure>> Icono

www.kybele.urjc.es

Base de Datos @KYBELE

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.
www.kybele.urjc.es Base de Datos @KYBELE

3. Ejemplo
JefeProyecto <<persistent>> <<PK>> Cod_JefeProyecto <<AK>> Nombre <<CA>> Direccion: {Tipo_Via, Nombre_Via, 1 Poblacion, CP, Provincia} Telefono dirige Proyecto <<persistent>> <<PK>> Cod_Proyecto 0..1 Nombre

1..* Figura Figura <<persistent>> Cod_Figura <<PK>> Figura_Id Nombre <<AK>> Nombre Color tiene 1..* Plano <<persistent>> <<PK>> Cod_Plano Fecha_Entrega 1..1 <<MA>> Arquitectos Dibujo_Plano <<DA>> Num_Figuras

Poligono <<persistent>>
Num_Lineas 1..*

Linea <<persistent>> <<PK>> Id_Linea <<DA>> Longitud <<MA>><<CA>> Puntos: {Coord_X, CoordY}

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin 2.2. Estereotipos Estereotipos para SQL:2003


Tabla Tipada (tt) Clase del Metamodelo: Clase Icono: Ninguno Compone <<composes>> Clase del Metamodelo: Asociacin Icono: None Tipo REF <<ref>> Clase del Metamodelo: Atributo Icono: MULTISET <<Multiset>> Clase del Metamodelo: Atributo Icono: Ninguno Mtodo Diferido <<deferred>> Clase del Metamodelo: Mtodo Icono: Ninguno

Tipo Estructurado <<udt>> Clase del Metamodelo: Clase Icono: Ninguno Tipo de objeto <<ot>> (udt+tt) Clase del Metamodelo: Clase Icono:
<<udt>> <<persistent>>

Tipo ROW <<row>> Clase del Metamodelo: Atributo Icono: ARRAY <<array>> Clase del Metamodelo: Atributo Icono:
Mtodo Redefinido <<overriding>> Clase del Metamodelo: Mtodo Icono: Ninguno Restricciones: Ninguna

www.kybele.urjc.es

Base de Datos @KYBELE

Mecanismos de Extensin 2.2. Estereotipos Estereotipos para Oracle10g


Tabla Tipada (tt) Clase del Metamodelo: Clase Icono: Ninguno

Tipo Estructurado <<udt>> Clase del Metamodelo: Clase Icono: Ninguno

Tipo de Objeto <<ot>> (udt+tt) Clase del Metamodelo: Clase Icono:


<<udt>> <<persistent>>

Compone <<composes>> Clase del Metamodelo: Asociacin Icono: None VARRAY <<varray>> Clase del Metamodelo: Atributo/Clase Icono:

Tipo REF <<ref>> Clase del Metamodelo: Atributo Icono: Nested Table <<nt>> Clase del Metamodelo: Clase Icono:

www.kybele.urjc.es

Base de Datos @KYBELE

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.

www.kybele.urjc.es

Base de Datos @KYBELE

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.

www.kybele.urjc.es

Base de Datos @KYBELE

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.
www.kybele.urjc.es Base de Datos @KYBELE

Potrebbero piacerti anche