36
Organización y Estructuración de Datos Profesor Titular: Mg Carlos G. Neil Profesor Adjunto: Lic. José Horacio Amorena 2010 1 Modelo Entidad Interrelación

Organización y Estructuración de Datos

Embed Size (px)

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

3

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

Unidad 5.4 Modelo Entidad Interrelación

5

6

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

21

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

Implementación en un SABD

31

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

Fin

36