otros modelos de datos, tenemos distintas alternativas, es decir, podemos obtener diferentes
esquemas relacionales y no todos son equivalentes, ya que algunos van a representar la
realidad mejor que otros.
Es necesario conocer qué propiedades debe tener un esquema relacional para
representar adecuadamente una realidad y cuáles son los problemas que se pueden derivar de
un diseño inadecuado.
La teoría de la Normalización es un método objetivo y riguroso que se aplica en el
diseño de bases de datos relacionales.
Cuando estudiamos la estructura del modelo relacional, nos dimos cuenta que la base
de datos puede representarse por medio de un conjunto de objetos (dominios y relaciones) y
de un conjunto de reglas de integridad.
El esquema relacional puede obtenerse de dos formas distintas:
Directamente a partir de la observación de nuestro universo del discurso, en donde
especificamos conjuntos de atributos, relaciones y restricciones que corresponden a los
observados en el mundo real.
Realizando el proceso de diseño en dos fases, primero el diseño conceptual (E/R)
obteniendo el esquema conceptual y posteriormente transformar éste a un esquema
relacional, siguiendo algunas reglas generales, que fueron dadas anteriormente.
Algunos problemas que se pueden presentar son:
Incapacidad para almacenar ciertos hechos
Redundancias y por tanto, posibilidad de incoherencias
Ambigüedades
Pérdida de información (aparición de tuplas espúreas)
Pérdida de dependencias funcionales, es decir, ciertas restricciones de integridad que dan
lugar a interdependencias entre los datos.
Aparición en la BD de estados no válidos, es decir, anomalías de inserción, borrado y
modificación.
En conclusión el esquema relacional obtenido debe ser analizado para comprobar que no
presenta los problemas anteriores.
Analicemos la siguiente relación: ESCRIBE
Esta relación almacena datos de autores y de libros.
Algunos problemas son:
Redundancia, ya que la nacionalidad del autor se repite por cada ocurrencia del mismo.
Lo mismo sucede cuando un libro tiene mas de un autor, se repite la editorial y el año de
publicación.
Anomalías de modificación, es fácil cambiar el nombre de una editorial en una tupla sin
modificar el resto de las que corresponden al mismo libro, lo que da lugar a incoherencias.
Anomalías de inserción, ya que si queremos introducir información de algún autor, del
que no hubiera ningún libro en la base datos, no sería posible, ya que cod_libro es parte de
la clave primaria de la relación (regla de integridad de la entidad). La inserción de un
libro, que tiene dos autores obliga a insertar dos tuplas en la relación.
Anomalías de borrado, ya que si queremos eliminar un cierto libro, deberíamos perder los
datos de su autor y viceversa.
En los casos anteriores, se deja en manos del usuario manejar la integridad de la base de
datos. Lo anterior sucede pues no se cumple un hecho básico de todo diseño:
"hechos distintos, deben almacenarse en objetos distintos"
Una forma de evitar este tipo de problemas consiste en seguir la metodología
propuesta en el curso, es decir, un riguroso diseño conceptual y un traspaso de éste al modelo
relacional. Sin embargo, ante posibles dudas respecto a si un esquema relacional está correcto,
aplicaremos a dicho esquema un método formal de análisis, que permita analizar errores y
generar esquemas correctos. Esta es la teoría de la normalización.
En el ejemplo anterior, el conjunto de las siguientes relaciones no presenta estos
problemas:
LIBRO( cod_libro, titulo, editorial, año )
AUTOR( nombre, nacionalidad )
ESCRIBE( cod_libro, nombre )
La normalización introduce una técnica formal para diseñar bases de datos
relacionales, y permite mecanizar parte del proceso al disponer de algoritmos de
normalización.
Una observación importante, es que las anomalías antes descritas se producen en
procesos de actualización y no en procesos de consulta. La normalización penaliza las
consultas, al disminuir la eficiencia, ya que la normalización aumenta el número de relaciones
presentes en la base de datos, por lo que una determinada consulta puede llevar consigo el
acceso a varias tablas, lo que aumenta el costo de ésta.