ded diagramas de estructura lógica de datos -...

33
DED Diagramas de Estructura Lógica de Datos Universidad de Oviedo Departamento de Informática

Upload: doanxuyen

Post on 07-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

DEDDiagramas de Estructura

Lógica de Datos

Universidad de OviedoDepartamento de Informática

Page 2: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

2

Contenidos

• Introducción• Relaciones• Construcción del modelo conceptual• Normalización

– Primera Forma Normal– Segunda Forma Normal– Tercera Forma Normal– Revisión

Page 3: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

3

Introducción

Objetivo• Conocer en profundidad toda la información que se introduce,

almacena, transforma o produce un Sistema de Información (Visión estática)

• Representarlos de forma gráfica • Independencia del entorno físico y necesidades tecnológicas

Page 4: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

4

Introducción (cont.)

Bases de datosBD = MD + SGBD

NOTA: siempre modelos relacionales

Programas que controlan el acceso a los datos

SGBD

Modelo de los datos a almacenarMD

Sistema de mantenimiento de registros de datos basado en computador

BD

Page 5: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

5

Introducción (cont.)

Arquitectura de datos

Tres esquemas:

Cómo se representa lainformación en el computador

FicherosASCII,indexados

Interno

Cómo ven la información lasaplicaciones (registros, tablas)

registros,tablas

Externo

Representa la realidad, independientemente de cómo serepresente

Modelo gráfico dedatos

Conceptual

Page 6: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

6

Introducción (cont.)

Esquema externo

Terminología• Tabla • Filas, Columnas • Grado • Clave (simple, múltiple, ajena) • Relación, Cardinalidad

Page 7: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

7

Introducción (cont.)

Modelo Conceptual

Departamento = @Dpto + DescripEmpleado = @Num + Nom + Apell + DptoNomina = @Num + @Mes + Total

Terminología

Relación (sólo 1:n)Relación

ClaveClave

AtributoColumna

Ocurrencia de una EntidadFila

EntidadTabla

Modelo ConceptualModelo Externo

Empleado Departamento

Nomina

Page 8: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

8

Introducción (cont.)

Modelo Conceptual (cont.)El modelo conceptual ha de representar la información

independientemente del entorno físico

• Entidad : representa objetos sobre los cuales se desea almacenar información • Objetos reales: máquinas, archivos • Personas • Actividades: ventas, albaranes • Objetos abstractos: categorías de personal, funciones (roles)

ejercidos, etc. • Ocurrencia de una Entidad : cada uno de los posibles valores reales

que puede tomar la clave de una Entidad. Una Entidad está formada por varias ocurrencias (o instancias) de dicha Entidad

Page 9: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

9

Introducción (cont.)

Modelo Conceptual (cont.)Atributos y Claves

• Atributo: cada una de las característica que describen completamente a una entidad

• Dominio: conjunto de valores dentro del cual debe encontrarse el valor actual de un atributo (no tratados en Métrica-2, sí en SGBD y 4GL)

• Clave Principal (o Primaria): Atributo o conjunto de atributos a través de los cuales se puede acceder a una única ocurrencia de la entidad • Jerárquica: en parte formada por Claves Ajenas

• Artificial: creada por conveniencia

• Clave Ajena: Un atributo de una entidad que es clave principal de otra (a través del cual accedemos a los atributos de otra entidad)

Page 10: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

10

Introducción (cont.)

Modelo Conceptual (cont.)Propiedades de las claves principalesEl conjunto de atributos que definen la clave deben cumplir las

siguientes propiedades:

• Unicidad: identificador único

• No redundancia: no se puede eliminar un componente sin destruir la unicidad

• Permanencia: valor fijo durante la vida Notación

• Clave principal (@): notación estándar BNF

• Clave ajena (_): notación propia

Page 11: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

11

Relaciones

Conexión entre entidadesNotación Martin ("Pata de gallo") En Métrica-2 no se permiten relaciones (n:m), solamente relaciones n-arias (1:n) y unarias (1:1) Las relaciones pueden tener nombres (semántica) en cada extremo(Métrica-2 no lo pide)

