Beruflich Dokumente
Kultur Dokumente
1. Recuperación:
a) Concepto:
Tipos de Fallos:
Un fallo del computador (caída del sistema).
Un error de la transacción o del sistema.
Errores locales o condiciones de excepción detectadas por la
transacción.
Imposible de control de concurrencia.
Fallo del disco.
Problemas físicos y catástrofes.
c) Concepto de Recuperación: Movimientos de disco a memoria:
Una o mas paginas de disco que contienen los elementos de información que
han de actualizarse se colocan en el bufers de memoria principal y luego se
actualizan en memoria antes de ser escritos otra vez en disco.
Cuando se lee por primera vez una página de disco, se asigna la página a un
búfer y se coloca el bit ensuciado en 0. Solo se reemplaza la información en
el disco, si es que el bit de ensuciado cambia a 1.
Se usa otro bit de reserva que indica en 1 que una página aún no se puede
escribir en disco.
Si el daño no es extenso (no hay daño físico) pero hay inconsistencia como
las descritas en el manejo de transacciones, la estrategia es invertir los
cambios que provocaron la inconsistencia, deshaciendo algunas operaciones.
Para esto, las entradas mantenidas en el diario del sistema on-line (log) se
consultan durante la recuperación.
Se distinguen las siguientes técnicas de recuperación para fallos no
catastróficos.
Actualización diferida:
No actualiza hasta que la transacción lleva a su punto de confirmación. Si una
transacción falla, no hay necesidad de DESHACER porque no se ha
modificado la base de datos. Pero puede ser necesario REHACER.
Actualización inmediata
Paginación en sombra
Algoritmo ARIES
ARIES: conjunto de algoritmos de recuperación usados actualmente en
Sistemas de Base de Datos
Aries utiliza un esquema de robar/no forzar para a escritura basado en tres
conceptos: (1) escritura anticipada, (2) repetición de la historia durante el
rehacer, y (3) anotación en el log de las modificaciones durante el rehacer.
Repetición de la historia: ARIES vuelve a trazar todas las acciones del sistema
de la base de datos antes de la caída para reconstruir el estado de la base de
datos cuando ocurrió la caída. Las transacciones que no estaban confirmadas
en el momento de la caída se deshacen.
Anotación en el log de las modificaciones durante el rehacer evita que ARIES
repita las operaciones de DESHACER realizadas si se produce un fallo durante
la recuperación que obligue reiniciar el proceso de recuperación.
Tabla de transacciones y de páginas
La tabla de transacciones tiene una entrada por cada transacción activa, con el
id de la transacción, el estado de la transacción y el NSD del registro del diario
más reciente.
La tabla de página contiene el ID de la página y la primera entrada del diario que
haya hecho modificación a la página.
ARIES: REHACER
ARIES comienza rehaciendo desde el punto del diario donde sabe que los
cambios previos a las páginas sucias han sido ya aplicados a la base de datos
en disco.
ARIES determina esto encontrando el NSD más pequeño, M, de todas las
páginas sucias de la tabla de página sucias.
ARIES: DESHACER
La tabla de transacciones identifica las transacciones activas que deben
deshacerse.
la fase comienza de atrás hacia adelante deshaciendo las transacciones activas.
2. Concurrencia:
El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS DE
ADMINISTRACION DEBD) permiten que muchas transacciones puedan accesar
a una misma base de datos a la vez.
Bloqueos binarios
Bloqueos de lectura/escritura
Son una ampliación de los bloqueos binarios. Tenemos que el bloqueo puede
tener tres posibles posiciones: libre, bloqueado para lectura, y bloqueado para
escritura. De esta forma, más de una transacción puede tener un mismo
elemento de datos bloqueado para lectura, pero sólo una para escritura. Si una
transacción quiere escribir en ese elemento, habrá de esperar a que el bloqueo
quede libre (cualquiera que sea el tipo de bloqueo), y a continuación, bloquearlo
para escritura. Si quiere leer, sólo tendrá que esperar si el elemento está
bloqueado para escritura. Se dice, por tanto, que el bloqueo de lectura es
compartido y el de escritura exclusivo. Tendremos por tanto tres operaciones;
bloquear_escritura(X), bloquear_lectura(X) y desbloquear(X).
IMPORTANTE:
SERIABILIDAD
No hay conflicto
Cada entidad está constituida por uno o más atributos. Por ejemplo, la entidad
"Alumno" podría tener los atributos: nombre, apellido, año de nacimiento, etc.
3. SEGURIDAD:
DEFINICIÓN DE UN ESQUEMA DE SEGURIDAD
•Chequear permanentemente.
MEDIDAS DE SEGURIDAD
MEDIDAS DE SEGURIDAD
•OBLIGATORIA
•Sirve para imponer seguridad de varios niveles tanto para los usuarios como
para los datos.
La base de datos debe ser protegida contra el fuego, el robo y otras formas de
destrucción.
Los datos deben ser reconstruibles, ya que siempre pueden ocurrir accidentes.
Los datos deben poder ser sometidos a procesos de auditoria.
El sistema debe diseñarse a prueba de intromisiones, no deben poder pasar
por alto los controles.
Ningún sistema puede evitar las intromisiones malintencionadas, pero es
posible hacer que resulte muy difícil eludir los controles.
El sistema debe tener capacidad para verificar que sus acciones han sido
autorizadas.
Las acciones de los usuarios deben ser supervisadas, de modo tal que pueda
descubrirse cualquier acción indebida o errónea.
CARACTERÍSTICAS PRINCIPALES
La Confidencialidad de la información
La Integridad de la información
La Disponibilidad de la información
TIPOS DE USUARIOS
IDENTIFICACIÓN Y AUTENTIFICACIÓN
IDENTIFICACIÓN Y AUTENTIFICACIÓN
•Código y contraseña
•Crear identificadores
MATRIZ DE AUTORIZACIÓN
La seguridad se logra si se cuenta con un mecanismo que limite a los usuarios
a su vista o vistas personales.
La norma es que la base de datos relacionales cuente con dos niveles de
seguridad:
INYECCIÓN SQL
•Hasta aquí todo normal, pero un usuario podría modificar el campo password:
INYECCIÓN SQL
•Como hemos visto la inyección SQL se ha hecho con el fin de burlar la
restricción de acceso, pero se pueden realizar cosas más desastrosas en la BD,
como por ejemplo:
DROP TABLE usuarios
INYECCIÓN SQL
•Como hemos visto la inyección SQL se ha hecho con el fin de burlar la
restricción de acceso, pero se pueden realizar cosas más desastrosas en la BD,
como por ejemplo:
En vez de:
Connectioncon = (acquireConnection) Statementstmt= con.createStatement();
ResultSetrset= stmt.executeQuery("SELECT * FROM usuarios WHERE nombre
= '" + nombreUsuario+ "';");
–El siguiente ejemplo muestra cómo prevenir los ataques de inyección de código
usando el objeto SqlCommand