Logo Studenta

BD2017_Clase3_Normalizacion

¡Este material tiene más páginas!

Vista previa del material en texto

NORMALIZACION 
 
 
1.- DEPENDENCIA FUNCIONAL 
 
 “Una dependencia funcional es una restricción entre dos conjuntos de atributos de una base de datos.” 
 
 Dado el esquema de una base de datos relacional R={A1,A2,...,An}, una dependencia funcional 
X Y ( Y depende funcionalmente de X ) entre dos conjuntos de atributos X e Y que son subconjuntos 
de R, implica que existe una dependencia entre las posibles tuplas t1 y t2 que pueden pertenecer a la 
relación r(R). 
 
Esta dependencia conlleva a que para toda tupla t1 y t2 pertenecientes a la relación r, siempre que t1[X] 
 
 
 Fig. 1 
 
Un esquema relacional R(A,F) está constituido por un conjunto de atributos A={A1,A2,...An} y un 
conjunto de dependencias funcionales F existentes entre dichos atributos. 
 
 
Fig. 2 
 
Por ejemplo, considérese la relación EMPL_PROYECT, en ella se pueden establecer las siguientes 
dependencias funcionales: 
 
 
 . CUIL  (Nombre_E): esta dependencia funcional indica que el número de cuil (CUIL) de un 
empleado determina el nombre del mismo (Nomb_E). Igualmente podemos decir que 
Nomb_E está funcionalmente determinado por NSS ya que dado un determinado valor de 
CUIL conocemos el valor de Nomb_E. 
 
 . Numb_P  ( (Nomb_P, Situ_P) :mediante esta dependencia se indica como conocido el número 
de un proyecto (Num_P) queda determinado su nombre (Nomb_P) y su situación (Situ_P). 
 
 . (CUIL, Num_P)  ( Horas : el conjunto formado por el número de la seguridad social de un 
empleado y el número de un proyecto, determinan funcionalmente las horas que un empleado 
trabaja en dicho. 
 
 REGLAS DE INFERENCIA LÓGICAS PARA DEPENDENCIAS FUNCIONALES: 
 
 
 Sea F un conjunto de dependencia funcionales especificadas en un esquema relacional R, y sea 
ƒ una dependencia funcional definida sobre el conjunto de atributos del esquema relacional, se dice 
 
 
 
 
 
 
 
 
 
 
 
 
Subc onjunto de Atributos X Subc onjunto de Atributos Y 
Conjunto R=esq uema de BD relacional 
A1 
 
A 3 
 
 
A6 
 
 
A21 
 
A44 
 
 
A56 
 
 
A72 
 
A 97 
 
 
A88 
 
A95 
 
A 46 
 
 
A43 
 
 F1=A72 – A95 
 F2=A97 - A46 
 F3=A88 – A43 
que F implica o infiere lógicamente a ƒ, (F = f), si cada relación r(R) que satisface las dependencias 
funcionales en F también satisface ƒ. 
 Por ejemplo, supóngase el siguiente conjunto de dependencias funcionales: 
 
 F = { CUIL  { Nomb_E, Fech_na, Dirección, Num_D }, 
 Num_D  { Nomb_D, CUIL_jefeD} } 
 
 De F se pueden derivar las siguientes dependencias: 
 
 CUIL  { Nomb_E, CUIL_jefe } ƒ1 
 CUIL  CUIL ƒ2 
 Num_D  Nomb_D ƒ3 
 
 Las dependencias funcionales que se infieren de un conjunto de dependencias F están determinadas 
por las denominadas Reglas de Inferencia: 
 
a) Reflexiva: Un conjunto de atributos siempre se determina a si mismo y a un subconjunto propio. 
 
 Si Y “está incluido en” X X Y entonces X  Y 
 
 Ejemplo: 
 {CUIL, Nomb_E}  Nomb_E 
 {CUIL, Nomb_E}  CUIL 
 
b) Aumentación: Si se suma un conjunto de atributos a ambos lados de una dependencia funcional 
se obtiene otra dependencia funcional igualmente válida. 
 Si X  Y entonces XZ  YZ 
 
 Ejemplo: 
 {CUIL, Nomb_E}  Dirección 
 {CUIL, Nomb_E,Fech_na}  {Dirección, Fech_na} 
 
