Sie sind auf Seite 1von 32

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

Das könnte Ihnen auch gefallen