temario - kybele - grupo de investigaciónbd-2010... · ejercicios de modelado conceptual oo tema...

18
Base de Datos @KYBELE www.kybele.urjc.es 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 Prácticas de BDOR en Oracle Tema 4. Diseño de BDOR Ejercicios de diseño de BD (objeto-)relacionales con UML II. BD Activas Tema 5. Bases de Datos Activas Tema 6. Disparadores en Oracle Prácticas de Disparadores en Oracle III. BD Semiestructuradas Tema 7. XML y las BD Prácticas de XML con XML DB de Oracle

Upload: dinhthuy

Post on 25-Sep-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

Base de Datos @KYBELEwww.kybele.urjc.es

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

Prácticas de BDOR en Oracle

Tema 4. Diseño de BDOR

Ejercicios de diseño de BD (objeto-)relacionales con UML

II. BD Activas

Tema 5. Bases de Datos Activas

Tema 6. Disparadores en OraclePrácticas de Disparadores en Oracle

III. BD Semiestructuradas

Tema 7. XML y las BD

Prácticas de XML con XML DB de Oracle

Base de Datos @KYBELEwww.kybele.urjc.es

Diseño conceptual

Modelo E/R Extendido

Modelo de clases de UML

Diseño lógico

SQL-92 (BDR)

SQL:2003 (BDOR)

ODMG (BO)

Implementación

Código SQL (R o OR) para Oracle 10g

Código para POET

Modelo de Clases UML

Base de Datos @KYBELEwww.kybele.urjc.es

Tecnología y Diseño 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.

Bibliografía Complementaria

Base de Datos @KYBELEwww.kybele.urjc.es

1. Diagrama de clases UML

1.1. Clases

1.2. Asociaciones

1.3. Generalizaciones

2. Mecanismos de extensión

2.1. Restricciones

2.2. Estereotipos para el diseño de BD

3. Ejemplo

Índice

Base de Datos @KYBELEwww.kybele.urjc.es

Mecanismos de extensión de UML

Mecanismos de Extensión

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

• Valor etiquetado: comentarios que permiten añadirinformación al elemento. {versión=3.1}

• Restricción: limitan la funcionalidad de un elemento. {edad>18}

•Permiten adecuar la semántica de los elementos de modelosparticulares

•Extienden las posibilidades de anotación

Base de Datos @KYBELEwww.kybele.urjc.es

Empleado

Curso

{restricción} OCL

Restricciones sobre asociaciones

ImparteRecibe {or}

Empleado

Departamento

DirigePertenece

{subconjunto}

Curso

Alumnos

{ordenado}

2.1. Restricciones

Mecanismos de Extensión

Base de Datos @KYBELEwww.kybele.urjc.es

Restricciones sobre generalizaciones

Persona

AlumnoDocente

parcial y solapada

{overlapping, incomplete}

total y solapada

{overlapping, complete}

Persona

AlumnoEmpleado

Empleado

VendedorAnalista

{disjoint, incomplete}

parcial y exclusiva

Persona

MujerHombre

{disjoint, complete}

total y exclusiva

Mecanismos de Extensión

2.1. Restricciones

Base de Datos @KYBELEwww.kybele.urjc.es

Restricciones sobre generalizaciones

Icono {raíz}

origen: Punto

mostrar()

obtenerID: Integer

IconoRectangular

altura: Integer

anchura: Integer

IconoArbitrario

borde: ColecciónDeLíneas

Botón

mostrar()

BotónOK {hoja}

mostrar()

Clases abstractas

{leaf}: sin hijos

{root}:sin padres

operación abstracta

2.1. Restricciones

Mecanismos de Extensión

Base de Datos @KYBELEwww.kybele.urjc.es

2.2. Estereotipos

Permiten crear nuevos tipos de bloques de construcción a partir de los existentes, pero que sean específicos a un problema:

•interface•type•actor•exception•signal•process•thread•metaclass•etc.

