logo informatico sin limites

¿Quieres apoyarnos? Con nuestro Código: "VIVESINLIMITES" tendrás 2 MESES GRATIS en el plan mensual del Hosting SERED QUIERO APOYARTE!

La 4fn busca eliminar los problemas que nacen de malas relaciones, provenientes de las dependencias multivaluadas.

Esta forma no siempre se debe aplicar, porque en la mayoría de los casos no se genera problemas con esta forma.

¿Que debería conocer para entender esta forma?

¿Que Dice la Cuarta Forma Normal?

Las dependencias multivaluadas nacen cuando no se realiza un correcta selección de las determinantes en las dependencias funcionales.

Son problemas bastante graves que pueden llevar a una redundancia excesiva.

A pesar de no ser indispensable para todos los casos, aplicar esta forma cuando es necesario si que puede marcar la diferencia en tu tabla.

Características de la Cuarta Forma Normal

  • La tabla debe estar en 3FN o BCFN
  • No deben existir dependencias multivaluadas

¿Que es una dependencia multivaluadas?

Antes de mostrar un ejemplo, primero debes entender que es una dependencia multivaluadas.

DeterminanteDependiente
XY

En una tabla donde X es la determinante de Y.

XY
X1Y1
X1Y2
X1Y3

Y tiene múltiples valores ( Y1, Y2, Y3) asociados a un mismo dato en X ( X1).

Esa tabla tiene una “especie” de dependencias multivaluadas.

¿Porque digo especie?

Porque con dos columnas no genera ningún problema grave, el inconveniente nace cuando son mínimo 3 columnas.

X ->> Y

X ->> Z

XYZ
X1Y1Z1
X1Y2Z1
X1Y3Z1
X1Y1Z1
X1Y1Z2
X1Y1Z3

Tanto ( Y ) como ( Z ) no tienen una relación entre si, es decir están complemente aislada la una de la otra.

Pero ambas tienen una dependencia multivaluadas con ( X ), generando una redundancia de datos complemente innecesaria de la información.

Ejemplo

Tengo varios puestos venta de hamburguesas, con varios tipos de hamburguesa y varios lugares donde hacemos Delivery…

PuestosTiposDelivery

Claves primarias compuestas: ( Puestos + Tipos + Delivery).

Dependencias funcionales:

  • Puestos ->> Tipos
  • Puestos ->> Delivery

Quiero conocer que tipo de hamburguesa tengo en cada puesto y ademas quiero conocer las zonas de delivery que cada puesto maneja..

Sin embargo, este símbolo ( ->> ) nos advierte que esto tiene una dependencia mutivaluadas. Si rellenamos la tabla nos encontraremos con problemas.

PuestosTiposDelivery
Sin limites burgerPavoNueva York
Sin limites burgerPavoChicago
Sin limites burgerPavoMiami
Tabla: Puestos

Agregamos una hamburguesa de pavo a mi puesto, con sus diferentes zonas de delivery, y todo parece estar correcto.

Pero… ¿ Si agrego otro tipo de hamburguesa que ocurre?

PuestosTiposDelivery
Sin limites burgerPavoNueva York
Sin limites burgerPavoChicago
Sin limites burgerPavoMiami
Sin limites burgerChorizoNueva York
Sin limites burgerChorizoChicago
Sin limites burgerChorizoMiami

Aquí ya empezamos a notar que estamos repitiendo una información que teníamos (delivery).

Entonces cada vez que yo agregue un nuevo tipo de hamburguesa, tendré que agregarla 3 zonas de delivery.

Generando con esto, un exceso de datos innecesarios.

Y si agrego otro punto de delivery, tendré que agregarlo a cada uno de los tipos de hamburguesa ( Una completa locura! )

Tal como lo vimos aquí.

XYZ
X1Y1Z1
X1Y2Z1
X1Y3Z1
X1Y1Z1
X1Y1Z2
X1Y1Z3

Para que tengas una idea de lo caótico que puede ser esto, mira la diferencia de datos entre no normalizada y si normalizada en 4FN.

Sin normalizar4FN
40 tipos de hamburguesas x 3 delivery40 tipos de hamburguesas x 3 delivery
120 filas repetidas43 filas en total
3 veces mas de lo correctocantidad correcta

¿Solución? Separamos.

PuestosTipos
Sin limites burgerPavo
Sin limites burgerChorizo
Puestos

Dependencia funcional correcta: Puestos -> Tipos

PuestosDelivery
Sin limites burgerNew York
Sin limites burgerChicago
Sin limites burgerMiami
Deliverys

Dependencia funcional correcta: Puestos -> Delivery

Con esto ya solucionamos.

En algunos casos estas tablas pueden mezclar tanto dependencias funcionales como dependencias multivaluadas e igualmente esta malo.

Si agrego dueño a la tabla:

PuestosTiposDeliveryDueño
Sin limites burgerPavoNueva YorkTony
Sin limites burgerPavoChicagoTony
Sin limites burgerPavoMiamiTony
Sin limites burgerChorizoNueva YorkTony
Sin limites burgerChorizoChicagoTony
Sin limites burgerChorizoMiamiTony
  • Puestos ->> Tipos
  • Puestos ->> Delivery
  • Puestos -> Dueños

Dueño tiene una dependencia funcional porque cada local en este caso imaginemos que tiene un dueño.

Pero las demás columnas siguen siendo multivaluadas, por lo cual el error sigue vigente..

Ejercicio de 4FN

¿Puede generar problemas con 4Fn?

  • A -> B
  • A -> C

Dime en comentarios en este vídeo de Youtube tu opinión, Sigue bajando para ver las respuestas.

Respuestas del ejercicios

No. la dependencia que tenemos en el ejercicio luce así ( -> ) mientras que una dependencia que cumpla con las características para ser multivaluadas luciría así ( ->> ).

Si acertaste déjame este emoji ☀️ en respuesta a tu comentario de Youtube del vídeo de arriba.

Y si no acertaste déjame este emoji ☘️, y dime porque tomaste esa decisión.

( Si no te salen los emoji déjame tu comentario igual diciendo si acertaste o no)

Ademas te felicito si vienes de Youtube ❤️, porque demuestra que eres una persona curiosa y que quiere mejorar.

El regalo no solamente es el ejercicio… Sino también la información extra que compartí en este post que en el vídeo no la menciono.

Los que navegan mas profundo, son los que descubren tesoros mas valiosos.

Anterior capitulo

Boyce-Codd Forma Normal

Siguiente capitulo

Quinta Forma Normal

Esta web utiliza cookies. Puedes ver nuestra política de cookies, si continuas navegando estás aceptándola.