Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Practico Base de Datos II
Trabajo Practico Base de Datos II
1
1) Una transacción es una ejecución de un programa de usuario en un SGBD
(Sistema de Gestión de Base de Datos), visto por el SGBD como una serie de
operaciones de lectura y escritura. Es decir, son un conjunto de instrucciones SQL
que tienen la cualidad de ejecutarse como una unidad, es decir, o se ejecutan todas
o no se ejecuta ninguna. Si una transacción tiene éxito, todas las modificaciones de
los datos realizados durante la transacción se guardan en la base de datos. Si una
transacción contiene errores los cambios no se guardaran en la base de datos.
2
Ejemplo en SQL
Los ejemplos más básicos de transacciones son la inserción, borrado y
actualización de los datos de una tabla. Aunque puede generarse una transacción
más compleja que contenga una serie de pasos con respecto a información
particular de la base de datos.
Para dirigir el flujo de una transacción con efectividad y mantener sus propiedades,
existen las siguientes sentencias en SQL. La sintaxis y etiqueta dependen de cada
gestor de bases de datos:
BEGIN: Iniciar una transacción con el uso de la sentencia BEGIN.
COMMIT: guarda los cambios. Si se quieren los cambios a la base de datos,
completar la transacción con el uso de la sentencia COMMIT. Únicamente cuando
se procesa un COMMIT los cambios hechos por las consultas serán permanentes.
ROLLBACK: deshace los cambios. Si sucede algún problema, podemos hacer uso
de la sentencia ROLLBACK para cancelar los cambios que han sido realizados por
las consultas que han sido ejecutadas hasta el momento.
SAVEPOINT: crea un punto de restauración dentro de un conjunto de transacciones
para luego deshacer los cambios si es necesario.
Regularmente las transacciones comienzan con un BEGIN WORK/TRANSACTION
y finalizan con un COMMIT/ COMMIT WORK o ROLLBACK/ ROLLBACK WORK.
BEGIN TRANSACTION;
DELETE FROM HumanResources.JobCandidate
WHERE JobCandidateID = 13;
COMMIT;
2) Control de concurrencia
Resuelve:
Protocolos binarios
4
Se caracterizan por tener dos valores posibles, bloqueados y desbloqueados. Cada
elemento dela base de datos tiene un bloqueo distinto. El bloqueo señala si una
transacción está operando sobre el elemento o está libre para que se pueda operar
con él. De esta manera se impide que dos o más transacciones estén operando
sobre un mismo elemento al mismo tiempo. La implementación de un bloqueo
binario es simple; basta con un vector de la siguiente forma: <referencia al dato
bloqueado, booleano, referencia a la transacción que lo bloquea> donde el booleano
es en sí el indicador del bloqueo.
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.
5
Una marca de tiempo es un identificador único que el SGBD crea para identificar
una transacción, basada en la mayoría de los casos en el momento en que se
inician. Se pueden, por tanto, ordenar las transacciones cronológicamente según su
marca de tiempo. Este método se basa en marcas de tiempo para ordenar las
transacciones. El plan resultante de esta ordenación será equivalente a un plan en
serie con las transacciones ordenadas según sus propias marcas de tiempo.
El método consiste en dejar al sistema organizar las operaciones libremente, pero
al ejecutar una operación, verifica que esta no contradice el orden de seriabilidad.
Los protocolos de control optimistas presuponen que todas las operaciones se van
a efectuar en orden correcto, y por tanto no controlan la validez de las operaciones
realizadas hasta que la transacción termina, en la llamada fase de validación o
certificación. La forma de implementar estos protocolos para este contexto
(transacciones que han de ser confirmadas) es hacer que las transacciones lleven
a cabo sus modificaciones en un espacio particular, al que se han copiado
previamente los datos que la transacción vaya a necesitar. Si al final del proceso,
los datos resultantes son válidos, se pasan del espacio particular a la base de
datos. Con esto tenemos que los protocolos de bloqueo optimistas tienen tres
fases bien diferenciadas:
6
•Fase de escritura/confirmación: Llegados a este punto, aplicamos las
actualizaciones de la transacción a la base de datos. Este protocolo necesita de
marcas de tiempo de transacciones, guardar las horas de inicio y terminación de al
menos una de las tres fases y además requiere que el sistema mantenga control
sobre los conjuntos de lectura y escritura de cada transacción.
Hay tres objetivos principales cuando se diseña una aplicación de bases de datos
segura:
2. Integridad. Solo se debe permitir modificar los datos a los usuarios autorizados.
Por ejemplo, puede que se permita que los alumnos vean sus notas, pero
(evidentemente) no que las modifiquen.
Para alcanzar estos objetivos hay que desarrollar una política de seguridad clara y
consistente que describa las medidas de seguridad que se deban aplicar. En
concreto hay que determinar la parte de los datos que se debe proteger y los
usuarios que tendrán acceso a cada parte de los datos. A continuación hay que
utilizar el mecanismo de seguridad del SGBD y del sistema operativo subyacente,
así como mecanismos externos como la protección de los accesos a los edificios,
para hacer que se cumpla esa política.
Las vistas son una herramienta valiosa para el cumplimiento de las políticas de
seguridad.
9
que sirva para crear esta clave de cifrado. Deberá utilizarse un método que
compruebe que la contraseña introducida por el usuario cumple con los requisitos
de longitud de contraseña. Se recomienda que la contraseña tenga entre 8 y 32
caracteres. Debe mezclar letras mayúsculas, minúsculas y al menos un número o
carácter especial. El usuario crea la base de datos cifrada indicando la clave de
cifrado en el proceso, posteriormente, para conectarse y utilizarla deberá ingresar
dicha clave.
La forma en que se plantea el uso del cifrado representa una parte importante en el
control del nivel de privacidad de la información de una base de datos. Por ejemplo,
si se está utilizando una base de datos cifrada para proteger la privacidad, incluso
contra otros usuarios en el mismo equipo, la base de datos de cada usuario necesita
su propia clave de cifrado.
Para obtener la máxima seguridad, la aplicación puede generar una clave a partir
de una contraseña introducida por el usuario. Si la clave de cifrado se basa en una
contraseña, se garantiza que un usuario que pudiera suplantar la cuenta de otro en
el equipo, no tenga posibilidad de acceder a los datos.
Para que cualquier usuario con acceso a la aplicación pueda consultar una base de
datos en cualquier equipo, utilice una sola clave que esté disponible en todas las
instancias de la aplicación.
Para que un usuario pueda acceder a una base de datos desde cualquier equipo,
genere la clave de cifrado a partir de una contraseña de usuario. No utilice algún
valor que esté asociado a un equipo concreto.
10
Si usa una contraseña introducida por el usuario para generar una clave de cifrado,
tenga en cuenta la aplicación de restricciones de complejidad y longitud mínima en
las contraseñas.
Una contraseña corta que sólo utilice caracteres básicos se puede adivinar
rápidamente.
Tenga en cuenta que la técnica empleada para generar una clave de cifrado puede
ser descubierta fácilmente por un atacante.
Si opta por cifrar toda la base de datos, se cifrarán todos los objetos utilizados por
el sistema gestor de base de datos junto con los datos de los usuarios.
El sistema de base de datos retiene algunos datos en memoria interna para mejorar
el rendimiento de lectura y escritura en las transacciones y estos datos no están
cifrados.
11
Bibliografía
https://msdn.microsoft.com/en-us/library/ms188929.aspx
http://aprendiendo-software.blogspot.com.ar/2012/01/transaccion-base-de-
datos.html
Ramakrishnan, Gehrke. (2007). Sistemas de Gestion de Bases de Datos Tercera
edición. España:Mc Graw Hill
http://es.slideshare.net/utnvirtualcuicyt/disponibilidad-de-datos (disponibilidad)
12