Download reglas acid y codd gestores base de datos
Document related concepts
Transcript
1 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA Centro Universitario de Izabal –CUNIZABCurso: Base de Datos I Docente: Ing. Fredy Oswaldo Pérez P. SISTEMAS GESTORES BASE DE DATOS REGLAS ACID Y/O CODD ESTUDIANTE: BENEDICTO ANTONIO PAIZ RALDA CARNÉ: 2014 46201 PUERTO BARRIOS 7 DE AGOSTO DE 2015 2 TABLA DE CONTENIDO INTRODUCCION 03 SISTEMA GESTORES DE BASE DE DATOS (SGBD) 04 - 08 REGLAS ACID Y/O CODD 09 – 15 CONCLUSION 16 REFERENCIAS BIBLIOGRAFICAS (EGRAFÍAS) 17 3 INTRODUCION: SISTEMA GESTOR DE BASE DE DATOS Sistema Gestor de Base de Datos. Un Sistema Gestor de Base de Datos (SGBD, en inglés DBMS: DataBase Management System) es un sistema de software que permite la definición de bases de datos; así como la elección de las estructuras de datos necesarios para el almacenamiento y búsqueda de los datos, ya sea de forma interactiva o a través de un lenguaje de programación. Un SGBD relacional es un modelo de datos que facilita a los usuarios describir los datos que serán almacenados en la base de datos junto con un grupo de operaciones para manejar los datos. Los SGBD relacionales son una herramienta efectiva que permite a varios usuarios acceder a los datos al mismo tiempo. Brindan facilidades eficientes y un grupo de funciones con el objetivo de garantizar la confidencialidad, la calidad, la seguridad y la integridad de los datos que contienen, así como un acceso fácil y eficiente a los mismos. 4 MySQL MySQL es un sistema gestor de bases de datos relacionales rápido, sólido y flexible. Es idóneo para la creación de bases de datos con acceso desde páginas web dinámicas, así como para la creación de cualquier otra solución que implique el almacenamiento de datos, posibilitando realizar múltiples y rápidas consultas. Está desarrollado en C y C++, facilitando su integración en otras aplicaciones desarrolladas también en esos lenguajes. Es un sistema cliente/servidor, por lo que permite trabajar como servidor multiusuario y de subprocesamiento múltiple, o sea, cada vez que se crea una conexión con el servidor, el programa servidor establece un proceso para manejar la solicitud del cliente, controlando así el acceso simultáneo de un gran número de usuarios a los datos y asegurando el acceso a usuarios autorizados solamente. Es uno de los sistemas gestores de bases de datos más utilizado en la actualidad, utilizado por grandes corporaciones como Yahoo! Finance, Google, Motorola, entre otras. Microsoft SQL Server SQL Server es un sistema gestor de base de datos relacionales producido por Microsoft. Es un sistema cliente/servidor que funciona como una extensión natural del sistema operativo Windows. Entre otras características proporciona integridad de datos, optimización de consultas, control de concurrencia y backup y recuperación. Es relativamente fácil de administrar a través de la utilización de un entorno gráfico para casi todas las tareas de sistema y administración de bases de datos. Utiliza servicios del sistema operativo Windows para ofrecer nuevas capacidades o ampliar la base de datos, tales como enviar y recibir mensajes y gestionar la seguridad de la conexión. Es fácil de usar y proporciona funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases de datos más caros. PostgreSQL PostgreSQL es un Sistema Gestor de Bases de Datos Relacionales Orientadas a Objetos, derivado de Postgres, desarrollado en la Universidad de California, en el Departamento de Ciencias de la Computación de Berkeley. Es un gestor de bases de datos de código abierto, brinda un control de concurrencia multi-versión (MVCC por sus siglas en inglés) que permite trabajar con grandes volúmenes de datos; soporta gran parte de la sintaxis SQL y cuenta con un extenso grupo de enlaces con lenguajes de programación. Posee características significativas del motor de datos, entre las que se pueden incluir las sub consultas, los valores por defecto, las restricciones a valores en los campos (constraints) y los disparadores (triggers). Ofrece funcionalidades en línea con el estándar SQL92, incluyendo claves primarias, identificadores entrecomillados, conversión de tipos y entrada de enteros binarios y hexadecimales. 5 El código fuente se encuentra disponible para todos sin costo alguno. Está disponible para 34 plataformas con la última versión estable. Es totalmente compatible con ACID (acrónimo de Atomicity, Consistency, Isolation and Durability; en español: Atomicidad, Consistencia, Aislamiento y Durabilidad). Posee una integridad referencial e interfaces nativas para lenguajes como ODBC, JDBC, C, C++, PHP, PERL, TCL, ECPG; PYTHON y RUBY. Funciona en todos los sistemas operativos Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), y Windows. Debido a la liberación de la licencia, PostgreSQL se puede usar, modificar y distribuir de forma gratuita para cualquier fin, ya sea privado, comercial o académico. BASES DE DATOS Base de Datos o Banco de Datos (BB.DD.). Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, unaBiblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Base de Datos Conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Generalidades En la actualidad, y debido al desarrollo tecnológico de campos como la Informática y la Electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen programas denominados sistemas gestores de bases de datos; los sistemas de gestión de bases de datos (eninglés:database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Por otra parte, la base de datos, representa una realidad determinada que tiene determinadas condiciones, por ejemplo, que los menores de edad no pueden tener licencia de conducir. El 6 sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. Seguridad La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta Información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. Manejo de transacciones Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. Tiempo de respuesta Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados. Ventajas de los SGBD Proveen facilidades para la manipulación de grandes volúmenes de datos. Entre éstas se encuentran: Simplifican la Programación de equipos de consistencia. Manejando las Políticas de respaldo adecuadas, garantizan que los cambios de la base serán siempre consistentes sin importar si hay errores correctamente, etc. Organizan los datos con un impacto mínimo en el Código de los programas. Bajan drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores. Usualmente, proveen interfaces y lenguajes de consulta que simplifican la Recuperación de los datos. Inconvenientes Típicamente, es necesario disponer de una o más personas que administren de la base de datos, en la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren los Sistemas operativos. Esto puede llegar a incrementar los costos de operación en una Empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene. 7 Si se tienen muy pocos Datos que son usados por un único Usuario por vez y no hay que realizar Consultas complejas sobre los Datos, entonces es posible que sea mejor usar una Planilla de cálculo. Complejidad: los Software muy complejos y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un Software de gran tamaño, que requiere de gran cantidad de memoria para poder correr. Coste del Hardware adicional: los requisitos de Hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero. Productos de SGBD disponibles (free) SGBD libres MySQL Licencia Dual, depende el uso (no se sabe hasta cuando, ya que la compro Oracle). Sin embargo, existen 2 versiones: una gratuita que sería equivalente a la edición "express" SQL server de Windows y otra más completa de pago, ese pago se haría en la licencia de ella ya que permitiría usarse en otras distribuciones sin usar la licencia GNU. PostgreSQL Licencia BSD. Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0. SQLite Licencia Dominio Público DB2 Express-C Apache Derby Advantage Database DBase FileMaker Fox Pro IBM DB2 Universal Database (DB2 UDB) IBM Informix Interbase de CodeGear, filial de Borland MAGIC Microsoft Access Microsoft SQL Server Nexus DB 8 Open Access Oracle Paradox Pervasive SQL Progress (DBMS) Sybase ASE Sybase ASA Sybase IQ Window Base IBM IMS Base de Datos Jerárquica CA-IDMS SGBD no libres y gratuitos Microsoft SQL Server Compact Edition Básica Sybase ASE Express Edition para Linux (edición gratuita para Linux) Oracle Express Edition 10 Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios países. Por ejemplo, en España los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD). Bases de datos multidimensionales Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar. La base de datos está almacenada en varias Computadoras conectadas en Red. Surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas Universidades, sucursales de tiendas, etcétera. 9 Bases de Datos (ACID, Reglas de Codd e Integridad de datos) ACID: Por sus siglas en ingles Atomicity Consistency Isolation Durability, que traducido al españoles Atomicidad, Consistencia, Aislamiento y Durabilidad; es un conjunto de características necesarias para que un conjunto de instrucciones puedan ser consideradas como una transacción1y por ende está pueda ser fiable. A continuación se da una breve definición de cada una de estascuatro propiedades: 1. Atomicidad: Cualquier cambio de estado que produce una transacción es atómico, es decir, ocurren todos o no ocurre ninguno. En otras palabras, esta propiedad asegura que todas las acciones de la transacción se realizan o ninguna de ellas se lleva a cabo; la atomicidad requiere que si una transacción se interrumpe por una falla, sus resultados parciales deben ser deshechos. 2. Consistencia: Esta propiedad establece que solo los valores o datos válidos serán escritos en la base de datos; si por algún motivo una transacción que es ejecutada viola esta propiedad, se aplicara un roll back a toda la transacción dejando a la bases de datos en su estado de consistencia anterior. En caso de que la transacción sea ejecutada con éxito, la base de datos pasara de su estado de consistencia anterior a un nuevo estado de consistencia. 3. Aislamiento: Está propiedad asegura que no sean afectadas entre sí las transacciones, en otras palabras esto asegura que la realización de dos o mas transacciones sobre la misma información sean independientes y no generen ningún tipo de error. 4. Durabilidad: Es la propiedad de las transacciones que asegura que una vez finalizada su ejecución, sus resultados son permanentes a pesar de otras consecuencias, como por ejemplo, si falla el disco duro el sistema aún será capaz de recordar todas las transacciones que han sido realizadas en el sistema. Cumpliendo con estas 4 propiedades o requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant.1 En el contexto de bases de datos, una transacción es una única operación sobre los datos. 10 Ejemplo: En un banco, cuando el cuentahabiente no tenga segundo nombre, la base de datos le coloque por default N/A.Mejores prácticas en el análisis, diseño e implementación de basesde datos.Análisis y diseño 1. Estandarización de términos • Problema que resuelve: Confusión y pérdida de semántica de los objetos a crear. • Beneficio: Mantenimiento de sistemas mas rápido. 2. Análisis de requerimientos y utilización de índices • Problema que resuelve: Acceso secuencial en lugar de acceso por índices. • Beneficio: Mejora el tiempo de respuesta al obtener información. 3. Normalización y rendimiento • Problema que resuelve: Incongruencia entre el esquema de la base de datos y el modelo de datos. • Beneficio: Mejor tiempo de respuesta y congruencia del modelo físico. 4. Uso de diccionarios de datos • Problema que resuelve: problemas de integridad e inconsistencia. • Beneficio: Optimización y estandarización del dominio de datos al utilizarse en los atributos. 5. Manejo de textos y BLOB • Problema que resuelve: tiempo de acceso inaceptable y limitada o nula manipulación de datos. • Beneficio: Reducción de tiempo de respuesta. 6. Manejo de valores nulos • Problema que resuelve: información incompleta, malinterpretación de la información ausente, tiempo de acceso al convertir un campo inexistente a nulo al desplegarse. ACID En bases de datos se denomina ACID a las características de los parámetros que permiten clasificar las transacciones de los sistemas de gestión de bases de datos. Cuando se dice que es ACID compliant se indica -en diversos grados- que éste permite realizar transacciones. En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español. 11 Atomicidad: Si una operación consiste en una serie de pasos, todos ellos ocurren o ninguno, es decir, las transacciones son completas. Consistencia: Integridad. Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de Integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido. "La Integridad de la Base de Datos nos permite asegurar que los datos son exactos y consistentes, es decir que estén siempre intactos, sean siempre los esperados y que de ninguna manera cambien ni se deformen. De esta manera podemos garantizar que la información que se presenta al usuario será siempre la misma." Aislamiento: es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error. Esta propiedad define cómo y cuándo los cambios producidos por una operación se hacen visibles para las demás operaciones concurrentes. El aislamiento puede alcanzarse en distintos niveles, siendo el parámetro esencial a la hora de seleccionar SGBDs. Durabilidad: Persistencia. Es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema y que de esta forma los datos sobrevivan de alguna manera. Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant. Puesta en práctica[editar] Poner las características ACID en ejecución no es tan sencillo. El proceso de una transacción requiere a menudo un número de cambios pequeños al ser realizado, incluyendo la puesta al día de los índices que son utilizados en el sistema para acelerar búsquedas. Esta secuencia de operaciones puede fallar por un número de razones; por ejemplo, el sistema puede no tener ningún sitio disponible en sus accionamientos de disco, o puede haber sobrepasado su tiempo de CPU asignado. ACID sugiere que la base de datos pueda realizar todas estas operaciones inmediatamente. De hecho esto es difícil de conseguir. Hay dos clases de técnicas populares: escribir a un registro antes de continuar y la paginación de la sombra. En ambos casos, los bloqueos se deben implantar antes que la información sea actualizada, y dependiendo de la técnica puesta en práctica, todos los datos se tienen que haber leído. En escribir a un registro antes de continuar, la atomicidad es garantizada asegurándose que toda la información esté escrita a un registro antes que se escriba a la base de datos. Eso permite que la base de datos vuelva a un estado anterior en caso de un desplome. En sombrear, las actualizaciones se aplican a una copia de la base de datos, y se activa la nueva copia cuando la transacción sea confiable. La copia refiere a partes sin cambios de la vieja versión de la base de datos, en vez de ser un duplicado entero. Esto significa que debe realizarse un bloqueo en cualquier momento antes de procesar datos en una base de datos, incluso en operaciones leídas. Mantener una gran cantidad de bloqueos da 12 lugar a un aumento substancial indirecto de los procesos así como a una alteración de la concurrencia de ellos. Si el usuario A está procesando una transacción que ha leído una fila de los datos que el usuario B desea modificar, por ejemplo, el usuario B debe esperar hasta que el otro usuario acabe.. Una alternativa a la fijación es mantener copias separadas de cualquier dato que se modifique. Esto permite a usuarios leer datos sin adquirir ningún bloqueo. Usando de nuevo el ejemplo anterior, cuando la transacción del usuario consigue los datos que el usuario B ha modificado, la base de datos puede recuperar la versión exacta de los datos para que el usuario A comience su transacción. Esto asegura que el usuario A consiga una vista constante de la base de datos aunque otros usuarios estén cambiando datos. Es difícil garantizar características en un ambiente de red. Las conexiones de red pudieron fallar, o dos usuarios pudieron utilizar la misma parte de la base de datos al mismo tiempo. El concepto ACID se describe en ISO/IEC 10026-1: 1992 sección 4. 13 ACID en las bases de datos En el mundo de las bases de datos es muy común escuchar hablar del concepto ACID. ACID es un grupo de 4 propiedades que garantizan que las transacciones en las bases de datos se realicen de forma confiable. Veamos en detalle este interesante concepto. Para empezar a definir ACID en el ámbito de las bases de datos, es necesario comprender el concepto de transacción. En las bases de datos, se denomina transacción a una única operación lógica ("de negocio"). Por ejemplo, es una sola transacción la acción de transferir fondos de una cuenta bancaria a otra, aún cuando involucra varios cambios en distintas tablas. En 1970, Jim Gray definió las propiedades que necesitaba tener una transacción confiable, y desarrolló tecnologías para automatizarlas. Más tarde, en 1983, Andreas Reuter y Theo Härder crearon el término "ACID" para describir estas 4 propiedades. Sobre la Atomicidad En una transacción atómica, una serie de operaciones en la base de datos ocurren todas, o no ocurre ninguna. La atomicidad previene que las actualizaciones a la base ocurren de forma parcial, lo cual podría ocasionar mayores problemas que rechazar la transacción entera. En otras palabras, la atomicidad significa indivisibilidad e irreducibilidad. Usualmente, los sistemas implementan la atomicidad mediante algún mecanismo que indica qué transacción comenzó y cuál finalizó; o manteniendo una copia de los datos antes de que ocurran los cambios. Las bases de datos en general implementan la atomicidad usando algún sistema de logging para seguir los cambios. El sistema sincroniza los logs a medida que resulta necesario una vez que los cambios ocurren con éxito. Luego, el sistema de recuperación de caidas simplemente ignora las entradas incompletas. En los sistemas de almacenamiento NoSQL con consistencia eventual, la atomicidad se especifica de forma más débil que en los sistemas relacionales, y existe sólo para las filas. Sobre la Consistencia La consistencia asegura que los cambios a los valores de una instancia son consistentes con cambios a otros valores de la misma instancia. Una restricción de consistencia es un predicado sobre los datos que funcionan como precondición, postcondición, y condición de transformación en cualquier transacción. El sistema de la base de datos asume que la consistencia se mantiene para cada transacción en las instancias. Por otro lado, asegurar la propiedad de consistencia de la transacción es responsabilidad del usuario. 14 De las 4 propiedades de ACID en los sistemas de bases de datos, generalmente la propiedad de Aislamiento es la más relajada. Cuando se intenta mantener el más alto nivel de aislamiento, las bases de datos adquieren un bloqueo o implementan un control concurrente multiversión, que puede resultar en pérdida de concurrencia. Esto genera que la aplicación agregue lógica para funcionar correctamente. La mayoría de las bases de datos ofrecen una cantidad de niveles de aislamiento de transacciones, que controlan el grado de bloqueo que ocurre cuando se seleccionan datos. Para muchas aplicaciones, se pueden construir la mayoría de las transacciones evitando los niveles más altos de aislamiento (por ejemplo, el nivel SERIALIZABLE), y por lo tanto reduciendo la carga en el sistema por bloqueos. El programador tiene que analizar el código de acceso para asegurar que se pueda relajar el nivel de aislamiento sin generar bugs que luego serían dificiles de encontrar. Por otro lado, si se usan niveles más altos de aislamiento, es más probable la aparición de dealocks, lo cual requieren de analisis y la implementación de técnicas de programación para evitarlos. ANSI/ISO SQL define los siguientes tipos de aislamiento: Serializable Este es el nivel más alto de aislamiento. En una base de datos con control concurrente basado en bloqueos, la serialización requiere que los bloqueos de lectura y escritura (que se adquieren en datos seleccionados) sean liberados al finalizar la transacción. También se pueden adquierir bloqueos de rango cuando se realiza un query SELECT con una cláusula WHERE, especialmente cuando se quieren evitar lecturas fantasma. En una base de datos con control concurrente no basado en bloqueos, no se necesitan los bloqueos; sin embargo, si el sistema detecta una colisión de escritura entre muchas transacciones concurrentes, sólo se permite el commit de una de estas transacciones. Lecturas repetibles (repeatable reads) En este nivel de aislamiento, un sistema de control de concurrencia basado en bloqueos mantiene los bloqueos de escritura y lectura (que se adquieren en datos seleccionados) hasta el final de la transacción. Sin embargo, no se gestionan los bloqueos de rango, por lo tanto podrían ocurrir lecturas fantasma. Lecturas sobre commits (read commited) En este nivel de aislamiento, un sistema de control de concurrencia basado en bloqueos mantiene los bloqueos de escritura (que se adquieren en datos seleccionados) hasta el final de la transacción, pero los bloqueos de lectura se liberan ni bien se realiza la operación de SELECT (y por lo tanto pueden ocurrir lecturas no-repetibles). Igual que el nivel anterior, no se permiten bloqueos de rango. Lecturas sin commits (read uncommited) Este es el nivel más bajo de aislamiento. En este nivel se permiten las lecturas sucias, por lo cual una transacción podría ver cambios de otra transacción que todavía tuvieron un commit. 15 Consecuencia sobre las lecturas El estandar ANSI/ISO SQL 92 se refiere a tres distintos fenómenos sobre la lectura que ocurren cuando la Transacción 1 lee datos que la Transacción 2 puede haber cambiado. Lecturas sucias Las lecturas sucias ("dirty reads") ocurren cuando se permite que una transacción lea una fila que fue modificada por otra transacción que todavía no hizo commit. Las lecturas sin commit funcionan igual que las lecturas no-repetibles; sin embargo, la segunda transacción no necesita haber hecho commit para que el primer query devuelva datos distintos. Lo único que puede prevenirse en el nivel de aislamiento "Lecturas sin commit" es que las actualizaciones aparezcan fuera de órden. Lecturas no-repetibles Una lectura no-repetible ocurre cuando, durante el curso de una transacción, se recupera una fila dos veces y el valor de la fila difiere entre las lecturas. En las bases de datos con control de concurrencia basado en bloqueos, el fenómeno de lecturas no-repetibles puede ocurrir cuando no se adquieren bloqueos de lectura al ejecutar un SELECT, o cuando los bloqueos adquieridos en las filas afectadas se liberan ni bien se ejecuta la operación de SELECT. Lecturas fantasma Una lectura fantasma ocurre cuando, durante el curso de una transacción, se ejecutan dos queries idénticos, y la colección de filas retornada por el segundo query es diferente al primero. Esto puede ocurrir cuando no se adquieren bloqueos de rango al ejecutar una operación SELECT...WHERE. Las lecturas fantasma son un caso especial de las lecturas no-repetibles, cuando la transacción 1 repite la consulta rango SELECT...WHERE y, entre ambas consultas, la Transacción 2 crea (INSERT) nuevas filas que cumplen con la condición del WHERE. Sobre la Durabilidad La durabilidad es la propiedad que garantiza que las transacciones que tuvieron un commit sobrevivan de forma permanente. La durabilidad puede lograrse almacenando los registros de log de la transacción en un medio de almacenamiento no-volatil antes de aceptar los commit. En las transacciones distribuidas, todos los participantes deben coordinarse antes de aceptar un commit. Esto se suele realizar mediante el protocolo de "commit en dos fases". Muchas bases de datos implementan la durabilidad escribiendo las transacciones en un log de transacciones que puede ser reprocesado para recrear el estado del sistema antes de una falla. Una transacción se considera confirmada sólo luego de que haya sido ingresada al log. 16 CONCLUSION: Después de haber realizado la siguiente investigación, realmente empezamos a conocer de cómo está formado la secuencia de un SGBD y las relaciones que tienen ellas con otras como por ejemplo la importancia que tiene un banco de datos para lo cual ayuda a muchas instituciones para que la información este a la vanguardia y así mismo a la mano de los diferentes usuarios que requieran de toda esta información….también conocemos como gestiona o acciona un sistema de cajero automático entre otros ejemplos. 17 Fuentes Bibliográficas BERTINO, E. A. y MARTINO, L. A. 1995. Sistemas de bases de datos orientadas a objetos. s.l. : Ediciones Díaz de Santos, 1995. COBO, ÁNGEL y GÓMEZ, PATRICIA. 2005. PHP y MySQL- tecnologias para el desarrollo de aplicaciones web. s.l. : Ediciones Díaz de Santos, 2005. 8479787066. LOCKHART, T. 1996. Tutorial de PostgreSQL. 1996. PETKOVIĆ, DUŠAN. 2005. Microsoft SQL Server 2005: a beginner’s guide. s.l. : McGraw-Hill Professional, 2005. 0072260939. https://es.wikipedia.org/wiki/ACID http://es.slideshare.net/W4L73R/bases-de-datos-acid-reglas-de-codd-e-integridad-de-datos