La integridad en informática se refiere a la propiedad que busca y

garantiza que la información sea con completa y exacta según haya sido
generada sin haber sido manipulada o alterada por procesos y/o
personas no autorizadas en un sistema.

Integridad de datos:
En base de datos se debe tener en cuenta los requerimientos y así
mismo complementar y adaptar la base de datos según toda la
información que sea totalmente necesaria, que sea única, que deba
tener características específicas, entre otras características.

La integridad de datos ejerce el control de los procesos para que se
tengan en cuenta las características del sistema. De este modo se
garantiza la calidad de la información en las bases de datos.

Tipos de integridad de datos:
Integridad referencial:
Es el tipo de integridad que protege las relaciones de las tablas, de este
modo no se puede eliminar o modificar filas de las tablas a las que otras
tablas hagan referencias, una forma de poder modificar es teniendo la
acción de cascada.

Se debe tener en cuenta que las referencias que se tengas existan. La
integridad referencial se genera partiendo de FOREIGN KEY y CHECK.

Integridad de dominio:
La integridad de dominio es la que especifica los valores permitidos de
una columna. Es por esto que se debe tener claro los tipos de datos que
se guardará por columna y además especificar si un dato realmente es
obligatorio.

Integridad de entidad:
En la integridad de entidad se define a cada fila como una entidad única
en toda la tabla, es por eso que se debe saber que dato de cada fila
nunca se repetirá en toda la tabla y asignarla restricción como PRIMARY
KEY o UNIQUE.

Integridad transaccional:
La integridad transaccional es una condición necesaria para garantiza la
coherencia de la información en la base de datos.

Cuando ocurren problemas cuando se está haciendo una transacción en
la base de datos, ya sea por caídas del servidor o se vaya luz. Los
motores de bases de datos actuales lo que hacen es grabar la
transacción completa en un área especial, y recién una vez completada
la misma guardan los datos. En caso que la transacción no se complete,
los datos de la misma serán eliminados completamente debiendo
cargarse nuevamente.

Las restricciones de transacción versan sobre el procesamiento y, por
tanto, por sí mismas no son parte del modelo de datos.

Integridad transicional:

En la integridad transicional se define los estados por los que un campo
puede pasar.
Un buen ejemplo es el estado civil de una persona ya que si es soltera
no puede pasar a viuda.

Normalización de base de datos:

La normalización es el proceso mediante el cual se transforman datos
complejos a un conjunto de estructuras de datos más pequeñas, que
además de ser más simples y más estables, son más fáciles de
mantener, se utiliza para mejorar el esquema lógico, de modo que
satisfaga ciertas restricciones que eviten la duplicidad de datos.

Cada regla se define “forma normal”, para la mayoría de las bases de
datos se necesita la tercera forma normal. La normalización es escalable
por lo tanto si se quiere tener la tercera forma normal ya debe haber
tenido en cuenta la primera y la segunda.

Objetivos:
1. Minimizar la redundancia
2. Minimizar el mantenimiento de datos
3. Minimizar el impacto de futuros cambios de datos, e ingreso de
información

Primera forma normal (1FN):
La regla de la Primera Forma Normal establece que las columnas
repetidas deben eliminarse y colocarse en tablas separadas.

Segunda forma normal (2FN):

Todo atributo secundario (aquéllos que no pertenecen a la clave
principal, los que se encuentran fuera de la caja) depende totalmente
(tiene una dependencia funcional total) de la clave completa y, por
tanto, no de una parte de ella.

Esta forma normal sólo se considera si la clave principal es compuesta y,
por tanto, está formada por varios atributos. Si la clave principal de la
tabla está formada por un único atributo, entonces la tabla ya se
encuentra en 2FN.

Tercera forma normal (3FN):

No existen atributos no primarios que son transitivamente dependientes
de cada posible clave de la tabla.

Esto quiere decir que un atributo secundario sólo se debe conocer a
través de la clave principal o claves secundarias de la tabla y no por
medio de otro atributo no primario.

Por tanto, para pasar una tabla que no cumple la tercera forma normal a
3FN, se realiza una proyección y se genera:
1. Una tabla con la clave y todos los atributos no primarios que no
son transitivos
2. Otra tabla con los atributos transitivos y el atributo no primario
(que será la clave de la nueva tabla) por medio del cual mantienen
la transitividad

Cuarta forma normal (4FN):
Para tener la cuarta forma normal las únicas Dependencias
Multivaluadas existentes son las Dependencias Funcionales de la clave
con los atributos secundarios.

Quinta forma normal (5FN):

Toda Dependencia de “JOIN” viene implicada por las claves (PRIMARY
KEY, FOREIGN KEY de la tabla.

Es decir, que la tabla estará en 5FN si es posible generar unas
proyecciones y al realizar su join, los atributos comunes que realizan la
operación (atributos de join) están formados por claves (principal o
secundarias) de la tabla.
Forma de Boyce Codd (FNBC):
Una tabla T está en FNBC si y sólo si las únicas DF elementales son
aquellas en las que la clave principal (y claves secundarias) determinan
un atributo.

La definición engloba la 3FN puesto que las dependencias transitivas
existen por medio de atributos secundarios que no eran clave.

Pero esta definición realmente se creó para evitar los casos anómalos
que no se evitaban con la 3FN y que aparecen cuando a partir de un
atributo no primario se conoce una parte de la clave.

Si la clave está formada por un sólo atributo, la tabla está en FNBC (si ya
estaba en 3FN) como sucedía con la 2FN.

Desnormalización:
La desnormalización es el proceso de invertir las transformaciones
realizadas durante la normalización por razones de rendimiento. Se trata
de un tema que suscita la polémica entre los expertos en bases de
datos. Para algunos el coste es demasiado alto y nunca desnormalizan
mientras otros alaban sus ventajas y acostumbran a desnormalizar.

Los defensores de la normalización siguen este proceso mental: la
normalización crea más tablas al avanzar hacia formas normales más
altas, pero un mayor número de tablas significa un mayor número de
combinaciones al recuperar los datos, lo que contribuye a la
ralentización de las consultas. Por esta razón, para mejorar la velocidad
de determinadas consultas, se pueden anular las ventajas de la
integridad de datos y devolver la estructura de los datos a una forma
normal inferior.