c) Transitiva: Si Y depende funcionalmente de X, y Z depende funcionalmente de Y, entonces se 
verifica que Z depende funcionalmente de X. 
 Si { X  Y, Y  Z } entonces X  Z 
 
 Ejemplo: 
 {CUIL}  {Num_D} 
 {Num_D}  { Nomb_D} 
 
 {CUIL}  {Nomb_D} 
 Estas tres propiedades se conocen con el nombre de Axiomas de Armstrong y a partir de ellas se 
pueden deducir las siguientes: 
⊆ ⊆ 
 
d) Proyección: Si el conjunto de atributos Y depende funcionalmente de X y se verifica que los 
valores del conjunto de atributos Z están incluidos en los valores de Y, entonces se tiene que cumplir 
que Z depende funcionalmente de X. 
 
 Si X  Y Z { X  Y, X  Z} 
 
 Esta propiedad se puede demostrar a través de los axiomas de Armstrong: 
 
 . Aplicando la propiedad reflexiva: YZ  Y 
 YZ  Z 
 
 . Mediante la propiedad transitiva: X  Y 
 X  Z 
 
 De esta propiedad se desprende que se puede descomponer una dependencia funcional X  { 
A1, A2,..., An } en un conjunto de dependencias { X  A1, X  A2, ... , X  An} 
 
e) Unión: Si Y depende funcionalmente de X y se cumple que Z está funcionalmente determinada por 
X, entonces se verifica que Y y Z dependen funcionalmente de X. 
 
 Si { X  Y, X  Z } X  YZ 
 X desaparece ya que está 
Incluida en sí misma 
Demostración: 
 
 . Por aumentación: X  Y ==> X X Y X X YX 
 X  Z ==> YX  YZ 
 
 . Con las nuevas dependencias por transitividad ==> X  Y 
 Esta propiedad es la contraria a la proyección, permite combinar un conjunto de dependencias 
funcionales { X  A1, X  A2,..., X An } en una única dependencia funcional X  { A1, A2,..., 
An }. 
 
f) Pseudotransitiva: Si { X  Y, WY  Z } WX  Z 
 
 
 Demostración: 
 Por aumentación X  Y ==> WX  WY 
 
 Como WY Z, aplicando la propiedad transitiva ==> WX  Z 
 
 
CLAUSURA DE X BAJO F 
 
 Sea X un conjunto de atributos y F un conjunto de dependencias funcionales con X a la izquierda. 
La clausura de X bajo F, X* es el conjunto de atributos funcionalmente dependientes de X bajo F 
más las dependencias inferidas de F. 
 
 El algoritmo empleado para calcular la clausura de X bajo F, X*, es el siguiente: 
 
 X*:=X 
 
 Repeat 
 
 Antiguo X*:=X*; 
 
 Por cada dependencia funcional Y  Z do 
 If Y ⊆ X*:then X*:=X* Z (ó X*:=X* U Z) 
 
 Until ( antiguo X* = X*); 
 
 El valor inicial que toma X* está formado por todos los atributos de X, a continuación, a través de 
las reglas de inferencia transitiva, proyección y unión se van añadiendo nuevos atributos a X* apoyándose 
en las dependencias funcionales de F. 
 
Nota: Otra forma de escribir lo mismo (y que depende del autor) es: 
CLAUSURA DE X BAJO F (X+) 
Definición: X+ es el conjunto de atributos determinados funcionalmente por X 
Algoritmo para determinar X+ bajo F 
X+ := X 
repetir 
 viejoX+ := X+; 