Mecanismos de Extensión

Base de Datos @KYBELEwww.kybele.urjc.es

Estereotipos para el diseño de BD Objeto Relacionales:

Elemento BD Elemento UML Estereotipo Icono

Base de datos Componente <<Database>>

Esquema Paquete <<Schema>>

Tablespace Componente <<Tablespace>>

Tabla Clase <<Table>> Vista Clase <<View>>

Índice Clase <<Index>>

Columna Atributos <<Column>>

Clave Primaria Atributos <<PK>>

Clave Ajena Atributos <<FK>>

Atributo multivaluado Atributos <<MA>>

Atributo derivado Atributos <<DA>>

Atributo Compuesto Atributos <<CA>>

Restricción de no nulidad Atributos <<NOT NULL>>

Restricción de unicidad Atributos <<UNIQUE>>

Disparador Restricción <<Trigger>>

Restricción Restricción <<Check>>

Procedimiento Almacenado Clase <<Stored Procedure>>

Mecanismos de Extensión

Base de Datos @KYBELEwww.kybele.urjc.es

Un estudio de arquitectura desea crear una base de datos para gestionar sus proyectos. Nos dan lassiguientes especificaciones:

•Cada proyecto tiene un código y un nombre. Un proyecto tiene uno y solo un jefe de proyecto y unjefe de proyecto sólo puede estar involucrado en un proyecto o en ninguno.

•De cada jefe de proyecto se desean recoger sus datos personales (código, nombre, dirección yteléfono). Un jefe de proyecto se identifica por un código. No hay dos nombres de jefe de proyectocon 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 información de los planos asociados.

•De los planos se desea guardar su número de identificación, la fecha de entrega, los arquitectosque trabajan en él y un dibujo del plano general con información acerca del número de figuras quecontiene.

•Los planos tienen figuras. De cada figura se desea conocer, el identificador, el nombre, el color, elárea y el perímetro. Además, de los polígonos se desea conocer el número de líneas que tienen,además de las líneas que lo forman. El perímetro se desea que sea un método diferido; el área sedesea implementarlo como genérico para cualquier tipo de figura, pero además se desea unmétodo específico para el cálculo del perímetro de los polígonos.

•De cada líneas que forma parte de un polígono se desea conocer el punto de origen y el de fin(según sus coordenadas, X e Y), así como la longitud. Cada línea tiene un identificador que permitediferenciarlo del resto. La longitud de la línea se puede calcular a partir de sus puntos origen y final.

3. Ejemplo

Base de Datos @KYBELEwww.kybele.urjc.es

1..*

Linea<<persistent>>

<<PK>> Id_Linea

<<DA>> Longitud

<<MA>><<CA>> Puntos: {Coord_X, CoordY}

Poligono<<persistent>>

Num_Lineas

Figura

<<PK>> Figura_Id<<AK>> NombreColor

Plano<<persistent>>

<<PK>> Cod_PlanoFecha_Entrega<<MA>> ArquitectosDibujo_Plano<<DA>> Num_Figuras

Proyecto <<persistent>>

<<PK>> Cod_ProyectoNombre

JefeProyecto

<<persistent>>

<<PK>> Cod_JefeProyecto

<<AK>> Nombre

<<CA>> Direccion: {Tipo_Via, Nombre_Via,

Poblacion, CP, Provincia}

Telefono

1 0..1

1..*

1..* 1..1

dirige ►

◄ tiene

Figura<<persistent>>

<<PK>> Cod_FiguraNombreColor

3. Ejemplo

Base de Datos @KYBELEwww.kybele.urjc.es

Método Diferido <<deferred>>Clase del Metamodelo: MétodoIcono: Ninguno

Método Redefinido <<overriding>>Clase del Metamodelo: MétodoIcono: NingunoRestricciones: Ninguna

Tipo ROW <<row>>Clase del Metamodelo: AtributoIcono:

