sin título de diapositiva - grupo de investigaciónbd-2010... · base de datos @kybele dominio y...

32
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: buidung

Post on 26-Sep-2018

213 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 E/R Extendido

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

Nivel Modelo Lenguaje

ConceptualObjetos

Estructurado

UML

E/R

Lógico(Estándar)

Objeto-Relacional

RelacionalSQL:92

Grafo relacional

UML+extensión relacional

SQL:2003

UML+extensión OR

Lógico(Específico)

Objeto-RelacionalProducto

RelacionalProducto SQL producto

SQL producto

UML+extensión producto

Diseño de BD (Objeto) - Relacionales

Base de Datos @KYBELEwww.kybele.urjc.es

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.

Base de Datos @KYBELEwww.kybele.urjc.es

Elementos del Modelo E/R

Entidad

Denominamos entidad a la abstracción que permite representar aquellos objetos del mundo real que comparten una serie de características comunes.

EMPLEADO

Interrelación

Asociación o correspondencia entre entidades. Puede haber más de una interrelación entre dos entidades.

DEPARTAMENTO EMPLEADOPertenece

Modelo Entidad – Interrelación Extendido

Base de Datos @KYBELEwww.kybele.urjc.es

Elementos del Modelo E/R

Grado: Número de entidades que participan en una interrelación

LIBRO

AUTOR

Escribe

TEMA

Consta

Interrelación binaria: Grado 2 Interrelación reflexiva: Grado1

Elementos de una Interrelación:

Modelo Entidad – Interrelación Extendido

Base de Datos @KYBELEwww.kybele.urjc.es

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

PROYECTO Dirige

1:1

EMPLEADO

Es_cordinado_por

Coordina

Modelo Entidad – Interrelación Extendido

Elementos del Modelo E/R

Base de Datos @KYBELEwww.kybele.urjc.es

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_departamento

Nombre_departamento

Elementos del Modelo E/R

Modelo Entidad – Interrelación Extendido

Base de Datos @KYBELEwww.kybele.urjc.es

Atributo compuesto, es aquel que se define sobre más de un dominio.

Atributo multivaluado, es aquel que puede tomar varios valores.

Año

MesEMPLEADO

Día

Fecha_nac

Teléfono

EMPLEADO

DNI

Nombre_emp

Fecha_nac

Atributo Identificador Principal (AIP): identifican unívocamente cada una de las ocurrencias de la entidad

DNIEMPLEADO

DNIEMPLEADO

Modelo Entidad – Interrelación Extendido

Base de Datos @KYBELEwww.kybele.urjc.es

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)

Generalización/Especialización

(1,1)

Es_un

(0,1) (0,1)

ANALISTA PROGRAMADOR

EMPLEADO SUPERTIPO

SUBTIPOS

Modelo Entidad – Interrelación Extendido

Elementos del Modelo E/R

Base de Datos @KYBELEwww.kybele.urjc.es

N:M

cod-dpto.

dni

fecha cod-proy

DEPARTAMENTO

Tiene

EMPLEADO Trabaja PROYECTO

1:N

Ejemplo de esquema en el Modelo E/R

Modelo Entidad – Interrelación Extendido

Base de Datos @KYBELEwww.kybele.urjc.es

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.

Base de Datos @KYBELEwww.kybele.urjc.es

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.

Modelo Relacional

Base de Datos @KYBELEwww.kybele.urjc.es

EMPLEADO (cod-emp, nombre,domicilio, fecha-nac…)

PROYECTO( cod-proy, nombre-p, …)

ASIGNACION (cod-emp, cod-proy, …)

Ejemplo de relación entre tablas N:M

‘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.

Modelo Relacional

Base de Datos @KYBELEwww.kybele.urjc.es

Transformación de un Esquema E/Ra un Esquema Relacional

Convertir el esquema conceptual en un esquema lógico global en el ModeloRelacional.

Objetivo :

•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.

