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
www.kybele.urjc.es Base de Datos @KYBELE
Diseño conceptual Diseño lógico
Modelo E/R Extendido SQL-92 (BDR)
Modelo de clases de UML SQL:2003 (BDOR)
ODMG (BO)
Implementación
Código SQL (R o OR) para Oracle 10g
Código para POET
www.kybele.urjc.es Base de Datos @KYBELE
Modelo E/R Extendido
Bibliografía Complementaria
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.
www.kybele.urjc.es Base de Datos @KYBELE
Diseño de BD (Objeto) - Relacionales
Nivel Modelo Lenguaje
Estructurado E/R
Conceptual
Objetos UML
Lógico SQL:92
(Estándar) Relacional Grafo relacional
UML+extensión relacional
SQL:2003
Objeto-Relacional
UML+extensión OR
Lógico Relacional
(Específico) Producto SQL producto
Objeto-Relacional SQL producto
Producto UML+extensión producto
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación
Modelo Entidad-Interrelación (E/R)
El modelo E/R fue propuesto por Peter P.Chen en dos artículos (1976 y 1977).
Objetivo:
Establecer una visión global de los datos de una
organización o de un sistema de información, en un nivel
de abstracción próximo al usuario e independiente de las
características del equipo donde después se vaya a
instrumentar el sistema.
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Elementos del Modelo E/R
Entidad
Denominamos entidad a la abstracción que EMPLEADO
permite representar aquellos objetos del mundo
real que comparten una serie de características
comunes.
Interrelación
Asociación o correspondencia entre entidades. Puede haber más de una
interrelación entre dos entidades.
DEPARTAMENTO Pertenece EMPLEADO
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Elementos del Modelo E/R
Elementos de una Interrelación:
Grado: Número de entidades que participan en una interrelación
Interrelación binaria: Grado 2 Interrelación reflexiva: Grado1
LIBRO TEMA
Escribe
Consta
AUTOR
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Elementos del Modelo E/R
Elementos de una Interrelación:
Cardinalidad Máxima o Tipo de Correspondencia: Número máximo de
ocurrencias de cada entidad que pueden intervenir en la
interrelación que se está tratando.
1:1 – 1:N – N:M
Papel o “rol”: Función que cada una de las entidades realiza
en la interrelación
Coordina EMPLEADO
PROYECTO Dirige
Es_cordinado_por
1:1
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Elementos del Modelo E/R
Dominio y Valor
Las distintas propiedades o características de una entidad o de una interrelación
toman valores para cada ejemplar de éstas.
El conjunto de posibles valores que puede tomar una cierta característica se
denomina dominio.
Puede definirse por intensión (tipo de dato) o por extensión (declarando el valor).
Atributo
Cada una de las propiedades, características o unidades de información básicas de
una entidad o de una interrelación. Los atributos toman valores de un dominio.
Nombre_ Nombre_
departamento departamento
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Atributo compuesto, es Día
aquel que se define sobre EMPLEADO Mes
más de un dominio. Fecha_nac Año
Fecha_nac Atributo multivaluado,
EMPLEADO
Nombre_emp es aquel que puede
DNI tomar varios valores.
Teléfono
Atributo Identificador Principal (AIP):
identifican unívocamente cada una de
las ocurrencias de la entidad
EMPLEADO DNI
EMPLEADO DNI
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Elementos del Modelo E/R
Generalización/Especialización
Se considera como un caso especial de asociación entre varias entidades
(subtipos) y una entidad más general (supertipo) cuyas características son
comunes a todos los subtipos.
La asociación que se establece entre los subtipos y el supertipo corresponde
a la noción de es_un (IS_A, en inglés)
EMPLEADO SUPERTIPO
(1,1)
Es_un
(0,1) (0,1)
ANALISTA PROGRAMADOR SUBTIPOS
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Entidad – Interrelación Extendido
Ejemplo de esquema en el Modelo E/R
cod-dpto. DEPARTAMENTO
1:N
Tiene
fecha cod-proy
dni EMPLEADO Trabaja PROYECTO
N:M
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Relacional
A finales de los años sesenta Codd introdujo la teoría de las relaciones en el
campo de las bases de datos.
Elementos del Modelo Relacional
Relación
Es la estructura básica del modelo relacional. Se representa mediante una tabla.
Atributo
Representa las propiedades de la relación. Se representa mediante una columna.
Dominio
Es el conjunto válido de valores que toma un atributo.
Tupla
Es una ocurrencia de la relación. Se representa mediante una fila.
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Relacional
Grado: Es el número de atributos de la relación (columnas de la tabla).
Cardinalidad: Es el número de tuplas de una relación (filas de la tabla).
Características de una relación
• No puede haber tuplas duplicadas.
• El orden de las tuplas es irrelevante.
• La tabla es plana, es decir, en el cruce de un
atributo y una tupla sólo puede haber un valor.
• El orden de los atributos no es significativo.
www.kybele.urjc.es Base de Datos @KYBELE
Modelo Relacional
Ejemplo de relación entre tablas N:M
EMPLEADO (cod-emp, nombre,domicilio, fecha-nac…)
PROYECTO( cod-proy, nombre-p, …)
ASIGNACION (cod-emp, cod-proy, …)
‘cod-emp, cod-proy’ es una clave primaria compuesta y sus atributos: cod-emp y
cod-proy son claves ajenas de EMPLEADO y de PROYECTO, respectivamente.
www.kybele.urjc.es Base de Datos @KYBELE
Diseño de BD Relacionales
Transformación de un Esquema E/R
a un Esquema Relacional
Objetivo :
Convertir el esquema conceptual en un esquema lógico global en el Modelo
Relacional.
•Aplicando adecuadamente las reglas de transformación se obtiene un
esquema lógico global (relacional) normalizado.
•Del esquema lógico global se obtendrá el esquema interno. Este
esquema, por motivos de rendimiento y optimización puede ser
desnormalizado.
www.kybele.urjc.es Base de Datos @KYBELE
Diseño de BD Relacionales
Modelo E/R Modelo Relacional
ENTIDAD TABLA
AIP Clave Primaria
Atributo Columna
Atributo multivaluado Tabla
INTERRELACIÓN
N:M Tabla
Propagación de clave a la
1:N entidad con cardinalidad
máxima n
1:1 Propagación de clave de la
entidad con
con atributos cardinalidad mínima 0
Tabla o propagar atributo
junto a la clave
www.kybele.urjc.es Base de Datos @KYBELE
Diseño de BD Relacionales
Modelo E/R Modelo Relacional
GENERALIZACIÓN
Opción a: una sola tabla
Documento (código, titulo, idioma,... tipo)
Opción b: tres tablas
Documento Documento (código, titulo, idioma,...)
Artículo (código, ...) Libro (código, ...)
Artículo Libro Opción c: dos tablas
Artículo (código, titulo, idioma,...)
Libro (código, titulo, idioma,...)
www.kybele.urjc.es Base de Datos @KYBELE
Diseño de BD Relacionales
Estereotipos para BD Relacionales
Elemento BD Elemento UML Estereotipo
Tabla Clase <<table>>
Vista Clase <<view>>
Clave Primaria Atributo <<PK>>
Clave Ajena Atributo <<FK>>
Restricción de No Nulidad Atributo <<NN>>
Restricción de Unicidad Atributo <<UNIQUE>>
Referencia Asociación <<referentes>>
www.kybele.urjc.es Base de Datos @KYBELE
Ejemplo
CONCEPTUAL: ESTRUCTURADO-E/R
Cod_pro
DNI fecha
EMPLEADO Trabaja PROYECTO
(1,n) (0,n)
N:M
LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL
www.kybele.urjc.es Base de Datos @KYBELE
Ejemplo
CONCEPTUAL: ESTRUCTURADO-E/R
Cod_pro
DNI fecha
EMPLEADO Trabaja PROYECTO
(1,n) (0,n)
N:M
LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL
EMPLEADO (DNI, .......) PROYECTO (Cod_pro, .......)
TRABAJA (DNI, Cod_pro, fecha)
www.kybele.urjc.es Base de Datos @KYBELE
Ejemplo
CONCEPTUAL: ESTRUCTURADO-E/R
Cod_pro
DNI fecha
EMPLEADO Trabaja PROYECTO
(1,n) (0,n)
N:M
CONCEPTUAL: OO-UML
www.kybele.urjc.es Base de Datos @KYBELE
Ejemplo
CONCEPTUAL: ESTRUCTURADO-E/R
Cod_pro
DNI fecha
EMPLEADO Trabaja PROYECTO
(1,n) (0,n)
N:M
CONCEPTUAL: OO-UML
EMPLEADO PROYECTO
<<persistent>> <<persistent>>
1..* *
<<PK>>DNI <PK>>Cod_pro
Trabaja
<<NN>>fecha
www.kybele.urjc.es Base de Datos @KYBELE
Ejemplo
LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL
EMPLEADO (DNI, .......) PROYECTO (Cod_pro, .......)
TRABAJA (DNI, Cod_pro, fecha)
LÓGICO ESTÁNDAR: RELACIONAL-UML
EMPLEADO PROYECTO
<<table>> <<table>>
<<PK>>DNI TRABAJA <PK>>Cod_pro
<<table>>
DNI
Cod_pro
<<NN>>fecha
<<references>>
<<references>>
<<PK>> {DNI,Cod_Pro}
<<FK>> DNI: EMPLEADO
<<FK>>Cod_pro: PROYECTO
www.kybele.urjc.es Base de Datos @KYBELE
Enunciado 4
En el gimnasio “Siempre en forma” se quiere implantar una base de datos para llevar el control de los
socios, recursos utilizados, etc. Las especificaciones que nos han dado son las siguientes:
• Existen varias salas, de las cuales se quiere guardar información como, los metros cuadrados
que ocupa, ubicación y el tipo de sala (cardio, general, muscular). Cada sala se identifica por
un número de sala.
• Hay salas que tienen aparatos y salas que no. En las salas se pueden o no impartir clases.
• De cada aparato se quiere tener almacenado su código, descripción y estado de
conservación. Cada aparato está asignado a una única sala.
• También se quiere mantener información relacionada con las clases que se imparten
(descripción y día/hora en la que se imparten); cada clase se identifica por un código de clase.
Cada clase tiene asignada una sala y es impartida por un sólo monitor.
• De cada monitor se quiere conocer el DNI, nombre, teléfono, si tienen o no titulación,
experiencia profesional, así como las clases que pueden impartir (preparación como monitor
de aerobic, step, streching, etc).
• De cada socio se quiere conocer el número de socio, nombre, dirección, teléfono, profesión y
datos bancarios, así como las clases a las que asiste.
• El gimnasio dispone también de pistas de squash, de las que se quiere conocer el número de
pista, ubicación y estado. Las pistas de squash pueden ser utilizadas por socios para lo que
proporciona un servicio de reservas de pistas (en una fecha y a una hora.)
www.kybele.urjc.es Base de Datos @KYBELE
Enunciado 4 – Gimnasio a)
CONCEPTUAL: ESTRUCTURADO-E/R
MONITOR Preparación APARATO
(1,1) Dni_m (0,n)
Código
Imparte Tiene
(0,n) Metros
Tipo
(1,1)
(0,n) (1,1)
CLASE Tiene_asign SALA
(0,n) N_sala
Cód_clas
Ubicación
Estado
Asiste
N_socio N_pista Ubicac
Hora Fecha
(1,n)
(1,n) (0,n)
SOCIO Reserva SQUASH
www.kybele.urjc.es Base de Datos @KYBELE
Enunciado 4 – Gimnasio a)
CONCEPTUAL: OO-UML
MONITOR SALA
<<persistent>> CLASE
<<persistent>> <<persistent>>
<<PK>>Dni_m Imparte
<PK>>Cod_clas 0..* 1 <<PK>>N_sala
Nombre
Descripcion Ubicación
Teléfono
1 0..* dia/hora Tiene_Asig Tipo
Titulación
Metros
Experiencia
<<AM>>Preparación
0..*
Asiste 1
Tiene
1..*
0..*
SOCIO
<<persistent>> APARATO
SQUASH Reserva <<persistent>>
<<PK>>N_socio
<<persistent>> 0..* 1..* Nombre <<PK>>Código
Dirección Descripcion
<<PK>>N_pista
Teléfono Conservacion
Ubicac
Estado Hora Profesión
Fecha datos_bancarios
www.kybele.urjc.es Base de Datos @KYBELE
LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL
1 SALA n_sala ubicac tipo Metros
Solución APARATO
codigo descrip estado n_sala
MONITOR dni_m nombre tlf_m titulac exper
PREPARACION dni_m descrip
CLASE cod_clas descrip dni_m dia_hora n_sala(**)
ASISTE SOCIO
n_socio cod_clas n_socio nombre tlf_s direcc profes d_bancar
RESERVA (***) n_socio n_pista fecha hora
SQUASH n_pista ubica estado
www.kybele.urjc.es Base de Datos @KYBELE
LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL
2 SALA n_sala ubicac tipo Metros
Solución APARATO
codigo descrip estado n_sala
MONITOR dni_m nombre tlf_m titulac exper
PREPARACION dni_m descrip
CLASE cod_clas descrip dni_m dia_hora n_sala(**)
ASISTE SOCIO
n_socio cod_clas n_socio nombre tlf_s direcc profes d_bancar
RESERVA (***) n_socio n_pista fecha hora
SQUASH n_pista ubica estado
www.kybele.urjc.es Base de Datos @KYBELE
LÓGICO ESTÁNDAR: RELACIONAL-UML
APARATO
<<table>>
MONITOR PREPARACIÓN
<<table>> <<PK>>Código
<<table>> Descripcion
<<references>>
<<PK>>Dni_m Dni_m Estado
Nombre Preparación N_sala
Teléfono
<<PK>> {Dni_m, Preparacion} <<FK>> N_sala: SALA
Titulación
Experiencia <<FK>> Dni_m: MONITOR
<<references>>
<<references>>
<<references>> CLASE SALA
<<references>>
<<table>> <<table>>
ASISTE <PK>>N_sala
<PK>>Cod_clas
<<table>> Descr Ubicación
Dia_hora Tipo
N_socio
N_sala Metros
Cod_clas
<<PK>> {N_socio, cod_clas} <<FK>> N_sala: SALA
<<FK>> N_socio: SOCIO <<FK>> {Descr, Dni_m}: PREPARACIÓN
<<FK>> Cod_clas: CLASE
RESERVA
<<table>> SQUASH
SOCIO
<<table>>
<<table>> N_socio
N_pista <<PK>>N_pista
<<PK>>N_socio Ubicac
<<references>> Nombre <<references>> Fecha
Hora Estado
Dirección
<<references>>
Teléfono <<PK>> {N_pista, Fecha, Hora}
Profesión <<FK>> N_socio: SOCIO
datos_bancarios <<FK>> N_pista: SAQUASH
www.kybele.urjc.es Base de Datos @KYBELE
Enunciado 4
4. b) El gimnasio “siempre en forma” del ejercicio 4 impone las
siguientes restricciones :
• Las pistas de Squash se consideran salas y se desea conocer
también su tamaño y ubicación.
• Las clases sólo se imparten en salas sin aparatos. Las salas con
aparatos siguen clasificándose en sala de cardio, general, etc.
4. c) El gimnasio “siempre en forma” del ejercicio 4 elimina la
restricción de que una clase sólo se imparten en salas sin aparatos.
www.kybele.urjc.es Base de Datos @KYBELE