0% encontró este documento útil (0 votos)
63 vistas6 páginas

Normalización de Tablas en Modelos Relacionales

Este documento presenta los conceptos básicos de la normalización de bases de datos y sus cuatro primeras formas normales. Explica que la normalización es el proceso de descomponer tablas en tablas más simples que cumplan con las primeras tres formas normales para evitar anomalías. Detalla los requisitos de cada forma normal, incluyendo la eliminación de grupos repetitivos en la 1FN, la dependencia funcional completa de la clave primaria en la 2FN y la eliminación de dependencias transitivas en la 3FN.

Cargado por

Fran Basso
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
63 vistas6 páginas

Normalización de Tablas en Modelos Relacionales

Este documento presenta los conceptos básicos de la normalización de bases de datos y sus cuatro primeras formas normales. Explica que la normalización es el proceso de descomponer tablas en tablas más simples que cumplan con las primeras tres formas normales para evitar anomalías. Detalla los requisitos de cada forma normal, incluyendo la eliminación de grupos repetitivos en la 1FN, la dependencia funcional completa de la clave primaria en la 2FN y la eliminación de dependencias transitivas en la 3FN.

Cargado por

Fran Basso
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

IntroducciónBloque 1Bloque 2Bloque 3Bloque 4Bloque 5Referencias

Normalización de tablas de un modelo relacional 

Introducción
Presentamos los elementos básicos de normalización y sus cuatro primeras formas. Destacamos que un modelo
de datos estará normalizado cuando hayamos descompuesto sus tablas en tablas más simples que cumplan las
tres primeras formas normales.

1. Definición
La normalización es una técnica para diseñar la estructura lógica de los datos de un sistema de información en el
modelo relacional, desarrollada por E. F. Codd en 1972.

Las ventajas de la normalización son las siguientes: 

Evita anomalías en inserciones, modificaciones y borrados. 


Mejora la independencia de datos. 
No establece restricciones artificiales en la estructura de los datos. 

En el proceso de normalización se debe ir comprobando que cada relación (tabla) cumple una serie de reglas que
se basan en la clave primaria y las dependencias funcionales. Cada regla que se cumple aumenta el grado de
normalización. Si una regla no se cumple, la relación se debe descomponer en varias relaciones que sí la
cumplan. 

La normalización se lleva a cabo en una serie de pasos. Cada paso corresponde a una forma normal que tiene
unas propiedades. Conforme se va avanzando en la normalización, las relaciones tienen un formato más estricto
(más fuerte) y, por lo tanto, son menos vulnerables a las anomalías de actualización. 

El modelo relacional solo requiere un conjunto de relaciones en primera forma normal. Las restantes formas
normales son opcionales. Sin embargo, es recomendable llegar, al menos, a la tercera forma normal. 

A un modelo de tablas que cumple con la tercera forma normal se lo denomina como normalizado.

2. Primera forma normal (1FN) 

Una relación está en primera forma normal si y solo si todos sus dominios contienen valores atómicos, es decir,
no hay grupos repetitivos. Si se ve la relación gráficamente como una tabla, estará en 1FN si tiene un solo valor
en la intersección de cada fila con cada columna. 

Si una relación no está en 1FN, hay que eliminar de ella los grupos repetitivos. Un grupo repetitivo será el
atributo o grupo de atributos que tiene múltiples valores para cada dupla de la relación. 

Hay dos formas de eliminar los grupos repetitivos. En la primera, se repiten los atributos con un solo valor para
cada valor del grupo repetitivo. De este modo, se introducen redundancias, ya que se duplican valores, pero estas
redundancias se eliminarán después mediante las restantes formas normales. La segunda forma de eliminar los
grupos repetitivos consiste en poner cada uno de ellos en una relación aparte, heredando la clave primaria de la
relación en la que se encontraban como clave foránea. 

Un conjunto de relaciones se encuentra en 1FN si ninguna de ellas tiene grupos repetitivos.

3. Segunda forma normal (2FN) 


Una relación está en segunda forma normal si y solo si está en 1FN y, además, cada atributo que no está en la
clave primaria es dependiente de la clave primaria completa. 