Diseño de BD Relacionales

Base de Datos @KYBELEwww.kybele.urjc.es

ENTIDADAIPAtributoAtributo multivaluado

INTERRELACIÓNN:M

1:N

1:1

con atributos

Modelo E/R Modelo Relacional

TABLAClave PrimariaColumnaTabla

Tabla

Propagación de clave a la entidad con cardinalidad máxima n

Propagación de clave de la entidad con

cardinalidad mínima 0

Tabla o propagar atributo junto a la clave

Diseño de BD Relacionales

Base de Datos @KYBELEwww.kybele.urjc.es

Documento

LibroArtículo

Opción a: una sola tablaDocumento (código, titulo, idioma,... tipo)

Opción b: tres tablasDocumento (código, titulo, idioma,...)

Artículo (código, ...) Libro (código, ...)

Opción c: dos tablasArtículo (código, titulo, idioma,...)Libro (código, titulo, idioma,...)

GENERALIZACIÓN

Modelo E/R Modelo Relacional

Diseño de BD Relacionales

Base de Datos @KYBELEwww.kybele.urjc.es

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>>

Estereotipos para BD Relacionales

Diseño de BD Relacionales

Base de Datos @KYBELEwww.kybele.urjc.es

EMPLEADO PROYECTOTrabaja

N:M

Cod_profechaDNI

CONCEPTUAL: ESTRUCTURADO-E/R

(1,n) (0,n)

LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL

Ejemplo

EMPLEADO PROYECTOTrabaja

N:M

Cod_profechaDNI

CONCEPTUAL: ESTRUCTURADO-E/R

(1,n) (0,n)

LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL

Base de Datos @KYBELEwww.kybele.urjc.es

EMPLEADO PROYECTOTrabaja

N:M

Cod_profechaDNI

(1,n) (0,n)

EMPLEADO (DNI, .......)

TRABAJA (DNI, Cod_pro, fecha)

PROYECTO (Cod_pro, .......)

LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL

CONCEPTUAL: ESTRUCTURADO-E/R

Ejemplo

Base de Datos @KYBELEwww.kybele.urjc.es

EMPLEADO PROYECTOTrabaja

N:M

Cod_profechaDNI

CONCEPTUAL: ESTRUCTURADO-E/R

(1,n) (0,n)

CONCEPTUAL: OO-UML

Ejemplo

Base de Datos @KYBELEwww.kybele.urjc.es

EMPLEADO PROYECTOTrabaja

N:M

Cod_profechaDNI

CONCEPTUAL: ESTRUCTURADO-E/R

(1,n) (0,n)

CONCEPTUAL: OO-UML

EMPLEADO<<persistent>>

<<PK>>DNI

PROYECTO<<persistent>>

<PK>>Cod_pro

Trabaja

<<NN>>fecha

*1..*

Ejemplo

Base de Datos @KYBELEwww.kybele.urjc.es

TRABAJA<<table>>

DNICod_pro<<NN>>fecha

<<PK>> {DNI,Cod_Pro}<<FK>> DNI: EMPLEADO<<FK>>Cod_pro: PROYECTO

<<references>>

EMPLEADO<<table>>

<<PK>>DNI

PROYECTO<<table>>

<PK>>Cod_pro

LÓGICO ESTÁNDAR: RELACIONAL-UML

<<references>>

EMPLEADO (DNI, .......)

TRABAJA (DNI, Cod_pro, fecha)

PROYECTO (Cod_pro, .......)

LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL

Ejemplo

Base de Datos @KYBELEwww.kybele.urjc.es

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.)

Enunciado 4

Base de Datos @KYBELEwww.kybele.urjc.es

SOCIO

MONITOR APARATO

CLASE SALA

SQUASH

Imparte

Asiste

Tiene_asign

Tiene

Reserva

(1,1)

(1,n)

(0,n)

(0,n)

(0,n) (1,1)

(1,n) (0,n)

