Bueno muy bien vamos a comenzar en esta clase.
Vamos a estar viendo la normalización de tablas dentro de nuestra base de datos.
Lo que tenemos que tener en cuenta primeramente es que existen varias ventajas a la hora de normalizar
nuestras tablas.
Una de las ventajas es que se evitan problemas en la inserción en el borrado y en la modificación de
datos y también si en un futuro se amplían las tablas habrá menos cambios en la estructura de nuestra
base de datos.
También por consiguiente tendremos menos modificaciones en los procesos que se ejecuten a través de
una interface de usuario en la que debamos mostrar determinada información así que vamos a comenzar
con la primera forma normal y esta.
Esta primera forma normal dice que una tabla está en primera forma normal si y sólo si todos sus campos
es decir atributos contienen valores atómicos.
Esto quiere decir que cada atributo de la tabla deberá tener un único valor para cada ocurrencia de
la entidad es decir que no se van a permitir grupos repetitivos qué queremos decir con esto queremos
decir que no serán permitidos registros con valores duplicados.
Por lo tanto lo que tendremos que hacer en ese caso es identificar cada registro de manera unívoca es
decir de una única forma.
Entonces vamos a revisar el ejemplo que tenemos aquí debajo de nuestra tabla de pacientes que está sin
normalizar.
Tenemos el campo nombre tenemos el campo país tenemos el campo y de médico y el campo médico estos campos
los que nos dicen con qué médico se atendió determinado paciente.
Vamos a revisar entonces si esta tabla está en primera forma normal.
Fíjese tenemos el campo nombre donde tenemos los valores Juan Carlos Carlos Andrés Juan Sánchez y Juan
Sánchez también ambos del país México.
Entonces estamos repitiendo dos registros aquí porque el paciente Juan Sánchez se atendió con el médico
López Mónika y estamos repipi en otro registro más abajo con los mismos valores.
Esto puede ocurrir porque podemos tener dos personas que se llama Juan Sánchez del mismo país.
Sí bueno la primera forma normal no permite estas repeticiones por lo tanto vamos a tener que agregar
un identificador de registro para poder identificar cada registro de manera unívoca.
Vamos a bajar un poquito a ver cómo resolvimos este problema.
Bueno la solución fue colocar un campo de pacientes y el cual hemos definido como Pragma ariki y hemos
identificado a cada paciente con una Heydi diferente.
Fíjese el paciente Juan Carlos tiene Leidi uno el paciente Carlos Andrés tiene el Heydi dos y así sucesivamente
a medida que vayamos agregando registros en la tabla cada paciente estará identificado unívocamente
por la columna es decir por el campo y de pacientes si con esto solucionamos la primera forma normal
que nos dice que no podemos tener grupos repetitivos de registro entonces vamos a analizar ahora si
esta tabla está en segunda forma normal.
La segunda forma normal dice que una tabla está en segunda forma normal si y sólo si esta en primera
forma normal.
Por supuesto y todos los atributos no clave dependen por completo de la clave primaria.
Qué quiere decir esto quiere decir que cada atributo no clave debe depender.
Es decir debe tener una relación directa con el campo y de paciente que es en nuestro caso la primarily
entonces vamos a revisar si vamos a revisar el campo nombre depende del campo para el maniquí y de paciente.
Sí depende porque es el paciente desde el nombre del paciente el campo país depende de la maniquí sí
porque es el país donde pertenece el paciente del campo y de médico y depende de campo y de paciente.
No no depende porque es el Heydi del médico que atendió al paciente si no tiene una relación directa
con el campo médico sucede lo mismo.
Sí porque no depende de la clave primaria hay paciente.
Entonces esta tabla no están segunda forma normal.
Por consiguiente tampoco está en Tercera forma normal pero vamos a revisar lo que dice la tercera forma
normal para ver qué campos cumplen esta regla.
Vamos a repasar la tercera forma normal nos dice que una tabla está en Tercera forma normal si sólo
si están de una forma normal y sus atributos no clave son independientes entre sí entonces esto quiere
decir que los valores de los atributos dependen solo de la clave primaria y no dependen de otro atributo
no clave.
Entonces decimos que el valor del atributo no debe depender del valor de otro atributo no clave.
Entonces para revisar si esta tabla no cumple alguna de estas definiciones de la tercera forma normal
si vamos a revisar si por ejemplo el campo médico y el campo médico fíjense que tienen una relación
directa entre entre ellos es decir que vamos a suponer que nosotros queremos cambiar el Heydi del médico
de esta tabla si en vez de uno aquí le tenemos que colocar el valor 2 por ejemplo si el valor 2 corresponde
al médico López Mónika entonces si yo quiérete le coloco 2 pues entonces automáticamente le tengo que
cambiar el nombre del médico tengo que quitar el nombre pero Juan y reemplazar el nombre López Mónica
Bueno a eso apunta la tercera forma normal es decir que no existan atributos no clave que dependan de
otro atributo que tampoco es clave si como es este caso el campo de médico depende del campo médico.
Si uno cambia debo cambiar el otro.
Entonces para ello para que esta tabla también esté en Tercera forma normal debo quitar estos dos campos
de la tabla si estos campos aquí no deben estar y de médico y médico los tenemos que quitar.
Entonces vamos a continuar para ver cómo normalizamos esta tabla de paciente en Segunda y Tercera forma
normal.
Hemos quitado los campos de médico y médico y el campo.
País de paso lo hemos codificado con la nomenclatura internacional de países de tres caracteres.
Esto es para que no tengamos que colocar la descripción completa del país sino que colocamos su codificación
internacional.
Entonces a raíz de esto se desprende que debemos crear una tabla de países también para continuar con
la normalización.
Si la tabla siguiente que se desprende de la normalización es la tabla país si hemos definido un campo
de país ariki si con la codificación internacional de cada país y una descripción del país donde allí
sí tenemos la descripción extendida de cada país también como producto de esta normalización hemos creado
la tabla médico en la cual le hemos asignado un campo médico primarily con los valores que estaban asignados
en la tabla paciente y le hemos colocado un nombre del médico.
Si un campo adicional donde tenemos el nombre y apellido del médico en el cual tenemos el médico Pere
Joan y la doctora López Mónica y también como producto de esta normalización si se desprende la creación
de una tabla que relaciona estos pacientes sí con los médicos es decir qué relación tenemos si habíamos
dicho que en la tabla paciente teníamos los médicos con los que se había atendido ese paciente.
Entonces la relación que tenemos entre ellos dos es un turno entonces a raíz de eso se desprende que
necesitamos crear una tabla de turnos.
Hemos creado la tabla turno paciente e iremos asignado un auditor no para de Mariquita y hemos asignado
los pacientes que teníamos en la tabla de pacientes y con un campo de paciente 1 2 3 4 y el turno también
1 dos tres cuatro.
Y hemos asignado los Heydi médicos que estaban en nuestra tabla de pacientes entonces de esta manera
si tenemos que realizar un cambio en nuestra tabla de turno sí porque por ejemplo decimos que para determinado
turno tenemos que cambiar el Heydi médico si tenemos que colocar otro porque necesitamos realizar una
modificación en ese turno tenemos que hacer aquí es venir la tabla.
Turno paciente y cambiar el Heydi correspondiente al médico que estamos necesitando actualizar y no
necesitamos colocar el nombre del médico o nada por el estilo solo colocamos Leydi médico lo actualizamos
con el correspondiente y listo.
Eso sería todo lo que hay que hacer entonces este proceso de normalización lo que nos permite es tener
las tablas bien determinadas por entidades es decir lo que tenemos en cada una de las tablas son datos
que dependen directamente de su Pragma ariki y de su llave primaria.
Entonces como le decía al comienzo de la clase cualquier reestructuración que surja en un futuro con
este tipo de tablas no vamos a tener ningún problema porque vamos a agregar los campos que sean necesarios
y no habrá mayores problemas en la estructura general de nuestra base de datos.