Download reglas acid y codd gestores base de datos

Document related concepts

Aislamiento (ACID) wikipedia , lookup

ACID wikipedia , lookup

Transacción (base de datos) wikipedia , lookup

Base de datos distribuida wikipedia , lookup

NoSQL wikipedia , lookup

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