para cada df Y -> Z en F hacer 
 si Y X+ entonces X+ := X+ U Z; 
hasta que (viejoX+ = X+); 
 
 
 Ejemplo: 
 
 Se quiere calcular la clausura { AC }*. Para ello, si se siguen los pasos indicados por el algoritmo: 
 
 . Aplicando la propiedad reflexiva, el valor inicial de { AC }* es AC. 
 . Por cada uno de los subconjuntosque se pueden definir en { AC }, { AC, A, C }, se buscan las dependencias 
funcionales de F en las que dichos atributos intervienen en calidad de determinantes: 
 A  B 
 AC  DE 
 . Aplicando las propiedades de inferencia se determina la clausura buscada: 
 { AC }* = AC 
 => { AC }* = ACDE 
 AC ( DE => { AC }* = ABCDE 
. A ( B 
 
 
 
 
 
Ejemplo: 
 
Dado EMP_PROY( NSS, NUMEROP, HORAS, NOMBREE,NOMBREPR, LUGARP) 
 
Sea F = { NSS -> NOMBREE; 
NUMEROP -> NOMBREPR, LUGARP; 
NSS, NUMEROP -> HORAS } el conjunto de todas las Dependencias Funcionales 
 
{ NSS }+ = {NSS, NOMBREE} NSS+ es el conjunto de atributos determinados funcionalmente por NSS 
{ NUMEROP }+ = {NUMEROP, NOMBREPR, LUGARP} 
 
{ NSS, NUMEROP }+ = {NSS, NUMEROP, NOMBREE, NOMBREPR, LUGARP, HORAS*} 
 
*Observar que no es simplemente la unión de las clausuras de los elementos del conjunto. El atributo 
Horas depende de ambos 
 
 RECUBRIMIENTO DE UN CONJUNTO DE DEPENDENCIAS FUNCIONALES. 
 
 Dados dos conjuntos de dependencias funcionales F y G, se dice que ambos conjuntos son 
equivalentes si sus cláusulas lineales coinciden, F* = G*, evidentemente esto sucederá si y solo si toda 
dependencia funcional X  Y de F pertenece también a G* y toda dependencia W  Z se encuentra en 
F*. 
 
 Se dice que G recubre a F si para toda dependencia funcional X  Y perteneciente a F se verifica 
que Y X*, siendo X* la clausura lineal de X respecto a G. 
 
Cobertura mínima o recubrimiento no redundante 
 
 Un conjunto de dependencia funcional F es una cobertura mínima si cumple las siguientes 
condiciones: 
 
 1º. Toda dependencia funcional tiene un único componente como atributo dependiente. 
 
 2º. Las dependencias no se mantienen cuando se sustituye una dependencia X  Y por Y  A, 
siendo Y un subconjunto estricto de X, es decir, no hay atributos extraños (un atributo es extraño 
cuando el ser eliminado como atributo determinante de una dependencia funcional el cierre de la misma 
no se ve alterado ). 
 
 3º. No existen dependencias redundantes. Una dependencia X  Ai perteneciente a F es redundante 
en F cuando su supresión no altera el cierre de F. 
 
 Ejemplo: Dada la siguiente relación R(A,B,C,D,E,F,G,H,) en la que se verifica el siguiente conjunto 
de dependencias funcionales: 
 
 A  DFG 
 BG  BCD 
 AC  GH 
 FG  DE 
 El recubrimiento mínimo es: 
 
 A  F BG  B(2) AC  H FG  D 
 A  G BG  C AC  G(3) FG  E 
 A  D(1) BG  D 
 
 Las dependencias funcionales que aparecen tachadas no forman parte del recubrimiento mínimo 
pueden ser inferidas de las retantes dependencias funcionales: 
 
 (1): A  F 
 ==> (unión) A  FG 
 A  G ==> (transitiva) A D 
 FG  D 
 (2): BG  B (reflexiva) 
 
 (3): A  G ==> (aumentación) AC  GC ==> (proyección) AC  G 
 
 Una vez conocido el concepto de dependencia funcional, se puede redifinir una serie de términos 
cuyo significado ya se conoce de una forma intuitiva: 
 
 
Superclave 
 
 Se dice que un conjunto de atributos de una relación es superclave si y solo si ese conjunto de 
atributos determina a todos lo demás, es decir, si dicho conjunto de atributos determina unívocamente 
cada tupla de la relación. 
 
Una superclave de R = {A1, …, An} es un conjunto de atributos S ⊆ R tal que no existen 2 tuplas t1 y t2 
en ningún r tal que t1[S] = t2[S]. 
 
 
Clave o clave candidata 
 Dada una relación R = { A1, A2,..., An }, se dice que una superclave de la relación es clave o clave 
candidata si es superclave mínima, es decir, si no existe ningún subconjunto de atributos de dicha 
superclave del cual sean funcionalmente todos los demás atributos de la relación. 
 
 Cuando existen varias claves candidatas, se elige una de ellas como clave primaria de la relación, 
denominándose al resto claves secundarias. 
 
Atributo Primario 
 Se dice que un atributo es primario si pertenece a alguna de las claves candidatas de la relación tipo. 
 
 Ejemplo: 
 AE determinan a todos los demás atributos de la relación, por tanto es superclave, además es superclave 
mínima ya que ni A ni E determinan a todos los atributos, de ahí que tanto D como AE son claves candidatas. 
 
 
 
NORMALIZACIÓN 
 
 La normalización es un proceso reversible mediante el que se realiza una descomposición 
progresiva de un conjunto de relaciones dado en sucesivos conjuntos caracterizados por presentar 
relaciones cada vez más sencillas y regulares, alcanzando la estructura óptima para su implementación, 
gestión y explotación desde diferentes futuras aplicaciones. 
 
 “El objetivo de la normalización es eliminar las anomalías detectadas en un esquema relacional 
de una Base de Datos cuando éste presenta una estructura no satisfactoria.” 
 
 Los principales problemas que se pueden presentar en un esquema relacional son: 
 
- Existencia de Réplicas: Cierta información puede aparecer duplicada innecesariamente, con el 
consiguiente desaprovechamiento del espacio de almacenamiento. 
 
- Anomalías de actualización: Como consecuencia de la existencia de información redundante, una 
operación de actualización puede llevar a un estado inconsistente de la Base de Datos. 
 
- Anomalías de Inserción: Puede resultar imposible añadir nueva información en la BD. 
 
- Anomalía de Borrado: eliminar información puede desencadenar la pérdida no deseada de otro 
tipo de información. 
 
 El proceso de normalización parte de un esquema relacional que contiene todos los atributos ( y 
probablemente anomalías ) y de forma interactiva se va descomponiendo en dos o más relaciones que 
se encuentran en una forma normal superior. 
 
”Se dice que una relación está en una forma normal cuando satisface el conjunto de restricciones 
impuestas para dicha forma.” 
 
 Las ventajas que se obtiene tras la normalización de datos para una gestión eficaz son: 
 
- Facilidad de uso: Los datos se encuentran agrupados en tablas que identifican claramente un 
objeto o una relación. 
 
- Facilidad de gestión: Los lenguajes manipulan la información de forma sencilla mediante 
operaciones de álgebra y cálculo relacional aplicadas sobre las tablas. 
 
- Integridad: Las interrelaciones establecidas entre elementos de diferentes tablas permiten 
asegurar la integridad de la información almacenada. 
 
- Mínima redundancia: La información no aparece duplicada innecesariamente dentro de las 
diferentes estructuras constituyentes de la Base de Datos. 
 
- Máximo rendimiento de las aplicaciones: Cada aplicación únicamente “ve” aquella parte de la 
información que le sirve de utilidad. 
 
 
REQUISITOS PARA DESCOMPONER UNA RELACIÓN 
 
 La descomposición de un esquema relacional R(A,F), donde A es el conjuntos de atributosque lo 
constituyen y F el conjunto de dependencias funcionales definidas sobre dichos atributos, es la sustitución 
de dicho esquema por una colección p ={R1,R2 ,...,Rn } subconjunto de R, de forma que se verifica: 
 
 R= R1 R2 R3 ... Rn 
 
 Para que una relación r(R) se pueda descomponer en un conjunto de p relaciones se deben 
cumplir una serie de requisitos: 
 
 1) Preservar el contenido de la relación 
 
 Toda información que aparezca en R, debe aparecer en p. Esta propiedad puede obtenerse 
imponiendo las siguientes condiciones: 
 
- La unión de todos los atributos de las p relaciones da el conjunto de atributos de la relación R. 
 
 R(A,F) ==> p= { R1 (A ,F ), R2 (A ,F ),...,R3 (A ,F ),} 
 A = A1 A2 ... An 
 
- En cada relación Rn, p debe ser una proyección de R de tal forma que R pueda crearse uniendo todos 
los Rn. 
 
 
 2) Preservar el conjunto de dependencias 
 
 Las dependencias funcionales F son propiedades inherentes al esquema relacional R(A,F). 
