Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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:
Todos los datos en una columna deben ser del mismo tipo.
TERMINOLOGÍA EQUIVALENTE
clave = llave
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
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.
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.
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 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.
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.
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.
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.
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:
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.
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.