sin título de diapositiva - grupo de investigaciónbd-2010... · base de datos @kybele dominio y...
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
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