logo

Formas normales en DBMS

Normalización es el proceso de minimizar redundancia de una relación o conjunto de relaciones. La redundancia en relación puede causar anomalías de inserción, eliminación y actualización. Por tanto, ayuda a minimizar la redundancia en las relaciones. Formas normales se utilizan para eliminar o reducir la redundancia en las tablas de la base de datos.

Normalización de DBMS por Ranjan Hero

En los sistemas de gestión de bases de datos (DBMS), los formularios normales son una serie de pautas que ayudan a garantizar que el diseño de una base de datos sea eficiente, organizado y esté libre de anomalías en los datos. Hay varios niveles de normalización, cada uno con su propio conjunto de pautas, conocidas como formas normales.



Puntos importantes sobre las formas normales en DBMS

  • Primera forma normal (1NF): Este es el nivel más básico de normalización. En 1NF, cada celda de la tabla debe contener solo un valor y cada columna debe tener un nombre único. El primer formulario normal ayuda a eliminar datos duplicados y simplificar las consultas.
  • Segunda forma normal (2NF): 2NF elimina los datos redundantes al exigir que cada atributo que no sea clave dependa de la clave principal. Esto significa que cada columna debe estar directamente relacionada con la clave principal y no con otras columnas.
  • Tercera forma normal (3NF): 3NF se basa en 2NF al exigir que todos los atributos no clave sean independientes entre sí. Esto significa que cada columna debe estar directamente relacionada con la clave principal y no con ninguna otra columna de la misma tabla.
  • Forma normal de Boyce-Codd (BCNF): BCNF es una forma más estricta de 3NF que garantiza que cada determinante en una tabla sea una clave candidata. En otras palabras, BCNF garantiza que cada atributo que no sea clave dependa únicamente de la clave candidata.
  • Cuarta forma normal (4NF): 4NF es un refinamiento adicional de BCNF que garantiza que una tabla no contenga dependencias de múltiples valores.
  • Quinta forma normal (5NF): 5NF es el nivel más alto de normalización e implica descomponer una tabla en tablas más pequeñas para eliminar la redundancia de datos y mejorar la integridad de los datos.

Los formularios normales ayudan a reducir la redundancia de datos, aumentar la coherencia de los datos y mejorar el rendimiento de la base de datos. Sin embargo, niveles más altos de normalización pueden conducir a consultas y diseños de bases de datos más complejos. Es importante lograr un equilibrio entre normalización y practicidad al diseñar una base de datos.

Ventajas de la forma normal

  • Redundancia de datos reducida: La normalización ayuda a eliminar datos duplicados en las tablas, lo que reduce la cantidad de espacio de almacenamiento necesario y mejora la eficiencia de la base de datos.
  • Coherencia de datos mejorada: La normalización garantiza que los datos se almacenen de forma coherente y organizada, lo que reduce el riesgo de incoherencias y errores en los datos.
  • Diseño de base de datos simplificado: La normalización proporciona pautas para organizar tablas y relaciones de datos, lo que facilita el diseño y el mantenimiento de una base de datos.
  • Rendimiento de consultas mejorado: Las tablas normalizadas suelen ser más fáciles de buscar y recuperar datos, lo que da como resultado un rendimiento de consulta más rápido.
  • Mantenimiento de bases de datos más sencillo: La normalización reduce la complejidad de una base de datos al dividirla en tablas más pequeñas y manejables, lo que facilita agregar, modificar y eliminar datos.

En general, el uso de formularios normales en DBMS ayuda a mejorar la calidad de los datos, aumentar la eficiencia de la base de datos y simplificar el diseño y el mantenimiento de la base de datos.

Primera forma normal

Si una relación contiene un atributo compuesto o de múltiples valores, viola la primera forma normal o una relación está en la primera forma normal si no contiene ningún atributo compuesto o de múltiples valores. Una relación está en primera forma normal si cada atributo en esa relación es atributo de valor único .



  • Ejemplo 1 - La relación ESTUDIANTE en la tabla 1 no está en 1NF debido al atributo multivalor STUD_PHONE. Su descomposición en 1NF se muestra en la tabla 2.
