Você está na página 1de 5

Anlisis: Qu tabla ha de ser la

maestra?

A la hora de establecer la relacin entre dos tablas, nos ayudar mucho hacer uso de un
par de frases para saber cmo ha de establecerse la relacin entre ellas, es decir, cul ser
maestra de cual.

Pongamos como ejemplo dos tablas que han de tener relacin entre s en una aplicacin
de gestin: Facturas y Empresas.

Para establecer de qu modo ha de establecerse la relacin entre ellas, diremos las frases
siguientes:

1. Las facturas de la empresa.


2. Las empresas de la factura.

Pensando en relaciones de 1 a n, en las frases el singular representar 1 y el plural n.

La fase 1 tiene sentido, ya que a una misma empresa se le podr emitir ms de una factura.
Implica una relacin de 1 (desde la empresa) a n ( a las facturas).

La frase 2, por el contrario, no tiene sentido, ya que no es posible emitir una misma factura
a distintas Empresas. Esta implicara una relacin de 1 (desde la factura) a n (a las
empresas), cuando la relacin es este sentido es de 1 a 1 (una factura solamente puede
emitirse a una empresa).

Esto quiere decir que la relacin entre Empresas y Facturas ser una relacin de 1 a n
desde Empresas a Facturas y de 1 a 1 desde Facturas a Empresas; por lo tanto, la tabla
Empresas ser maestra de Facturas.

A la hora de plasmarlo en nuestro proyecto de datos, lo que haremos ser crear, en primer
lugar, la tabla de Empresas y a continuacin la de Facturas. En el ltimo paso del asistente
de creacin de la tabla de Facturas indicaremos que Empresas ser maestra de la tabla,
para ello se activar la casilla de verificacin que se muestra junto al nombre de la tabla:

Una vez finalizado el asistente, veremos que en la tabla de Facturas se ha creado el enlace
a la de Empresas (que es lo que llamamos enlace singular, pues representa un enlace de
1 a 1 desde la factura a la empresa) y un ndice por dicho campo:
Y en la tabla de Empresas, ha creado un enlace plural a la tabla de Facturas, que representa
la relacin 1 a n (empresa-facturas):

As es como se representa grficamente esta relacin: La flecha azul representa el enlace


singular y la roja el plural:

Una de las fallas principales por las que pasamos los desarrolladores al momento de implementar o
crear Bases de Datos en SQL server 2008 o en cualquier motor de BDs es la falta de normalizacin
en las mismas.

Esto conlleva, que normalmente creemos campos duplicados dentro de las tablas, provocando as
que nuestras bases de datos sean extremadamente complejas, ocupen mayor espacio y recursos,
adems de crearnos un montn de problemas a la hora de actualizar, hacer consultas, realizar
mantenimiento, etc.

Si normalizamos nuestras Bases de Datos podemos prevenir muchos de estos problemas, por
ejemplo:
Supongamos que tenemos una compaa en la que vendemos varios tipos de productos a nuestros
clientes, la informacin de cada uno de nuestros clientes la tenemos almacenada en una Base de
Datos en la cual incluimos el nombre, apellido, direccin, telfono, email , ciudad y pas.

En esta base de datos no normalizada hemos creado una simple tabla, lo cual nos podra traer como
consecuencia algunos problemas cuando tratemos de hacer consultas o al intentar modificar los
datos existentes.

En este artculo slo hablar de las principales formas normales en modo de introduccin, ya que
es un tema un poco extenso y por eso he decidido dividirlo en cuatro (4) partes, Introduccin,
Primera Forma Normal, Segunda Forma Normal y la ltima ser Tercera Forma Normal

Como hemos comentado ms arriba estos problemas podran ser:

Duplicacin de Datos:

En una base de datos no normalizada, la informacin de un cliente puede ser ingresada cada vez
que l haga una compra, almacenando los datos del cliente en una tabla Compras, esto trae como
resultado la duplicidad de trabajo, adems que es muy difcil que la informacin sea ingresada de la
misma manera cada vez, por ejemplo revisemos las distintas maneras que un empleado puede
ingresar un nombre (Marcos Gonzales), o una ciudad por ejemplo San Francisco (SF, San Fran, SFO),
etc

Una base de datos normalizada previene precisamente la duplicidad de trabajo y la asociacin de


los tipos.

Problemas de actualizacin:

Supongamos que la direccin de uno de nuestros clientes debe ser actualizada porque se ha mudado
de domicilio, pero los datos del mismo han sido ingresados en mltiples lugares dentro de nuestra
base de datos, esto provocara que la actualizacin debera hacerse en los mltiples lugares donde
haya sido ingresada la data, si la actualizacin no la hacemos en esos mltiples sitios dentro de
nuestra base de datos, entonces la informacin llegara a ser inconsistente, es decir sera correcta
en algunos lugares e incorrecta en otros.

Problemas de Consulta:

Los datos en una base de datos que no est normalizada son difciles de revisar, por ejemplo si en
la tabla de pedidos, por cada compra que haga nuestro cliente se ingresan los datos del mismo, y el
cliente hace varias compras en el transcurso del mes, tendremos una gran cantidad de informacin
repetida, si el cliente se muda de domicilio, el nico lugar donde la direccin sera la correcta
correspondera a la ltima compra realizada por l.

Si revisramos las rdenes de compra aleatoriamente la mayora de la informacin sera incorrecta.


Para prevenir precisamente este tipo de fallas, es que se han creado ocho (8) formas de
normalizacin, siendo las ms comunes las tres primeras que son:

Primera forma normal: La tabla no debe tener grupos repetidos, y cada una de las columnas debe
ser Atmica; Atmica no significa que deben ser explosivas, al contrario, Atmica significa que las
columnas deben reducirse al menor valor posible.

Segunda forma normal: Cada columna depende de una clave primaria, la segunda forma normal
aplica slo cuando una tabla tendr una clave primaria compuesta.

Tercera forma normal: Cada columna depende directamente de una clave primaria, esto es
columnas sin clave primaria no sern directamente dependientes de otras columnas sin clave
primaria.

Las formas normales son estrictamente progresivas para cada una de las formas normales
superiores, es decir, la tercera forma normal es estricta con la segunda forma normal, la segunda
forma normal es estricta con la primera, qu decimos con esto? Que si una tabla cumple con la
segunda forma normal, entonces por definicin es tambin una tabla de primera forma normal.

Ms informacin en los siguientes links:

http://deletesql.com/viewtopic.php?f=5&t=20

https://www.youtube.com/watch?v=D600auhfPHI

Você também pode gostar