Imponer que éstas se mantengan, equivale a desear que todas las dependencias funcionales que se 
verifican en R, se cumplan también en p. 
 
 “Estas restricciones se pueden englobar diciendo que, al hacer la descomposición no se debe perder 
ningún atributo ni ninguna dependencia.” 
 
 
 3) Carácter normal de las relaciones 
 
 La tercera propiedad que se desea cumplir es que cuando se construye un esquema relacional éste 
debe estar en Forma Normal. 
 
 “Las formas normales son un conjunto de propiedades deseables para los esquemas relacionales. 
Al proceso de descomposición de una relación tipo R en esquemas p={R} que estén en forma normal 
se lo denomina Normalización”. 
 
 Inicialmente (1970) Codd definió la primera, segunda y tercera forma normal (INF, IINF, IIINF 
respectivamente). Posteriormente Boyce y Codd (1974) definieron una versión mejorada de la tercera 
forma normal, comúnmente conocida como BCNF ( Boyce-Codd Normal Form), ésta fue depurada con 
la definición de la cuarta, IVNF, (Fagin 1977) y quinta, VNF, (Fagin 1979). 
 
 “El proceso de descomposición de una relación en otras no estriba únicamente en una 
normalización, sino además se debe preservar en todo momento el contenido de la base de datos y sus 
dependencias funcionales.” 
 
 En ocasiones la optimización del esquema conceptual para determinar la forma de almacenamiento de 
