jueves, 11 de abril de 2013

Modos de operación de un sgbd


  1.  Investigar los conceptos  de roolback, commit, recovery de un sgbd.
Rollback.- Es una operación que devuelve a la base de datos a algún estado previo. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas. 
Commit (acción de comprometer).- Se refiere a la idea de consignar un conjunto de cambios "tentativos, o no permanentes". Un uso popular es al final de una transacción de base de datos.
Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios.
Recovery.- Los procesos de restauración (restore o recovery) de los que todo SGBD dispone pueden reconstruir la BD y darle el estado consistente y correcto anterior al incidente. Esto se acostumbra a hacer gracias a la obtención de copias periódicas de los datos (se denominan copias de seguridad o back-up) y mediante el mantenimiento continuo de un diario (log) donde el SGBD va anotando todas las escrituras que se hacen en la BD.


           2.    Investigar cómo se realizan dichas operaciones en mysql y oracle.

Rollback en mysql:
CREATE TABLE AS SELECT emp_name employee_id, apellidos FROM Empleados;
CREAR empname_ix índice único en emp_name (employee_id);
CREATE TABLE AS SELECT emp_sal employee_id, sueldo de los empleados;
CREAR empsal_ix índice único en emp_sal (employee_id);
CREATE TABLE AS SELECT emp_job employee_id, job_id DESDE empleados;
CREAR empjobid_ix índice único en emp_job (employee_id);

DECLARAR
   NÚMERO emp_id (6);
   emp_lastname VARCHAR2 (25);
   NÚMERO emp_salary (8,2);
   emp_jobid VARCHAR2 (10);
COMENZAR
   SELECT employee_id, apellidos, salario, job_id EN emp_id, emp_lastname,
     emp_salary, emp_jobid DESDE empleados DONDE employee_id = 120;
   INSERT INTO VALORES emp_name (emp_id, emp_lastname);
   INSERT INTO VALORES emp_sal (emp_id, emp_salary);
   INSERT INTO VALORES emp_job (emp_id, emp_jobid);
EXCEPCIÓN
   CUANDO ENTONCES DUP_VAL_ON_INDEX
      ROLLBACK;
      DBMS_OUTPUT.PUT_LINE ('Inserta han revertido');
END;


Rollback en Oracle:
begin
.----
----
savepoint inicio;
---
insert...
update ...
delete ...
...
rollback to savepoint inicio

Commit en mysql:
Crear cuentas (NÚMERO DE MESA account_id (6), NÚMERO balance (10,2));
INSERT INTO VALORES cuentas (7715, 6350,00);
INSERT INTO VALORES cuentas (7720, 5100,50);
DECLARAR
  la transferencia del número (8,2): = 250;
COMENZAR
  Actualizar las cuentas de saldo = saldo SET - transferir DONDE account_id = 7715;
  Cuentas UPDATE SET saldo = saldo + transferencia DONDE account_id = 7720;
  COMMIT 'Traslado Desde 7715 hasta 7720 "Comentario Escriba NOWAIT inmediata;
END;
/

Commit en Oracle:     

Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual.
COMMIT [WORK] [COMMENT 'comment_text']
COMMIT [WORK] [FORCE 'force_text' [,int] ]

Si ejecutamos:
DELETE FROM T_PEDIDOS WHERE COD_PEDIDO=15;
COMMIT;

Borrar un registro y guarda los cambios.



Recovery en msql:

1. Primero abrimos una ventana de comandos de Windows (menuInicio =>Ejecutar=> cmd).
2.  Ya abierta dicha ventana nos situamos en la carpeta de los binarios de mySQL,
pues ahí se encuentra el ejecutable de mysqldump, la cual se encuentra en la
carpeta bin del directorio de instalación ("c:\Archivos de programa\MySQL\MySQL Server 5.1\bin").
3.  A continuación ejecutamos el programa mysqldump con las opciones que mas
nos convengan.
mysqldump --opt -a --single-transaction -h localhost -u root -pmiServer --databases
bdd_practica1 > c:\Users\G10\backup_bdd_practica1.sql

Recovery en Oracle:
SQL> startup mount;
SQL> recover automatic database;
SQL> alter database open;







No hay comentarios:

Publicar un comentario