{"id":597,"date":"2012-07-25T16:30:23","date_gmt":"2012-07-25T23:30:23","guid":{"rendered":"https:\/\/gonzalo.aro.cl\/blog\/?p=597"},"modified":"2012-07-25T16:42:08","modified_gmt":"2012-07-25T23:42:08","slug":"transacciones-acid","status":"publish","type":"post","link":"https:\/\/gonzalo.aro.cl\/blog\/2012\/07\/25\/transacciones-acid\/","title":{"rendered":"Transacciones ACID"},"content":{"rendered":"<p>En el contexto de transacciones de bases de datos, ACID es un acr\u00f3nimo de Atomico (<strong>A<\/strong>tomic), Consistente (<strong>C<\/strong>onsistent), Aislado (<strong>I<\/strong>solation) y Durabilidad(<strong>D<\/strong>urable). Las transacciones proporcionan un modelo sencillo de \u00e9xito o fracaso una o un conjunto de operaciones en la base de datos. Una transacci\u00f3n se compromete (es decir, todas sus acciones se ejecutaron de forma correcta), o se anula (es decir, si una accion fallo, entonces todas sus acciones hechas hasta ese momento se deshacen). Los atributos de una transacci\u00f3n ACID son las siguientes:<\/p>\n<p><strong>Atomicidad<\/strong><\/p>\n<p>Una transacci\u00f3n permite la agrupaci\u00f3n de uno o m\u00e1s cambios en las tablas y filas en la base de datos para formar una operaci\u00f3n at\u00f3mica e indivisible. Es decir, o bien se producen todos los cambios o ninguno de ellos. Si por alguna raz\u00f3n la transacci\u00f3n no puede completarse, la operaci\u00f3n debe restablecer el estado de la base de datos al momento en que estaba antes del inicio de la transacci\u00f3n a trav\u00e9s de una operaci\u00f3n de reversa (rollback).<\/p>\n<p><strong>Consistencia<\/strong><\/p>\n<p>Las transacciones siempre operan en una visi\u00f3n coherente de los datos y cuando terminan deben tambi\u00e9n dejar los datos en un estado coherente. Mientras que una transacci\u00f3n se ejecuta se generan inconsistencias momentaneas dentro de la base de datos, pero la transaccion no puede dejar ver estas inconsistencias; al finalizar, debido a que en la finalizaci\u00f3n todas las inconsistencias deben son eliminadas, la transaccion libera los datos para que puedan ser le\u00eddos\/escritos nuevamente.<\/p>\n<p><strong>Aislamiento<\/strong><\/p>\n<p>Para una operaci\u00f3n determinada, deber\u00eda ser como si \u00e9sta se estuviese ejecutando sola en la base de datos. Los efectos de la ejecuci\u00f3n simult\u00e1nea de las transacciones son invisibles para esta transacci\u00f3n, y los efectos de esta transacci\u00f3n son invisibles para los dem\u00e1s hasta que la transacci\u00f3n ha comprometido su trabajo.<\/p>\n<p><strong>Durabilidad<\/strong><\/p>\n<p>Una vez que se confirma una transacci\u00f3n y sus efectos, se garantiza que persista incluso en el caso de fallos posteriores del sistema. Hasta antes de que se confirme la transacci\u00f3n, los cambios realizados por esa transacci\u00f3n no son durables, y no persisten en la cara de un fallo del sistema, al recuperarse de un fallo se deshacen las inconsistencias provocas por la ejecuci\u00f3n no terminada de la transaccion.<\/p>\n<p>La simplicidad de las transacciones ACID es especialmente importante en un entorno de base de datos distribuida, donde las transacciones se realizan de forma simult\u00e1nea.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el contexto de transacciones de bases de datos, ACID es un acr\u00f3nimo de Atomico (Atomic), Consistente (Consistent), Aislado (Isolation) y Durabilidad(Durable). Las transacciones proporcionan un modelo sencillo de \u00e9xito o fracaso una o un conjunto de operaciones en la base de datos. Una transacci\u00f3n se compromete (es decir, todas sus acciones se ejecutaron de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,18,4,28,9,21],"tags":[],"class_list":["post-597","post","type-post","status-publish","format-standard","hentry","category-base-de-datos","category-capacitacion","category-desarrollo","category-mysql","category-oracle","category-postgresql"],"_links":{"self":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/597"}],"collection":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/comments?post=597"}],"version-history":[{"count":2,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/597\/revisions"}],"predecessor-version":[{"id":599,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/597\/revisions\/599"}],"wp:attachment":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/media?parent=597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/categories?post=597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/tags?post=597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}