360 likes | 468 Views
Organización y Estructuración de Datos. Modelo Entidad Interrelación. Profesor Titular: Mg Carlos G. Neil Profesor Adjunto: Lic. José Horacio Amorena 2010.
E N D
Organización y Estructuración de Datos Modelo Entidad Interrelación Profesor Titular: Mg Carlos G. Neil Profesor Adjunto: Lic. José Horacio Amorena 2010
¿ES IMPORTANTE TRADUCIR LAS ESPECIFICACIONES FUNCIONALES DE UN SISTEMA DE INFORMACIÓN A LOS DISTINTOS MODELOS DEL ANÁLISIS ESTRUCTURADO? Unidad 1 1.1 Mapas Conceptuales Unidad 2 2.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 5 5.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 6 6.1. Proceso de análisis ascendente
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?
Modelos de datos Modelo entidad interrelación Modelo conceptual Independiente de la implementación Transformación Modelo lógico dependiente de la implementación Modelo Relacional
Entidades regulares y débiles Tienen existencia propia Su existencia depende de otra entidad
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)
Tipos de Atributos el par (1,1) puede omitirse
Identificadores Propiedades de los identificadores minimalidad y unicidad
Interrelaciones Las interrelaciones pueden tener atributos Se denominan: atributos descriptivos
Multiplicidad en las interrelaciones binarias Para analizar la multiplicidad, parto de un objeto de la entidad y pregunto con cuántos objetos de la otra puede conectarse
Relación de Generalización Las sub_entidades heredan atributos, interrelaciones y generalizaciones de la super_entidad
Transformación/1 Entidades Se transforman en Tablas Atributos Se transforman en Campos de la tabla Se transforma en Identificador de la tabla Identificador 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 Interrelación binaria (y n-arias) M:N Interrelaciones 1:N, 1:1 Atributo identificador del lado “1” pasa como clave foránea al lado “N”
Transformación/2 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 Generalización Opcion 2, desaparece la super_entidad y todos los atributos de ésta pasan a ser atributos en las sub_entidades (incluyendo el identificador)
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
Transformación/4 E1(ID1, atrib1, ...) E2(ID1(E1), atrib2, ... ,ID4(E4)) E3(ID1(E1), atrib3, ...) E4(ID4, atrib4, ...) E5(ID5, atrib5, ... ,ID1(E3)) E6(ID6, atrib6, ...) E7(ID5(E5), atrib7, ...) I46(ID4(E4), (ID6(E6), ...)
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
Auto evaluación/2 Comprendí 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)
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”
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
Identificando Entidades e Interrelaciones Entidades: SOCIO, CATEGORÍA, PROFESOR, DEPORTE, CUOTA Interrelaciones: SOCIO-DEPORTE, DEPORTE-PROFESOR, SOCIO-CATEGORIA, SOCIO-CUOTA
Primera Aproximación al Modelo Entidades: SOCIO, CATEGORÍA, PROFESOR, DEPORTE, CUOTA Interrelaciones: SOCIO-DEPORTE, DEPORTE-PROFESOR, SOCIO-CATEGORIA, SOCIO-CUOTA
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)
Resolución de Consultas en SQL/1 listado de socios por categoría SELECT socio.nombre, socio.apellido, categoria.nombre FROM socio, categoria WHERE (((socio.cod_cat)=[categoria].[cod_cat])) ORDER BY categoria.nombre;
Resolución de Consultas en SQL/2 listado de socios y sus cuotas pagas SELECT socio.cod_socio, socio.apellido, cuota.num_cuota, cuota.fecha FROM socio, cuota WHERE (((socio.cod_socio)=[cuota].[cod_socio])) ORDER BY socio.cod_socio, cuota.num_cuota;
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.hora FROM socio, deporte, practica WHERE (((socio.cod_socio)=[practica].[cod_socio]) AND ((deporte.cod_deporte)=[practica].[cod_deporte])) ORDER BY socio.apellido;
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, cuota WHERE socio.cod_socio=cuota.cod_socio GROUP BY socio.cod_socio, socio.apellido;