ACID protexe os datos da súa base de datos
O modelo ACID de deseño de bases de datos é un dos conceptos máis antigos e máis importantes da teoría da base de datos. Establece catro obxectivos que cada sistema de xestión de bases de datos debe esforzarse por conseguir: atomicidade, consistencia, illamento e durabilidade. Unha base de datos relacional que non cumpre ningunha destas catro metas non pode ser considerada de confianza. A base de datos que posúe estas características considérase compatible con ACID.
ACID definido
Imos ter un momento para examinar cada unha destas características en detalle:
- A atomicidade afirma que as modificacións da base de datos deben seguir unha regra "todo ou nada". Cada transacción dise que é "atómica". Se unha parte da transacción falla, a transacción enteira falla. É fundamental que o sistema de xestión de bases de datos mantén a natureza atómica de operacións a pesar de calquera DBMS, sistema operativo ou falla de hardware.
- A consistencia afirma que só se escribiren datos válidos na base de datos. Se, por algunha razón, se executa unha transacción que viola as regras de consistencia da base de datos, a transacción enteira desfacerase e a base de datos será restaurada a un estado compatible con esas regras. Doutra banda, se unha transacción se executa con éxito, levará a base de datos dun estado que sexa consistente coas regras a outro estado que tamén sexa consistente coas regras.
- O illamento require que as transaccións múltiples que se produzan ao mesmo tempo non afecten a execución doutro. Por exemplo, se Joe emite unha transacción contra unha base de datos ao mesmo tempo que Mary emite unha transacción diferente, ambas as operacións deben operar na base de datos dun xeito illado. A base de datos debe realizar a transacción completa de Joe antes de executar Mary's ou viceversa. Isto evita que a transacción de Joe lea datos intermedios producidos como un efecto secundario dunha parte da transacción de Mary que eventualmente non se comprometerá coa base de datos. Teña en conta que a propiedade de illamento non asegura que a transacción executarase primeiro; só que as transaccións non interferirán entre si
- A durabilidade asegura que non se perda ningunha transacción comprometida coa base de datos. A durabilidade está garantida a través do uso de copias de seguridade de bases de datos e rexistros de transaccións que facilitan a restauración de operacións comprometidas a pesar de fallos posteriores de software ou hardware.
Como funciona o ACID na práctica
Os administradores de base de datos usan varias estratexias para facer cumprir o ACID.
Un usado para facer cumprir a atomicidade e durabilidade é o logging por escrito (WAL) no cal todo detalle de transacción primeiro escríbese nun rexistro que inclúe tanto rehacer como deshacer información. Isto asegura que, dada unha falla de base de datos de calquera tipo, a base de datos pode comprobar o rexistro e comparar os seus contidos co estado da base de datos.
Outro método utilizado para atomizar a duración e a atomicidade é a sombra-paginación na que se crea unha páxina sombra cando se modifican os datos. As actualizacións da consulta escríbense na páxina de sombra e non nos datos reais da base de datos. A base de datos só se modifica cando se completa a edición.
Outra estratexia denomínase protocolo de commit bidireccional, especialmente útil nos sistemas de bases de datos distribuídos. Este protocolo separa unha solicitude para modificar datos en dúas fases: unha fase de solicitude de commit e unha fase de commit. Na fase de solicitude, todos os SGBD nunha rede afectada pola transacción deben confirmar que a recibiron e teñen a capacidade de realizar a transacción. Unha vez que se recibe a confirmación de todos os SGBD relevantes, a fase de commit finaliza na que os datos son realmente modificados.