Está en la página 1de 12

Trabajo Práctico - Base de Datos II

1) Defina el concepto de transacciones y cuáles son sus propiedades


deseables. Ejemplos en SQL.
2) ¿Qué es un control de concurrencia? ¿Qué problemas resuelve? Enumere
las técnicas de validación para el control de concurrencia.
3) Seguridad, confiabilidad, escalabilidad y disponibilidad en las bases de datos.
¿En qué casos es más importante cada una de estas deseables
características?
4) Cifrado de datos en las bases de datos.
5) Bases de datos distribuidas. Características. Tipos de base de datos
distribuidas.
6) Data Ware House y minería de datos. Patrones.

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.

Un SGBD debe garantizar cuatro propiedades importantes de las transacciones


para mantener los datos en presencia de accesos concurrentes y fallos del sistema:
1. Los usuarios deben poder considerar la ejecución de cada transacción como
atómica: o se realizan todas las acciones o no se realiza ninguna. Los usuarios no
deben preocuparse del efecto de transacciones incompletas (por ejemplo, cuando
ocurre una caída del sistema).
2. Cada transacción, ejecutada por si misma sin la ejecución concurrente de otras
transacciones, debe preservar la consistencia de la base de datos. El SGBD
supone que se mantiene la consistencia de cada transacción. Garantizar esta
propiedad en una transacción es responsabilidad del usuario.
3. Los usuarios deben poder comprender una transacción sin considerar el efecto
de otras transacciones ejecutándose concurrentemente, incluso si el SGBD
entrelaza las acciones de varias transacciones por motivos de rendimiento. Esta
propiedad se denomina a veces aislamiento: las transacciones están aisladas, o
protegidas, de los efectos de la planificación concurrente de otras transacciones.
4. Una vez que el SGBD informa al usuario de que una transacción se ha
completado satisfactoriamente, sus efectos deben persistir incluso si se produce
una caída del sistema antes de que todos los cambios sean reflejados en disco.
Esta propiedad se denomina durabilidad.
El acrónimo ACID se utiliza a veces para referirse a estas cuatro propiedades de las
transacciones: atomicidad, consistencia, aislamiento y durabilidad.

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;

CREATE TABLE ValueTable (id int);


BEGIN TRANSACTION;
INSERT INTO ValueTable VALUES(1);
INSERT INTO ValueTable VALUES(2);
ROLLBACK;
3
BEGIN WORK
UPDATE Tabla SET dato = '15' WHERE dato2 = 'Manolo'
...
...
...
DELETE FROM dato = 'Manolo'
COMMIT WORK;

2) Control de concurrencia

El objetivo de los métodos de control de concurrencia es garantizar la no


inferencia o la propiedad de aislamiento de transacciones que se ejecutan de
manera concurrente. Los distintos objetivos atacan el problema garantizando
que las transacciones se ejecuten en un plan que sea serializable, es decir, que el
resultado sea equivalente a el resultante de ejecutar un plan en serie.

Resuelve:

 El problema de las actualizaciones perdidas: cuando dos transacciones


concurrentes borran el efecto una de la otra

 Recuperaciones inconsistentes: acceder a información modificada


parcialmente por una transacción de Ian.

Protocolo basado en técnicas de bloqueo

Un bloqueo es una variable asociada a un elemento de datos de la base de datos,


usada para restringir las operaciones que se pueden aplicar sobre él.

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.

Protocolo de bloqueo en dos fases

En él todas las operaciones de bloqueo preceden a la primera operación de


desbloqueo de la transacción. El proceso se puede así dividir en dos fases, la fase
de bloqueo y de desbloqueo. Si se permite la conversión entre bloqueos, las
conversiones de bloqueos de lectura a bloqueos de escritura son en la primera fase
y las de bloqueos de escritura a lectura en la segunda. Su principal ventaja es que
garantiza la seriabilidad, lo que no se consigue usando simplemente bloqueos.

Protocolos de ordenación por marcas de tiempo

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.

Protocolos de control optimistas

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:

•Fase de lectura/ejecución: En ella las transacciones leen cuantos elementos


necesiten de la base de datos, pero realizan las modificaciones en un espacio
particular.

•Fase de certificación/validación: Se verifica que los resultados de la transacción no


violan la seriabilidad. De ser así (el resultado no es correcto), la transacción reinicia
(como las modificaciones eran en un espacio aparte de variables, no hace falta
deshacer. Simplemente se descartan estas variables).

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.

3) Seguridad en la Base de Datos

Hay tres objetivos principales cuando se diseña una aplicación de bases de datos
segura:

1. Secreto. La información no se debe dar a conocer a usuarios no autorizados. Por


