Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
2. Mecanismos de extensin
2.1. Restricciones
2.2. Estereotipos para el diseo de BD
3. Ejemplo
www.kybele.urjc.es
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.
www.kybele.urjc.es
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
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
Persona
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
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
1.2. Asociaciones
Clases de Asociacin
En una asociacin entre dos clases, la propia asociacin puede tener atributos.
Persona
1..* empleado
1 patrn
Empresa
www.kybele.urjc.es
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
Departamento
1..*
Base de Datos @KYBELE
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
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
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
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
ndice
2. Mecanismos de extensin
2.1. Restricciones
2.2. Estereotipos para el diseo de BD
3. Ejemplo
www.kybele.urjc.es
Mecanismos de Extensin
www.kybele.urjc.es
Empleado
Imparte Pertenece {subconjunto} Dirige
Curso
{or}
{ordenado}
Curso
Departamento
Alumnos
www.kybele.urjc.es
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
{root}:sin padres
operacin abstracta
Botn mostrar()
{leaf}: sin hijos
www.kybele.urjc.es
www.kybele.urjc.es
www.kybele.urjc.es
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
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
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
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
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
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