Para comprender este tema, debe tener una idea básica sobre la Dependencia funcional y las claves candidatas y las formas normales .
Pasos para encontrar la forma normal más alta de la relación:
- Encuentre todas las posibles claves candidatas de la relación.
- Divida todos los atributos en dos categorías: atributos principales y atributos no principales.
- Compruebe la primera forma normal, luego la segunda y así sucesivamente. Si no cumple la n -ésima condición de forma normal, la forma normal más alta será n-1.
Ejemplo 1. Encuentra la forma normal más alta de una relación R(A,B,C,D,E) con conjunto FD {A->D, B->A, BC->D, AC->BE}
Paso 1. Como podemos ver, (AC) + ={A, C, B, E, D} pero ninguno de sus subconjuntos puede determinar todos los atributos de la relación, por lo que AC será la clave candidata. A puede derivarse de B, por lo que podemos reemplazar A en AC con B. Entonces, BC también será una clave candidata. Entonces habrá dos claves candidatas {AC, BC}.
Paso 2. El atributo principal es el atributo que forma parte de la clave candidata {A, B, C} en este ejemplo y otros serán no principales {D, E} en este ejemplo.
Paso 3. La relación R está en la primera forma normal ya que un DBMS relacional no permite atributos multivaluados o compuestos.
La relación no está en la segunda forma normal porque A->D es una dependencia parcial (A, que es un subconjunto de la clave candidata AC, determina el atributo no principal D) y la segunda forma normal no permite una dependencia parcial.
Entonces la forma normal más alta será la 1ra Forma Normal.
Ejemplo 2. Encuentra la forma normal más alta de una relación R(A,B,C,D,E) con FD establecido como {BC->D, AC->BE, B->E}
Paso 1. Como podemos ver, (AC) + ={A,C,B,E,D} pero ninguno de sus subconjuntos puede determinar todos los atributos de la relación, por lo que AC será la clave candidata. A o C no se pueden derivar de ningún otro atributo de la relación, por lo que solo habrá 1 clave candidata {AC}.
Paso 2. El atributo principal es el atributo que forma parte de la clave candidata {A,C} en este ejemplo y otros serán no principales {B,D,E} en este ejemplo.
Paso 3. La relación R está en la primera forma normal ya que un DBMS relacional no permite atributos multivaluados o compuestos.
La relación está en 2da forma normal porque BC->D está en 2da forma normal (BC no es un subconjunto propio de la clave candidata AC) y AC->BE está en 2da forma normal (AC es la clave candidata) y B ->E está en la segunda forma normal (B no es un subconjunto propio de la clave candidata AC).
La relación no está en la 3ª forma normal porque en BC->D (ni BC es una superclave ni D es un atributo principal) y en B->E (ni B es una superclave ni E es un atributo principal) pero para satisfacer la 3 ª normalidad, el LHS de un FD debe ser superclave o el RHS debe ser un atributo principal.
Entonces, la forma normal más alta de relación será la 2da forma normal.
Ejemplo 3. Encuentra la forma normal más alta de una relación R(A,B,C,D,E) con conjunto FD {B->A, A->C, BC->D, AC->BE}
Paso 1. Como podemos ver, (B) + ={B,A,C,D,E}, por lo que B será la clave candidata. B se puede derivar de AC usando AC->B (descomposición de AC->BE en AC->B y AC->E). Entonces AC será súper clave pero (C) + ={C} y (A) + ={A,C,B,E,D}. Entonces A (subconjunto de AC) será la clave candidata. Entonces habrá dos claves candidatas {A,B}.
Paso 2. El atributo principal es el atributo que forma parte de la clave candidata {A,B} en este ejemplo y otros serán no principales {C,D,E} en este ejemplo.
Paso 3 La relación R está en la primera forma normal ya que un DBMS relacional no permite atributos multivaluados o compuestos.
La relación está en 2ª forma normal porque B->A está en 2ª forma normal (B es una superclave) y A->C está en 2ª forma normal (A es superclave) y BC->D está en 2 nd forma normal (BC es una super clave) y AC->BE está en 2 da forma normal (AC es una super clave).
La relación está en la 3ra forma normal porque el LHS de todos los FD es superteclas. La relación está en BCNF ya que todos los LHS de todos los FD son superteclas. Entonces, la forma normal más alta es BCNF.
Artículo aportado por Sonal Tuteja. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA