13.08.2013 Views

modelos avanzados de bases de datos base de datos distribuidas

modelos avanzados de bases de datos base de datos distribuidas

modelos avanzados de bases de datos base de datos distribuidas

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Base <strong>de</strong> Datos Distribuidas<br />

Cuando una serie <strong>de</strong> <strong>datos</strong> se asignan, estos pue<strong>de</strong>n replicarse para mantener una copia o<br />

varias idénticas. Por tanto, respecto a la replicación, en la asignación <strong>de</strong> fragmentos existen tres<br />

estrategias:<br />

No soportar replicación. Cada fragmento resi<strong>de</strong> en un solo sitio.<br />

Soportar replicación completa. Cada fragmento resi<strong>de</strong> en cada uno <strong>de</strong> los sitios.<br />

Soportar replicación parcial. Cada fragmento resi<strong>de</strong> en alguno <strong>de</strong> los sitios.<br />

Se consi<strong>de</strong>ra <strong>de</strong> gran utilidad la replicación cuando el número <strong>de</strong> consultas <strong>de</strong> solo<br />

lectura es bastante mayor que el número <strong>de</strong> consultas <strong>de</strong> actualizaciones.<br />

Transacciones en <strong>base</strong> <strong>de</strong> <strong>datos</strong> <strong>distribuidas</strong><br />

La pregunta es qué pasa cuando dos consultas tratan <strong>de</strong> actualizar el mismo elemento <strong>de</strong><br />

<strong>datos</strong> o si el sistema falla durante la ejecución <strong>de</strong> una consulta. Intuitivamente se pue<strong>de</strong> pensar<br />

que el concepto principal que <strong>de</strong>be manejar la <strong>base</strong> <strong>de</strong> <strong>datos</strong> es la <strong>de</strong> ‘ejecución consistente’ <strong>de</strong><br />

consultas. Por eso es que se introduce el concepto <strong>de</strong> una transacción que es usado <strong>de</strong>ntro <strong>de</strong>l<br />

dominio <strong>de</strong> la <strong>base</strong> <strong>de</strong> <strong>datos</strong> como una unidad básica <strong>de</strong> cómputo consistente y confiable.<br />

Lo que se persigue con el manejo <strong>de</strong> transacciones es por un lado tener una<br />

transparencia a<strong>de</strong>cuada <strong>de</strong> las acciones concurrentes a una <strong>base</strong> <strong>de</strong> <strong>datos</strong> y por otro lado tener<br />

una transparencia a<strong>de</strong>cuada en el manejo <strong>de</strong> las fallas que se pue<strong>de</strong>n presentar en una <strong>base</strong> <strong>de</strong><br />

<strong>datos</strong>. Las propieda<strong>de</strong>s <strong>de</strong> una transacción son las siguientes:<br />

1.-Atomicidad. Se refiere al hecho <strong>de</strong> que una transacción se trata como una unidad <strong>de</strong><br />

operación. Por lo tanto, o todas las acciones <strong>de</strong> la transacción se realizan o ninguna <strong>de</strong> ellas<br />

se lleva a cabo.<br />

2.-Consistencia. La consistencia <strong>de</strong> una transacción es simplemente su correctitud. En otras<br />

palabras, una transacción es un programa correcto que lleva la <strong>base</strong> <strong>de</strong> <strong>datos</strong> <strong>de</strong> un estado<br />

consistente a otro con la misma característica.<br />

3.-Aislamiento. Una transacción en ejecución no pue<strong>de</strong> revelar sus resultados a otras<br />

transacciones concurrentes antes <strong>de</strong> su commit. Más aún, si varias transacciones se ejecutan<br />

concurrentemente, los resultados <strong>de</strong>ben ser los mismos que si ellas se hubieran ejecutado <strong>de</strong><br />

manera secuencial (seriabilidad).<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!