Empleado

Nomina

Departamento

.

Trabaja en

Tiene

es Pagado con

Pagada a

.

Page 12: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

12

Relaciones (cont.)

Un caso donde es necesario

Ciudad = @CodCiudad + ......

Vuelo = @CodVuelo +CodOrigen +CodDestino +.....

Ciudad

Vuelo

Origen Destino

Page 13: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

13

Relaciones (cont.)

Entidades Maestras y DetallesMaestro: La que está en el extremo "1"Detalle: La que está en el extremo "n"

Otra terminología:PropietariaMiembro

Una entidad detalle tiene una clave ajena que es clave principal de su maestro

Page 14: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

14

Relaciones (cont.)

Relaciones 1:1Se agrupan todos los atributos en una entidad

DatosPersonalesEmpleado= @CodEmpleado+ DNI + FechaNacimiento + ...

DatosLaboralesEmpleado = @CodEmpleado+ FechaAlta+ Categoria + ...

DatosPesonales Empleado

DatosLaborales Empleado

.

NO

Page 15: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

15

Relaciones (cont.)

Relaciones 1:1 (cont.)Pero en algunos casos puede ser necesaria (sobre todo cuando hayopcionalidad)

Vacante = @CodVacante+Descrip+(CodCandidato)Candidato = @CodCandidato+Nombre+Tfno +(CodVacante)Entrevista = @CodVacante+@CodCandidato+Fecha

Vacante Candidato

Entrevista

Page 16: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

16

Relaciones (cont.)

Relaciones n:mSe crea una entidad intermedia (Artificial)

Empleado = @CodEmpleado + ...Proyecto = @CodProyecto + ...EnlaceEmpleadoProyecto = @CodEmpleado + @CodProyecto

Empleado Proyecto Empleado Proyecto

EnlaceEmpleado Proyecto

NOSI

Page 17: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

17

Relaciones (cont.)

Relaciones n:m (cont.)A veces la entidad intermedia no es "artificial"

Empleado = @CodEmpleado + ...Sala = @CodSala + ...PermisoAcceso = @CodEmpleado + @CodSala + Tipo

Empleado

PermisoAcceso

Sala

.

Page 18: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

18

Relaciones (cont.)

Relaciones opcionalesUtilizaremos la notación SSADM (más clara)

REGLA: Se dibuja la línea a trazos en el extremo donde puede "desaparecer" la relaciónLa opcionalidad se asocia a la integridad referencial.Puede significar varias cosasEjemplo: Opcional en detalle:• El maestro es creado después de la creación del detalle.• Eliminada después de la eliminación del maestro• Puede cambiar o eliminarse en cualquier instante

A

B

A

B

A

B

Opcional en Detalle Opcional en Maestro

.

Page 19: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

19

Relaciones (cont.)

¿Cómo se interpretaría lo siguiente?

Cliente

Factura

Tarea

.

Page 20: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

20

Relaciones (cont.)

Relaciones exclusivas

La existencia de una relación implica la no existencia de la otra

A

C

B

.

Page 21: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

21

Construcción del modelo conceptual

Ejemplo: Almacenamiento de información sobre pedido s y proveedores

PASO 1: Identificar entidades

PASO 2: Determinar clavesPedido = @CodPedidoProveedor = @CodProveedor

PASO 3: Dibujar el modelo conceptual y establecer relaciones

Pedido Proveedor .

Pedido Proveedor

.

Page 22: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

22

Construcción del modelo conceptual (cont.)

PASO 4: Identificar atributosPedido = @CodPedido

+ Fecha+ CodProveedor+ NomProveedor+ DirProveedor+ { DescMaterial+ CantMaterial+ PrecioUnitMaterial }

PASO 5: VerificacionesRepasar diagramaEliminar relaciones redundantes

Proveedor = @CodProveedor+ NomProveedor+ DirProveedor

Page 23: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

23

Normalización

