Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bywindoctor
ElconceptodeBasesdeDatosTransaccionalesesun sinnimodefiabilidadsuperioralasBasesdeDatos comnes.LasTransaccionessonampliamente utilizadasenSistemasBancariospormencionarsolo unejemplo. UnaBasedeDatosTransaccionalalbergalaideadeo todomejornada.Paramsinformacin enwikipedia.org Agrandesrazgos,laideaesquealmomentodequeestamosejecutandopor ejemplounasentenciaUPDATE,estasentencianotenganingnefectohasta quenosotrosloindiquemosconCOMMIT.Porejemplo; UPDATEbdSETcampo=valorWHEREid=1; Normalmente,alejecutarlasentenciadearriba,inmediatamenteloscambiosse reflejarian.Puesbien,elconceptodetransaccinvaenfocadoaquealejecutar dichasentencianopasenada!!Yloscambiosseanrealizadoshastaque escribamoslasentenciaCOMMIT. UPDATEbdSETcampo=valorWHEREid=1; COMMIT;//CundoejecutemosCOMMITescundohastaese momentotodaslassentenciasqueleprecedentendrnefecto!antesno. Estoesespecialmentetilenmuchoscasoscuandodebemosejecutarvarias sentenciasSQLperosabemosquesialgunadeellasfallaporXraznentonces todoestarmal,losdatoscorrompidosyesoesungraveproblema!Entonces, escuandopodemospensarenusarTransacciones,sienalgunasentenciaocurre unerror,seejecutaROLLBACKyconestoNADAsemodifica,todovuelvea suestadooriginal,yencambio,sitodosaliobien,seejecutaCOMMITylos cambiosserealizan!
UNSENCILLOEJEMPLO
EsimportanteaclararqueparatrabajarconTransacciones,lastablasdebende serdetipoInnoDBynoMyISAM,sisondeesteltimotipoNOfuncionaras queantesdecontinuardebenasegurarsequeusarnunatablaInnoDB.Eneste ejemplo,usaremoslabasededatosaddressbookqueseutilizoenelejercicio deCreacinde Reportes enJava Ladescargalapuedenhaceraqui(clickderechoyguardarcomodelo contrariolesaparecerquenoexistelapgina).Dentrodelacarpetaestael scriptsqlelculsedeberaejecutarparacrearlaBD. LanicatablaquecontieneesdetipoMyISAMporloculesnecesario cambiarlaaInnoDB.ParaellodesdelalneadecomandosdeMySQLseescribe lasiguientesentencia: ALTERTABLE`addressbook`.`contacts`ENGINE=InnoDB; Noesnecesariotrabajarconestatabla,cadaunodeustedespuedetrabajarcon cualquierBDqueyatenga,estosoloesamododeejemplo. Unavezqueyaestatodolisto,abriremosdosventanasdelalneadecomandos deMySQL.Paramayorcomodidadyamododevisualizarmejorlosresultados, cambiaremoselcolordefondoaunadeellasyalaotraladejaremosas. Ahorabien,esteejercicioconsisteenusartransacciones,modificarelcampo Telefonodelapersonaquetieneelid=57.Comosesabe,loscambiosno surtirnefectohastaquenosotrosloindiquemosconlasentenciaCOMMIT.En unaventana,ejecutamosloquemuestralasiguientefigura: