View
35
Download
0
Category
Preview:
DESCRIPTION
Organización y Estructuración de Datos. Modelo Entidad Interrelación. Profesor Titular: Mg Carlos G. Neil Profesor Adjunto: Lic. José Horacio Amorena 2010. - PowerPoint PPT Presentation
Citation preview
Organización y Estructuración de Datos
Profesor Titular: Mg Carlos G. NeilProfesor Adjunto: Lic. José Horacio Amorena
2010
1
Modelo Entidad Interrelación
Unidad 11.1 Mapas Conceptuales
Unidad 22.1. Información 2.2. Base de datos 2.3. Normalización 2.4. SQL
Unidad 3 3.1. Sistemas
Unidad 4 4.1. Ciclo de vida 4.2. Planificación y Programación de Proyectos
Unidad 55.1. Requerimientos y Diagrama de Flujo de Datos 5.2. Diccionario de Datos 5.3. Especificación de Procesos 5.4. Modelo Entidad Interrelación 5.5. Balanceo de Modelos
Unidad 66.1. Proceso de análisis ascendente
¿ES IMPORTANTE TRADUCIR LAS ESPECIFICACIONES FUNCIONALES DE UN SISTEMA DE INFORMACIÓN A LOS DISTINTOS MODELOS DEL ANÁLISIS ESTRUCTURADO?
2
Clase anterior – repaso general
• ¿Cuál es la diferencia entre el árbol y la tabla de decisión?
• ¿Sobre qué procesos del DFD realizo la especificación?
• ¿Vinculo los flujos entrantes y salientes del proceso con los datos utilizados en la especificación?
• ¿Entiendo la relación que existe entre el flujo de datos, los almacenamientos y el pseudocódigo?
4
Modelos de datos
Modelo entidad interrelación
Modelo conceptual Independiente de la
implementación
Modelo Relacional
Modelo lógico dependiente de la implementación
Transformación
7
Entidades regulares y débiles
ENTIDADREGULAR
ENTIDADDEBIL
(1,1)
(1,n)
Tienen existencia propia
Su existencia depende de otra entidad
8
Atributos
Las entidades tienen atributos que lo describen o identifican. Estos pueden ser
• Descriptivos / Identificatorios
• Monovaluados / Multivaluados• Obligatorios / Optativos
(Esta caracterización depende de la multiplicidad máxima y mínima)
• Simples / Compuestos• derivable
Cada atributo está asociado a un dominio particular (tipo de dato)
9
Tipos de Atributos
el par (1,1) puede omitirse
ENTIDAD
(1,1)
atributo identificador
(1,1)
atributo monovaluado
(1,n)atributo
multivaluadoatributocompuesto
(1,1)
(0,1)
(1,1)
atributooptativo
atributoobligatorio
(1,1)(1,1)
atributoderivable
/atrib
(1,1)
10
Identificadores
ENTIDAD ENTIDAD
ENTIDAD ENTIDAD DEBIIL
identificador simple interno identificador compuesto interno
identificador externo, compuesto ymixto
Propiedades de los identificadores minimalidad y unicidad11
Interrelaciones
Las interrelaciones pueden tener atributos
Se denominan: atributos descriptivos
ENTIDAD 1 ENTIDAD 1
ENTIDAD 2
ENTIDAD 1
ENTIDAD 2
ENTIDAD 3
interrelación unaria interrelación binaria interrelación n-aria
ENTIDAD 1 ENTIDAD 2
atrib 1 atrib 2
12
Multiplicidad en las interrelaciones binarias
entidad 1 entidad 2
(1,1) (1,1)
entidad 1 entidad 2
(1,1) (1,n)
entidad 1 entidad 2
(1,n) (1,n)
(1, n)valor
minimovalor
maximo
uno a uno
muchos a muchos
uno a muchos
Para analizar la multiplicidad, parto de un objeto de la entidad y pregunto con cuántos objetos de la otra puede conectarse
13
Relación de Generalización
Las sub_entidades heredan atributos, interrelaciones y generalizaciones de la super_entidad
SUPER_ENTIDAD
SUB_ENTIDADSUB_ENTIDAD
TIPO DE GENERALIZACON
t = totalp = parcial
e = exclusivas = superpuesta
(t, e) valor por omision
14
Transformación/1
Entidades Se transforman en Tablas
Atributos Se transforman en Campos de la tabla
Identificador Se transforma en Identificador de la tabla
Interrelación binaria (y n-arias) M:N
Se transforman en Tabla, el identificador es la unión de los identificadores de la entidades intervientes, cada uno de ellos es clave foránea con referencia a la entidad (tabla) respectiva. Los atributos descriptivos pasan a ser campos a la tabla generada
Interrelaciones 1:N, 1:1
Atributo identificador del lado “1” pasa como clave foránea al lado “N”
15
Transformación/2
Generalización Opcion 1, sub_entidades y sub_entidades se transforman en tablas, los atributos de ambas pasan a las tablas respectivas como campos, el identificador de la super_entidad será el identificador de la tabla, el atributo identificador en las sub_entidades será, además, clave foránea con referencia a la super_intedidad
Opcion 2, desaparece la super_entidad y todos los atributos de ésta pasan a ser atributos en las sub_entidades (incluyendo el identificador)
16
Transformación/3
Entidad débil Se transforma en Tabla
Atributos Se transforman en campos de la tabla
Identificador Unión del identificador de la entidad fuerte (que además es clave foránea con referencia a ésta) más el atributo discrimante
17
Transformación/4
E 2
ID 1
atrib 1
E 4
E 3
E 5
E 6
E 1
E 7
atrib 2 atrib 3
atrib 4 atrib 5
atrib 6atrib 7
ID 4 ID 5
ID 6
(1,1)
(1,1)
(1,1)
(1,n)
(1,m)
(1,n)
(1,1)
(1,n)
E1(ID1, atrib1, ...)
E2(ID1(E1), atrib2, ...
E3(ID1(E1), atrib3, ...)
E4(ID4, atrib4, ...)
E5(ID5, atrib5, ...
E6(ID6, atrib6, ...)
E7(ID5(E5), atrib7, ...)
,ID4(E4))
,ID1(E3))
I46(ID4(E4), (ID6(E6), ...)
18
Auto evaluación/1
Comprendí los conceptos más importantes de la unidad 5.4 si puedo definir y dar ejemplos de:
• Atributo• Descriptivo• Identificador• Obligatorio/optativo
• Entidad• Débil• Regular
• Interrelación • Multiplicidad
• Máxima • Mínima
• Relación de Generalización• Transformación Modelo de datos/modelo lógico
19
Auto evaluación/2Comprendí los conceptos más importantes de la unidad 5.4 si:
• Vinculo a las entidad e interrelaciones (¿Cuáles?) del modelo de datos con los almacenamientos del DFD (guía 5.1)
• Entiendo qué interrelaciones se transforman en tablas (guía 2.2) y cuáles no
• Reconozco en qué casos utilizo entidades débiles (y no hago abuso de ellas)
• Entiendo qué es un identificador y sé qué propiedades deben tener
• Vinculo el tipo de atributo con su multiplicidad (max, min)
• Comprendo cómo se forma el identificador en las entidades débiles
• Entiendo por qué las interrelaciones no tienen identificador y sí lo tienen las tablas producto de la transformación
• Comprendo cómo transformo un atributo multivaluado del modelo conceptual al modelo lógico
• Vinculo las entidades e interrelaciones (¿Cuáles?) con las tablas que usamos en SQL (guía 2.3 – 2.4) 20
ejemplo
“El sistema administra la información relacionada con un club deportivo. Los socios pueden ser de distintas categorías; ésta depende de su antigüedad. La cuota social, tiene dos componentes, consta de un básico que depende de la categoría del socio más un plus que depende del deporte elegido. Se desea tener, además, información sobre los deportes que practica cada socio, con la siguiente información: deporte, día y hora de práctica, profesor y arancel. Un socio puede practicar distintos deportes. Cada profesor trabaja en un sólo deporte pero, por supuesto, en cada deporte trabaja más de un profesor”
22
Traducción de Requerimientos a Consultas
Una práctica no muy extendida, pero muy útil, para aclarar los requerimientos y validar el diseño propuesto, es traducir los primeros en consultas: un diseño será apropiado de si es capaz de satisfacer las consultas que se realizan sobre el modelo propuesto
por ejemplo:
– listado de socios por categoría– listado de socios y sus cuotas pagas– listado de socios con los deportes que practican, días y horarios– Listado de pagos de cada socio el año 2005 en concepto de cuotas social
23
Identificando Entidades e Interrelaciones
Entidades: SOCIO, CATEGORÍA, PROFESOR, DEPORTE, CUOTA
Interrelaciones: SOCIO-DEPORTE, DEPORTE-PROFESOR, SOCIO-CATEGORIA, SOCIO-CUOTA
24
Primera Aproximación al Modelo
SOCIO
DEPORTE
CUOTA
PROFESOR
CATEGORIA
Entidades: SOCIO, CATEGORÍA, PROFESOR, DEPORTE, CUOTA
Interrelaciones: SOCIO-DEPORTE, DEPORTE-PROFESOR, SOCIO-CATEGORIA, SOCIO-CUOTA
25
Atributos en las Entidades
SOCIO
DEPORTE
CUOTA
PROFESOR
CATEGORIA
nombre
cod_cuota cod_socio
nombre apellido num_cuota
fecha
valor_cuota
nombre apellido
cod_profesornombrecod_deporte
26
De entidad regular a débil
SOCIO
DEPORTE
CUOTA
PROFESOR
CATEGORIA
nombre
cod_cat cod_socio
nombre apellido num_cuota
fecha
valor_cuota
nombre apellido
cod_profesornombrecod_deporte
arancel
valor cuota
27
Multiplicidad de las interrelaciones
SOCIO
DEPORTE
CUOTA
PROFESOR
CATEGORIA
nombre
cod_cat cod_socio
nombre apellido num_cuota
fechavalor_cuota
nombre apellido
cod_profesornombrecod_deporte
arancel
(1,1) (1,N)
(1,N)(1,1)
(1,N)
(1,N)
(1,1) (1,N)
valor_cuota
28
Atributos de las Interrelaciones
SOCIO
DEPORTE
practica
CUOTA
PROFESOR
CATEGORIA
nombre
cod_cat cod_socio
nombre apellido num_cuota
fecha
valor_cuota
nombre apellido
cod_profesornombrecod_deporte
arancel
(1,1) (1,N)
(1,N)(1,1)
(1,N)
(1,N)
(1,1) (1,N)
dia
hora
29
Transformación al Modelo Lógico
CATEGORÍA(cod_cat, nombre, valor_cuota, ...)
SOCIO(cod_socio, nombre , apellido, valor-cuota, ..., cod_cat(CATEGORÍA))
DEPORTE(cod_deporte, nombre, arancel, ...)
PROFESOR(cod_profesor, nombre, apellido,..., cod_deporte(DEPORTE)
CUOTA(cod_socio(SOCIO), mes_cuota, fecha, valor_cuota)
PRACTICA(cod_socio(SOCIO), cod_deporte(DEPORTE),dia, hora)
30
Resolución de Consultas en SQL/1
listado de socios por categoría
SELECT socio.nombre, socio.apellido, categoria.nombreFROM socio, categoriaWHERE (((socio.cod_cat)=[categoria].[cod_cat]))ORDER BY categoria.nombre;
socio.nombre apellido categoria.nombre
Mario Perez Cadete
Jorge Rodriguez Cadete
Juana Rey Juvenil
32
Resolución de Consultas en SQL/2
listado de socios y sus cuotas pagas
SELECT socio.cod_socio, socio.apellido, cuota.num_cuota, cuota.fechaFROM socio, cuotaWHERE (((socio.cod_socio)=[cuota].[cod_socio]))
ORDER BY socio.cod_socio, cuota.num_cuota;
cod_socio apellido num_cuota fecha
01 Rodriguez 01 01/01/2005
01 Rodriguez 02 02/01/2005
02 Perez 01 01/01/2005
02 Perez 02 02/01/2005
33
Resolución de Consultas en SQL/3
listado de socios con los deportes que practican, días y horarios
SELECT socio.apellido, socio.nombre, deporte.nombre, practica.dia, practica.horaFROM socio, deporte, practicaWHERE (((socio.cod_socio)=[practica].[cod_socio]) AND
((deporte.cod_deporte)=[practica].[cod_deporte]))ORDER BY socio.apellido;
apellido socio.nombre deporte.nombre dia hora
Perez Mario Basquet lunes 8:00
Rey Juana Futbol miercoles 13:00
Rodriguez Jorge Natación martes 10:00
Rodriguez Jorge Basquet lunes 8:00
34
Resolución de Consultas en SQL/4
Listado de pagos de cada socio el año 2005 en concepto de cuotas social
SELECT socio.cod_socio, socio.apellido, sum(valor_cuota) AS [pago 2005]FROM socio, cuotaWHERE socio.cod_socio=cuota.cod_socio GROUP BY socio.cod_socio, socio.apellido;
cod_socio apellido pago 2005
01 Rodriguez 30
02 Perez 20
35
Recommended