Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

Normalización en base de datos - Estructura

LUIS EZEQUIEL PUIG
LUIS EZEQUIEL PUIG
09/10/2022

Compartir

Mira este artículo:
  1. Normalización
  2. Formas Normales

Img-capa

Trabajar con datos es algo cada vez más necesario, considerando nuestra realidad mayormente conectada al mundo virtual. Producimos una gran cantidad de datos todos los días y esa cantidad aumentó significativamente en las últimas décadas. Las bases de datos no están restringidas solo a las empresas, ¡las personas también tienen su propio almacenamiento! Por ejemplo, al mantener una hoja de cálculo de sus gastos personales, está almacenando datos pertinentes para su control financiero. Entonces, tener un mejor conocimiento de cómo mantener estos valores y tener buenas prácticas para manipularlos, tiene sentido.

Normalización

La normalización es un conjunto de reglas que utilizamos sintetizadas como un proceso centrado en el modelado de la base de datos de interés. Mediante la descomposición de las relaciones presentes en la base de datos, este proceso busca anomalías, es decir, repeticiones y redundancias entre los datos. Cuando lo encuentra, aquí es donde entra en juego el conjunto de reglas para eliminar tales anomalías y redefinir las relaciones afectadas por tal eliminación, para que todo encaje en su lugar después después de los cambios. Finalmente, se enfoca en la prevención de problemas con la repetición y actualización de datos, así como el cuidado con su integridad. Este concepto fue presentado originalmente en un artículo científico publicado en IBM por el matemático Edgar F. Codd, titulado “Un modelo de datos relacionales para grandes bases de datos compartidas” (1970). Codd se centraría en los valores de elementos relacionados en la base de datos, no en enlaces o agrupaciones específicas. Este modelo resultó en un proceso flexible y menos costoso para el almacenamiento y procesamiento de datos. Fue algo tan notorio que su autor ganó el premio Turing en 1981 y Forbes en 2002 marcó este modelo relacional como una de las principales innovaciones de los últimos 85 años.

Formas Normales

Siguiendo el concepto de estandarización, tenemos estas reglas estructuradas y agrupadas en tres niveles que se utilizan para ajustar las tablas de la base de datos. Estos grupos se denominan formas normales y en este artículo se presentarán cuatro formas que se utilizan. Cada forma normal sigue requisitos y la forma anterior, es decir, se mantiene una herencia de requisitos, con excepción de la primera forma normal que no tiene la forma anterior.

Primera Forma

De esta primera forma tratamos las repeticiones, y también nos aseguramos que los atributos se están almacenando de forma única, es decir, no hay ningún atributo con los valores en la misma fila de la tabla. Vemos la clave primaria de la tabla, y si es necesario crear otra tabla, asociamos la tabla original con la secundaria precisamente por esta clave. Vamos a crear un ejemplo con información sobre dos personas:

Tabla sin la primera forma normal.

Img-1

Al principio, identificamos la clave principal, en este caso, es el atributo de código. Tenga en cuenta que entre los atributos están los valores asociados a la clave, entonces necesitamos fragmentar estos valores, y por eso es necesario crear una nueva tabla.

Tabla con la primera forma normal.

Img-2

Creamos los atributos ciudad y país, porque esta información estaba en un solo atributo, ya que es más útil tener estas dos informaciones separadas, donde se relacionan.

Nueva tabla creada a partir de la primera forma normal.

Img-3

Esta nueva tabla la creamos para poder relacionar los teléfonos con el atributo código, que en la tabla principal es la clave primaria, y en esta se define como clave externa. Así que dejamos todos los datos definidos singularmente y, sin embargo, relacionados. En resumen, los atributos y valores posteriores a la primera forma son atómicos, es decir, son datos que no se pueden modificar ni dividir, están en su forma mínima. Además, las tablas deben contener clave primaria no nulla, para efectos de identificación y relación entre datos y tablas.

Segunda Forma

La segunda forma trabaja centrada en las posibles redundancias en las tablas, en particular, se define que los atributos de la tabla dependen enteramente de la clave primaria. Los atributos que no dependen o dependen parcialmente de ella se asignan en otra tabla, ahora con una relación clara con la clave primaria de la tabla original. Es decir, la clave primaria se convierte en clave extranjera (externa), para la nueva tabla creada. Vamos a seguir con otro ejemplo, similar a la tabla anterior.