ARRAY <<array>>Clase del Metamodelo: AtributoIcono:

Tipo REF <<ref>>Clase del Metamodelo: AtributoIcono:

Compone <<composes>>Clase del Metamodelo: AsociaciónIcono: None

Tabla Tipada (tt)

Clase del Metamodelo: ClaseIcono: Ninguno

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

Estereotipos para SQL:2003

<<udt>>

<<persistent>>

Tipo de objeto <<ot>> (udt+tt)

Clase del Metamodelo: ClaseIcono:

MULTISET <<Multiset>>Clase del Metamodelo: AtributoIcono: Ninguno

Mecanismos de Extensión

2.2. Estereotipos

Base de Datos @KYBELEwww.kybele.urjc.es

Nested Table <<nt>>Clase del Metamodelo: ClaseIcono:

VARRAY <<varray>>Clase del Metamodelo: Atributo/ClaseIcono:

Tipo REF <<ref>>Clase del Metamodelo: AtributoIcono:

Compone <<composes>>Clase del Metamodelo: AsociaciónIcono: None

Tipo de Objeto <<ot>> (udt+tt)

Clase del Metamodelo: ClaseIcono:

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

Estereotipos para Oracle10g

<<udt>>

<<persistent>>

Tabla Tipada (tt)

Clase del Metamodelo: ClaseIcono: Ninguno

2.2. Estereotipos

Mecanismos de Extensión

Base de Datos @KYBELEwww.kybele.urjc.es

La cadena de Video-Clubs Glob-Gusters ha decidido, para mejorar su servicio, emplear una base de datos para almacenar la información referente a las películas que ofrece en alquiler. Esta información es la siguiente:

• Una película se caracteriza por su título, nacionalidad, productora y fecha (p.e., “Quo Vadis”, “Estados Unidos”, “M.G.M.”, 1955).

• En una película pueden participar varios actores (nombre, nacionalidad, sexo) algunos de ellos como actores principales.

• Una película está dirigida por un director (nombre, nacionalidad).• De cada película se dispone de uno o varios ejemplares diferenciados por un

número de ejemplar y caracterizados por su estado de conservación.• Un ejemplar se puede encontrar alquilado a algún cliente (DNI, nombre,

dirección, teléfono). Se desea almacenar la fecha de comienzo del alquiler y la de devolución.

• Cada socio puede tener alquilados, en un momento dado, 4 ejemplares como máximo.

• Un socio tiene que ser avalado por otro socio que responda de él en caso de tener problemas en el alquiler.

Enunciado 1

Base de Datos @KYBELEwww.kybele.urjc.es

La empresa de formación 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 título, el número de horas y el tema o los temas que trata, se identifica por un código de cuso.

• Cada curso puede tener una serie de cursos cuyo realización previa es obligatoria (prerrequisito) o recomendada.

• Cada curso se puede impartir una o varias veces, en diferentes fechas y en cada edición del mismo pueden participar diferentes empleados.

• Los empleados, de los que se desea conocer su código de empleado, nombre, DNI y fecha de antiguedad en la empresa, pueden impartir y recibir cursos pero con la restricción de que en una mismo edición de un curso no pueden participar como profesores y como alumnos.

Enunciado 2

Base de Datos @KYBELEwww.kybele.urjc.es

Se desea crear una BD de recetas de cocina con los siguientes requisitos:

Cada receta tiene un identificador, además de un nombre y una descripción. SE debe guardar también los ingredientes de los que consta además 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 título. Además, se desea conocer la fecha de edición del libro.

De cada cocinero se desea conocer su nombre, su código de identificación 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, además de los datos anteriormente descritos, el número de libros escritos. Un libro puede ser escrito por un máximo de cinco autores y un autor puede escribir varios libros. Un cocinero no tiene que ser necesariamente autor de libros.

También 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 sólo creador.

Un cocinero que sea autor también puede ser creador de recetas y viceversa.

Enunciado 10