(1,1)

(0,n)

Preparación

FechaHora

N_sala

N_pista

Código

Dni_m

Cód_clas

N_socio Ubicac

EstadoUbicación

TipoMetros

CONCEPTUAL: ESTRUCTURADO-E/R

Enunciado 4 – Gimnasio a)

Base de Datos @KYBELEwww.kybele.urjc.es

CONCEPTUAL: OO-UML

MONITOR<<persistent>>

<<PK>>Dni_mNombreTeléfonoTitulaciónExperiencia<<AM>>Preparación

CLASE<<persistent>>

<PK>>Cod_clasDescripciondia/hora

SALA

<<persistent>>

<<PK>>N_salaUbicaciónTipoMetros

APARATO<<persistent>>

<<PK>>CódigoDescripcionConservacion

SOCIO<<persistent>>

<<PK>>N_socioNombreDirecciónTeléfonoProfesióndatos_bancarios

SQUASH<<persistent>>

<<PK>>N_pistaUbicacEstado Hora

Fecha

1..*

0..*

0..*

1

0..*1

0..* 1

1..*0..*

Imparte

Asiste

Tiene_Asig

Tiene

Reserva

Enunciado 4 – Gimnasio a)

Base de Datos @KYBELEwww.kybele.urjc.es

LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL

Metrosubicac tipon_salaSALA

CLASE

APARATO

codigo descrip estado n_sala

SOCIO

RESERVA (***)

SQUASH n_pista ubica estado

n_socio nombre tlf_s direcc profes d_bancar

descrip dia_hora n_sala(**)dni_mcod_clas

ASISTE

n_socio cod_clas

n_pista fecha hora

PREPARACION dni_m descrip

n_socio

MONITOR dni_m nombre tlf_m titulac exper

1 Solución

Base de Datos @KYBELEwww.kybele.urjc.es

Metrosubicac tipon_salaSALA

CLASE

APARATO

codigo descrip estado n_sala

SOCIO

RESERVA (***)

SQUASH n_pista ubica estado

n_socio nombre tlf_s direcc profes d_bancar

descrip dia_hora n_sala(**) dni_mcod_clas

ASISTE

n_socio cod_clas

n_pista fecha hora

PREPARACION dni_m descrip

n_socio

MONITOR dni_m nombre tlf_m titulac exper

LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL

2 Solución

Base de Datos @KYBELEwww.kybele.urjc.es

LÓGICO ESTÁNDAR: RELACIONAL-UML

MONITOR<<table>>

<<PK>>Dni_mNombreTeléfonoTitulaciónExperiencia

CLASE<<table>>

<PK>>Cod_clasDescrDia_horaN_sala

<<FK>> N_sala: SALA<<FK>> {Descr, Dni_m}: PREPARACIÓN

SALA<<table>>

<PK>>N_salaUbicaciónTipoMetros

APARATO<<table>>

<<PK>>CódigoDescripcionEstadoN_sala

<<FK>> N_sala: SALA

SOCIO<<table>>

<<PK>>N_socioNombreDirecciónTeléfonoProfesióndatos_bancarios

SQUASH<<table>>

<<PK>>N_pistaUbicacEstado

PREPARACIÓN<<table>>

Dni_mPreparación

<<PK>> {Dni_m, Preparacion}<<FK>> Dni_m: MONITOR

<<references>>

<<references>>

<<references>>

<<references>>

ASISTE<<table>>

N_socioCod_clas

<<PK>> {N_socio, cod_clas}<<FK>> N_socio: SOCIO<<FK>> Cod_clas: CLASE

RESERVA<<table>>

N_socioN_pistaFechaHora

<<PK>> {N_pista, Fecha, Hora}<<FK>> N_socio: SOCIO<<FK>> N_pista: SAQUASH

<<references>>

<<references>> <<references>>

<<references>>

Base de Datos @KYBELEwww.kybele.urjc.es

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.

Enunciado 4