Tabla sin la segunda forma normal.

Img-4

Tenga en cuenta que los campos de origen y destino no tienen una relación directa con el campo de código, pero tienen una relación directa con el código de vuelo, ya que son información relacionada en un viaje aéreo, por ejemplo Así, podemos mover estas informaciones a una nueva tabla sin que los datos pierdan las relaciones originales.

Nueva tabla con los datos relacionados.

Img-5

Por lo tanto, la tabla original elimina los datos que no necesitan estar ahí, pero que siguen relacionados en una tabla secundaria.

Tabla con la segunda forma normal.

Img-6

Vale la pena recordar que la segunda forma normal está de acuerdo con las reglas de la primera forma normal, y así sucesivamente.

Tercera Forma

En la tercera forma normal, trabajamos precisamente en la organización de los atributos que dependen unos de otros, pero que no son atributos clave (primarios o extranjeros). Si es necesario, cree una tabla secundaria para reestructurar la relación de dependencia entre los atributos. Estas tablas deben tener clave primaria o externa. Usemos ahora un ejemplo referente a modelos de coches:

Tabla sin la tercera forma normal.

Img-7

Tenga en cuenta que existe una dependencia entre el atributo 'nombre de fábrica' y 'año' con el 'código de fábrica', sin embargo, estos atributos no dependen de la clave principal de la tabla que es 'placa'.

Nueva tabla con datos de fabricación.

Img-8

En este caso, creamos una nueva tabla para relacionar el nombre de la fábrica con su código, y también eliminamos las relaciones de dependencia entre atributos no clave de la tabla original.

Tabla original ahora en la tercera forma normal.

Img-9

Siempre es bueno recordar que para que una tabla esté en la tercera forma normal, antes de eso, debe estar definida de acuerdo con la primera y la segunda forma normal.Estas eran las tres formas normales principales. Hay una cuarta forma, no considerada la principal pero útil, que se presenta a continuación.

Cuarta Forma

La cuarta y última forma se enfoca en eliminar dependencias multivaluadas entre los atributos de la clave, es decir, si hay más atributos (que en la clave primaria o externa) se repiten en la tabla. Si esto ocurre, generamos nuevas tablas para eliminar la redundancia y mantener las relaciones entre los atributos.

Tabla sin la cuarta forma normal.

Img-10

Tenga en cuenta que el campo 'música' está relacionado con 'artista' y 'disco', sin embargo, el artista y la duración no pueden estar relacionados, porque sabemos que la misma canción puede estar en varios álbumes diferentes y también puede ser cantada por diferentes artistas. Por lo tanto, lo ideal es que se produzca la división de esta tabla y así eliminar las repeticiones entre los datos.

La primera tabla nueva.

Img-11

Y ahora el campo de la música relacionado con el campo del artista.

La segunda nueva tabla.

Img-12

Conclusión

La normalización es un paso importante para quien está modelando una base de datos relacional, y ciertamente redunda en una mayor eficiencia a la hora de abstraer el banco y sus atributos. Esperamos que hayas disfrutado el contenido y te animamos a que practiques este tema, para que puedas trabajar con datos de una manera más desarrollada y profesional. En la siguiente sección, presentamos algunos temas que pueden contribuir a sus estudios en la base de datos. Buenos estudios y hasta la próxima!

Leer más Formación Base de DatosArtículo ¿Qué es SQL?¿Que hace un cientista de datos?Formación Ciencia de Datos

Img-Bre

Brenda Souza Scuba Alura LATAM. Soy estudiante de Tecnología de la Información en la Universidad Federal de Rio Grande do Norte, en Natal (Brasil). Me enfoco en lenguajes Java y Python, con áreas de interés como BackEnd, Data Science e Inteligencia Artificial. También soy desarrolladora BackEnd.

Img-Luis

Luis Ezequiel Puig Soy estudiante de analisis de sistemas, formo parte del equipo de Scubas en Alura, apasionado por la tecnología y la informática. Me encanta aprender e investigar sobre nuevas tecnologías y diferentes herramientas del mundo de la programación.

Artículo Anterior
Algoritmos y Lógica de programación: ¿Qué son y cuál es la importancia?
Siguiente Artículo
Iterando una lista en Java

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast