4. normalización

6
Normalización del esquema relacional

Transcript of 4. normalización

Page 1: 4. normalización

Normalización

del esquema

relacional

Page 2: 4. normalización

Normalización del esquema relacional

1. Normalización

Cuando trabajamos con una base de datos relacional, los esquemas de las distintas relaciones que

la constituyen nos indican que “cada dato tiene su lugar”. Pero, ¿qué ocurre si se modifican estas

estructuras lógicas? . Muchas veces es tan obvio que un dato debe de almacenarse en una de las

relaciones y no en otra que se nos escapa la respuesta a porqué es así.

Concepto:

La teoría de la normalización es en esencia una expresión formal de ideas sencillas con una aplicación muy práctica en el área del diseño de bases de datos, ya que conducen a una correcta elección del esquema de la base de datos.

Es la simplificación de los datos dentro de los campos de registro, este proceso lo considero

importante ya que nos ayuda a dejar datos en estado demasiado simple de una forma entendible

precisa, predecible y manejable. La normalización permite estructurar datos de forma precisa

para representar las relaciones necesarias entre los campos de un registro, también permite la

recuperación de datos sencillos que se pierden al realizar consultas y reportes.

Visión de la Teoría de Normalización

Las bases de datos relacionales se normalizan para:

Evitar la redundancia de los datos.

Evitar problemas de actualización de los datos en las tablas.

Proteger la integridad de los datos.

Hablaremos de las 3 primeras formas de normalización básica para el diseño de una base de

datos.

Page 3: 4. normalización

Normalización del esquema relacional

1.1 PRIMERA FORMA NORMAL (1FN)

Una relación está en primera forma normal si y sólo si todos los dominios simples subyacentes contienen sólo valores atómicos. Un dominio es atómico si se considera que los elementos del dominio son unidades indivisibles La regla de la 1FN establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas.

La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y

colocarse en tablas separadas.

La primera formal normal se definió para prohibir los atributos multivalorados, los atributos

compuestos y sus combinaciones

Cuando un esquema de relación no está en primera forma normal, se divide en otros esquemas de

relación, repartiendo sus atributos entre los resultantes

Se elimina el (los) atributo(s) que viola(n) la 1FN del esquema original

Se coloca el (los) atributo(s) que viola(n) la 1FN en un esquema aparte junto con la

clave principal del esquema de partida

Ejemplo1:

Biblioteca = (cod_libro, titulo, autor, editorial, nombre_lector, fecha_dev)

Resultado de aplicar 1FN:

Biblioteca = (cod_libro, titulo, autor, editorial, apellido_paterno, apellido_materno,

nombres, fecha_dev)

Ejemplo2:

Ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia, numero_item,

descripcion_item, cantidad, precio)

Resultado de aplicar 1FN

Ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia)

Pedidos = (id_pedido, numero_item, descripcion_item, cantidad, precio)

Page 4: 4. normalización

Normalización del esquema relacional

1.2 SEGUNDA FORMA NORMA (2FN)

Una relación está en segunda forma normal si y sólo si está en 1FN y todos los

atributos no clave dependen por completo de cualquier clave candidata.

La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben

eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que

describe a aquellos datos que no dependen de la llave primaria de la tabla para identificarlos.

La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra

manera, todos los a tributos no clave deben depender por completo de la clave primaria.

Ejemplo1:

Biblioteca = (cod_libro, titulo, autor, editorial, apellido_paterno, apellido_materno,

nombres, fecha_dev)

Resultado de aplicar 2FN:

Libro = (cod_libro, titulo, autor, editorial)

Lector = (cod_lector, apellido_paterno, apellido_materno, nombres)

Préstamo = (cod_libro, cod_lector, fecha_dev)

Ejemplo2:

Ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia)

Pedidos = (id_pedido, numero_item, descripcion_item, cantidad, precio)

Resultado de aplicar 2FN

Ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia)

Pedidos = (id_pedido, numero_item, cantidad)

Artículos = (numero_item, descripcion_item, precio)

Page 5: 4. normalización

Normalización del esquema relacional

1.3 TERCERA FORMA NORMA (3FN)

Una relación está en tercera forma normal si y sólo si está en 2FN y además cada

atributo del esquema de relación que no está en la clave primaria sólo depende

funcionalmente de la clave primaria, y no de ningún otro atributo

Una tabla está normalizada en esta forma si todas las columnas que no son llave son

funcionalmente dependientes por completo de la llave primaria y no hay dependencias

transitivas.

Una dependencia transitiva es aquella en la cual existen columnas que no son llave que dependen

de otras columnas que tampoco son llave.

Ejemplo1:

Libro = (cod_libro, titulo, autor, editorial)

Lector = (cod_lector, apellido_paterno, apellido_materno, nombres)

Préstamo = (cod_libro, cod_lector, fecha_dev)

Resultado de aplicar 3FN:

Libro = (cod_libro, titulo)

Autor = (cod_autor, autor)

Editorial = (cod_editorial, editorial)

Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca

de una entidad, también hemos perdido la información acerca de qué autor ha escrito

qué libro y las editoriales correspondientes, por lo que debemos crear otras tablas que

relacionen cada libro con sus autores y editoriales.

Libro_Autor = (cod_libro, cod_autor)

Libro_Editorial = (cod_libro, cod_editorial)

Lector = (Cod_Lector, Apellido_Paterno, Apellido_Materno, Nombres)

Préstamo = (Cod_Libro, Cod_Lector, Fecha_Dev)

Ejemplo2:

Ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia)

Pedidos = (id_pedido, numero_item, cantidad)

Artículos = (numero_item, descripcion_item, precio)

Page 6: 4. normalización

Normalización del esquema relacional

Ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia)

Pedidos = (id_orden, numero_item, cantidad)

Articulos = (numero_item, descripcion_item, precio)

Resultado de aplicar 3FN

Ordenes = (id_orden, fecha, id_cliente)

Clientes = (id_cliente, nombre_cliente, provincia)

Pedidos = (id_orden, numero_item, cantidad)

Articulos = (numero_item, descripcion_item, precio)

1.4 Resumen

En la tabla siguiente se describe brevemente en que consiste cada una de las reglas, y

posteriormente se explican con más detalle.

Regla Descripción

Primera Forma Normal (1FN) Incluye la eliminación de todos los grupos repetidos.

Segunda Forma Normal (2FN) Asegura que todas las columnas que no son llave sean completamente dependientes de la llave primaria.

Tercera Forma Normal (3FN) Elimina cualquier dependencia transitiva. Una dependencia transitiva es aquella en la cual las columnas que no son llave son dependientes de otras columnas que tampoco son llave.