View
36
Download
0
Category
Preview:
Citation preview
Normalización
del esquema
relacional
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.
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)
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)
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)
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.
Recommended