miércoles, 8 de junio de 2011

3.1.- Administración de transacciones

3.1

A. Administración de transacciones.

Definición de transacciones

Transacción en un sistema de gestión de bases de datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.

Protocolo de bloqueo en dos fases.

Protocolo que asegura la secuencialidad es el protocolo de bloqueo de dos fases. Este protocolo exige que cada transacción realice las peticiones de bloqueo y desbloqueo de dos fases.

1.- Fase de crecimiento.- Una transacción puede obtener bloqueos pero no puede liberarlos.

2.- Fase de decrecimiento.- Una transacción puede liberar bloqueos pero no puede obtener ninguno nuevo.

Inicialmente una transacción está en la fase de crecimiento. La transacción adquiere los bloqueos que necesite. Una vez que la transacción entra un bloqueo, entra en la fase de crecimiento como puede alcanzar peticiones de bloqueo.

Se puede mostrar que el protocolo de bloqueo de dos fases asegura secuencialidad en cuanto a conflictos. Considérese cualquier transacción. El punto de la planificación en el cual la transacción obtiene el bloqueo final (el final de la fase de crecimiento) se denomina punto de bloqueo de la transacción.

El protocolo de bloqueo de dos fase no asegura la ausencia de interbloqueos.

 
Recuperación de información

mediante transacciones.

El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del Sistema de Base de Datos, puesto que permite controlar la ejecución de transacciones que operan en paralelo, accesando a información compartida y, por lo tanto, interfiriendo potencialmente unas con otras.

El hecho de reservar un asiento en una avión mediante un sistema basado en aplicaciones web, cuando decenas de personas en el mundo pueden reservarlo también, nos da una idea de lo importante y crucial que es el control de concurrencia en un sistema de base de datos a mediana o gran escala.


Otro ejemplo en el que podemos observar la incidencia del control de concurrencia en el siguiente: en una Base de Datos bancaria podría ocurrir que se paguen dos cheques en forma simultánea sobre una cuenta que no tiene saldo suficiente para cubrirlos en su totalidad, esto es posible evitarlo si se tiene un control de concurrencia.
B. Manejo de Concurrencia.

Definición de concurrencia.

La concurrencia es un fenómeno que se presenta en varios contextos. Uno de ellos es la multiprogramación ya que el tiempo del procesador es compartido dinámicamente por varios procesos. Otro caso son las aplicaciones estructuradas, donde la programación estructurada se implementa como un conjunto de procesos concurrentes. Y por ultimo se tiene que la misma estructuración recién mencionada es utilizada en el diseño de los sistemas operativos, los cuales se implementan como un conjunto de procesos

Técnicas de bloqueo

Se puede definir bloqueo (también llamado seguro o candado) como "una variable asociada a cada elemento de datos, que describe el estado de dicho elemento respecto a las posibles operaciones (recuperación o actualización) que se pueden realizar sobre ellos en cada momento".
Las transacciones pueden llevar a cabo bloqueos, por ejemplo, sobre los registros que vayan a utilizar, impidiendo a otros usuarios la recuperación o actualización de los elementos bloqueados, pudiéndose así evitar inconsistencias en el acceso concurrente.
Seriabilidad con el bloqueo en dos fases.


El protocolo de bloqueo de dos fase no asegura la ausencia de interbloqueos.
Los retrocesos en cascada se pueden evitar por medio de una modificación del protocolo de dos fases que se denomina protocolo de bloque estricto de dos fases.
El protocolo de bloque estricto de dos fases exige que además de que el bloqueo sea de dos fases, una transacción debe poseer todos los bloqueos en modo exclusivo que tome hasta que dicha transacción no comprometida está bloqueado en modo exclusivo hasta que la transacción lea el dato.
Otra variante del bloqueo de dos fases es el protocolo de bloqueo riguroso de dos fases, el cual exige que se posean todos los bloqueos hasta que se comprometan la transacción. Se puede comprobar fácilmente que con el bloqueo riguroso de dos fases se pueden secuenciar las transacciones en el orden en que se comprometen

  