La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o más atributos. Si una
relación está en 1FN y su clave primaria es simple (tiene un solo atributo), entonces también está en 2FN. Las
relaciones que no están en 2FN pueden sufrir anomalías cuando se realizan actualizaciones. 

Para pasar una relación en 1FN a 2FN hay que eliminar las dependencias parciales de la clave primaria. Para
ello, se eliminan los atributos que son funcionalmente dependientes y se ponen en una nueva relación con una
copia de los atributos de la clave primaria de los que dependen.

Si una relación tiene clave primaria simple o de una sola columna y todos los atributos no clave dependen de la
clave primaria, se puede afirmar que ya está en la 2FN.

4. Tercera forma normal (3FN) 


Una relación está en tercera forma normal si y solo si está en 2FN y, además, cada atributo que no está en la
clave primaria no depende transitivamente de la clave primaria. La dependencia es transitiva si existen las
dependencias A B, en donde A y B son atributos o conjuntos de atributos de una misma relación. 

Aunque las relaciones en 2FN tienen menos redundancias que las relaciones en 1FN, todavía pueden sufrir
anomalías frente a las actualizaciones. Para pasar una relación de 2FN a 3FN hay que eliminar las dependencias
transitivas. Para ello, se eliminan los atributos que dependen transitivamente y se ponen en una nueva relación
con una copia del atributo o atributos no clave de los que dependen.

A modo ilustrativo, se incluye la definición de esta forma normal que es denominada como 3FN ampliada o de
Boyce-Codd.

5. Forma normal de Boyce-Codd (BCFN) 

Una relación está en la forma normal de Boyce-Codd si y solo si todo determinante es una clave candidata. 

La 2FN y la 3FN eliminan las dependencias parciales y las dependencias transitivas de la clave primaria. Pero
este tipo de dependencias todavía pueden existir sobre otras claves candidatas, si estas existen. La BCFN es más
fuerte que la 3FN, por lo tanto, toda relación en BCFN está en 3FN. 

La violación de la BCFN es poco frecuente, ya que se da bajo ciertas condiciones que raramente se presentan. Se
debe comprobar si una relación viola la BCFN si tiene dos o más claves candidatas compuestas que tienen, al
menos, un atributo en común.

Ampliando con ejemplos en cada una de las formas normales 

Según la definición de Date (1998) de la 1FN, una tabla está en 1FN si y solo si es isomorfa a alguna relación,
lo que significa, específicamente, que satisface las siguientes cinco condiciones: 

1. No hay orden de arriba-a-abajo en las filas. 


2. No hay orden de izquierda-a-derecha en las columnas. 
3. No hay filas duplicadas. 
4. Cada intersección de fila-y-columna contiene exactamente un valor del dominio aplicable (y nada más). 
5. Todas las columnas son regulares (es decir, las filas no tienen componentes como ID de fila, ID de objeto
o timestamps ocultos). 

La violación de cualquiera de estas condiciones significaría que la tabla no es estrictamente relacional y, por lo
tanto, no está en 1FN. 

Algunos ejemplos de tablas (o de vistas) que no satisfacen esta definición de 1FN son: 

Una tabla que carece de una clave primaria podría acomodar filas duplicadas, en violación de la condición
3. 
Una vista cuya definición exige que los resultados sean retornados en un orden particular, de modo que el
orden de la fila sea un aspecto intrínseco y significativo de la vista. Esto viola la condición número 1. Las
tuplas en relaciones verdaderas no están ordenadas una con respecto de la otra. 
Una tabla con, por lo menos, un atributo que pueda ser nulo. Un atributo que pueda ser nulo estaría en
violación de la condición 4, que requiere a cada campo contener exactamente un valor de su dominio de
columna. Sin embargo, debe ser observado que este aspecto de la condición 4 es controvertido. Muchos
autores consideran que una tabla está en 1FN si ninguna clave candidata puede contener valores nulos,
pero se aceptan estos para atributos (campos) que no sean clave, según el modelo original de Codd sobre
el modelo relacional, el cual hizo disposición explícita para los nulos. 

Grupos repetidos

La cuarta condición de Date (1998), que expresa lo que la mayoría de la gente piensa como la característica que
define la 1FN, concierne a grupos repetidos. El siguiente ejemplo ilustra cómo un diseño de base de datos puede
incorporar la repetición de grupos, en violación de la 1NF. 