los datos puede dar lugar a una des-normalización. 
 
 
 
 
 
 
 PRIMERA FORMA NORMAL: INF 
 
 Una relación está es INF si no contiene atributos compuestos, ni multivaluados, ni relaciones 
anidadas. Es decir, una relación está en INF si y solo sí los valores que componen cada uno de los 
atributos de una tupla son atómicos. 
 
 Si una relación no cumple estas restricciones se deberá normalizar ya que plantea los siguientes 
problemas: 
 
- Falta un espacio en el campo para los valores que se desean almacenar o desaprovechamiento de 
espacio cuando existen pocos valores. Esto sucede debido a que para cada uno de los atributos no 
atómicos se reserva el espacio necesario para almacenar el máximo número de valores que se estima 
que puede tomar un atributo 
 
- Dificultad de tratamiento para operaciones de inserción, actualización y borrado. 
 
 a) Eliminación de atributos multivaluados: Para eliminar un atributo multivaluado pueden adoptarse 
dos criterios: 
 
- El atributo multivaluado pasa a ser monovaluado y forma parte de la clave. Esta postura no es 
aceptada ya que aunque se elimine el atributo multivaluado, sigue existiendo redundancia. 
 
- Se crea una relación auxiliar formada por la clave de la entidad y el atributo multivaluado, 
Esta es la postura acertada ya que se consigue eliminar información redundante. 
 
Ejemplo: En la siguiente relación se encuentra diferentes tipos de materiales existentes en una ferretería. 
Cada material tiene un código que lo identifica, distintas dimensiones y una pequeña descripción. 
 
 
 Esta relación no se encuentra en INF ya que el atributo Dimensiones tiene varios valores en una 
misma tupla. 
 
 Para pasar a primera forma normal se realizan los siguientes pasos: 
 
 1º Se localizan los atributos que construyen la Clave primaria de la relación, 
Cod_Mat. 
 
 2º Se descompone la relación realizando una proyección: 
 
a) Se crea una relación con la clave y los atributos monovaluados y simples. Dicha 
relación permanece con el nombre que identifica a la relación a normalizar. 
 
 
 
 
 
b) Se crea una nueva relación por cada uno de los atributos múltiples, estando formada 
por la clave de la relación y dicho atributo. La clave de esta nueva relación 
proyectada estará formada por ambos atributos: 
 
 
 
 
 b) Eliminación de relaciones anidadas: se crea una relación auxiliar formada por la clave de la entidad 
dueña y la relación anidada. 
 
Ejemplo: Considérese que para cada libro de una Biblioteca se almacena la siguiente información: 
• Código del Libro 
• Título del libro. 
• Lista de autores. 
• Editorial. 
• Lista de palabras clave. 
 
Puede observarse que, si se define una relación para la información anterior, varios de los dominios serán no 
atómicos. 
• Autores. Un libro puede tener varios autores. No obstante, puede que se desee hallar todos los 
documentos entre cuyos autores estuviera Santos. Por tanto, hay interés en una parte del elemento del 
dominio «conjunto de autores». (Elemento indivisible) 
• Palabras clave. Si se guarda un conjunto de palabras clave de cada documento se espera poder 
recuperar todos los documentos cuyas claves incluyan una o varias de las palabras clave especificadas. 
 
Cód 
1 
2 
http://www.monografias.com/trabajos13/librylec/librylec.shtml
http://www.monografias.com/trabajos13/librylec/librylec.shtml
http://www.monografias.com/trabajos14/comer/comer.shtml
http://www.monografias.com/trabajos14/comer/comer.shtml
Por tanto, se considera que el dominio de la lista de palabras clave no es atómico. (Elemento 
Multivaluado, ya que incluye un dominio de tipo “conjunto”) 
• Editorial. A diferencia de palabras clave y autores, editorial no tiene un dominio de tipo conjunto. Sin 
embargo, se puede considerar que editorial consiste en los subcampos nombre y sucursal. Esta 
manera de considerarlo hace que el dominio de editorial no sea atómico. (Elemento Multivaluado, 
incluye una relación anidada) 
 
Para solucionar este inconveniente se procede de la siguiente manera: 
1) Se crea una relación con la clave primaria (Cod) y los atributos que son parte de la relación anidada. ( nombre 
de la editorial y sucursal) 
 
 
 
 
SEGUNDA FORMA NORMAL: IINF 
 
 La segunda forma normal se encuentra basada en el concepto de dependencia funcional total. 
 
 Dependencia funcional total: Una dependencia funcional X  Y es una dependencia funcional total si 
al eliminar un subconjunto de atributos A de X, deja de cumplirse la dependencia funcional: 
 
 X  Y: A X / X - {A} no determina Y 
 
 Dependencia funcional parcial: Una dependencia funcional X Y es una dependencia funcional parcial 
si existe un subconjunto de X que determina a Y. 
 
 X  Y : A X / X – {A}  Y 
 
 Una relación está en segunda forma normal si y solo sí está en INF y todo atributo que no 
pertenece a la clave primaria tiene una dependencia funcional total con respecto de la clave. 
 
 “Esta forma normalúnicamente se considera si la clave primaria está compuesta por dos o más 