3.2 CONFIGURACION DE CONTROLES DE ACCESO

3.2
A. Configuración de controles de acceso.

Creación, modificación y

Eliminación de usuarios.

Las únicas cuentas autorizadas a ejecutar los siguientes comandos son:  apalacios, scamposd, mtapia, jmorales, hcastilloo, jcisternas. Deben ingresar vía ssh al servidor hera.inf.ucv.cl y ejecutar los comandos tal cual se muestran aquí: Antes de crear una cuenta, deben pedirle el comprobante de matrícula al  alumno(a). Si no lo tiene en su poder, deben pedirle que ingrese a su  navegador académico y confirmar que esté matriculado en esta Escuela.

Los comandos son:

- Verificar que el id de usuario no exista:

            id <napellido>

Crear usuario:

sudo smbldap-useradd -m <napellido>

Ingresar el nombre y apellido completo:

sudo smbldap-userinfo <napellido>

Crear o cambiar la contraseña:

sudo smbldap-passwd <napellido>

Borrar un usuario:

sudo smbldap-userdel -r <napellido>

1.- Favor usar estos comandos con cuidado, especialmente el que permite  borrar usuarios ya que también se borran sus archivos en la carpeta raíz (/var/home/napellido).

2.- Crear SIEMPRE las cuentas con la primera letra del nombre y el  primer apellido completo. Si el "napellido" ya existe, preguntar el segundo apellido y añadir la inicial al final ("napellidoa"). Ejemplos:  fmoralesm, apalaciosc, scamposd.

3.- Las cuentas que no cumplan el formato anterior serán eliminadas.

Ejemplos: "usuario", "usuario1", "test", "probando", "fernandom",

"aquilesp", etc.

4.- Es obligatorio el comando "smbldap-userinfo" para almacenar el nombre completo del usuario.


5.- Comiencen cambiando sus propias contraseñas. Como ahora tienen permisos de administración en el servidor (solo para los comandos anteriores), sus contraseñas deben ser robustas (más de 8 caracteres, usar letras y números).

Definición de roles y perfiles.

Los roles son conjuntos de privilegios. Un rol puede tener garantizados una serie de privilegios tanto del sistema como sobre objetos, y a la vez puede tener garantizado otros roles.

Por defecto cuando creamos un usuario desde el Enterprise Manager se le asigna el permiso de Connect, lo que permite al usuario conectarse a la BD y crear sus propios objetos en su propio esquema. De otra manera, debemos asignarlos en forma manual.

Sintaxis para crear un Rol y asignarlo a un usuario:

SQL> CREATE ROLE appl_dba;

Opcionalmente, se puede asignar una clave al Rol:

SQL> SET ROLE appl_dba IDENTIFIED BY app_pwd;

Para asignar este Rol a un usuario:

SQL> GRANT appl_dba TO jperez;

Otro uso común de los roles es asignarles privilegios a nivel de Objetos, por ejemplo en una Tabla de Facturas en donde sólo queremos que se puedan hacer Querys e Inserts:

SQL> CREATE ROLE consulta;

SQL> GRANT SELECT, INSERT on analista.factura TO consulta;

· PERFILES

Los perfiles permiten definir limitaciones de recursos. Por ejemplo podemos definir un perfil que limite el número de sesiones abiertas concurrentemente por un usuario cualquiera, y posteriormente aplicar este perfil a uno o más usuarios concretos.


Asignación de privilegios a usuarios en el sistema gestor y
en la base de datos.

son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.


Creacion:

