Este documento presenta información sobre el proceso de normalización de bases de datos. Explica conceptos clave como formas normales, dependencias funcionales, superclave y clave. Detalla los pasos para descomponer una relación en Primera Forma Normal, Segunda Forma Normal, Tercera Forma Normal y Forma Normal de Boyce-Codd, preservando las dependencias funcionales.
Este documento describe las características y ventajas del lenguaje de programación Python. Python es un lenguaje interpretado, multiplataforma y multiparadigma que permite crear aplicaciones desde sitios web hasta servidores. Ofrece tipado dinámico, muchas funciones incorporadas, sintaxis clara y es fácil de aprender.
El documento describe los conceptos fundamentales de las tablas de símbolos, compiladores y gramáticas libres de contexto. Explica que las tablas de símbolos permiten realizar operaciones de inserción, búsqueda y eliminación de información en el compilador. También describe cómo se representan las expresiones aritméticas en una pila y los procesos de análisis léxico y sintáctico mediante gramáticas libres de contexto.
R es un lenguaje de programación y entorno para análisis estadístico desarrollado inicialmente por Robert Gentleman y Ross Ihaka. Actualmente es un esfuerzo de colaboración global. R permite modificar directamente el código fuente y es similar a S, pero fue desarrollado por GNU. R puede ejecutar la mayoría del código escrito para S.
El documento habla sobre tablas de transición y de símbolos. Explica que la tabla de transición representa los estados y símbolos de entrada de un autómata y cómo diseñarla. También cubre el tratamiento de errores léxicos y la tabla de símbolos, la cual almacena información sobre identificadores como funciones y variables. Finalmente, presenta ejemplos de tablas de transición y operaciones de la tabla de símbolos.
El documento habla sobre las tablas de símbolos, que son estructuras de datos que permiten realizar operaciones de inserción, búsqueda y eliminación de información sobre elementos del lenguaje de programación analizado por el compilador, como declaraciones de nombres. También describe cómo se representan expresiones matemáticas en una pila para su evaluación de izquierda a derecha e introduce conceptos como el análisis léxico, sintáctico y las gramáticas libres de contexto.
Este documento presenta los conceptos fundamentales de la programación funcional con Scheme. En menos de 3 oraciones, resume que la programación funcional se basa en evaluar funciones matemáticas en lugar de ejecutar instrucciones, Scheme es un lenguaje funcional minimalista basado en Lisp, y presenta conceptos como funciones de orden superior, recursión, currying y listas.
Este documento presenta una introducción al lenguaje de programación funcional Scheme. Explica elementos básicos como tipos de datos, funciones predefinidas, condicionales, definición de identificadores y funciones. También cubre estructuras de datos como pares y listas, y cómo estas pueden ser manipuladas usando funciones como car, cdr, cons y append. El objetivo es entregar las nociones necesarias para seguir el curso de lenguajes PLAI usando el lenguaje Racket.
Este documento introduce la teoría de lenguajes de programación, definiendo la sintaxis y semántica de un lenguaje. Explica cómo las gramáticas independientes del contexto se pueden usar para especificar la sintaxis de un lenguaje y guiar la traducción dirigida por la sintaxis de programas. Finalmente, describe los componentes básicos de una gramática independiente del contexto y cómo se pueden usar para construir árboles de análisis sintáctico.
Este documento describe las características y ventajas del lenguaje de programación Python. Python es un lenguaje interpretado, multiplataforma y multiparadigma que permite crear aplicaciones desde sitios web hasta servidores. Ofrece tipado dinámico, muchas funciones incorporadas, sintaxis clara y es fácil de aprender.
El documento describe los conceptos fundamentales de las tablas de símbolos, compiladores y gramáticas libres de contexto. Explica que las tablas de símbolos permiten realizar operaciones de inserción, búsqueda y eliminación de información en el compilador. También describe cómo se representan las expresiones aritméticas en una pila y los procesos de análisis léxico y sintáctico mediante gramáticas libres de contexto.
R es un lenguaje de programación y entorno para análisis estadístico desarrollado inicialmente por Robert Gentleman y Ross Ihaka. Actualmente es un esfuerzo de colaboración global. R permite modificar directamente el código fuente y es similar a S, pero fue desarrollado por GNU. R puede ejecutar la mayoría del código escrito para S.
El documento habla sobre tablas de transición y de símbolos. Explica que la tabla de transición representa los estados y símbolos de entrada de un autómata y cómo diseñarla. También cubre el tratamiento de errores léxicos y la tabla de símbolos, la cual almacena información sobre identificadores como funciones y variables. Finalmente, presenta ejemplos de tablas de transición y operaciones de la tabla de símbolos.
El documento habla sobre las tablas de símbolos, que son estructuras de datos que permiten realizar operaciones de inserción, búsqueda y eliminación de información sobre elementos del lenguaje de programación analizado por el compilador, como declaraciones de nombres. También describe cómo se representan expresiones matemáticas en una pila para su evaluación de izquierda a derecha e introduce conceptos como el análisis léxico, sintáctico y las gramáticas libres de contexto.
Este documento presenta los conceptos fundamentales de la programación funcional con Scheme. En menos de 3 oraciones, resume que la programación funcional se basa en evaluar funciones matemáticas en lugar de ejecutar instrucciones, Scheme es un lenguaje funcional minimalista basado en Lisp, y presenta conceptos como funciones de orden superior, recursión, currying y listas.
Este documento presenta una introducción al lenguaje de programación funcional Scheme. Explica elementos básicos como tipos de datos, funciones predefinidas, condicionales, definición de identificadores y funciones. También cubre estructuras de datos como pares y listas, y cómo estas pueden ser manipuladas usando funciones como car, cdr, cons y append. El objetivo es entregar las nociones necesarias para seguir el curso de lenguajes PLAI usando el lenguaje Racket.
Este documento introduce la teoría de lenguajes de programación, definiendo la sintaxis y semántica de un lenguaje. Explica cómo las gramáticas independientes del contexto se pueden usar para especificar la sintaxis de un lenguaje y guiar la traducción dirigida por la sintaxis de programas. Finalmente, describe los componentes básicos de una gramática independiente del contexto y cómo se pueden usar para construir árboles de análisis sintáctico.
El documento habla sobre las formas normales en bases de datos relacionales. Explica que la primera forma normal (1FN) requiere que los datos sean atómicos y que todas las tablas tengan una clave primaria. La segunda forma normal (2FN) requiere que todos los datos dependan de la clave primaria. La tercera forma normal (3FN) establece que cada atributo no incluido en la clave primaria debe depender solo de la clave primaria.
El documento describe los fundamentos de las bases de datos relacionales, incluyendo la normalización de datos para evitar redundancias y problemas de actualización. Explica las primeras tres formas normales que garantizan que los datos sean atómicos, dependan completamente de la clave primaria, y que los atributos no clave dependan sólo de la clave candidata. También cubre el uso de dependencias funcionales para definir formas normales y descomponer esquemas que violan una forma normal dada.
Este documento describe los conceptos clave del diseño de bases de datos relacionales, incluyendo el modelo relacional, las formas normales, la normalización, las dependencias funcionales y la integridad de los datos. Explica las diferencias entre los modelos conceptual, lógico y físico, y cómo el modelo relacional se deriva del modelo Entidad-Relación a través de la normalización para evitar redundancias.
El documento describe las formas normales, que son propiedades que deben cumplir las tablas de un esquema relacional para evitar redundancias y contradicciones. Explica las primeras tres formas normales (1NF, 2NF y 3NF), la forma normal de clave elemental, y la forma normal de Boyce-Codd, la cual es más estricta. También proporciona ejemplos para ilustrar cómo aplicar las formas normales al diseñar tablas relacionales.
El documento explica las formas normales de bases de datos, que son reglas para agrupar atributos en relaciones de manera óptima. La Primera Forma Normal (1FN) elimina campos repetitivos. La Segunda Forma Normal (2FN) elimina atributos parcialmente dependientes de la llave primaria. La Tercera Forma Normal (3FN) elimina dependencias funcionales transitivas entre atributos para evitar anomalías.
El documento explica las formas normales de bases de datos, que son reglas para agrupar atributos en relaciones de manera óptima. La Primera Forma Normal (1FN) elimina campos repetitivos. La Segunda Forma Normal (2FN) elimina atributos parcialmente dependientes de la llave primaria. La Tercera Forma Normal (3FN) elimina dependencias funcionales transitivas entre atributos.
El documento explica las formas normales de bases de datos, que son reglas para agrupar atributos en relaciones de manera óptima. La Primera Forma Normal (1FN) elimina campos repetitivos. La Segunda Forma Normal (2FN) elimina atributos parcialmente dependientes de la llave primaria. La Tercera Forma Normal (3FN) elimina dependencias funcionales transitivas entre atributos.
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)Karina Lucio
Este documento presenta los conceptos y algoritmos clave para el diseño de bases de datos relacionales, incluidas las formas normales, dependencias funcionales y multivalor, y propiedades como la conservación de dependencias y concatenación no aditiva. Introduce técnicas como la síntesis y descomposición relacional para crear esquemas en 3FN y BCNF que satisfacen estas propiedades deseables. También discute problemas como valores NULL y tuplas colgantes que pueden surgir de descomposiciones excesivas.
El documento introduce los modelos entidad-relación y relacional, y cómo convertir un modelo entidad-relación a uno relacional. Explica las reglas de normalización y las reglas de Codd para sistemas de bases de datos relacionales. El objetivo es obtener conocimientos sobre estos modelos, saber relacionar y normalizar una entidad relación, y comprender las reglas de Codd.
El documento describe el cálculo relacional, el cual es un lenguaje de consulta no procedimental para bases de datos relacionales. Existen dos variantes principales, el cálculo relacional de tuplas que utiliza variables-tupla, y el cálculo relacional de dominios que emplea variables-dominio. El documento también presenta ejemplos de consultas en cálculo relacional y recomendaciones para comprender mejor su diseño físico.
Los puentes son estructuras esenciales en la infraestructura de transporte, permitiendo la conexión entre diferentes
puntos geográficos y facilitando el flujo de bienes y personas.
El documento habla sobre las formas normales en bases de datos relacionales. Explica que la primera forma normal (1FN) requiere que los datos sean atómicos y que todas las tablas tengan una clave primaria. La segunda forma normal (2FN) requiere que todos los datos dependan de la clave primaria. La tercera forma normal (3FN) establece que cada atributo no incluido en la clave primaria debe depender solo de la clave primaria.
El documento describe los fundamentos de las bases de datos relacionales, incluyendo la normalización de datos para evitar redundancias y problemas de actualización. Explica las primeras tres formas normales que garantizan que los datos sean atómicos, dependan completamente de la clave primaria, y que los atributos no clave dependan sólo de la clave candidata. También cubre el uso de dependencias funcionales para definir formas normales y descomponer esquemas que violan una forma normal dada.
Este documento describe los conceptos clave del diseño de bases de datos relacionales, incluyendo el modelo relacional, las formas normales, la normalización, las dependencias funcionales y la integridad de los datos. Explica las diferencias entre los modelos conceptual, lógico y físico, y cómo el modelo relacional se deriva del modelo Entidad-Relación a través de la normalización para evitar redundancias.
El documento describe las formas normales, que son propiedades que deben cumplir las tablas de un esquema relacional para evitar redundancias y contradicciones. Explica las primeras tres formas normales (1NF, 2NF y 3NF), la forma normal de clave elemental, y la forma normal de Boyce-Codd, la cual es más estricta. También proporciona ejemplos para ilustrar cómo aplicar las formas normales al diseñar tablas relacionales.
El documento explica las formas normales de bases de datos, que son reglas para agrupar atributos en relaciones de manera óptima. La Primera Forma Normal (1FN) elimina campos repetitivos. La Segunda Forma Normal (2FN) elimina atributos parcialmente dependientes de la llave primaria. La Tercera Forma Normal (3FN) elimina dependencias funcionales transitivas entre atributos para evitar anomalías.
El documento explica las formas normales de bases de datos, que son reglas para agrupar atributos en relaciones de manera óptima. La Primera Forma Normal (1FN) elimina campos repetitivos. La Segunda Forma Normal (2FN) elimina atributos parcialmente dependientes de la llave primaria. La Tercera Forma Normal (3FN) elimina dependencias funcionales transitivas entre atributos.
El documento explica las formas normales de bases de datos, que son reglas para agrupar atributos en relaciones de manera óptima. La Primera Forma Normal (1FN) elimina campos repetitivos. La Segunda Forma Normal (2FN) elimina atributos parcialmente dependientes de la llave primaria. La Tercera Forma Normal (3FN) elimina dependencias funcionales transitivas entre atributos.
Fundamentos de Sistemas de Base de Datos (Capítulo 11 y 12)Karina Lucio
Este documento presenta los conceptos y algoritmos clave para el diseño de bases de datos relacionales, incluidas las formas normales, dependencias funcionales y multivalor, y propiedades como la conservación de dependencias y concatenación no aditiva. Introduce técnicas como la síntesis y descomposición relacional para crear esquemas en 3FN y BCNF que satisfacen estas propiedades deseables. También discute problemas como valores NULL y tuplas colgantes que pueden surgir de descomposiciones excesivas.
El documento introduce los modelos entidad-relación y relacional, y cómo convertir un modelo entidad-relación a uno relacional. Explica las reglas de normalización y las reglas de Codd para sistemas de bases de datos relacionales. El objetivo es obtener conocimientos sobre estos modelos, saber relacionar y normalizar una entidad relación, y comprender las reglas de Codd.
El documento describe el cálculo relacional, el cual es un lenguaje de consulta no procedimental para bases de datos relacionales. Existen dos variantes principales, el cálculo relacional de tuplas que utiliza variables-tupla, y el cálculo relacional de dominios que emplea variables-dominio. El documento también presenta ejemplos de consultas en cálculo relacional y recomendaciones para comprender mejor su diseño físico.
Los puentes son estructuras esenciales en la infraestructura de transporte, permitiendo la conexión entre diferentes
puntos geográficos y facilitando el flujo de bienes y personas.
2. Tecnólogo en Informática, Bases de Datos 1 2
Normalización
Temario
Introducción
Conceptos relacionados
Formas Normales
– 1NF
– 2NF
– 3NF
– BCNF
Algoritmos de diseño
Referencias:
– Fundamentals of Database Systems [E-N], 5ta. Edición, Caps. 10, 11
3. Tecnólogo en Informática, Bases de Datos 1 3
En el proceso de normalización se somete un esquema relación (ER) a una serie de
pruebas para “certificar” si pertenece o no a una cierta forma normal.
Puede considerarse como un proceso durante el cual los ER insatisfactorios se
descomponen repartiendo sus atributos entre ERs más pequeños que poseen
propiedades deseables.
Normalización
Introducción
4. Tecnólogo en Informática, Bases de Datos 1 4
Las formas normales, sin considerar otros factores, no garantizan un buen diseño de
BD.
Propiedades adicionales:
– Join sin pérdida: no se presentará el problema de las tuplas falsas
– Preservación de dependencias: todas las dfs están representadas en alguna
relación
Normalización
Introducción
5. Tecnólogo en Informática, Bases de Datos 1 5
Superclave
– Una superclave de R={A1, …, An} es un conjunto de atributos S ⊆ R tal que no
existen dos tuplas t1 y t2 en ningún r tal que t1[S]=t2[S].
Clave
– Una clave K es una superclave que cumple que, si se le quita alguno de sus
atributos de K, deja de ser superclave.
Normalización
Superclave y clave
6. Tecnólogo en Informática, Bases de Datos 1 6
Clave candidata, clave primaria
– Si una relación tiene más de una clave, cada una es una clave candidata. Una de
ellas es arbitrariamente designada como clave primaria. El resto son
secundarias.
Normalización
Clave candidata
Claves
candidatas
Clave
primaria
Clave
secundaria
7. Tecnólogo en Informática, Bases de Datos 1 7
Primera Forma Normal (1NF)
Segunda Forma Normal (2NF)
Tercera Forma Normal (3NF)
Forma Normal Boyce-Codd (BCNF)
Normalización
Formas Normales
8. Tecnólogo en Informática, Bases de Datos 1 8
Definición
– Los dominios de los atributos deben incluir solo valores atómicos (los atributos
no pueden ser multivaluados ni compuestos)
Normalización
Primera Forma Normal (1NF)
10. Tecnólogo en Informática, Bases de Datos 1 10
Atributo Primo
– Un atributo del ER R es primo si es miembro de alguna clave de R.
Normalización
Definiciones
11. Tecnólogo en Informática, Bases de Datos 1 11
Dependencia total
– X→Y es una df total si la eliminación de cualquier atributo A de X hace que la df
deje de ser válida (no tiene atributos redundantes a la izq.)
Dependencia parcial
– X→Y es una df parcial si es posible eliminar un atributo A de X, y la df sigue
siendo válida.
Normalización
Definiciones
12. Tecnólogo en Informática, Bases de Datos 1 12
Definición
– Un ER R está en 2NF si ningún atributo no primo A de R depende
parcialmente de cualquier clave de R.
Normalización
Segunda Forma Normal (2NF)
13. Tecnólogo en Informática, Bases de Datos 1 13
Ejemplo:
– Empleado (empleado, habilidad, lugar_trabajo)
– F = {empleado, habilidad→lugar_trabajo,
empleado→lugar_trabajo}
Normalización
Segunda Forma Normal (2NF)
14. Tecnólogo en Informática, Bases de Datos 1 14
Ejemplo:
– Empleado (empleado, habilidad, lugar_trabajo)
– F = {empleado, habilidad→lugar_trabajo,
empleado→lugar_trabajo}
Normalización
Segunda Forma Normal (2NF)
lugar_trabajo es no primo y parcialmente
dependiente de una clave de Empleado
15. Tecnólogo en Informática, Bases de Datos 1 15
El atributo no primo NombreE viola 2NF, por la DF2
Los atributos no primos NombreProyecto y UbicaciónProyecto violan 2NF, por la
DF3
Normalización
Segunda Forma Normal (2NF)
Son parcialmente dependientes
de una clave de EMP_PROY
16. Tecnólogo en Informática, Bases de Datos 1 16
Normalización
Segunda Forma Normal (2NF)
Los atributos no primos sólo están asociados
con la parte de la clave principal de la que
son completa y funcionalmente dependientes.
17. Tecnólogo en Informática, Bases de Datos 1 17
Dependencia transitiva
– X→Y en un ER R es una df transitiva si existe un conjunto de atributos Z que no
sea un subconjunto de una clave de R, y se cumplen tanto X→Z como Z→Y.
Normalización
Definiciones
18. Tecnólogo en Informática, Bases de Datos 1 18
Definición:
– Un ER R está en 3NF si está en 2NF y ningún atributo no primo de R depende
transitivamente de una clave de R.
– Un ER R está en 3NF si, siempre que una df X→A se cumple en R, o bien:
a) X es una superclave de R, o
b) A es un atributo primo de R.
Normalización
Tercera Forma Normal (3NF)
19. Tecnólogo en Informática, Bases de Datos 1 19
Normalización
Tercera Forma Normal (3NF)
No está en 3NF:
debido a la dependencia transitiva de
DniDirector (y también de NombreDpto)
en Dni a través de NúmeroDpto
Está en 2NF:
ya que no existen dependencias
parciales en una clave
Según la primer definición:
20. Tecnólogo en Informática, Bases de Datos 1 20
Normalización
Tercera Forma Normal (3NF)
DF2 no está en 3NF:
Los atributos a la derecha de la dependencia
no son primos, ni tampoco NúmeroDpto
es superclave en EMP_DEPT
DF1 está en 3NF:
El atributo a la izquierda de la
dependencia (Dni) es superclave
Según la segunda definición:
25. Tecnólogo en Informática, Bases de Datos 1 25
Definición:
– Un ER R está en BCNF si, siempre que una df X→A se cumple en R, entonces X
es una superclave de R.
– Observar que, a diferencia de 3NF, en BCNF no importa si A es un atributo
primo (condición b).
Normalización
Forma Normal Boyce-Codd (BCNF)
26. Tecnólogo en Informática, Bases de Datos 1 26
Ejemplo:
– Sea R(nombre, teléfono, afición, dirección)
– F={nombre, teléfono, afición→dirección
dirección→teléfono}
Normalización
Forma Normal Boyce-Codd (BCNF)
27. Tecnólogo en Informática, Bases de Datos 1 27
Ejemplo:
– Sea R(nombre, teléfono, afición, dirección)
– F={nombre, teléfono, afición→dirección
dirección→teléfono}
Normalización
Forma Normal Boyce-Codd (BCNF)
Viola BCNF porque dirección no es superclave en R
28. Tecnólogo en Informática, Bases de Datos 1 28
Normalización
Forma Normal Boyce-Codd (BCNF)
FD5 satisface 3NF en PARCELAS1A
porque NombreMunicipio es
atributo primo (condición b)
FD5 viola BCNF porque Área
no es superclave
31. Tecnólogo en Informática, Bases de Datos 1 31
Normalización
Algoritmos de diseño
Descomposición de relaciones
Preservación de dependencias
Descomposición en 3NF con preservación de dfs
Join sin pérdida (JSP)
– Propiedad
– Test de join sin pérdida
Descomposición en BCNF con JSP
Descomposición en 3NF con JSP y preservación de dfs
Problemas con valores nulos y tuplas colgantes
32. Tecnólogo en Informática, Bases de Datos 1 32
Normalización
Descomposición de relaciones
Esquema relación universal R
– R=(A1, A2, ..., An), que contiene todos los atributos de la BD.
Descomposición de R (D)
– D=(R1, R2, ..., Rm), que se obtiene mediante los algoritmos que realizan la
descomposición utilizando las dependencias funcionales.
– Se debe verificar: ∪i=1..m Ri = R
33. Tecnólogo en Informática, Bases de Datos 1 33
Normalización
Preservación de dependencias
Proyección de un conjunto de dfs sobre un Esquema de Relación
– Dado un conjunto de dfs F sobre R, la proyección de F sobre Ri, ΠRi(F), donde
Ri es un subconjunto de R, es el conjunto de dfs X→Y en F+ tal que los atributos
en X→Y estén todos contenidos en Ri.
Ri
R (ER)
ΠRi
(F)
F (dfs)
subconjunto
atributos
contenidos
34. Tecnólogo en Informática, Bases de Datos 1 34
Normalización
Preservación de dependencias
Preservación de dependencias
– Una descomposición D=(R1, R2, ..., Rm) de R preserva las dependencias
respecto a F si se cumple:
( (ΠR1(F)) ∪ ... ∪ (ΠRm(F)) )+ = F+
– La unión de las proyecciones de F en cada Ri en D, es equivalente a F
R=(A1, A2, ..., An)
ΠRm
(F)
F (dfs)
descomposición
ΠR1
(F) ΠR2
(F)
R1 R2 Rm
D
35. Tecnólogo en Informática, Bases de Datos 1 35
Normalización
Descomposición en 3NF con pres. de dfs
Algoritmo:
1. Encontrar un cubrimiento minimal G para F
2. Para cada miembro izq. X de una df que aparezca en G,
crear un ER {X ∪ A1 ∪ A2 ∪ ... ∪ Am} en D, donde X→A1, X→A2, ... ,
X→Am sean las únicas dfs en G con X como miembro izquierdo (X es la
clave de esta relación)
3. Colocar cualquier atributo restante en un solo ER para asegurar la propiedad de
preservación de dependencias
36. Tecnólogo en Informática, Bases de Datos 1 36
Normalización
Descomposición en 3NF con pres. de dfs
Ejemplo:
– Se tiene la relación universal U:
U (DniEmpleado, NumProy, SalarioEmpleado, TlfEmpleado, NúmeroDpto, NombreProy,
UbicaciónProy)
– Y las dependencias funcionales:
DF1: DniEmpleado→SalarioEmpleado, TlfEmpleado, NúmeroDpto
DF2: NumProy→NombreProy, UbicaciónProy
DF3: DniEmpleado, NumProy→SalarioEmpleado, TlfEmpleado, NúmeroDpto,
NombreProy, Ubicación Proy
37. Tecnólogo en Informática, Bases de Datos 1 37
Normalización
Descomposición en 3NF con pres. de dfs
Paso 1: cubrimiento minimal
G: {DniEmpleado→SalarioEmpleado, TlfEmpleado, NúmeroDpto;
NumProy→NombreProy, UbicaciónProy}
Paso 2: crear ERs
R1 (DniEmpleado, SalarioEmpleado, TlfEmpleado, NúmeroDpto)
R2 (NumProy, NombreProy, UbicaciónProy)
38. Tecnólogo en Informática, Bases de Datos 1 38
Normalización
Descomposición en 3NF con pres. de dfs
Paso 1: cubrimiento minimal
G: {DniEmpleado→SalarioEmpleado, TlfEmpleado, NúmeroDpto;
NumProy→NombreProy, UbicaciónProy}
Paso 2: crear ERs
R1 (DniEmpleado, SalarioEmpleado, TlfEmpleado, NúmeroDpto)
R2 (NumProy, NombreProy, UbicaciónProy)
Atributos en común?
R1 ∩ R2 = Ø
39. Tecnólogo en Informática, Bases de Datos 1 39
Normalización
Join sin pérdida (JSP)
Definición:
– Una descomposición D=(R1, R2, ..., Rm) de R tiene la propiedad de JSP
respecto al conjunto de dfs F sobre R, si por cada instancia de relación r de R
que satisfaga F, se cumple lo siguiente:
join ( ΠR1(r), ..., ΠRm(r) ) = r
– JSP garantiza que no se generarán tuplas falsas cuando se aplica un join a las
relaciones de la descomposición.
40. Tecnólogo en Informática, Bases de Datos 1 40
Normalización
Join sin pérdida (JSP)
Propiedad: Comprobación de JSP para descomposiciones binarias (dos ERs)
– D = (R1, R2) de R tiene JSP respecto a F sobre R si
● la df (R1 ∩ R2)→(R1 - R2) está en F+
● ó, la df (R1 ∩ R2)→(R2 - R1) está en F+
41. Tecnólogo en Informática, Bases de Datos 1 41
Normalización
Join sin pérdida (JSP)
Algoritmo: Comprobación de JSP para descomposiciones
1. Crear una matriz S con una fila i por cada relación Ri en la descomposición D, y una
columna j por cada atributo Aj en R;
2. Hacer S(i,j) := bij para todas las entradas de la matriz;
3. Para cada fila i que represente el ER Ri
para cada columna j que represente el atributo Aj
si Ri incluye a Aj entonces hacer S(i,j) := aj
4. Repetir hasta que una ejecución no modifique S
para cada df X→Y en F
igualar los símbolos en los atributos de Y para aquellas filas que
coinciden en los atributos de X;
5. Si una fila tiene todos símbolos “a”, la descomposición tiene JSP, en caso contrario, no lo es
46. Tecnólogo en Informática, Bases de Datos 1 46
Normalización
Join sin pérdida (JSP)
La descomposición
tiene JSP
47. Tecnólogo en Informática, Bases de Datos 1 47
Normalización
Descomposición en BCNF con JSP
Algoritmo:
1. Establecer D:={ R };
2. Mientras haya un ER Q en D que no esté en BCNF hacer
{
elegir un ER Q en D que no esté en BCNF;
localizar una df X→Y en Q que viole BCNF;
reemplazar Q en D con dos esquemas (Q - Y) y (X ∪ Y);
};
48. Tecnólogo en Informática, Bases de Datos 1 48
Normalización
Descomposición en BCNF con JSP
Ejemplo:
– Sea R(nombre, teléfono, afición, dirección)
– F={nombre, teléfono, afición→dirección
dirección→teléfono}
– D = { R1(nombre, afición, dirección), R2(dirección, teléfono) }
Viola BCNF porque dirección no es superclave de R
50. Tecnólogo en Informática, Bases de Datos 1 50
Normalización
Descomposición en BCNF con JSP
FD5 viola BCNF porque
Área no es superclave
de PARCELAS1A
Se pierde FD2
51. Tecnólogo en Informática, Bases de Datos 1 51
Normalización
Descomposición en 3NF con JSP y pres. de dfs
Si queremos que una descomposición tenga la propiedad de join sin pérdida y que
conserve las dependencias, tenemos que ajustar los esquemas de relación a 3FN en
lugar de a BCNF
Se modifica el algoritmo de 3NF con pres. de dfs, para lograr una descomposición
que cumpla:
– Preservación de dependencias
– Tener join sin pérdida (JSP)
– Que cada ER resultante de la descomposición esté en 3NF
52. Tecnólogo en Informática, Bases de Datos 1 52
Normalización
Descomposición en 3NF con JSP y pres. de dfs
Algoritmo:
1. Encontrar un cubrimiento minimal G para F
2. Para cada miembro izq. X de una df que aparezca en G,
crear un ER {X ∪ A1 ∪ A2 ∪ ... ∪ Am} en D, donde X→A1, X→A2, ... , X→Am
sean las únicas dfs en G con X como miembro izquierdo (X es la clave de esta
relación)
3. Si ninguno de los esquemas de relación en D contienen una clave de R, crear un ER
más en D que contenga los atributos que forman una clave de R
4. Eliminar las relaciones redundantes del conjunto de relaciones resultante. Una relación
R se considera como redundante si es una proyección de otra relación S en el esquema;
alternativamente, R está abarcada por S.
53. Tecnólogo en Informática, Bases de Datos 1 53
Normalización
Descomposición en 3NF con JSP y pres. de dfs
Ejemplo 1:
– U (DniEmpleado, NumProy, SalarioEmpleado, TlfEmpleado, NúmeroDpto, NombreProy,
UbicaciónProy)
– DF1: DniEmpleado→SalarioEmpleado, TlfEmpleado, NúmeroDpto
– DF2: NumProy→NombreProy, Ubicación Proy
– DF3: DniEmpleado, NumProy→SalarioEmpleado, TlfEmpleado, NúmeroDpto,
NombreProy, Ubicación Proy
54. Tecnólogo en Informática, Bases de Datos 1 54
Normalización
Descomposición en 3NF con JSP y pres. de dfs
U (DniEmpleado, NumProy, SalarioEmpleado, TlfEmpleado, NúmeroDpto, NombreProy,
UbicaciónProy)
Paso 1: cubrimiento minimal
– G: {DniEmpleado→SalarioEmpleado, TlfEmpleado, NúmeroDpto;
NumProy→NombreProy, UbicaciónProy}
Paso 2: crear ERs
– R1 (DniEmpleado, SalarioEmpleado, TlfEmpleado, NúmeroDpto)
– R2 (NumProy, NombreProy, Ubicación Proy)
Paso 3: crear ERs con clave
– R3 (DniEmpleado, NumProy)
55. Tecnólogo en Informática, Bases de Datos 1 55
Normalización
Determinación de claves
Se deben buscar 3 grupos de atributos:
– Los que aparecen sólo a la derecha → No forman parte de ninguna clave
● No me permiten determinar a ningún otro atributo
– Los que no aparecen a la derecha → Seguro forman parte de todas las claves
● No puedo determinar su valor a partir de otro atributo
● Si un atributo no figura en las dfs, pero sí está en el ER, va en este conjunto
– Los que aparecen a la izquierda y derecha → Tal vez formen parte de una clave
● Debo verificar si forman parte o no
56. Tecnólogo en Informática, Bases de Datos 1 56
Normalización
Determinación de claves
Ejemplo:
– R(A, B, C, D, E, G)
– F = { AB→C, D→E, C→D, EA→B}
Entonces:
– Sólo a la der. = { } → no estarán en ninguna clave
– Nunca a la der. = {A, G} → estarán en todas las claves
– A la izq. y der. = {B, C, D, E} → tal vez estén en alguna clave
{AG}+ = {A, G} → no es clave
{GAB}+ = {G, A, B, C, D, E} → es clave
{GAC}+ = {G, A, C, D, E, B} → es clave
{GAD}+ = {G, A, D, E, B, C} → es clave
{GAE}+ = {G, A, E, B, C, D} → es clave
57. Tecnólogo en Informática, Bases de Datos 1 57
Normalización
Verificar preservación de dfs
Algoritmo: Para toda df X→Y en el conjunto de dfs hacer:
1. Si todos los atributos de df pertenecen a una de las relaciones Ri, esa dependencia se
conserva trivialmente.
2. Si no pasa lo anterior, verificar si df se conserva mediante el siguiente método:
Z := X
Repetir
Para cada relación Ri:
Z := Z U ((Z∩Ri)+ ∩Ri)
Hasta que Z no cambie luego de una iteración o hasta que Z incluya a Y.
→ Si Z incluye a Y, la dependencia se conserva.
58. Tecnólogo en Informática, Bases de Datos 1 58
Normalización
Verificar preservación de dfs
Ejemplo:
– R1=(A, B, C, D), R2=(A, E, F)
– FD1: {A→BD, B→CD, AC→E}
Paso 1: ver dfs triviales
– A→BD y B→CD se preservan trivialmente en R1, ya sus los atributos están incluidos
Paso 2: verifico las dfs restantes (AC→E)
– Para cada relación Ri: Z := Z U ((Z∩Ri)+ ∩Ri)
La descomposición, preserva las dependencias?
Para R1:
● Z = AC ∪ ((AC ∩ ABCD)+ ∩ ABCD)
● Z = AC ∪ ( AC+ ∩ ABCD)
● Z = AC ∪ ( ACEBD ∩ ABCD)
● Z = AC U ABCD = ABCD
Z no incluye a E
59. Tecnólogo en Informática, Bases de Datos 1 59
Normalización
Verificar preservación de dfs
Ejemplo:
– R1=(A, B, C, D), R2=(A, E, F)
– FD1: {A→BD, B→CD, AC→E}
Paso 1: ver dfs triviales
– A→BD y B→CD se preservan trivialmente en R1, ya sus los atributos están incluidos
Paso 2: verifico las dfs restantes (AC→E)
– Para cada relación Ri: Z := Z U ((Z∩Ri)+ ∩Ri)
Para R1:
● Z = AC ∪ ((AC ∩ ABCD)+ ∩ ABCD)
● Z = AC ∪ ( AC+ ∩ ABCD)
● Z = AC ∪ ( ACEBD ∩ ABCD)
● Z = AC U ABCD = ABCD
Para R2:
● Z = ABCD ∪ ((ABCD ∩ AEF)+ ∩ AEF)
● Z = ABCD ∪ ( A+ ∩ AEF)
● Z = ABCD ∪ ( ABDCE ∩ AEF)
● Z = ABCD ∪ AE = ABCDE
Z incluye a E → se preservan las dfs
Z en R1