atributos, Si la relación está en INF y la clave primaria está formada por un único atributo se puede 
asegurar que la relación se encuentra en IINF”. 
 
 
 Cód Nombre Editorial Sucursal 
1 
2 
Mc Graw Hill 
Oxford 
Nueva York 
Londres 
 Algoritmos de transformación de INF  IINF 
 
 Para pasar de primera forma normal a segunda forma normal se deberán eliminar todas aquellas 
dependencias funcionales parciales con respecto de la clave. Para ello se efectúan las siguientes 
proyecciones: 
 1º Se crea una relación formada por la clave primaria más todos los atributos que dependen totalmente de 
ella. 
 2º Se crea una nueva relación auxiliar formada por los atributos determinantes de la clave primaria 
más aquellos atributos que dependen funcionalmente de ellos. La clave de la relación estará formada por 
el conjunto de atributos determinantes. 
 
Ejemplo: Dada la relación EMPL_PROY donde se tiene información sobre los empleados de una 
empresa. Cada una de las tuplas de la relación contiene el nombre (Nomb_E) y número de seguridad 
social (NSS) de un empleado, número (Num_P) y nombre (Nomb_P) de un proyecto en el que trabaja, así 
como el número de horas (Horas) que dicho empleado dedica cada semana al proyecto. 
 
 Como se puede observar, existe un subconjunto de la clave que determina funcionalmente a otros 
atributos de la relación: 
 { NSS, Num_P }  Horas 
 Num_P  { Nomb_P, Ciudad_P} 
 NSS  Nomb_E 
 
 Por tanto se puede decir que { Nomb_P,situ_P} y {Nomb_E} son conjuntos de atributos que 
presentan una dependencia funcional parcial con respecto de la clave, para que la relación aparezca en 
segunda forma normal, se deben eliminar estas dependencias parciales creando, por cada dependencia 
parcial, una nueva relación auxiliar formada por el atributo determinante y el conjunto de atributos que 
dependen funcionalmente de él: 
 
 Transformación de INF a IINF 
 
 
 
 
 
TERCERA FORMA NORMAL: IIINF 
 
 La tercera forma normal está basada en el concepto de dependencia transitiva. 
 
 - Dependencia transitiva 
 
 Sea una dependencia funcional X  Y en una relación R= {A1,A2,…,An}, se dice que es una 
dependencia transitiva si existe un conjunto de atributos Z de la relación R no pertenecientes a la clave 
de forma que se verifica : X  Z, Z  Y y además si Z no determina a X e Y no determina a X. 
 
 “Una relación está en tercera forma normal si y solo sí está en IINF y no existen atributos no 
primarios transitivamente dependientes de cada posible clave de la relación.” 
 
 Esto significa que un atributo no primario únicamente debe conocerse a través de la clave 
primaria o de una clave candidata de la relación, pero nunca por medio de otro atributo no 
primario. 
 
Algoritmos de transformación de IINF  IIINF 
 El algoritmo de descomposición en IIINF consiste: 
 
 1º Sea una dependencia funcional X  Y, definida en R(A,F), donde X e Y son disjuntos y no son 
clave ni forma parte de ninguna clave candidata de R. 
 
 2 º Se obtienen las proyecciones: R1 = Proy ( X,Y ) 
 R2 = Proy ( A – Y ) 
 
 Siendo A el conjunto de atributos que constituyen la relación R. 
 Por tanto, para normalizar una relación que está en IINF y en la que existen atributos transitivamente 
dependientes de la clave: 
 
- Se crea una nueva relación R2 con la clave y aquellos atributos dependientes de la clave pero que 
no son transitivamente dependientes de ella ni de ninguna clave candidata. 
 
- Otra relación R1 con los atributos transitivos y los atributos que los determinan. 
 
 Ejemplo: En la relación EMPLEADOS se observa una dependencia transitiva, con respecto de la clave, 
