Você está na página 1de 7

NORMALIZACIÓN

El proceso de normalización de una base de datos consiste en aplicar una serie de reglas
a las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo
relacional.

OBJETIVO DE LA NORMALIZACIÓN

Las bases de datos relacionales se normalizan para:

Evitar la redundancia de los datos.

Evitar problemas de actualización de los datos en las tablas.

Proteger la integridad de los datos.

En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una
tabla bidimensional sea considerada como una relación tiene cumplir con algunas
restricciones:

Cada columna debe tener su nombre único.

No puede haber dos filas iguales. No se permiten los duplicados.

Todos los datos en una columna deben ser del mismo tipo.

TERMINOLOGÍA EQUIVALENTE

relación = tabla o archivo

tupla = registro, fila o renglón

atributo = campo o columna

base de datos = banco de datos

dependencia multivaluada = dependencia multivalor

clave = llave

clave primaria = superclave

clave ajena = clave extranjera o clave foránea


RDBMS = del inglés Relational Data Base Manager System que significa, Sistema
Gestor de Base de Datos Relacionales

TRANSACCIÓN

Una transacción es una interacción con una estructura de datos compleja, compuesta
por varios procesos que se han de aplicar uno después del otro. La transacción debe
realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada
por el resto del sistema hasta que se hayan finalizado todos sus procesos.

PROPIEDADES

Las transacciones deben cumplir cuatro propiedades ACID:

 Atomicidad (Atomicity): es la propiedad que asegura que la operación se ha realizado


o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
 Consistencia (Consistency): es la propiedad que asegura que sólo se empieza
aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no
van a romper la reglas y directrices de integridad de la base de datos.
 Aislamiento (Isolation): es la propiedad que asegura que una operación no puede
afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma
información nunca generará ningún tipo de error.
 Permanencia (Durability): es la propiedad que asegura que una vez realizada la
operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

TRANSACCIONES EN BASES DE DATOS

Una transacción en un Sistema de Gestión de Bases de Datos es un conjunto de órdenes


que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.

Un SGBD se dice transaccional si es capaz de mantener la integridad de los datos,


haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando
por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las
órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de
integridad), como si la orden de la transacción nunca se hubiese realizado. Una
transacción debe contar con ACID (un acrónimo inglés) que quiere decir: Atomicidad,
consistencia, aislamiento y durabilidad.

Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee
los mecanismos para especificar que un conjunto de acciones deben constituir una
transacción.

BEGIN TRAN: Especifica que va a empezar una transacción.

COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con
éxito.

ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base
al punto de integridad.

VISTA

En teoría de bases de datos, una vista es una consulta que se presenta como una tabla
(virtual) a partir de un conjunto de tablas en una base de datos relacional.

Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia
es que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan
mediante una consulta a una vista se presentarán igual que los de una tabla. De hecho,
si no se sabe que se está trabajando con una vista, nada hace suponer que es así. Al
igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos
en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas
condiciones existen restricciones para realizar el resto de las operaciones sobre vistas.

Una vista se especifica a través de una expresión de consulta (una sentencia SELECT)
que la calcula y que puede realizarse sobre una o más tablas. Sobre un conjunto de
tablas relacionales se puede trabajar con un número cualquiera de vistas.

La mayoría de los SGBD soportan la creación y manipulación de vistas. Las vistas se


crean cuando se necesitan hacer varias sentencias para devolver una tabla final.

En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID;
en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a
obtener un mejor rendimiento.
TIPO DE VISTAS
Hay dos tipos de vistas de base de datos: vistas dinámicas y vistas estáticas.

Las vistas dinámicas pueden contener datos de una o dos tablas e incluir
automáticamente todas las columnas de la tabla o tablas especificadas.

Las vistas dinámicas se pueden actualizar dinámicamente cuando se crean o modifican


objetos relacionados u objetos ampliados.

Las vistas estáticas pueden contener datos de varias tablas y las columnas necesarias
de estas tablas se deben especificar en las cláusulas SELECT y WHERE de la vista
estática.

Las vistas dinámicas se pueden actualizar manualmente cuando se crean o modifican


objetos relacionados u objetos ampliados.

Cuando se crea una vista dinámica con datos de dos tablas, debe asegurarse de que
ambas tablas tengan las mismas columnas PRIMARYKEYCOLSEQ o que contengan
índices exclusivos con el mismo nombre de columna en el mismo orden.

En un entorno multitenencia, el administrador global crea vistas de base de datos


iniciales, que forman parte de los datos predeterminados que se proporciona a los
inquilinos. El ID de inquilino debe añadirse a las cláusulas SELECT y WHERE de vistas
estáticas para garantizar que se crean las vistas específicas de inquilino. Las vistas
dinámicas deben utilizarse para crear vistas de base de datos específicas del inquilino
para inquilinos con atributos ampliados. Las vistas estáticas no dan soporte a atributos
ampliados.