Ejemplo 1: dominios y valores

Un diseñador principiante desea guardar los nombres y los números telefónicos de los clientes. Procede a definir
una tabla de cliente como la que sigue en la tabla 1.

Tabla 1: Tabla clientes

Fuente: Elaboración propia.


En este punto, el diseñador se da cuenta de un requisito que pide guardar múltiples números telefónicos para
algunos clientes. Razona que la manera más simple de hacer esto es permitir que el campo Teléfono contenga
más de un valor en cualquier registro dado: 

Asumiendo, sin embargo, que la columna Teléfono está definida en algún tipo de dominio de número telefónico
(por ejemplo, el dominio de cadenas de 12 caracteres de longitud), la representación de arriba no está en 1FN.
La 1FN (y, para esa materia, el RDBMS) prohíbe a un campo contener más de un valor de su dominio de
columna.

Ejemplo 2: grupos repetidos a través de columnas

El diseñador puede evitar esta restricción definiendo múltiples columnas del número telefónico.

Tabla 2: Tabla clientes para múltiples teléfonos


Fuente: Elaboración propia.
Sin embargo, si se contempla la posibilidad de columnas con valores nulos, el diseño no está en armonía con el
espíritu de 1NF. Teléfono 1, Teléfono 2, y Teléfono 3, comparten exactamente el mismo dominio y exactamente
el mismo significado. El dividir el número de teléfono en tres columnas es artificial y causa problemas lógicos.
Estos problemas incluyen: 

Dificultad en hacer consultas a la tabla. Es difícil contestar preguntas tales como: ¿Qué clientes tienen el
teléfono X? y ¿qué pares de clientes comparten un número de teléfono? 
La imposibilidad de hacer cumplir la unicidad de los enlaces Cliente-a-Teléfono por medio del RDBMS.
Al cliente 789 se le puede dar equivocadamente un valor para el Teléfono 2 qué es exactamente igual que
el valor de su Teléfono 1. 
La restricción de los números de teléfono por cliente a tres. Si viene un cliente con cuatro números de
teléfono, estamos obligados a guardar solamente tres y dejar el cuarto sin guardar. Esto significa que el
diseño de la base de datos está imponiendo restricciones al proceso del negocio, en vez de (como
idealmente debe ser el caso) al revés. 

Ejemplo 3: repetición de grupos dentro de columnas

El diseñador puede, alternativamente, conservar una sola columna de número de teléfono, pero alterando su
dominio, haciendo una cadena de suficiente longitud para acomodar múltiples números telefónicos.

Tabla 3: Tabla clientes, con columna teléfono ampliada

Fuente: Elaboración propia.


Este es el peor diseño de todos y, otra vez, no mantiene el espíritu de la 1NF. El encabezado Teléfono llega a ser
semánticamente difuso, ya que ahora puede representar o un número de teléfono o una lista de números de
teléfono o, de hecho, cualquier cosa. Una consulta como: ¿qué pares de clientes comparten un número
telefónico? es virtualmente imposible de formular, dada la necesidad de proveerse de listas de números
telefónicos, así como números telefónicos individuales. Con este diseño en la RDBMS, son también imposibles
de definir significativas restricciones en números telefónicos.
Ejemplo 4: un diseño conforme con 1FN

Un diseño que está inequívocamente en 1FN hace uso de dos tablas: una tabla de cliente y una tabla de teléfono
del cliente. En este diseño no ocurren grupos repetidos de números telefónicos. En lugar de eso, cada enlace
Cliente-a-Teléfono aparece en su propio registro. 

Tabla 4: Tabla clientes y tabla teléfonosXcliente, cumpliendo con la 1FN


Fuente: Elaboración propia.

Indique si la siguiente afirmación es verdadera o falsa: La primera


forma normal indica que los atributos no clave deben depender
funcionalmente de toda la clave primaria.

Verdadero

Falso

¿Cuál de las formas normales debe ser cumplida por las tablas del
modelo para decir que el modelo está normalizado?

La tercera forma normal

La primera forma normal solamente

La primera forma normal y la segunda forma normal

La forma normal de Boyce-codd


Referencias
Date, C. (1998). Introducción a los sistemas de base de datos. MX: Addison-Wesley.

También podría gustarte