del conjunto de atributos formado por { Nom_D) NSS_Jef }. 
 
 Para que la relación pase a IIINF se debe normalizar, descomponiéndola para ello en dos relaciones, 
una formada por el atributo determinante Num_D y aquello que dependen funcionalmente de él { 
Nomb_D, NSS_Jef }, y otra formada por la clave y aquellos tributos que no dependen de forma 
transitiva de ella. 
 
 TRANSFORMACION DE IINF A IIINF 
 FORMA NORMAL DE BOYCE-CODD: BCNF 
 
 “Una relación está en BCNF si y sólo si está en III FN y todo determinante es clave candidata” 
 
 Es decir, todo conjunto de atributos no contenidos en la clave que determinan a algún atributo, debe 
determinar a todos los demás. 
 
 La definición de BCNF engloba la IIINF ya que las dependencias transitivas existen a través de 
atributos secundarios que no son clave. 
 
Esta definición se creó para evitar los casos anómalos que no se solventaban con la IIINF y que 
aparecen cuando a partir de un atributo no primario se conoce parte de la clave primaria o de una clave 
candidata. 
 
 “Si las claves están formadas por un solo atributo y la relación se encuentra en IIINF se puede 
asegurar que también está en BCNF.” 
 
 
 
 
 
 Algoritmo de paso de IIINF  BCNF 
 
 Si una relación está en III forma normal y se detecta algún atributo determinante (atributo del cual 
depende funcionalmente otro atributo) que no es clave candidata, se debe normalizar la relación 
descomponiéndola en: 
 
1- Una relación formada por el atributo determinante y aquellos que dependen funcionalmente 
de él. 
 
2- Otra formada por la clave y el resto de los atributos incluidos los determinantes. 
 
 Por tanto el algoritmo de descomposición que se aplica a una relación que no está en BCNF es 
el siguiente: 
 
1- Sea la dependencia funcional X  Y, definida en R(A,F), donde X e Y son disjuntos, X es 
un atributo no primario e Y forma parte de la clave primaria o de una clave candidata. 
 
2- Se realizan las siguientes proyecciones: R1= Proy ( X,Y ) 
 R2= Proy ( A – Y ) 
 
 Ejemplo: Se dispone de una relación con la información referente a un proveedor, del cual se conoce un 
código que lo identifica (Cod_Pro), tipo del material que suministra (Cod_Mate), nombre del almacén al 
que provee (Almacen) y Ciudad en la que se encuentra dicho almacén. 
 
PROVEEDOR 
 Cod_Pro, Cod_Mate, Almacen, Ciudad 
 
 En esta relación se encuentra definidas las siguientes dependencias funcionales: 
 
 { Ciudad, Cod_Mate }  { Cod_Pro, Almacen } 
 { Almacen }  { Ciudad } 
 { Cod_Pro }  { Cod_Mate, Almacen } 
 
 Calculando la clausura de cada uno de los conjuntos de atributos determinantes se puede observar 
que tanto { Cod_Pro } como { Ciudad, Cod_Mate } son claves candidatas. 
 
 Por tanto se puede asegurar que la relación se encuentra en IIINF ya que en la relación Almacen  
Ciudad, el atributo (Almacen) forma parte de una clave candidata(Cod_Pro). 
 
 
“Sin embargo, como Almacen (atributo determinante de Ciudad ) no forma parte de ninguna clave la 
relación no se encuentra en BCNF y es preciso normalizar.” 
 
TRANSFORMACION DE IIINF A BCNF 
Comprobación 
Una forma sencilla de comprobar si una relación se encuentra en FNBC consiste en comprobar, además 
de que esté en 3FN, lo siguiente: 
• (1) Si no existenclaves candidatas compuestas (con varios atributos), está en FNBC. 
• (2) Si existen varias claves candidatas compuestas y éstas tienen un elemento común, no está en 
FNBC.

Continuar navegando