Las vistas de base de datos se rellenan en función del objeto en el que se basan. Por
ejemplo, si añade o elimina un atributo del objeto WORKORDER, el atributo se añade o
elimina la vista dinámica basada en el objeto. Cuando modifica un atributo, no todos los
cambios se aplican a la vista de base de datos asociada. Por ejemplo, si cambia el tipo
de datos de un atributo, el cambio se aplicará a la vista de base de datos. No obstante,
si cambia o añade un dominio al valor predeterminado del objeto WORKORDER, el
cambio no se aplicará automáticamente a la vista de base de datos. En su lugar, debe
aplicar este cambio a la vista de base de datos.

Seguridad de los datos:

La seguridad de la información se ocupa de proteger la confidencialidad, disponibilidad


e integridad en base de datos de todos los activos de conocimiento de la organización.
La forma de lograrlo tiene que ver con:

 Confidencialidad: se trata del aspecto más importante de la seguridad de base de


datos. Este objetivo se alcanza a través de La encriptación ha de aplicarse a datos en
reposo, pero también a los datos que, por un motivo u otro, se encuentren en tránsito.

 Integridad en base de datos: busca garantizar que sólo las personas autorizadas a ello
podrán acceder a información privilegiada de la empresa. La integridad de una base
de datos se aplica a través de protocolos de autenticación, políticas internas (como las
que impulsan la seguridad de las contraseñas) y un sistema de control de acceso de
usuario que define los permisos que determinan quién puede acceder a qué datos.

 Disponibilidad: hace referencia a la necesidad de que las bases de datos y toda la


información que contienen estén listas para su uso. Por una parte, se debe garantizar
su funcionalidad y confiabilidad mientras que, por otra, es recomendable planificar los
tiempos de inactividad fuera del horario laboral.

Tipos de ataques a la integridad en base de datos

Está claro que el riesgo implícito en este tipo de acciones maliciosas varía de una
organización a otra, aunque entre los ataques más comunes se encuentran los que
tienen como objetivo:

 Datos personales de clientes, números de tarjetas de crédito y seguridad social.


 Detalles estratégicos del negocio.
 Información financiera de la propia compañía y de sus socios.
 Datos sensibles acerca de los empleados.
Podría decirse que se trata de la mayoría de las bases de datos activas en los directorios
de la empresa, al menos, todas las que, de alguna forma, resultan relevantes para el
negocio. Precisamente por ello, es necesario mantener sólidas prácticas de seguridad
y estrategias de defensa que permitan combatir este tipo de ataques, también en sus
versiones más recientes y sofisticadas, como el phisinig, el spear phising, la inyección
SQL, el DDos, la amenaza persistente avanzada o el ransomware.

Según la Encuesta de Amenazas de Inyección SQL de Ponemon, “el 65% de las


organizaciones encuestadas habían experimentado un exitoso ataque de estas
características en el último año”. Entre las causas que podrían haber motivado la
vulneración de la integridad en base de datos se encuentran la falta de escaneo de
database o su escaneo irregular, un error común en el 47% de los casos.

Se trata de un dato sorprendente, sobre todo si se tiene en cuenta que, el 49% de los
encuestados calificaron el nivel de amenaza de una inyección de SQL en su organización
con una puntuación de 9 o 10.

Sin embargo, no hace falta ir tan lejos, la autenticación débil es la amenaza más común
a la seguridad y la integridad en base de datos. Una misma contraseña usada con fines
distintos, compartida entre usuarios, que nunca se actualiza o que resulta obvia facilita
el trabajo de un atacante malintencionado en su misión encaminada a robar la identidad
de un usuario legítimo. Una vez que conoce esos 8, 10 o 12 dígitos, ya tiene acceso a
datos confidenciales, ya tiene a la organización en sus manos.

Mejores prácticas en seguridad que ayudan a garantizar la integridad en base de datos

Una de las formas más efectivas de garantizar la integridad en base de datos es


implementando algunas de las mejores prácticas de seguridad. Entre ellas se
encuentran las siguientes:

 Recurrir al enmascaramiento de datos o permitir a los usuarios acceder a cierta


información sin poder verla ayuda a mantener la confidencialidad incluso en entornos
de pruebas.
 Minimizar los extras y limitarse a los servicios, aplicaciones y funcionalidades que
realmente son necesariospara asegurar el normal funcionamiento de las operaciones
del negocio, de esta forma se reduce el riesgo.

 Asegurarse de que los administradores de la base de datos entiendan la importancia


de garantizar su protección.

 Mantener actualizadas las bases de datos y eliminar los componentes desconocidos.

 Recurrir a herramientas como el análisis de código estático, que ayudan a reducir los
problemas de inyección de SQL, desbordamiento de búfer y problemas de
configuración.

 Hacer copias de seguridad frecuentes y emplear una fuente de alimentación


ininterrumpida o SAI que garantice que un corte de energía no causa la pérdida de
datos.

Você também pode gostar