Existen 3 niveles de Normalización que deben respetarse para poder decir que nuestra Base de Datos, se encuentra NORMALIZADA, es decir, que cumple con los requisitos naturales para funcionar optimamente y no perjudicar las Performance por mala arquitectura.Estas 3 reglas de Normalización se las conoce como las 3 FORMAS NORMALES.
La Primera Forma Normal Esta primera Forma Normal, nos lleva a no repetir datos en nuestras tablas. Los famosos maestro – detalle, deben aplicarse a la estructura de la tabla.Si nuestra tabla de ventas repite una y otra vez (por cada venta) , el nombre, el domicilio y otros datos del Cliente, es que no hemos aplicado esta Normalizaciòn.Si tenemos una tabla clientes, en la tabla ventas, solo deberia figurar el codigo del cliente, para que el resto de los datos se puedan referenciar automaticamente sin problemas y sin duplicar información.Lo mismo ocurriria en una tabla de detalle de ventas, si por cada item vendido colocamos el detalle del producto, con su descripción , medidas, etc…Tendriamos un desaprovechamiento de espacio y recursos muy grande. Para ello, tendremos nuestra tabla maestra de Productos y con solo grabar el código de dicho producto en nuestra tabla de ventas, será suficiente.
La Segunda Forma Normal (Si o si debe estar previamente aplicada la Primera Forma Normal) La Segunda Forma Normal nos habla de que cada columna de la tabla debe depender de la clave.Esto significa que todo un registro debe depender únicamente de la clave principal, si tuvieramos alguna columna que se repite a lo largo de todos los registros, dichos datos deberian atomizarse en una nueva tabla.Veamos un ejemplo
VentaID | ItemID | FechaVenta | ClienteVenta | ProductoId | Cantidad |
1 | 1 | 01/12/2007 | 2 | 2334 | 10 |
1 | 2 | 01/12/2007 | 2 | 3333 | 2 |
1 | 3 | 01/12/2007 | 2 | 66643 | 34 |
1 | 4 | 01/12/2007 | 2 | 21 | 3 |
2 | 1 | 02/12/2007 | 5 | 3566 | 6 |
Ahi tenemos un claro problema !!!Acaso no se busca NO REPETIR DATOS ?Si toda una venta tendrá el mismo numero de Cliente y la misma Fecha…Por que no crear una Tabla de MAESTRO DE VENTAS y que contenga esos 2 datos ?Es evidente que la columna ClienteVenta y FechaVenta se repetirán por cada venta realizada.Es por ello que proponemos el siguiente esquema
VentaID | ItemID | ProductoId | Cantidad |
1 | 1 | 2334 | 10 |
1 | 2 | 3333 | 2 |
1 | 3 | 66643 | 34 |
1 | 4 | 21 | 3 |
2 | 1 | 3566 | 6 |
Y ahora nuestra nueva tabla maestra
VentaId | FechaVenta | ClienteVenta |
1 | 01/12/2007 | 2 |
2 | 02/12/2007 | 5 |
Entonces, nuestra 2da Forma Normal nos habla de que cada columna de una tabla debe depender de toda la clave y no constituir un dato unico para cada grupo de registros.
La Tercera Forma Normal En realidad si nos guiamos en el ejemplo de esta nota, ya no quedaria normalización por aplicar y podriamos decir que nuestro ejemplo cumple con las 3 formas normales, ya que la 3ra Forma Normal nos habla de que :
- Ninguna Columna puede depender de una columna que no tenga una clave
- No puede haber datos derivados
En el 2do ejemplo hemos descubierto campos que dependian de la clave principal (VentaID) y que podrian incluirse en una tabla maestra.Pero supongamos un ejemplo donde ciertas columnas no dependen de la clave principal y si dependen de una columna de nuestra tabla.
VentaID | ItemID | ProductoID | Cantidad | Descripcion | Medida | Proveedor |
1 | 1 | 3455 | 12 | Impresora HP LJ8000 | 122cm | 1 |
1 | 2 | 2455 | 34 | Scanner HP A3555 | 33cm | 1 |
2 | 1 | 5444 | 21 | Mouse HP Wireless | – | 1 |
Esto es muy normal encontrar en bases mal normalizadas.Vemos que los campos DESCRIPCION , MEDIDA y PROVEEDOR no dependen de VENTAID y es por ello que no deberian estar dentro de la tabla de detalle de ventas, ya que dependen de PRODUCTOID.Aqui no se trata ya de eliminar grupos repedidos de datos (1ra Forma Normal) sino que ante la inclusion de una clave perteneciente a otra tabla, cualquier campo que sea subordinado de dicha clave debe estar en otra tabla y no en nuestra tabla detalle.
ConclusiónFinalmente si tomamos en cuenta que una tabla de detalle de venta (item x item) puede contener un volumen de millones de registros, al haberle aplicado las 3 formas normales nos estaremos ahorrando varios Gigabytes de tamaño en dicha tabla y por supuesto mejorado notablemente la performance.
Muy bueno! me sirvio! Graciassssss
muy bueno tu aporte
Buena explicación en lenguaje sencillo.
trae muncha informacion que sirve gracias
anita que haces aqui k
Muy simple, por decir simple quiero decir que debido a su simplicidad es facil de comprender gracias alos ejemplos
EXCELENTE APORTE CLARO FACIL Y RAPDO
si facil y muy rapido 🙂 y eso que no lo eh leido jojojo xD
QUE NO ES RAPIDO? ESCRIBE BIEN AMIGO =)
la tercera forma esta un poco complicada de entender.
entender o tu eres quien no entiendes =)
Callate
gracias por todo, de verdad que me es muy importante, pero como se aplicaria eso a una base de datos de un sitio web donde se refiere a tablas de buscador, de contenido y esas cosas
YA ACABE MI TRABAJO POR LO QUE DICE AQUI JJAJAJAJAAJA UN POCO RARO JAJAJA PERO AQUI ESTA
am esta xida la inf. y pues si me siervio
broma estas mamadas ke son una mierda de informacion……
JAJAJAJAAJ Y TU QUE SERAS
Gracias, muy bien explicado, reformularia la explicacion de la 3NF solo eso un abrazo desde chile
felicitaciones 100% entendible tu explicacion es una de las mejores explicaciones.. con un lenguaje entendible por cualquier persona aunque no se a informatico
me gusto mucho la explicacion fue del 1
muy explicativo gracias
Gracias me sirvio de mucho para aclarar unas dudas
gracias
me sirvio de tarea
me sirvio mucho
(y)
puedes ayudarme para una factura en las tres formas
super bien!!!!
necesito problemas que pueden presentarse forma de normalizacion
buen proyecto
Mejor explicado no puede estar, gracias por la contribución .
Muy buena explicación.
Buena explicación. Gracias.
pvto :v
10/10 maquinola, lo guardo y directo a favoritos, me suscribo y lo comparto con mis contactos sigue asi maquinola!!!11!!!1! :v
gracias!!
muy interesante
POrque es tan dificil normalizar?
etsta bueno
Lo necesariamente entendible. Gracias!
una pregunta … espero que alguien que sepa me ayude estaba buscando y en otros lados me sale que esxisten 5 y aqui solamnete ponen tres y esa es mi pregunta(NO DIGO QUE ESTO ESTE MAL) o es que las otras dos no se utulizan, ademas la informacion de otros lados es de como una decada atras
Muy claro y al grano, enhorabuena, ahora bien, son cinco formas normales sin contar la FNBC, si alguna vez te animas te invito que también las expliques porque son infumables no, lo siguientes 😀
Gracias
-woooo q chilera informacion gracias
muy buen aporte, realmente me ayudo a comprender la tematica
no pos wuau, que buena info, a poco no karnal?