ObjetivoRepresentar las entidades de datos de la forma más “compacta”posibleCon ello se consigue:• Reducir inconsistencias• Eliminar redundancias• Reducir el impacto de los cambios• Facilitar el mantenimiento¿Cómo proceder?• A Partir del modelo conceptual, aplicar una serie de reglas para

obtener el modelo normalizado• Métrica-2 llama modelo lógico al modelo normalizado

Page 24: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

24

Normalización (cont.)

Formas normales• Existen varias: 1FN, 2FN… 5FN• Cada una se obtiene aplicando una regla a la anterior• Métrica 2 exige que el modelo esté al menos en TERCERA FORMA

NORMAL (3FN)• Cada forma normal tiene una definición “formal”, pero se tratarán de

una manera “intuitiva”• En una sola frase: Cada atributo de una entidad depende de la

clave, de toda la clave y sólo de la clave

Page 25: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

25

Normalización. Primera Forma Normal

ObjetivoEliminar grupos repetidosEjemploEn el ejemplo anterior, la repetición de materiales en “Pedido” seeliminaEsto da lugar a una nueva entidad

Pedido

DetallePedido

.

Page 26: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

26

Normalización. Primera Forma Normal (cont.)

Pedido = @CodPedido+ Fecha+ CodProveedor+ NomProveedor+ DirProveedor

DetallePedido= @CodPedido+ @CodMaterial+ DescMaterial+ CantMaterial+ PrecioUnitMaterial

Page 27: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

27

Normalización. Segunda Forma Normal

ObjetivoCada atributo ha de depender de la clave completaEjemploDescripciones y precios de los materiales no dependen del código depedido, sino solamente del código de materialSe crea una nueva entidad: Material

Pedido

DetallePedido

Material

.

Page 28: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

28

Normalización. Segunda Forma Normal (cont.)

Pedido = @CodPedido+ Fecha+ CodProveedor+ NomProveedor+ DirProveedor

DetallePedido= @CodPedido+ @CodMaterial+ CantMaterial

Material = @CodMaterial+ DescMaterial+ PrecioUnitMaterial

Page 29: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

29

Normalización. Tercera Forma Normal

ObjetivoCada Atributo depende solamente de la claveEjemploLos datos del proveedor (nombre y dirección) en “Pedido” dependendel código del proveedorLuego han de ser atributos de “Proveedor”

Pedido

DetallePedido

Material Proveedor

.

Page 30: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

30

Normalización. Tercera Forma Normal (cont.)

Pedido = @CodPedido+ Fecha+ CodProveedor

DetallePedido= @CodPedido+ @CodMaterial+ CantMaterial

Material = @CodMaterial+ DescMaterial+ PrecioUnitMaterial

Proveedor = @CodProveedor+ NomProveedor+ DirProveedor

Page 31: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

31

Normalización. Revisión

Completar con opcionalidad y exclusividad

• Las entidades con clave compuesta son detalle de las que tienen las partes de dicha clave como primaria

• Las entidades con claves ajenas son detalle de las que tienen dicha clave como principal

• Habitualmente las entidades maestras se dibujan en la parte superior del diagrama y las detalle en la inferior

Pedido

Materialpedido

Material

Proveedor

.

Page 32: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

32

Normalización. Revisión (cont.)

Comprobar Integridad• Entidades: la clave principal no puede ser nula• Referencial: una clave ajena puede ser nula si su relación con la

entidad maestra es opcional

Factura = @CodFactura + ...Tarea = @CodTarea + (CodFactura) + ...

Factura

Tarea

.

Page 33: DED Diagramas de Estructura Lógica de Datos - Iniciodi002.edv.uniovi.es/~fanjul/isofg/curso2006-2007/descargas/DEDOct... · NOTA: siempre modelos relacionales Programas que controlan

33

Normalización. Revisión (cont.)

Optimización• No ha lugar en este modelo. Cuestión de diseño• Es un modelo lógico, representando la información que se

almacena, independientemente del uso que se haga de ella• Los índices no se definen aquí• En el diseño se reorganizará el modelo teniendo en cuenta las

consultas y actualizaciones. Es decir: se desnormalizará