+ All Categories
Home > Documents > UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo...

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo...

Date post: 18-Aug-2018
Category:
Upload: phamkhanh
View: 214 times
Download: 0 times
Share this document with a friend
17
1 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA Centro Universitario de Izabal –CUNIZAB- Curso: 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
Transcript
Page 1: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

1

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

Centro Universitario de Izabal –CUNIZAB-

Curso: 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

Page 2: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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

Page 3: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 4: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 5: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

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

Base de Datos

Conjunto de datos pertenecientes a un mismo contexto y

almacenados sistemáticamente para su posterior uso.

Page 6: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 7: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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

Page 8: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 9: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 10: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 11: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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

Page 12: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 13: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 14: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 15: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 16: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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.

Page 17: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA … · funciones de almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas gestores de bases ... campos (constraints)

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


Recommended