ded diagramas de estructura lógica de datos -...
TRANSCRIPT
DEDDiagramas de Estructura
Lógica de Datos
Universidad de OviedoDepartamento de Informática
2
Contenidos
• Introducción• Relaciones• Construcción del modelo conceptual• Normalización
– Primera Forma Normal– Segunda Forma Normal– Tercera Forma Normal– Revisión
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
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
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
6
Introducción (cont.)
Esquema externo
Terminología• Tabla • Filas, Columnas • Grado • Clave (simple, múltiple, ajena) • Relación, Cardinalidad
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
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
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)
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
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
.
12
Relaciones (cont.)
Un caso donde es necesario
Ciudad = @CodCiudad + ......
Vuelo = @CodVuelo +CodOrigen +CodDestino +.....
Ciudad
Vuelo
Origen Destino
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
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
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
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
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
.
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
.
19
Relaciones (cont.)
¿Cómo se interpretaría lo siguiente?
Cliente
Factura
Tarea
.
20
Relaciones (cont.)
Relaciones exclusivas
La existencia de una relación implica la no existencia de la otra
A
C
B
.
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
.
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
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
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
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
.
26
Normalización. Primera Forma Normal (cont.)
Pedido = @CodPedido+ Fecha+ CodProveedor+ NomProveedor+ DirProveedor
DetallePedido= @CodPedido+ @CodMaterial+ DescMaterial+ CantMaterial+ PrecioUnitMaterial
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
.
28
Normalización. Segunda Forma Normal (cont.)
Pedido = @CodPedido+ Fecha+ CodProveedor+ NomProveedor+ DirProveedor
DetallePedido= @CodPedido+ @CodMaterial+ CantMaterial
Material = @CodMaterial+ DescMaterial+ PrecioUnitMaterial
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
.
30
Normalización. Tercera Forma Normal (cont.)
Pedido = @CodPedido+ Fecha+ CodProveedor
DetallePedido= @CodPedido+ @CodMaterial+ CantMaterial
Material = @CodMaterial+ DescMaterial+ PrecioUnitMaterial
Proveedor = @CodProveedor+ NomProveedor+ DirProveedor
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
.
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
.
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á