SlideShare una empresa de Scribd logo
1 de 9
BASE DE DATOS PARA APLICACIONES



T.S.U. LAURA HERNÁNDEZ MARTÍNEZ


 TRANSACCIONES Y MANEJO DE ERRORES EN MYSQL
Transacciones
• Las transacciones son todas aquellas operaciones con las
  cuales se da y recibe información atreves de diversas tareas.
• Una sola tarea (INSERT INTO tabla VALUES(datos); )
• Varias tareas, donde se puede utilizar SELECT, UPDATE, INSERT.
                           Propiedades
• Atomicidad.- Es la garantía de que todas las operaciones se
  tienen que cumplir si no llegase a suceder se tienen que
  deshacer los cambios.
• Consistencia.- Nos da la seguridad de que la información sea
  correcta y se actualice cuando se realice una operación.
• Aislamiento.- Garantiza que cada transacción se comporte
  diferente hasta que se confirme, independencia.
• Durabilidad.- Asegura que la información va a durar y estar
  correcta.
Características
• Las transacciones generalmente se acompañar de procedimientos
  almacenados cuando se trata de tomar decisiones , la estructura de
  una transacción es la siguiente:
• Inicio        start transaction
• Regresar         ROLL BACK(la ejecución no será completada)
• Fin         COMMIT
                                Estructura
CREATE procedure ingresar_dato (in un int)
         BEGIN
                start transaccion
                          if nu => 50 then
                                    insert into nu2 values(nu);
                          endif;
                COMMIT
         END//
Errores
Pero que hacer cuando ocurre algún imprevisto durante la
transacción.
Debemos encontrar la manera de manejar ese tiempo de
errores que se lleguen a presentar, para esto es necesario
auxiliarse de los HANDLER, los cuales nos permiten tomar
decisiones sobre los errores ocurridos durante una transaccion,
si el error no es de gran peligro continuar con el procedimiento
almacenado (CONTINUE), en caso contrario salirnos del
procedimiento almacenado deshaciendo todo lo ejecutado para
asegurar una transaccion (NEXT).
Estructura HANDLER
Todos los errores tienen un código, del cual debemos tener conocimiento para poder
insertarlo en el hadler y conozca que hacer cuando se presente el error indicado.

create tabla_error(error_message varchar(80));

