Está en la página 1de 5

PostgreSQL Normalización

Conozcamos como normalizar nuestra base de datos.

Normalización
fuente #01
La normalización es el proceso de seguir una serie de reglas (formas normales), para
asegurar que nuestras relaciones estén ordenadas y regularizadas con el fin de
mejorar dichas relaciones.
Están enfocadas en evitar la redundancia de datos e inconsistencias en el diseño de
nuestras tablas.

¿Por qué normalizar?


Evitar redundancia de datos
Proteger la integridad de los datos
Evitar problemas de actualiación.

¿Cómo normalizar una DB?

Se siguen en un proceso ordenado las formas normales (FN).


Por ende partimos con 1FN, 2FN... hasta la 6FN.
Lo tradicional es llegar hasta la 3FN. :::

Ejemplo

Convert web pages and HTML files to PDF in your applications with the Pdfcrowd HTML to PDF API Printed with Pdfcrowd.com
1FN (primera forma normal)

Cada campo o atributo deben ser atómicos, es decir debe contener un único
valor.
No pueden haber grupos repetitivos.
Existir una llave primaria.

Solución 1

Todos los datos son atómicos


Pero telefono 1 y telefono 2 es un grupo repetitivo, esto genera:
Pérdida de espacios de memoría.
Limitar a solo dos teléfonos nuesta DB.

Solución 2

Redundancia solución 2

Podemos notar que si un paciente pide otra hora médica genera redundancia
en nuestra tabla. Por ende tenemos que separar en una nueva relación:

Convert web pages and HTML files to PDF in your applications with the Pdfcrowd HTML to PDF API Printed with Pdfcrowd.com
TIP

Antes de pasar a 2FN, conozcamos los tipos de dependencia.

Tipos de dependencia
Dependencia Funcional: Los atributos dependen de la clave primaria.
B y C dependen funcionalmente de A (clave primaria).
Para que exista B debe existir A. y lo mismo para C.

relacion todo sql

Dependencia Transitiva:
B depende funcionalmente de A.
C depende de B, pero como B depende de A, C tiene una dependencia transitiva de A.

relacion todo sql

2FN (segunda forma normal)


Debe cumplir con 1FN.
Cada atributo debe depender de la llave primaria, y no solo una parte de ella.
Los atributos que dependen de manera parcial de la llave primaria deben ser
eliminados o almacenados en una nueva entidad.

Convert web pages and HTML files to PDF in your applications with the Pdfcrowd HTML to PDF API Printed with Pdfcrowd.com
Llave primaria compuesta
compuesta de "idpaciente", "especialidad" y "fecha atencion"
si analizamos "area" esta depende exclusivamente de la especilidad y no del id del
paciente, por ende no cumple con la 2FN (Cada atributo debe depender de la llave
primaria, y no solo una parte de ella.)

relacion todo sql

3FN (tercera forma normal)


Debe cumplir con 2FN.
Eliminar toda dependencia transitiva.

relacion todo sql

¿Desnormalizar?
Dependerá de cada caso, si es más factible duplicar datos que realizar múltiples
relaciones que pueden ser complejas.

Convert web pages and HTML files to PDF in your applications with the Pdfcrowd HTML to PDF API Printed with Pdfcrowd.com
← PostgreSQL JOIN Node JS Fundamentos →

Convert web pages and HTML files to PDF in your applications with the Pdfcrowd HTML to PDF API Printed with Pdfcrowd.com

También podría gustarte