Ejemplo

Ejemplo

  • Ejemplo 2 –
ID Name Courses ------------------ 1 A c1, c2 2 E c3 3 M C2, c3>
  • En la tabla anterior, el curso es un atributo de múltiples valores, por lo que no está en 1NF. La siguiente tabla está en 1NF ya que no hay ningún atributo de valores múltiples
ID Name Course ------------------ 1 A c1 1 A c2 2 E c3 3 M c2 3 M c3>

Segunda forma normal

Para estar en segunda forma normal, una relación debe estar en primera forma normal y la relación no debe contener ninguna dependencia parcial. Una relación está en 2NF si tiene Sin dependencia parcial, es decir. , ningún atributo no principal (atributos que no forman parte de ninguna clave candidata) depende de ningún subconjunto adecuado de cualquier clave candidata de la tabla. Dependencia Parcial – Si el subconjunto adecuado de clave candidata determina un atributo no principal, se denomina dependencia parcial.

  • Ejemplo 1 - Considere la tabla 3 como se muestra a continuación.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
  • {Tenga en cuenta que hay muchos cursos que tienen el mismo precio del curso} Aquí, COURSE_FEE no puede decidir por sí solo el valor de COURSE_NO o STUD_NO; COURSE_FEE junto con STUD_NO no pueden decidir el valor de COURSE_NO; COURSE_FEE junto con COURSE_NO no pueden decidir el valor de STUD_NO; Por lo tanto, COURSE_FEE sería un atributo no principal, ya que no pertenece a la única clave candidata {STUD_NO, COURSE_NO}; Pero, COURSE_NO -> COURSE_FEE, es decir, COURSE_FEE depende de COURSE_NO, que es un subconjunto adecuado de la clave candidata. El atributo no principal COURSE_FEE depende de un subconjunto adecuado de la clave candidata, que es una dependencia parcial y, por lo tanto, esta relación no está en 2NF. Para convertir la relación anterior a 2NF, necesitamos dividir la tabla en dos tablas como: Tabla 1: STUD_NO, COURSE_NO Tabla 2: COURSE_NO, COURSE_FEE
   Table 1     Table 2  STUD_NO COURSE_NO COURSE_NO COURSE_FEE  1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000>
  • NOTA: 2NF intenta reducir la cantidad de datos redundantes que se almacenan en la memoria. Por ejemplo, si hay 100 estudiantes que toman el curso C1, no necesitamos almacenar su tarifa como 1000 para los 100 registros; en cambio, una vez que podemos almacenarla en la segunda tabla, ya que la tarifa del curso para C1 es 1000.
  • Ejemplo 2 – Considere las siguientes dependencias funcionales en la relación R (A, B, C, D)
AB ->C [A y B juntos determinan C] BC -> D [B y C juntos determinan D]>

En la relación anterior, AB es la única clave candidata y no hay dependencia parcial, es decir, cualquier subconjunto adecuado de AB no determina ningún atributo no primo.



X is a super key. Y is a prime attribute (each element of Y is part of some candidate key).>

Ejemplo 1: En la relación ESTUDIANTE dada en la Tabla 4, FD establece: {STUD_NO -> STUD_NAME, STUD_NO -> STUD_STATE, STUD_STATE -> STUD_COUNTRY, STUD_NO -> STUD_AGE}

Clave de candidato: {STUD_NO}

Para esta relación en la tabla 4, STUD_NO -> STUD_STATE y STUD_STATE -> STUD_COUNTRY son verdaderos.

Entonces STUD_COUNTRY depende transitivamente de STUD_NO. Viola la tercera forma normal.