Ahora creamos el procedimiento almacenado que se encargara de introducir datos en la BD y
manejar excepciones:
delimiter //                                                                        Se crea un procedimiento
           create procedure procedimientoConHandler(parametro1 int)                 almacenado para manejar
                                                                                             el error
                      begin
                                 declare exit handler for 1452      No. De error a manejar

                      begin
                                 insert into error_log values (concat('Time: ',current_date,'.
                                 Error de clave ajena para el valor= ', parametro1));
                      end;
                                 insert into t3 values (parametro1);
                                   .
                                   .
                                   .
                      end;
//
Manejo de error mediante if
• También se pueden manejar los errores con un if siguiendo la siguiente
  estructura:

PROCEDURE siceem.sp_delete_alumno_trans(IN p_curp VARCHAR(18))
BEGIN
declare error int;
START TRANSACTION;
delete
from siceem_t_datos_alumno_actual
where curp=p_curp;
                               En esta parte es donde se
set error=(Select @error);          obtiene el error

if(error>0) then
ROLLBACK;
else
COMMIT;
end if;
END
Tipos de errores
• Hay distintos tipos de errores y debemos saber identificar que
  errores pueden provocar graves daños a nuestro sistema y
  cuales podemos hacer que pasen sin que provoquen daño
  alguno al sistema.
• Por ejemplo hay errores sobre creación o eliminación
  incorrecta de base de datos, estos tipos de errores podríamos
  omitirlos ya que en las transacciones a realizar no se
  encuentra el crear o eliminar bases de datos.
• En cambio si se tratan de errores de falla de conexión o el
  sistema se ha cerrado inesperadamente cuando se esta
  realizado una transacción debemos cachar ese error para que
  no provoque inestabilidad en nuestra base de datos.
Errores a considerar
Error: 1012 SQLSTATE: HY000 (ER_CANT_FIND_SYSTEM_REC)
  Mensaje: No puedo leer el registro en la tabla del sistema
Error: 1016 SQLSTATE: HY000 (ER_CANT_OPEN_FILE)
  Mensaje: No puedo abrir archivo: '%s' (Error: %d)
Error: 1017 SQLSTATE: HY000 (ER_FILE_NOT_FOUND)
  Mensaje: No puedo encontrar archivo: '%s' (Error: %d)
Error: 1022 SQLSTATE: 23000 (ER_DUP_KEY)
  Mensaje: No puedo escribir, clave duplicada en la tabla '%s'
Error: 1023 SQLSTATE: HY000 (ER_ERROR_ON_CLOSE)
  Mensaje: Error en el cierre de '%s' (Error: %d)
Error: 1024 SQLSTATE: HY000 (ER_ERROR_ON_READ)
  Mensaje: Error leyendo el fichero '%s' (Error: %d)
Error: 1025 SQLSTATE: HY000 (ER_ERROR_ON_RENAME)
  Mensaje: Error en el renombrado de '%s' a '%s' (Error: %d)
Error: 1026 SQLSTATE: HY000 (ER_ERROR_ON_WRITE)
  Mensaje: Error escribiendo el archivo '%s' (Error: %d)
Error: 1028 SQLSTATE: HY000 (ER_FILSORT_ABORT)
  Mensaje: Ordenación cancelada
Error: 1042 SQLSTATE: 08S01 (ER_BAD_HOST_ERROR)
  Mensaje: No puedo obtener el nombre de maquina de tu direccion
Conclusión

Es importante contar con la certeza y la seguridad de que las
transacciones se realicen garantizando la seguridad de y
consistencia de los datos, ya que los errores pueden provocar
grandes problemas, perdida de información , dinero , etc.

Más contenido relacionado

La actualidad más candente

Lógica de programación basico
Lógica de programación basicoLógica de programación basico
Lógica de programación basicojacky2414
 
Programaciòn Estructurada
Programaciòn EstructuradaProgramaciòn Estructurada
Programaciòn EstructuradaFernanda-Guzman
 
Estructuras repetitivas herramienta case jean
Estructuras repetitivas herramienta case jeanEstructuras repetitivas herramienta case jean
Estructuras repetitivas herramienta case jeanMorelo Alegre JanKee
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint michellbermudez3
 
Sentencia Condicional
Sentencia CondicionalSentencia Condicional
Sentencia Condicionalciberosv
 
Algoritmos en pseudocódigo
Algoritmos en pseudocódigoAlgoritmos en pseudocódigo
Algoritmos en pseudocódigoLuis Fernando
 
Algoritmosenpseudocdigo
AlgoritmosenpseudocdigoAlgoritmosenpseudocdigo
AlgoritmosenpseudocdigoLuis Fernando
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint AngelicaAguado2
 
Transacciones en transact sql
Transacciones en transact sqlTransacciones en transact sql
Transacciones en transact sqlFreddy Poma Inga
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlSilvia Boscan
 
Benemérita universidad autónoma de puebla
Benemérita universidad autónoma de pueblaBenemérita universidad autónoma de puebla
Benemérita universidad autónoma de pueblaErick Martinez
 
D6 b sentencias de control de flujo
D6 b sentencias de control de flujoD6 b sentencias de control de flujo
D6 b sentencias de control de flujoGabriel Mondragón
 

La actualidad más candente (18)

Lógica de programación basico
Lógica de programación basicoLógica de programación basico
Lógica de programación basico
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Programaciòn Estructurada
Programaciòn EstructuradaProgramaciòn Estructurada
Programaciòn Estructurada
 
Estructuras repetitivas herramienta case jean
Estructuras repetitivas herramienta case jeanEstructuras repetitivas herramienta case jean
Estructuras repetitivas herramienta case jean
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint
 
Sentencia Condicional
Sentencia CondicionalSentencia Condicional
Sentencia Condicional
 
Algoritmos en pseudocódigo
Algoritmos en pseudocódigoAlgoritmos en pseudocódigo
Algoritmos en pseudocódigo
 
Algoritmosenpseudocdigo
AlgoritmosenpseudocdigoAlgoritmosenpseudocdigo
Algoritmosenpseudocdigo
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint
 
Transacciones en transact sql
Transacciones en transact sqlTransacciones en transact sql
Transacciones en transact sql
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Benemérita universidad autónoma de puebla
Benemérita universidad autónoma de pueblaBenemérita universidad autónoma de puebla
Benemérita universidad autónoma de puebla
 
TRIGGERS Cliente - servidor
TRIGGERS Cliente - servidorTRIGGERS Cliente - servidor
TRIGGERS Cliente - servidor
 
Estructura repetitiva for y while
Estructura repetitiva for y whileEstructura repetitiva for y while
Estructura repetitiva for y while
 
7. estructura condicional if
7.  estructura condicional if7.  estructura condicional if
7. estructura condicional if
 
D6 b sentencias de control de flujo
D6 b sentencias de control de flujoD6 b sentencias de control de flujo
D6 b sentencias de control de flujo
 
Condicionales
CondicionalesCondicionales
Condicionales
 

Destacado

Dita y Dito aprenden a usar el orinal
Dita y Dito aprenden a usar el orinalDita y Dito aprenden a usar el orinal
Dita y Dito aprenden a usar el orinalMar Vieites
 
El liderazgo presentacion
El liderazgo presentacionEl liderazgo presentacion
El liderazgo presentacionZulay Galvis
 
TRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAIS
TRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAISTRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAIS
TRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAISDouglas Evangelista
 
Líder pensa como tal!
Líder   pensa como tal!Líder   pensa como tal!
Líder pensa como tal!Bruno Lima
 
De romanxe a franqueira completo
De romanxe a franqueira  completoDe romanxe a franqueira  completo
De romanxe a franqueira completoJose Gonzalez Mira
 
CERT edXMcGillX Food for thought Liselotte Campbell-Smith
CERT edXMcGillX Food for thought Liselotte Campbell-SmithCERT edXMcGillX Food for thought Liselotte Campbell-Smith
CERT edXMcGillX Food for thought Liselotte Campbell-SmithLisen Campbell-Smith
 
Ranking del puerto balboa en américa latina y
Ranking del puerto balboa en américa latina yRanking del puerto balboa en américa latina y
Ranking del puerto balboa en américa latina yupfaeco
 
Vocales cantajuegos
Vocales cantajuegosVocales cantajuegos
Vocales cantajuegosMar Vieites
 
Treinamento comercial
Treinamento comercialTreinamento comercial
Treinamento comercialsariinnha
 
Dra.Elsy de Hernández Fenomenología
Dra.Elsy de Hernández FenomenologíaDra.Elsy de Hernández Fenomenología
Dra.Elsy de Hernández FenomenologíaELSY VIANELLY
 
Aqui nao tem Osama - SILVA JR., Nelmon J.
Aqui nao tem Osama - SILVA JR., Nelmon J.Aqui nao tem Osama - SILVA JR., Nelmon J.
Aqui nao tem Osama - SILVA JR., Nelmon J.Autônomo
 

Destacado (20)

Dita y Dito aprenden a usar el orinal
Dita y Dito aprenden a usar el orinalDita y Dito aprenden a usar el orinal
Dita y Dito aprenden a usar el orinal
 
El liderazgo presentacion
El liderazgo presentacionEl liderazgo presentacion
El liderazgo presentacion
 
TRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAIS
TRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAISTRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAIS
TRAZENDO AS COISAS DE VOLTA À VIDA: EMARANHADOS CRIATIVOS NUM MUNDO DE MATERIAIS
 
Líder pensa como tal!
Líder   pensa como tal!Líder   pensa como tal!
Líder pensa como tal!
 
De romanxe a franqueira completo
De romanxe a franqueira  completoDe romanxe a franqueira  completo
De romanxe a franqueira completo
 
CERT edXMcGillX Food for thought Liselotte Campbell-Smith
CERT edXMcGillX Food for thought Liselotte Campbell-SmithCERT edXMcGillX Food for thought Liselotte Campbell-Smith
CERT edXMcGillX Food for thought Liselotte Campbell-Smith
 
Calçada portuguesa (2)
Calçada portuguesa (2)Calçada portuguesa (2)
Calçada portuguesa (2)
 
E
EE
E
 
Mas webs!
Mas webs!Mas webs!
Mas webs!
 
Presentación1
Presentación1Presentación1
Presentación1
 
Ranking del puerto balboa en américa latina y
Ranking del puerto balboa en américa latina yRanking del puerto balboa en américa latina y
Ranking del puerto balboa en américa latina y
 
Vocales cantajuegos
Vocales cantajuegosVocales cantajuegos
Vocales cantajuegos
 
Numeros
NumerosNumeros
Numeros
 
Alma voltaire
Alma   voltaireAlma   voltaire
Alma voltaire
 
Treinamento comercial
Treinamento comercialTreinamento comercial
Treinamento comercial
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
Dra.Elsy de Hernández Fenomenología
Dra.Elsy de Hernández FenomenologíaDra.Elsy de Hernández Fenomenología
Dra.Elsy de Hernández Fenomenología
 
Aqui nao tem Osama - SILVA JR., Nelmon J.
Aqui nao tem Osama - SILVA JR., Nelmon J.Aqui nao tem Osama - SILVA JR., Nelmon J.
Aqui nao tem Osama - SILVA JR., Nelmon J.
 
Jornada 1 de Agosto
Jornada 1 de Agosto Jornada 1 de Agosto
Jornada 1 de Agosto
 
Plano gestão
Plano gestãoPlano gestão
Plano gestão
 

Similar a Errores

Similar a Errores (20)

Transacciones
TransaccionesTransacciones
Transacciones
 
Tarea
TareaTarea
Tarea
 
B.d
B.dB.d
B.d
 
Transaciones en mysql
Transaciones en mysqlTransaciones en mysql
Transaciones en mysql
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en C
 
Estructuras de Control - Ivan Walkes Mc.
Estructuras de Control - Ivan Walkes Mc.Estructuras de Control - Ivan Walkes Mc.
Estructuras de Control - Ivan Walkes Mc.
 
Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de Control
 
Pseint
Pseint Pseint
Pseint
 
Pseint terminado
Pseint terminadoPseint terminado
Pseint terminado
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Estructuras básicas tecnología
Estructuras básicas tecnología Estructuras básicas tecnología
Estructuras básicas tecnología
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Estructuras básicas tecnología
Estructuras básicas tecnología Estructuras básicas tecnología
Estructuras básicas tecnología
 
Transaccion
TransaccionTransaccion
Transaccion
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Trabajo grupal - Base de Datos
Trabajo grupal - Base de DatosTrabajo grupal - Base de Datos
Trabajo grupal - Base de Datos
 

Errores

  • 1. BASE DE DATOS PARA APLICACIONES T.S.U. LAURA HERNÁNDEZ MARTÍNEZ TRANSACCIONES Y MANEJO DE ERRORES EN MYSQL
  • 2. Transacciones • Las transacciones son todas aquellas operaciones con las cuales se da y recibe información atreves de diversas tareas. • Una sola tarea (INSERT INTO tabla VALUES(datos); ) • Varias tareas, donde se puede utilizar SELECT, UPDATE, INSERT. Propiedades • Atomicidad.- Es la garantía de que todas las operaciones se tienen que cumplir si no llegase a suceder se tienen que deshacer los cambios. • Consistencia.- Nos da la seguridad de que la información sea correcta y se actualice cuando se realice una operación. • Aislamiento.- Garantiza que cada transacción se comporte diferente hasta que se confirme, independencia. • Durabilidad.- Asegura que la información va a durar y estar correcta.
  • 3. Características • Las transacciones generalmente se acompañar de procedimientos almacenados cuando se trata de tomar decisiones , la estructura de una transacción es la siguiente: • Inicio start transaction • Regresar ROLL BACK(la ejecución no será completada) • Fin COMMIT Estructura CREATE procedure ingresar_dato (in un int) BEGIN start transaccion if nu => 50 then insert into nu2 values(nu); endif; COMMIT END//
  • 4. Errores Pero que hacer cuando ocurre algún imprevisto durante la transacción. Debemos encontrar la manera de manejar ese tiempo de errores que se lleguen a presentar, para esto es necesario auxiliarse de los HANDLER, los cuales nos permiten tomar decisiones sobre los errores ocurridos durante una transaccion, si el error no es de gran peligro continuar con el procedimiento almacenado (CONTINUE), en caso contrario salirnos del procedimiento almacenado deshaciendo todo lo ejecutado para asegurar una transaccion (NEXT).
  • 5. Estructura HANDLER Todos los errores tienen un código, del cual debemos tener conocimiento para poder insertarlo en el hadler y conozca que hacer cuando se presente el error indicado. create tabla_error(error_message varchar(80)); Ahora creamos el procedimiento almacenado que se encargara de introducir datos en la BD y manejar excepciones: delimiter // Se crea un procedimiento create procedure procedimientoConHandler(parametro1 int) almacenado para manejar el error begin declare exit handler for 1452 No. De error a manejar begin insert into error_log values (concat('Time: ',current_date,'. Error de clave ajena para el valor= ', parametro1)); end; insert into t3 values (parametro1); . . . end; //
  • 6. Manejo de error mediante if • También se pueden manejar los errores con un if siguiendo la siguiente estructura: PROCEDURE siceem.sp_delete_alumno_trans(IN p_curp VARCHAR(18)) BEGIN declare error int; START TRANSACTION; delete from siceem_t_datos_alumno_actual where curp=p_curp; En esta parte es donde se set error=(Select @error); obtiene el error if(error>0) then ROLLBACK; else COMMIT; end if; END
  • 7. Tipos de errores • Hay distintos tipos de errores y debemos saber identificar que errores pueden provocar graves daños a nuestro sistema y cuales podemos hacer que pasen sin que provoquen daño alguno al sistema. • Por ejemplo hay errores sobre creación o eliminación incorrecta de base de datos, estos tipos de errores podríamos omitirlos ya que en las transacciones a realizar no se encuentra el crear o eliminar bases de datos. • En cambio si se tratan de errores de falla de conexión o el sistema se ha cerrado inesperadamente cuando se esta realizado una transacción debemos cachar ese error para que no provoque inestabilidad en nuestra base de datos.
  • 8. Errores a considerar Error: 1012 SQLSTATE: HY000 (ER_CANT_FIND_SYSTEM_REC) Mensaje: No puedo leer el registro en la tabla del sistema Error: 1016 SQLSTATE: HY000 (ER_CANT_OPEN_FILE) Mensaje: No puedo abrir archivo: '%s' (Error: %d) Error: 1017 SQLSTATE: HY000 (ER_FILE_NOT_FOUND) Mensaje: No puedo encontrar archivo: '%s' (Error: %d) Error: 1022 SQLSTATE: 23000 (ER_DUP_KEY) Mensaje: No puedo escribir, clave duplicada en la tabla '%s' Error: 1023 SQLSTATE: HY000 (ER_ERROR_ON_CLOSE) Mensaje: Error en el cierre de '%s' (Error: %d) Error: 1024 SQLSTATE: HY000 (ER_ERROR_ON_READ) Mensaje: Error leyendo el fichero '%s' (Error: %d) Error: 1025 SQLSTATE: HY000 (ER_ERROR_ON_RENAME) Mensaje: Error en el renombrado de '%s' a '%s' (Error: %d) Error: 1026 SQLSTATE: HY000 (ER_ERROR_ON_WRITE) Mensaje: Error escribiendo el archivo '%s' (Error: %d) Error: 1028 SQLSTATE: HY000 (ER_FILSORT_ABORT) Mensaje: Ordenación cancelada Error: 1042 SQLSTATE: 08S01 (ER_BAD_HOST_ERROR) Mensaje: No puedo obtener el nombre de maquina de tu direccion
  • 9. Conclusión Es importante contar con la certeza y la seguridad de que las transacciones se realicen garantizando la seguridad de y consistencia de los datos, ya que los errores pueden provocar grandes problemas, perdida de información , dinero , etc.