ejemplo, no se debe permitir que un alumno examine las notas de otros.

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.

3. Disponibilidad. No se debe impedir el acceso a los usuarios autorizados. Por


ejemplo, se debe permitir que un profesor que lo desee pueda cambiar una nota.

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.

Se puede emplear el mecanismo de las vistas para crear “ventanas” a conjuntos de


datos que resulten adecuadas para grupos de usuarios determinados. Las vistas
nos permiten limitar el acceso a datos delicados ofreciendo acceso a una versión
restringida (definida mediante una vista) de esos datos, más que a los propios datos.
7
Disponibilidad en la Base de Datos

La disponibilidad de los datos en la empresa es muy importante ya que si no están


disponibles, las aplicaciones no pueden funcionar y la empresa pierde dinero. Es
trabajo del DBA que la Base de Datos este en línea y operando.

La disponibilidad es la condición donde un recurso dado puede ser accedido por


sus consumidores o usuarios. Si el rendimiento de una Base de Datos es demasiado
pobre que los usuarios no pueden realizar su trabajo, entonces la Base de Datos no
está disponible.

La disponibilidad tiene 4 Componentes:

Manejabilidad: la capacidad de crear y mantener un entorno eficaz, que


proporciona servicio a los usuarios.

Recuperabilidad: la capacidad para restablecer el servicio en caso de un fallo o


error de componente.

Fiabilidad: la capacidad para prestar el servicio en los niveles especificados por un


período determinado.

Facilidad de servicio: la capacidad de determinar la existencia de problemas,


diagnosticar su causa (s), y la reparación de los problemas.

Confiabilidad en la Base de Datos

Un sistema de manejo de bases de datos confiable es aquel que puede continua


procesando las solicitudes de usuario aun cuando el sistema sobre el que opera no
es confiable.

En otras palabras, aun cuando los componentes de un sistema distribuido fallen, un


sistema de manejo de bases de datos confiable debe seguir ejecutando las
solicitudes de usuario sin violar la consistencia de la base de datos.

Escalabilidad en la bases de datos

La escalabilidad es la propiedad deseable que indica su habilidad para reaccionar y


adaptarse sin perder calidad, o bien manejar el crecimiento continuo de trabajo de
8
manera fluida, o bien para estar preparado para hacerse más grande sin perder
calidad en los servicios ofrecidos.

4) El cifrado es una operación criptográfica reversible que transforma datos


significativos sin proteger, conocidos como texto sin formato, en datos ilegibles,
cifrados, conocido como texto cifrado, utilizando una clave llamada clave de cifrado.
Los datos significativos son el elemento fundamental, ya que por el carácter
confidencial de los datos almacenados en las bases de datos, las organizaciones
se ven forzadas a implementar controles cada vez más sofisticados para protegerlas
uno de estos controles es el cifrado.

Sin embargo, la preocupación por la degradación del rendimiento, el soporte de


aplicaciones y la forma de administrar las implementaciones de cifrado en bases de
datos grandes originan barreras que hacen difícil adoptar esta importante medida
de seguridad.

Si todas las aplicaciones de la organización comparten el mismo motor de base de


datos local y la base de datos está cifrada, al conectar cualquier aplicación o al leer
y escribir en un archivo de la base de datos, ésta deberá proporcionar la clave de
cifrado.
Para usar una base de datos cifrada debe crearse como cifrada, esto es una opción
que existe en la mayoría de los sistemas gestores de bases de datos. Las técnicas
para trabajar con una base de datos cifrada son las mismas que para el trabajo con
una base de datos no cifrada. En concreto, la ejecución de declaraciones SQL es la
misma independientemente de si una base de datos se encuentra o no cifrada.

Claves de cifrado seguras

El proceso de creación de una base de datos cifrada es similar al proceso de


creación de una base de datos no cifrada, la diferencia básica es el uso de una clave
de cifrado. Esta clave debe ser generada antes de crear la base de datos mediante
un proceso que asegure el nivel más elevado posible de privacidad y seguridad para
los datos de los usuarios. El método deberá solicitarle al usuario una contraseña

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.

Consideraciones para el uso del cifrado en una base de datos

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.

Tanto la aplicación como la técnica utilizada para generar la clave de cifrado se


pueden diseñar según el nivel de privacidad que se desee. Las siguientes
sugerencias se pueden aplicar para distintos niveles de privacidad de 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.

Recomendaciones generales sobre cifrado en las bases de datos

Un sistema sólo es seguro en su vínculo más débil.

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.

No ponga nunca una clave de cifrado en el código fuente, es preferible mantenerlas


en un recurso externo.

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

También podría gustarte