Para crear una base se deben realizar dos ejercicios de diseño: un diseño lógico y uno físico. El diseño lógico de una base de datos es un modelo abstracto de la base de datos desde una perspectiva de negocios, mientras que el diseño físico muestra como la base de datos se ordena en realidad en los dispositivos de almacenamiento de acceso directo. El diseño físico de la base de datos es llevado a cabo por los especialistas en bases de datos, mientras que el diseño lógico requiere de una descripción detallada de las necesidades de información del negocio de los negocios actuales usuarios finales de la base. Idealmente, el diseños de la base será una parte del esfuerzo global de la planeación de datos a nivel institucional.
El diseño lógico de la base de datos describe como los elementos en la base de datos han de quedar agrupados.
El
proceso de diseño identifica las relaciones entre los elementos de datos y la manera más eficiente de agruparlos para cumplir con los requerimientos de información. El proceso también identifica elementos redundantes y los agrupamientos de los elementos de datos que se requieren para programas de aplicaciones específicos. Los grupos de datos son organizados, refinados y agilizados hasta que una imagen lógica general de las relaciones entre todos los elementos en la base de datos surja.
B. Respaldo de datos.

Primero abrir el Administrador Corporativo de SQL Server.

En el administrador expande las opciones hasta que encuentres la base de datos que deseas respaldar.

Luego tienes que hacer click derecho sobre la base de datos. Elije la opcion "Todas las tareas" y luego la opcion "Copia de seguridad de la base de datos"

Se abrira una ventana en la cual tienes que presionar el botón agregar (para el destino).

En la ventana que se abrira elige la ruta donde quedara el archivo de respaldo. Aun vez listo esto presiona aceptar en la ventana.

En la ventana anterior puedes darle un nombre a tu respaldo. una vez listo presiona aceptar en la ventana para iniciar el respaldo.

SQLServer dejara uno(s) archivo(s) en el lugar donde le indicaste, estos son los archivos que tienes que respaldar.

Luego para restaurar tienes que nuevamente abrir el administrador corporativo , seleccionar la base de datos y click derecho sobre ella. Elije la opcion "Todas las tareas" y luego "Restaurar Base de datos". en la ventana que se abrira selecciona "Desde Dispositivo", esto te permitira buscar el archivo de respaldo. Busca el archivo y presiona acepar en la ventana



 Tipos de respaldo

1.- Respaldo de Datos (BACKUP DATA
BASE)

Deficnicion  de respaldo BACKUP DATABASE


La palabra "Backup" significa subir respaldo, siendo común el uso de este término dentro del ámbito informático. El respaldo de información es la copia de los datos importantes de un dispositivo primario en uno ó varios dispositivos secundarios, ello para que en caso de que el primer dispositivo sufra una avería electromecánica ó un error en su estructura lógica, sea posible contar con la mayor parte de la información necesaria para continuar con las actividades rutinarias y evitar pérdida generalizada de datos.

 Importancia del respaldo de información


La importancia radica en que todos los dispositivos de almacenamiento masivo de información tienen la posibilidad de fallar, por lo tanto es necesario que se cuente con una copia de seguridad de la información importante, ya que la probabilidad de que 2 dispositivos fallen de manera simultánea es muy difícil.

 Métodos para el respaldo de información

·         Manual: el usuario copia directamente los archivos a respaldar por medio de comandos ó por medio del explorador de archivos de su respectivo sistema operativo.

Otra forma de realizar las copias de seguridad es por medio de una aplicación que permita la creación de la copia al momento y con los datos existentes hasta ese momento, regularmente los datos se almacenan en forma de archivos comprimidos para ahorrar espacio. Ejemplo Microsoft® Copia de Seguridad.

·         Automático: por medio de una aplicación especializada, el usuario programa los archivos a guardar y este respaldo se va actualizando en tiempo real (simultáneamente), conforme se van registrando cambios en los archivos. Ejemplo Computer Associates® Survive IT.

Este es el respaldo completo
BACKUP DATABASE [Telemarketing] TO DISK
= 'd:espaldos\completo\TMK.DAT ' with init

Este es el Respaldo de Log.
BACKUP LOG Telemarketing TO DISK
= 'd:espaldos\completo\\0900AM.DAT ' with init




2.- Respaldo de Logs (BACKUP LOG)

BACKUP LOG MIBASE TO  DISK = N'D:\BASESQL\Backup\RespaldoLog.bak' WITH

NOFORMAT, NOINIT,  NAME = N'Copia de Seguridad LOG Transacciones', SKIP,

NOREWIND, NOUNLOAD,  STATS = 10