Análisis y Diseño de Sistemas Clase 16

Anuncio
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Normalización
Análisis y Diseño de Sistemas
Clase 16 – Normalización
„
Es un proceso que se aplica sobre los
almacenamientos y que permite determinar una
mejor organización de almacenamientos lógicos.
„
Toma la definición de un almacenamiento y a
través de una serie de test verifica que se
satisfaga una determinada forma normal. (Codd
1972).
„
La normalización se basa en los conceptos de
dependencia funcional y llave primaria.
Lic. María Mercedes Vitturini
1er. CUATRIMESTRE 2007
Dpto. Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
2
Análisis y Diseño de Sistemas - Clase 16
Dependencias Funcionales
Ejemplos
Se dice que un atributo B de una relación R (o
almacenamiento) depende funcionalmente del
atributo A de R, si en todo instante de tiempo, cada
valor de A no tiene más de un atributo asociado de
B en la relación R.
„
artículo_código Æ artículo_precio +
artítculo_descripción.
„
reserva_número Æ reserva_fecha +
cliente_número + vuelo_número
B depende funcionalmente de A ≡ A identifica a B.
Notación:
„
persona_tipoDoc + persona_nroDoc Æ
persona_nombre + persona_apellido +
persona_fechaNac.
„
alumno_legajo + materia_código + fecha_examen
Æ examen_nota.
„
‰
„
Si B depende funcionalmente a A, A Æ B
Un atributo puede depender funcionalmente de un
conjunto de atributo: AB Æ C
Análisis y Diseño de Sistemas - Clase 16
3
Llave de una Relación
„
„
Llave de una Relación
Un conjunto de atributos A en una relación R
constituyen una clave ó llave si todos los
atributos de R dependen funcionalmente de A.
Esto es, A Æ R, y no existe ningún subconjunto
A´, A
A
A´⊂
⊂ A tal que A´determine
A determine funcionalmente a
R.
Artículos (AD+ED) = artículo_código +
artículo_descripción + artículo-precio.
Análisis y Diseño de Sistemas - Clase 16
„
Una relación R puede tener más de un conjunto
de atributos que sean llaves de R.
Generalmente, se selecciona uno de ellos y se
lo denota como llave primaria.
„
Ejemplo:
‰
Ejemplo
‰
4
Análisis y Diseño de Sistemas - Clase 16
Alumnos (AD+ED) = alumno_registro +
alumno_nombre + alumno_DNI + alumno_apellido +
alumno_nombre
¿Cuál es la
llave?
5
Análisis y Diseño de Sistemas - Clase 16
6
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
1
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Observaciones
„
„
„
Atributos Primos y No primos
Los conceptos de normalización están
formalmente definidos para el modelo de datos
relacional, que acompañó a los desarrollos
estructurados.
En este curso se p
presenta al modelo de datos
relacional intuitivamente.
Informalmente, el concepto de relación se
relaciona con el concepto de almacenamiento
de datos.
‰
DEFINICIONES PREVIAS
„
Es equivalente hablar del almacenamiento “personas”
o de la relación “personas”.
7
Análisis y Diseño de Sistemas - Clase 16
Ejemplo
„
‰
‰
„
Llaves:
„
alumno_nroRegistro
_
g
„
alumno_tipoDoc + alumno_nroDoc.
Atributos primos: alumno_nroRegistro,
alumno_tipoDoc, alumno_nroDoc.
Atributos no primos: alumno_apellido,
alumno_nombre.
Ejemplos
‰
Análisis y Diseño de Sistemas - Clase 16
„
materia_código → materia_nombre.
alumno_nroRegistro + materia_código +
examen_fecha → examen_nota.
„
Las formas normales son: Primera, Segunda,
Tercera y de Boyce Codd.
Buscan una estructura lógica de los datos que
minimice los problemas de diseño:
‰
‰
„
Dependencias funcionales parciales:
‰
‰
10
Normalización
Dependencias funcionales totales:
‰
8
Un atributo o conjunto de atributos B de una relación
R se dice que depende funcionalmente en forma
total de otro conjunto de atributos A de la relación R,
si B depende funcionalmente de la totalidad de A,
pero de ningún subconjunto de A.
Ejemplo:
AB Æ C
Si C depende funcionalmente en forma total ⇒
AÆC
BÆC
9
Análisis y Diseño de Sistemas - Clase 16
„
Análisis y Diseño de Sistemas - Clase 16
Dependencia Funcional Total
Alumnos (AD + ED) = alumno_nroRegistro +
alumno_tipoDoc + alumno_nroDoc + alumno_apellido
+ alumno_nombre.
‰
Un atributo A de una relación R es No Primo
si no forma parte de ninguna de las llaves de
R C
R.
Caso contrario
t i se di
dice Primo.
Pi
materia_código + alumno_LU → materia_nombre.
pelicula_código+ socio_número → socio_apellido
+ socio_nombre.
Análisis y Diseño de Sistemas - Clase 16
11
„
Repetición de información.
Incapacidad para representar información.
Se basa en los conceptos:
‰
‰
Llave (o clave primaria) de los almacenamientos
Dependencia funcional entre atributos del
almacenamiento.
Análisis y Diseño de Sistemas - Clase 16
12
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
2
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Problemas de Diseño
„
Problemas
Ejemplo: supongamos la siguiente definición en el
diccionario de datos:
‰
Personas (AD+ED) = persona_TipoDocumento +
persona_NroDocumento + persona_Apellido +
persona_Nombre + ciudad_CódigoPostal + ciudad_Nombre
Tipo Doc Nro. Doc
DNI
111111
DNI
222222
DNI
333333
DNI
444444
Apellido
Díaz
Suárez
Lino
Cané
Nombre Cod. Postal Nombre Localidad
Alberto
8000 Bahía Blanca
Patricia
8000 Bahía Blanca
Lucas
8000 Coronel Suárez
María
8102 Punta Alta
Análisis y Diseño de Sistemas - Clase 16
„
La corrección de diseño de un
almacenamiento que no respetan una forma
normal dada será a través de descomponerlo
en dos o más almacenamientos.
¿Qué
Q é se h
hace con ell caso “8000
“8000- Coronel
C
lS
Suárez?
á ?
Análisis y Diseño de Sistemas - Clase 16
14
„
Definición: Un esquema de relación respeta
la Primer Forma Normal (1FN) si no existen
atributos o grupos de atributos que se repiten
q
dentro del esquema.
„
Esta forma normal pide que el dominio de
todos los atributos sea atómico.
15
Análisis y Diseño de Sistemas - Clase 16
16
Segunda Forma Normal
Respeta la 1FN:
‰
„
‰
Primer Forma Normal (1FN)
Ejemplos
„
¿Qué pasa si necesitamos cambiar el nombre de la ciudad?
13
Para determinar la forma normal que respeta
un almacenamiento es necesario plantear
todas las dependencias funcionales entre sus
atributos.
Análisis y Diseño de Sistemas - Clase 16
‰
Incapacidad para representar información: si se
conoce el código postal de Viedma, pero no hay en el
almacenamiento alguna persona de Viedma, ¿cómo
guardar este dato en el sistema?
„
Formas Normales
„
Repetición de información: si la mayoría de las
personas son de Bahía Blanca, tendríamos que repetir
la información “8000- Bahía Blanca” tantas veces como
personas. Algunos problemas derivados:
„
Clientes (AD+ED) = cliente_Número +
cliente_TipoDoc + cliente_DNI + cliente_Apellido
+ cliente_Nombre + localidad_CP +
localidad_Nombre.
No respeta 1FN:
‰
Inscripciones (AD+ED) = alumno_registro +
alumno_nombre + 0{materia_código +
materia_nombre + inscripción_fecha +
inscripción_resultado}n
Análisis y Diseño de Sistemas - Clase 16
17
„
Definición: Un esquema de relación respeta
la Segunda Forma Normal (2FN), si:
‰
‰
Respeta la 1FN y
Todos los atributos no primos del esquema de
relación
l ió dependen
d
d ttotalmente
t l
t de
d lla clave
l
( d
(no
de
un subconjunto de ellos).
Análisis y Diseño de Sistemas - Clase 16
18
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
3
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Ejemplos
„
Para reflexionar
Respetan la 2FN:
‰
Materias (AD+ED) = materia_código + materia_nombre.
„
materia_Código Æ materia_Nombre.
‰
Personas (AD+ED) = persona_id + persona_nombre +
localidad_códPostal + localidad_nombre
Todo almacenamiento (o relación) cuyas
llaves candidatas están formadas por un
único atributo siempre va a respetar la 2FN.
Persona_id Æ persona_nombre, localidad_códPostal,
localidad_nombre
„
No respeta la 2FN:
‰
Alumnos (AD+ED) = alumno_NroRegistro +
carrera_Código + carrera_Nombre.
carrera_Código Æ carrera_Nombre
Análisis y Diseño de Sistemas - Clase 16
19
Tercer Forma Normal (3FN)
„
‰
„
„
Respeta la 3FN:
‰
Está en 2FN y
No existen dependencias entre atributos no primos.
Materias (AD+ED) = materia_Código +
materia_Nombre + departamento_Código.
„
Definición 2: Un esquema de relación está en la
Tercer Forma Normal (3FN) si respeta la 2FN y
no existen dependencias transitivas de la llave
entre atributos no primos.
„
‰
Materias (AD+ED) = materia_Código +
materia_Nombre + departamento_Código +
departamento_Nombre.
„
21
Descomposiciones normalizadas
„
‰
‰
„
Análisis y Diseño de Sistemas - Clase 16
„
Redundancia de información.
Inconsistencias
Inconsistencias.
Anomalías de inserción y de borrado.
22
Supongamos ahora la siguiente definición
para un almacenamiento Dicta, que mantiene
información de los docentes y las materias
que dictan cada año:
Dictan (AD+ED) = prof_legajo + prof_nombre
+ prof_domicilio + 0{mat_código + dicta_año +
mat_nombre + dpto_código + dpto_nombre}n
La solución a un problema de diseño de
datos es encontrar una descomposición
mejor.
Análisis y Diseño de Sistemas - Clase 16
materia_Código Æ materia_Nombre +
departamento_Código.
departamento_Código Æ departamento_Nombre
Descomposiciones normalizadas
Los almacenamientos (o relaciones) que no
respetan la 3FN no responden a un buen
diseño de datos. Tienen problemas de:
‰
materia_Código Æ materia_Nombre +
departamento_Código.
No respeta la 3FN:
„
Análisis y Diseño de Sistemas - Clase 16
20
Ejemplos
Definición 1: Un esquema de relación respeta la
Tercer Forma Normal (3FN) si:
‰
Análisis y Diseño de Sistemas - Clase 16
23
Análisis y Diseño de Sistemas - Clase 16
24
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
4
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Primer Forma Normal
„
„
„
Descomposición en 1FN
El almacenamiento Dictan NO RESPETA LA
1FN:
‰ Existen atributos no atómicos.
„
‰
En este caso por cada docente se mantiene
un grupo repetitivo con las materias que dicta.
Para contar con un modelo de datos que
respete la 1FN, la solución es descomponer.
Análisis y Diseño de Sistemas - Clase 16
‰
Uno con todos los datos que no pertenecen al
grupo repetitivo.
Uno con el grupo que se repite al que se le
agrega la clave del esquema del inciso anterior.
25
Descomposición en 1FN
„
Si un esquema no respeta la 1FN se debe
descomponer en dos esquemas.
Análisis y Diseño de Sistemas - Clase 16
26
El almacenamiento Dictan1
„
Dictan1 = prof_legajo + prof_nombre +
prof_domicilio.
Dictan1 (AD+ED) = prof_legajo +
prof_nombre + prof_domicilio.
Clave: prof_legajo.
Atributos p
primos: p
prof_legajo.
_ g j
‰ Atributos no primos: prof_nombre,
prof_domicilio.
‰ Dependencias Funcionales:
‰
„
‰
Dictan2 = prof_legajo
prof legajo + mat_código
mat código +
dicta_año + mat_nombre + dpto_código +
dpto_nombre.
„
Análisis y Diseño de Sistemas - Clase 16
27
El almacenamiento Dictan2
„
‰
‰
‰
„
Clave: prof_legajo + mat_código + dicta_año.
Atributos primos: prof_legajo, mat_código, dicta_año
Atributos no primos: mat_nombre,
mat nombre dpto_código,
dpto código
dpto_nombre
Dependencias Funcionales:
„ Prof_legajo + dicta_año + mat_código → mat_nombre +
dpto_código + dpto_nombre.
„ mat_código → mat_nombre + dpto_código.
„ dpto_código → dpto_nombre.
Análisis y Diseño de Sistemas - Clase 16
Análisis y Diseño de Sistemas - Clase 16
28
Segunda Forma Normal
Dictan2 (AD+ED)= prof_legajo + mat_código +
dicta_año + mat_nombre + dpto_código +
dpto_nombre
‰
prof_legajo → prof_nombre + prof_domicilio.
29
Dictan1 respeta la 2FN ya que la clave esta
formada por un único atributo.
‰
Dictan1 (AD+ED) = prof_legajo + prof_nombre +
prof_domicilio.
Análisis y Diseño de Sistemas - Clase 16
30
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
5
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Segunda Forma Normal
Descomposición en 2FN
Dictan2 NO RESPETA la 2FN.
z
Dictan2 (AD+ED)= prof_legajo + mat_código +
dicta_año + mat_nombre + dpto_código +
dpto_nombre.
„ Clave:
„
prof_legajo,
prof legajo mat
mat_código,
código dicta
dicta_año.
año
Dependencias funcionales:
→ mat_nombre + dpto_código.
atributos no primos: mat_nombre,
dpto_código y dpto_nombre dependen
parcialmente de la clave.
‰ mat_código
‰ Los
Análisis y Diseño de Sistemas - Clase 16
31
Descomposición en 2FN
„
‰
Análisis y Diseño de Sistemas - Clase 16
z
z
z
Dictan22 (AD+ED)= mat_código + mat_nombre +
dpto_código + dpto_nombre
z
33
Clave: prof_legajo + mat_código + dicta_año.
Atributos primos: prof_legajo, mat_código,
dicta_año.
Atributos no primos: no posee.
Dependencias Funcionales: no posee
Análisis y Diseño de Sistemas - Clase 16
34
Tercer Forma Normal
El almacenamiento Dictan22
(AD+ED)= mat_código + mat_nombre +
dpto_código + dpto_nombre.
zDictan22
mat_código.
primos: mat_código.
zAtributos no primos: mat_nombre, dpto_código,
dpto_nombre.
zDependencias Funcionales:
zClave:
zAtributos
zmat_código
Dictan21 (AD+ED) = prof_legajo + mat_código +
dicta_año
z
Dictan21 (AD+ED) = prof_legajo + mat_código +
dicta año
dicta_año
Análisis y Diseño de Sistemas - Clase 16
32
El almacenamiento Dictan21
Dictan2 (AD+ED)= prof_legajo + mat_código
+ dicta_año + mat_nombre + dpto_código +
dpto_nombre.
‰
La solución para un almacenamiento que no
respeta la 2FN es descomponer:
z En un almacenamiento con la llave primaria y
todos aquellos atributos que dependen
totalmente de la clave primaria (si los
hubiera).
z Otro almacenamiento con los atributos que
dependen de parte de la llave, junto con la
parte de la clave que ocasiona la
dependencia.
„
El almacenamiento Dictan21 respeta la 3FN
ya que no posee ningún atributo que no forme
parte de la clave, por lo tanto no existen
dependencias entre atributos no primos.
‰
Dictan21 (AD+ED)= prof_legajo + mat_código +
dicta_año
→ mat_nombre + dpto_código
→ dpto_nombre
zdpto_código
Análisis y Diseño de Sistemas - Clase 16
35
Análisis y Diseño de Sistemas - Clase 16
36
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
6
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Tercer Forma Normal
„
„
„
„
Descomposición 3FN
El almacenamiento Dictan22 NO RESPETA 3FN.
Existe una dependencia funcional entre los
atributos no primos dpto_código y
dpto_nombre.
Ninguno de ellos forma parte de la clave
mat_código.
La solución está en descomponer al
almacenamiento Dictan22
Análisis y Diseño de Sistemas - Clase 16
Si un almacenamiento no respeta la 3FN,
corresponde descomponerlo en dos
esquemas.
z
z
z
Un esquema con la clave primaria y todos
aquellos atributos que dependen totalmente de la
clave primaria (sin incluir el que depende
transitivamente).
Otro esquema con los atributos participan de la
dependencia que viola la 3FN.
En el ejemplo:
37
Análisis y Diseño de Sistemas - Clase 16
38
El almacenamiento Dictan221
Descomposición en 3FN
z
z
z
Dictan22 (AD+ED)= mat_código +
mat_nombre + dpto_código + dpto_nombre.
Dictan221 (AD+ED) = mat_código +
mat_nombre + dpto_código.
Clave: mat_código.
Atributos primos: mat_código
z Atributos no primos: mat_nombre,
dpto_código.
z Dependencias Funcionales:
z mat_código → mat_nombre + dpto_código
z
z
Dictan221 (AD
(AD+ED)=
ED) mat_código
mat código +
mat_nombre + dpto_código
z
Dictan222 (AD+ED)= dpto_código +
dpto_nombre
Análisis y Diseño de Sistemas - Clase 16
z
39
Análisis y Diseño de Sistemas - Clase 16
Descomposición en 3FN
El almacenamiento Dictan3221
„
(AD+ED)= dpto_código +
dpto_nombre
zDictan222
„
dpto_código.
zAtributos primos: dpto_código
dpto código
zAtributos no primos: dpto_nombre.
zDependencias Funcionales:
zdpto_código → dpto_nombre
zClave:
Análisis y Diseño de Sistemas - Clase 16
40
„
„
41
Dictan1 (AD+ED)= prof_legajo + prof_nombre
+ prof_domicilio.
Dictan21 (AD+ED)= prof_legajo + mat_código
+ dicta_año.
Di t 221 (AD+ED)=
Dictan
(AD+ED) mat_código
t ódi +
mat_nombre + dpto_código.
Dictan222 (AD+ED)= dpto_código +
dpto_nombre.
Análisis y Diseño de Sistemas - Clase 16
42
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
7
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación
Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2007.
Descomposición en 3FN con
nombres significativos
„
Impacto en los modelos del Análisis
Estructurado
„
Profesores (AD+ED) = prof_legajo +
prof_nombre + prof_domicilio.
„
Dictan (AD+ED)= prof_legajo +
mat código + dicta_año.
mat_código
dicta año
„
Materias (AD+ED)= mat_código +
mat_nombre + dpto_código
„
Departamentos (AD+ED) = dpto_código
+ dpto_nombre.
Análisis y Diseño de Sistemas - Clase 16
„
‰
„
„
‰
Se reveen los diferentes niveles del DFD donde
aparecen los almacenamientos que fueron normalizados
y se reemplazan por los nuevos almacenamientos.
Se revisan los procesos de transformación para verificar
los accesos a los almacenamientos.
43
Análisis y Diseño de Sistemas - Clase 16
44
Ejercicios propuestos
Es de esperar que al momento de definir los
almacenamientos, se descubran problemas
de normalización.
Cuanto antes se corrijan los problemas de
normalización menos modificaciones habrá
que realizar.
Análisis y Diseño de Sistemas - Clase 16
Se reemplazan las definiciones de los almacenamientos
por las nuevas definiciones normalizadas.
E ell Diagrama
En
Di
d
de Flujos
Fl j de
d Datos:
D t
‰
Observaciones
„
Luego de normalizar revisar los modelos:
En el Diccionario de datos:
„
Normalizar las siguientes estructuras:
‰
‰
‰
‰
‰
‰
45
R1 = A + B + 1{ C }n
R2 = A + B + 1{ C + D} n
R3 = A + B + C + D y B Æ C
R4 = A + B + C + D y C Æ D
R5 = A + B + 1{ C }n + 1{ D }n
R6 = A + B + 1 { C + D + 1 { E + F }n }n
Análisis y Diseño de Sistemas - Clase 16
46
Temas de la clase de hoy
„
Conceptos de Normalización de
almacenamientos
‰ Dependencias funcionales.
‰ Claves de almacenamiento.
‰ Atributos primos y no primos.
primos
Formas normales (1FN, 2FN y 3FN)
„
Bibliografía:
„
‰
Database System Concepts – Abraham
Silberschatz – Capítulo 7
Análisis y Diseño de Sistemas - Clase 16
47
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la
bibliografía.
8
Descargar