sin título de diapositiva - inicio | kybelebd-2009-2010]tema2-modeloer.pdf · elementos del modelo...
TRANSCRIPT
TemarioI. 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
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
• Tecnología y Diseño de Bases de Datos. Piattini, M.,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
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-Relacional
Producto
Relacional
Producto SQL producto
SQL producto
UML+extensión producto
Diseño de BD (Objeto) - Relacionales
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.
Modelo Entidad – Interrelación Extendido
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
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
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
PROYECTO Dirige
1:1
EMPLEADO
Es_cordinado_por
Coordina
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_
departamentoNombre_
departamento
Modelo Entidad – Interrelación Extendido
Modelo Entidad – Interrelación Extendido
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
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
Elementos del Modelo E/R
Modelo Entidad – Interrelación Extendido
N:M
cod-dpto.
dni
fecha cod-proy
DEPARTAMENTO
Tiene
EMPLEADO Trabaja PROYECTO
1:N
Ejemplo de esquema en el Modelo E/R
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.
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
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
Transformación de un Esquema E/R
a un Esquema Relacional
Convertir el esquema conceptual en un esquema lógico global en el Modelo
Relacional.
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
ENTIDAD
AIP
Atributo
Atributo multivaluado
INTERRELACIÓN
N:M
1:N
1:1
con atributos
Modelo E/R Modelo Relacional
TABLA
Clave Primaria
Columna
Tabla
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
Documento
LibroArtículo
Opción a: una sola tabla
Documento (código, titulo, idioma,... tipo)
Opción b: tres tablas
Documento (código, titulo, idioma,...)
Artículo (código, ...) Libro (código, ...)
Opción c: dos tablas
Artículo (código, titulo, idioma,...)
Libro (código, titulo, idioma,...)
GENERALIZACIÓN
Modelo E/R Modelo Relacional
Diseño de 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>>
Estereotipos para BD Relacionales
Diseño de BD Relacionales
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)
EMPLEADO (DNI, .......)
TRABAJA (DNI, Cod_pro, fecha)
PROYECTO (Cod_pro, .......)
LÓGICO ESTÁNDAR: RELACIONAL-GRAFO RELACIONAL
Ejemplo
EMPLEADO PROYECTOTrabaja
N:M
Cod_profechaDNI
CONCEPTUAL: ESTRUCTURADO-E/R
(1,n) (0,n)
CONCEPTUAL: OO-UML
Ejemplo
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
TRABAJA
<<table>>
DNI
Cod_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
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
Enunciado 4: Gimnasio a)
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
CONCEPTUAL: OO-UML
MONITOR
<<persistent>>
<<PK>>Dni_m
Nombre
Teléfono
Titulación
Experiencia
<<AM>>Preparación
CLASE
<<persistent>>
<PK>>Cod_clas
Descripcion
dia/hora
SALA
<<persistent>>
<<PK>>N_sala
Ubicación
Tipo
Metros
APARATO
<<persistent>>
<<PK>>Código
Descripcion
Conservacion
SOCIO
<<persistent>>
<<PK>>N_socio
Nombre
Dirección
Teléfono
Profesión
datos_bancarios
SQUASH
<<persistent>>
<<PK>>N_pista
Ubicac
Estado Hora
Fecha
1..*
0..*
0..*
1
0..*1
0..* 1
1..*0..*
Imparte
Asiste
Tiene_Asig
Tiene
Reserva
Enunciado 4: Gimnasio a)
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
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
LÓGICO ESTÁNDAR: RELACIONAL-UML
MONITOR
<<table>>
<<PK>>Dni_m
Nombre
Teléfono
Titulación
Experiencia
CLASE
<<table>>
<PK>>Cod_clas
Descr
Dia_hora
N_sala
<<FK>> N_sala: SALA
<<FK>> {Descr, Dni_m}: PREPARACIÓN
SALA<<table>>
<PK>>N_sala
Ubicación
Tipo
Metros
APARATO
<<table>>
<<PK>>Código
Descripcion
Estado
N_sala
<<FK>> N_sala: SALA
SOCIO
<<table>>
<<PK>>N_socio
Nombre
Dirección
Teléfono
Profesión
datos_bancarios
SQUASH
<<table>>
<<PK>>N_pista
Ubicac
Estado
PREPARACIÓN
<<table>>
Dni_m
Preparación
<<PK>> {Dni_m, Preparacion}
<<FK>> Dni_m: MONITOR
<<references>>
<<references>>
<<references>>
<<references>>
ASISTE
<<table>>
N_socio
Cod_clas
<<PK>> {N_socio, cod_clas}
<<FK>> N_socio: SOCIO
<<FK>> Cod_clas: CLASERESERVA
<<table>>
N_socio
N_pista
Fecha
Hora
<<PK>> {N_pista, Fecha, Hora}
<<FK>> N_socio: SOCIO
<<FK>> N_pista: SAQUASH
<<references>>
<<references>> <<references>>
<<references>>
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