Para convertirlo a tercera forma normal, descompondremos la relación ESTUDIANTE (NO_ESTUDIO, NOMBRE_ESTUDIO, TELÉFONO_ESTUDIO, ESTADO_ESTUDIO, EDAD_ESTUDIO) como: ESTUDIANTE (NO_ESTUDIO, NOMBRE_ESTUDIO, TELÉFONO_ESTUDIO, ESTADO_ESTUDIO, EDAD_ESTUDIO) PAÍS_ESTADO (ESTADO, PAÍS)

Considere la relación R(A, B, C, D, E) A -> BC, CD -> E, B -> D, E -> A Todas las posibles claves candidatas en la relación anterior son {A, E, CD, BC} Todos los atributos están en el lado derecho de todas las dependencias funcionales.

Ejemplo 2: Encuentre 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 pueden derivarse de ningún otro atributo de la relación, por lo que solo habrá 1 clave candidata {AC}.

Paso 2: Los atributos primos son aquellos atributos que forman parte de la clave candidata {A, C} en este ejemplo y otros serán no primos {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 compuestos o de valores múltiples. La relación está en segunda forma normal porque BC->D está en segunda forma normal (BC no es un subconjunto adecuado de la clave candidata AC) y AC->BE está en segunda forma normal (AC es clave candidata) y B->E está en la segunda forma normal (B no es un subconjunto adecuado de la clave candidata AC).

La relación no está en tercera forma normal porque en BC->D (ni BC es una superclave ni D es un atributo primo) y en B->E (ni B es una superclave ni E es un atributo primo) pero a satisface la tercera normalidad, ya sea LHS de un FD debe ser superclave o RHS debe ser atributo principal. Entonces, la forma normal más alta de relación será la segunda forma normal.

Por ejemplo, considere la relación R (A, B, C) A -> BC, B -> A y B, ambas son superclaves, por lo que la relación anterior está en BCNF.

Tercera forma normal

Se dice que una relación está en tercera forma normal, si no tenemos ninguna dependencia transitiva para los atributos no primos. La condición básica con la Tercera Forma Normal es que la relación debe estar en Segunda Forma Normal.

A continuación se menciona la condición básica que debe cumplirse en la dependencia funcional no trivial X -> Y:

  • X es una súper clave.
  • Y es un atributo principal (esto significa que el elemento de Y es parte de la clave candidata).

Para obtener más información, consulte Tercera forma normal en DBMS.

FNBC

BCNF (Boyce-Codd Normal Form) es solo una versión avanzada de la Tercera Forma Normal. Aquí tenemos algunas reglas adicionales a la Tercera Forma Normal. La condición básica para que cualquier relación esté en BCNF es que debe estar en Tercera Forma Normal.

Tenemos que centrarnos en algunas reglas básicas que son para BCNF:

1. Table must be in Third Normal Form. 2. In relation X->Y, X debe ser una superclave en una relación.>

Para obtener más información, consulte BCNF en DBMS.

Cuarta forma normal

La cuarta forma normal no contiene dependencias múltiples no triviales, excepto la clave candidata. La condición básica de la Cuarta Forma Normal es que la relación debe estar en BCNF.

Las reglas básicas se mencionan a continuación.

1. It must be in BCNF. 2. It does not have any multi-valued dependency.>

Para obtener más información, consulte Cuarta forma normal en DBMS.

Quinta forma normal

La quinta forma normal también se denomina forma normal proyectada. Las condiciones básicas de la Quinta Forma Normal se mencionan a continuación.

Relation must be in Fourth Normal Form. The relation must not be further non loss decomposed.>

Para obtener más información, consulte Quinta forma normal en DBMS.

borrar caché npm

Aplicaciones de formas normales en DBMS

  • Consistencia de los datos: Los formularios normales garantizan que los datos sean coherentes y no contengan información redundante. Esto ayuda a evitar inconsistencias y errores en la base de datos.
  • Redundancia de datos: Los formularios normales minimizan la redundancia de datos al organizarlos en tablas que contienen solo datos únicos. Esto reduce la cantidad de espacio de almacenamiento requerido para la base de datos y facilita su administración.
  • Tiempo de respuesta: Los formularios normales pueden mejorar el rendimiento de las consultas al reducir la cantidad de uniones necesarias para recuperar datos. Esto ayuda a acelerar el procesamiento de consultas y mejorar el rendimiento general del sistema.
  • Mantenimiento de base de datos: Los formularios normales facilitan el mantenimiento de la base de datos al reducir la cantidad de datos redundantes que deben actualizarse, eliminarse o modificarse. Esto ayuda a mejorar la gestión de la base de datos y reducir el riesgo de errores o inconsistencias.
  • Diseño de base de datos: Los formularios normales proporcionan pautas para diseñar bases de datos que sean eficientes, flexibles y escalables. Esto ayuda a garantizar que la base de datos se pueda modificar, actualizar o ampliar fácilmente según sea necesario.

Algunos puntos importantes sobre las formas normales

  • BCNF está libre de redundancia causada por dependencias funcionales.
  • Si una relación está en BCNF, entonces también se cumple 3NF.
  • Si todos los atributos de la relación son atributos primos, entonces la relación siempre está en 3NF.
  • Una relación en una Base de Datos Relacional está siempre y al menos en forma 1NF.
  • Cada relación binaria (una relación con solo 2 atributos) siempre está en BCNF.
  • Si una relación tiene solo claves candidatas únicas (es decir, cada clave candidata consta de solo 1 atributo), entonces la relación siempre está en 2NF (porque no es posible una dependencia funcional parcial).
  • A veces, optar por la forma BCNF puede no preservar la dependencia funcional. En ese caso, opte por BCNF solo si los FD perdidos no son necesarios; de lo contrario, normalice hasta 3NF únicamente.
  • Hay muchas más formas normales que existen después de BCNF, como 4NF y más. Pero en los sistemas de bases de datos del mundo real generalmente no es necesario ir más allá de BCNF.

Conclusión

En conclusión, las bases de datos relacionales se pueden organizar de acuerdo con un conjunto de reglas llamadas formas normales en base de datos administración (1NF, 2NF, 3NF, BCNF, 4NF y 5NF), que reducen la redundancia de datos y preservan la integridad de los datos. Al resolver varios tipos de anomalías y dependencias de datos, cada forma normal posterior amplía la anterior. Los requisitos y propiedades particulares de los datos que se almacenan determinan qué forma normal se debe utilizar; las formas normales superiores ofrecen una integridad de datos más estricta, pero también pueden dar lugar a estructuras de bases de datos más complicadas.

Enlaces de preguntas del año anterior

  • GATE CS 2012, pregunta 2
  • GATE CS 2013, pregunta 54
  • GATE CS 2013, pregunta 55
  • GATE CS 2005, pregunta 29
  • GATE CS 2002, pregunta 23
  • GATE CS 2002, pregunta 50
  • GATE CS 2001, pregunta 48
  • GATE CS 1999, pregunta 32
  • GATE IT 2005, pregunta 22
  • GATE IT 2008, pregunta 60
  • GATE CS 2016 (conjunto 1), pregunta 31

Preguntas frecuentes sobre la forma normal

P.1: ¿Por qué es importante la normalización en DBMS?

Respuesta:

La normalización ayuda a prevenir anomalías en la base de datos, lo que en última instancia garantiza la coherencia de la base de datos y ayuda a facilitar el mantenimiento de la base de datos.

P.2: ¿Es posible sobrenormalizar la base de datos?

Respuesta:

Sí, una normalización excesiva afectará a consultas complejas y también reducirá el rendimiento. Logra un equilibrio entre normalización y practicidad.

P.3: ¿Es necesario normalizar una base de datos a la forma normal más alta como (BCNF o 4NF)?

Respuesta:

No existe ninguna condición necesaria determinada para la normalización de la base de datos. Muchas veces, una forma inferior puede ser suficiente para lograr un rendimiento y una simplicidad específicos.