05.03.2015 Views

BDD Bases de Datos Distribuidas

BDD Bases de Datos Distribuidas

BDD Bases de Datos Distribuidas

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>BDD</strong><br />

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

Integrantes:<br />

Miguel Marchetti.<br />

Guillermo Vera.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

Introducción<br />

Las <strong>BDD</strong> son la unión <strong>de</strong> dos conceptos<br />

los DBMS y la tecnología <strong>de</strong> re<strong>de</strong>s <strong>de</strong><br />

computadores.<br />

Los DBMS se basan en un paradigma <strong>de</strong><br />

procesamiento <strong>de</strong> datos, que poseen una<br />

data única que es <strong>de</strong>finida y administrada<br />

en un punto <strong>de</strong> control centralizado.<br />

La tecnología <strong>de</strong> re<strong>de</strong>s <strong>de</strong> computadores,<br />

promueve un modo <strong>de</strong> trabajo que va en<br />

contra <strong>de</strong> todo esfuerzo <strong>de</strong> centralización.<br />

La i<strong>de</strong>a consiste en lograr la integración y<br />

distribución y que ambos enfoques<br />

no pierdan su naturaleza esencial.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

Introducción


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

¿Por qué son necesarias las bases <strong>de</strong><br />

datos distribuidas?<br />

Para administrar datos distribuidos<br />

geográfica o administrativamente<br />

En general las empresas están ya<br />

distribuidas <strong>de</strong> manera lógica por<br />

lo que se <strong>de</strong>duce que los datos<br />

también estén distribuidos.<br />

Una base <strong>de</strong> datos distribuida<br />

permite reflejar la estructura<br />

lógica <strong>de</strong> la empresa.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

SISTEMA DE COMPUTACIÓN DISTRIBUÍDO.<br />

Es un número <strong>de</strong> elementos <strong>de</strong><br />

procesamiento (no necesariamente<br />

homogéneos) que están<br />

interconectados en una red <strong>de</strong><br />

computadores y que cooperan para<br />

realizar las tareas que tienen<br />

asignadas.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

Base De <strong>Datos</strong> Distribuída (<strong>BDD</strong>).<br />

Es una colección <strong>de</strong> múltiples bases <strong>de</strong><br />

datos lógicamente interrelacionadas y<br />

repartidas sobre un sistema <strong>de</strong> computo<br />

distribuído.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

Sistema De Gestión De Base De <strong>Datos</strong><br />

Distribuído (DDBMS).<br />

Un sistema <strong>de</strong> gestión <strong>de</strong> bases <strong>de</strong><br />

datos distribuidas (SG<strong>BDD</strong>) es el<br />

software que permite el manejo <strong>de</strong><br />

bases <strong>de</strong> datos distribuidas y que hace<br />

dicha distribución transparente al<br />

usuario, es <strong>de</strong>cir, los usuarios actúan<br />

como si todo estuviese junto en una sola<br />

base <strong>de</strong> datos.<br />

Transparente significa: las<br />

aplicaciones trabajaran, <strong>de</strong>s<strong>de</strong> un punto<br />

<strong>de</strong> vista lógico, como sí un solo SGBD<br />

ejecutado en una sola máquina,<br />

administrara esos datos.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

Características SA<strong>BDD</strong>.<br />

• Una colección <strong>de</strong> datos compartidos y<br />

relacionados lógicamente.<br />

• Los datos están divididos en<br />

fragmentos.<br />

• Los fragmentos se pue<strong>de</strong>n duplicar.<br />

• Los fragmentos se colocan en varios<br />

emplazamientos (computadores).<br />

• Dichos emplazamientos están<br />

conectados por una red.<br />

• Los datos <strong>de</strong> cada emplazamiento<br />

están bajo el control <strong>de</strong> un SABD.<br />

• Cada SABD participa en al menos una<br />

aplicación global.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

Funciones <strong>de</strong> un SA<strong>BDD</strong>.<br />

A<strong>de</strong>más <strong>de</strong> las funciones <strong>de</strong> un SGBD<br />

centralizado, un SG<strong>BDD</strong> <strong>de</strong>be tener las<br />

siguientes funciones:<br />

- Servicios <strong>de</strong> comunicación extendidos para<br />

proporcionar acceso a localizaciones<br />

remotas y permitir la transferencia <strong>de</strong><br />

consultas y datos entre las localizaciones<br />

usando una red.<br />

- Catálogo <strong>de</strong>l sistema extendido para<br />

almacenar <strong>de</strong>talles sobre la distribución <strong>de</strong><br />

los datos.


Introducción<br />

¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

Funciones <strong>de</strong> un SA<strong>BDD</strong>.<br />

- Procesamiento distribuido <strong>de</strong><br />

consultas, incluyendo optimización <strong>de</strong><br />

consultas y acceso a datos remotos.<br />

- Control <strong>de</strong> concurrencia extendido<br />

para mantener la consistencia <strong>de</strong> los<br />

datos replicados.<br />

- Servicios <strong>de</strong> recuperación extendidos<br />

que tengan en cuenta fallos en las<br />

localizaciones individuales y fallos <strong>de</strong><br />

conexiones <strong>de</strong> comunicación.


¿Porque Hablamos De <strong>BDD</strong>?<br />

1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

Nodo o Emplazamiento.<br />

Se refiere a cada uno <strong>de</strong> los<br />

or<strong>de</strong>nadores que integran el sistema <strong>de</strong><br />

<strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> distribuido.


1) Conceptos Básicos.<br />

1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

Re<strong>de</strong>s <strong>de</strong> Comunicación.<br />

Una red <strong>de</strong> computadores consiste es<br />

un conjunto <strong>de</strong> computadores llamados<br />

sites o nodos que están conectados<br />

mediante algún tipo <strong>de</strong> red <strong>de</strong><br />

comunicaciones para transmitir data.<br />

Existen dos tipos <strong>de</strong> re<strong>de</strong>s:<br />

•Red <strong>de</strong> Área Local (local area network)<br />

•Red <strong>de</strong> Área Amplia (long-haul network)


1.1) Sistema De Computación<br />

Distribuído.<br />

1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

Red <strong>de</strong> Área Local (local area network)<br />

En don<strong>de</strong> los nodos se encuentran<br />

físicamente cercanos (como en un<br />

mismo edificio o edificios adyacentes) y<br />

normalmente se conecta usando cables.


1.2) Base De <strong>Datos</strong> Distribuída<br />

(Bdd).<br />

1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

Red <strong>de</strong> Área Amplia (long-haul network)<br />

En don<strong>de</strong> los nodos se hallan<br />

geográficamente distantes (en otras<br />

ciuda<strong>de</strong>s o países) y para la<br />

comunicación se usan líneas telefónicas<br />

y satélites.<br />

A veces, se encuentran re<strong>de</strong>s que usan<br />

ambos tipos <strong>de</strong> conexión.


1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

Base <strong>de</strong> datos distribuidas<br />

Son un sistema <strong>de</strong> bases <strong>de</strong> datos en el cual<br />

la data está almacenada físicamente en<br />

varios “nodos” y cada uno <strong>de</strong> estos es<br />

manejado por un DBMS capaz <strong>de</strong> funcionar<br />

in<strong>de</strong>pendientemente <strong>de</strong> los otros.<br />

Estos sistemas no comparten ni memoria, ni<br />

disco y las computadoras utilizadas pue<strong>de</strong>n<br />

variar en tamaño y función, abarcando <strong>de</strong>s<strong>de</strong><br />

estaciones <strong>de</strong> trabajo hasta los gran<strong>de</strong>s<br />

sistemas.


1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

Base <strong>de</strong> datos distribuidas<br />

Es distribuido si cumple que:<br />

•Los distintos nodos están informados sobre los<br />

<strong>de</strong>más.<br />

•Aunque algunas tablas estén almacenadas sólo<br />

en algunos nodos, éstos comparten un esquema<br />

global común.<br />

•Cada nodo proporciona un entorno <strong>de</strong><br />

ejecución <strong>de</strong> transacciones, tanto local, como<br />

global.<br />

•Generalmente, los nodos ejecutan el mismo<br />

software <strong>de</strong> gestión distribuida. En caso<br />

contrario se dice que el sistema es heterogéneo.


1.3) Sistema De Gestión De Base De<br />

<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

Base <strong>de</strong> datos distribuidas<br />

BD Distribuido


<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

Razones para construir un sistema<br />

Distribuido<br />

•Incrementa la Disponibilidad:<br />

Si un nodo falla, los restantes pue<strong>de</strong>n seguir<br />

trabajando. En particular si los data ítems<br />

están replicados en varios nodos, una<br />

transacción que necesite un <strong>de</strong>terminado<br />

elemento pue<strong>de</strong> encontrarlo en algún otro<br />

nodo. De este modo el fallo <strong>de</strong> un nodo no<br />

implica necesariamente la caída <strong>de</strong>l sistema.<br />

El mismo no <strong>de</strong>be seguir utilizando los<br />

servicios <strong>de</strong>l nodo que falló hasta que éste se<br />

recupere y sea integrado nuevamente al<br />

sistema.


<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

Razones para construir un sistema<br />

Distribuido<br />

•Acceso Distribuido a los <strong>Datos</strong>:<br />

Se dispone <strong>de</strong> un entorno don<strong>de</strong> los usuarios<br />

pue<strong>de</strong>n acce<strong>de</strong>r <strong>de</strong>s<strong>de</strong> un único nodo a los<br />

datos que resi<strong>de</strong>n en otros nodos. Por<br />

ejemplo: una organización pue<strong>de</strong> tener<br />

muchas sucursales en diferentes ciuda<strong>de</strong>s y<br />

uno <strong>de</strong> sus analistas pue<strong>de</strong> necesitar acce<strong>de</strong>r<br />

a la data correspondiente a diferentes sitios;<br />

<strong>de</strong>bido a la distribución <strong>de</strong> los datos es<br />

posible satisfacer esta petición.


<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

Razones para construir un sistema<br />

Distribuido<br />

•Análisis <strong>de</strong> los <strong>Datos</strong> Distribuidos:<br />

Las organizaciones <strong>de</strong>sean examinar toda la<br />

data a su disposición, aun cuando esta está<br />

almacenada en múltiples sitios y en múltiples<br />

sistemas <strong>de</strong> bases <strong>de</strong> datos. El soporte para<br />

tal acceso integrado involucra muchos<br />

aspectos, incluso habilitar el acceso a datos<br />

ampliamente distribuidos pue<strong>de</strong> ser muy<br />

difícil.


<strong>Datos</strong> Distribuído (Ddbms).<br />

1.3.1) Características SA<strong>BDD</strong>.<br />

1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

Razones para construir un sistema<br />

Distribuido<br />

•Autonomía:<br />

La principal ventaja <strong>de</strong> compartir datos<br />

por medio <strong>de</strong> la distribución <strong>de</strong> datos es<br />

que cada nodo es capaz <strong>de</strong> mantener<br />

un grado <strong>de</strong> control sobre los datos que<br />

se almacenan localmente en el.


1.3.2) Funciones De Un<br />

SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

Tipos <strong>de</strong> Transacciones<br />

Existen dos tipos <strong>de</strong> transacciones:<br />

• Locales.<br />

• Globales.


SA<strong>BDD</strong>.<br />

1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

Locales<br />

Es aquella que acce<strong>de</strong> a los datos <strong>de</strong>l<br />

nodo don<strong>de</strong> se inició la transacción,<br />

es <strong>de</strong>cir, la ejecuta el sistema local <strong>de</strong><br />

la base <strong>de</strong> datos sin el control <strong>de</strong>l<br />

sistema global <strong>de</strong> la bd.


1.4) Nodo O Emplazamiento<br />

1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

Globales<br />

Es aquella que acce<strong>de</strong> a los datos<br />

situados en uno o mas nodos<br />

diferentes <strong>de</strong> aquel en que se inició la<br />

transacción, es <strong>de</strong>cir, se ejecuta bajo<br />

el control <strong>de</strong>l sistema <strong>de</strong> varias bases<br />

<strong>de</strong> datos.


1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

Ventajas <strong>de</strong> las BDs <strong>Distribuidas</strong><br />

•Compartimiento <strong>de</strong> datos: Los<br />

usuarios <strong>de</strong> un nodo son capaces <strong>de</strong><br />

acce<strong>de</strong>r a los datos <strong>de</strong> otro nodo.<br />

•Autonomía: Cada nodo tiene cierto<br />

grado <strong>de</strong> control sobre sus datos, en<br />

un sistema centralizado, hay un<br />

administrador <strong>de</strong>l sistema<br />

responsable <strong>de</strong> los datos a nivel<br />

global. Cada administrador local<br />

pue<strong>de</strong> tener un nivel <strong>de</strong> autonomía<br />

local diferente.


1.5) Re<strong>de</strong>s De Comunicación<br />

1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

Ventajas <strong>de</strong> las BDs <strong>Distribuidas</strong><br />

•Disponibilidad: Si en un sistema<br />

distribuido falla un nodo, los nodos<br />

restantes pue<strong>de</strong>n seguir<br />

funcionando. Si se duplican los datos<br />

en varios nodos, la transacción que<br />

necesite un <strong>de</strong>terminado dato pue<strong>de</strong><br />

encontrarlo en cualquiera <strong>de</strong> los<br />

diferentes nodos.


1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Desventajas <strong>de</strong> las BDs <strong>Distribuidas</strong><br />

•Coste <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong>l software: La<br />

complejidad añadida que es necesaria<br />

para mantener la coordinación entre<br />

nodos hace que el <strong>de</strong>sarrollo <strong>de</strong> software<br />

sea más costoso.<br />

•Mayor probabilidad <strong>de</strong> errores: Como los<br />

nodos que constituyen el sistema<br />

funcionan en paralelo, es más difícil<br />

asegurar el funcionamiento correcto <strong>de</strong><br />

los algoritmos, así como <strong>de</strong> los<br />

procedimientos <strong>de</strong> recuperación <strong>de</strong> fallos<br />

<strong>de</strong>l sistema.


1.5.1) Red De Área Local<br />

(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Desventajas <strong>de</strong> las BDs <strong>Distribuidas</strong><br />

•Mayor sobrecarga <strong>de</strong> procesamiento: el<br />

intercambio <strong>de</strong> mensajes y ejecución <strong>de</strong><br />

algoritmos para el mantenimiento <strong>de</strong> la<br />

coordinación entre nodos supone una<br />

sobrecarga que no se da en los sistemas<br />

centralizados.


(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Condiciones <strong>de</strong>seables <strong>de</strong> una<br />

BD Distribuida<br />

•In<strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> los <strong>Datos</strong><br />

Distribuidos: Los usuarios <strong>de</strong>berían<br />

ser capaces <strong>de</strong> solicitar queries sin<br />

especificar don<strong>de</strong> están situadas las<br />

relaciones, ya sean sus copias o<br />

fragmentos, a las que hizo referencia.<br />

Este principio es una extensión<br />

natural <strong>de</strong> la in<strong>de</strong>pen<strong>de</strong>ncia física y<br />

lógica <strong>de</strong> la data.


(Local Area Network)<br />

1.5.2) Red De Área Amplia<br />

(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Condiciones <strong>de</strong>seables <strong>de</strong> una<br />

BD Distribuida<br />

•Atomicidad <strong>de</strong> la Transacción: Los<br />

usuarios <strong>de</strong>berían ser capaces <strong>de</strong><br />

escribir transacciones que accedan y<br />

actualicen datos en muchos sitios,<br />

las mismas tienen que seguir siendo<br />

atómicas, sino llevarían a la BD<br />

distribuida a un estado inconsistente.


(Long-haul Network)<br />

2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Tipos <strong>de</strong> BDs <strong>Distribuidas</strong><br />

Existen dos tipos <strong>de</strong> BDs <strong>Distribuidas</strong>:<br />

•Homogéneas.<br />

•Heterogéneas o Multibases <strong>de</strong> <strong>Datos</strong>.


2) Base De <strong>Datos</strong> <strong>Distribuidas</strong><br />

3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

Homogéneas<br />

Son aquella don<strong>de</strong> todos los nodos<br />

poseen el mismo DBMS, son conscientes<br />

<strong>de</strong> la existencia <strong>de</strong> los <strong>de</strong>más sitios y<br />

aceptan cooperar en el procesamiento <strong>de</strong><br />

las solicitu<strong>de</strong>s <strong>de</strong> los usuarios.<br />

En estos sistemas los nodos locales<br />

renuncian a una parte <strong>de</strong> su autonomía en<br />

cuanto a su <strong>de</strong>recho a modificar los<br />

esquemas o el software <strong>de</strong>l DBMS. Cada<br />

nodo <strong>de</strong>be cooperar en el intercambio <strong>de</strong><br />

información sobre las transacciones para<br />

hacer posible el procesamiento <strong>de</strong> las<br />

transacciones en varios nodos.


3) Razones Para Construir Un Sistema<br />

Distribuido<br />

4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

Heterogéneas o Multibases <strong>de</strong> <strong>Datos</strong><br />

Son aquellas don<strong>de</strong> los nodos utilizan<br />

diferentes DBMS, siendo cada uno<br />

esencialmente autónomo. Es posible que<br />

algunos nodos no sean conscientes <strong>de</strong> la<br />

existencia <strong>de</strong> los <strong>de</strong>más y quizás<br />

proporcionen facilida<strong>de</strong>s limitadas para la<br />

cooperación en el procesamiento <strong>de</strong><br />

transacciones.<br />

Los esquemas constituyen un problema<br />

importante para el procesamiento <strong>de</strong> las<br />

consultas, mientras que la divergencia <strong>de</strong>l<br />

software supone un inconveniente para el<br />

procesamiento <strong>de</strong> transacciones que<br />

tengan acceso a varios nodos.


4) Tipos De Transacciones<br />

4.1) Locales:<br />

4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los DBMSs<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Arquitectura <strong>de</strong> los DBMSs Distribuidos<br />

Existen tres tipos <strong>de</strong> arquitecturas:<br />

• Cliente-Servidor<br />

• Servidores Cooperantes<br />

• De una Vía Centralizada


4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Cliente-Servidor<br />

Es un sistema distribuido entre múltiples<br />

procesadores don<strong>de</strong> hay clientes que<br />

solicitan servicios y servidores que los<br />

proporcionan.<br />

Posee uno o más procesos clientes y uno<br />

o más procesos servidores, un proceso<br />

cliente pue<strong>de</strong> mandar un query a alguno<br />

<strong>de</strong> los procesos servidores. Los clientes<br />

son responsables <strong>de</strong> los aspectos<br />

relacionados con la interfaces <strong>de</strong> usuario,<br />

mientras que los servidores manejan los<br />

datos y ejecutan las transacciones.


4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Cliente-Servidor<br />

La arquitectura Cliente-Servidor se ha<br />

<strong>de</strong>sarrollado con la finalidad <strong>de</strong> <strong>de</strong>finir<br />

servidores especializados en funciones<br />

específicas.<br />

La i<strong>de</strong>a <strong>de</strong>l <strong>BDD</strong> es dividir al DBMS en tres<br />

niveles: cliente, servidor y las<br />

comunicaciones, para reducir su<br />

complejidad. No se ha establecido una<br />

regla para dividir al DBMS pero una<br />

distribución muy común es <strong>de</strong>signar a un<br />

nodo con toda la funcionalidad <strong>de</strong> un<br />

DBMS centralizado en el nivel <strong>de</strong>l servidor<br />

y varios otros servidores especializados<br />

en SQL, con ambos, aten<strong>de</strong>r a los <strong>de</strong>más<br />

nodos que serían los clientes.


4.2) Globales:<br />

5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Cliente-Servidor<br />

Usuarios<br />

Interfaces<br />

Red <strong>de</strong> Interconexión<br />

Servidor<br />

Base <strong>de</strong> Dato


5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Servidores Cooperantes<br />

Po<strong>de</strong>mos tener una colección <strong>de</strong><br />

servidores <strong>de</strong> bases <strong>de</strong> datos, cada uno<br />

capaz <strong>de</strong> correr transacciones sobre los<br />

datos locales, y cooperativamente sobre<br />

datos resi<strong>de</strong>ntes en otro servidor.<br />

Cuando un servidor recibe un query que<br />

requiere el acceso a la data <strong>de</strong> otro<br />

servidor, este genera el subquery<br />

apropiado para ser ejecutado por otros<br />

servidores y, estos, colocan el resultado<br />

junto a la respuesta procesada <strong>de</strong>l query<br />

original.


5) Ventajas De Las Bds <strong>Distribuidas</strong><br />

6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Servidores Cooperantes<br />

Usuarios<br />

Interfaces<br />

Red <strong>de</strong> Interconexión<br />

Servidor<br />

Base <strong>de</strong> Dato


6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

De una Vía Centralizada<br />

La i<strong>de</strong>a es que necesitamos solo un<br />

servidor <strong>de</strong> bases <strong>de</strong> datos capaz <strong>de</strong><br />

manejar queries y transacciones<br />

provenientes <strong>de</strong> múltiples servidores; los<br />

servidores pequeños necesitan manejar<br />

transacciones y queries locales.<br />

Po<strong>de</strong>mos pensar en este servidor especial<br />

como una capa <strong>de</strong>l software que coordina<br />

la ejecución <strong>de</strong> queries y transacciones a<br />

través <strong>de</strong> uno o más servidores <strong>de</strong> bases<br />

<strong>de</strong> datos in<strong>de</strong>pendientes, es usualmente<br />

llamado middleware.


6) Desventajas De Las Bds <strong>Distribuidas</strong><br />

7) Condiciones Deseables De Una BD<br />

Distribuida<br />

8) Tipos De Bds <strong>Distribuidas</strong><br />

8.1) Homogéneas:<br />

8.2) Heterogéneas O Multibases De<br />

<strong>Datos</strong><br />

9) Arquitectura De Los Dbmss<br />

Distribuidos<br />

9.1) Cliente-servidor<br />

9.2) Servidores Cooperantes<br />

9.3) De Una Vía Centralizada<br />

10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un<br />

DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query<br />

Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y<br />

Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

De una Vía Centralizada<br />

Usuarios<br />

Interfaces<br />

Red <strong>de</strong> Interconexión<br />

Servidor Middleware<br />

Servidor<br />

Base <strong>de</strong> Dato


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos<br />

Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

Existen dos tipos <strong>de</strong> almacenamiento:<br />

•Fragmentación.<br />

•Replicación.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Fragmentación<br />

Existen 3 tipos <strong>de</strong> fragmentación:<br />

•Horizontal.<br />

•Vertical.<br />

•Mixta.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Fragmentación Horizontal<br />

Una tabla se divi<strong>de</strong> en tuplas en varios fragmentos,<br />

cada uno <strong>de</strong> estos fragmentos posee suficiente<br />

información para permitir la reconstrucción <strong>de</strong> la<br />

tabla original.<br />

Una tabla T se divi<strong>de</strong> en T1, T2, ……, Tn<br />

fragmentos que son almacenados en diferentes<br />

nodos.<br />

Don<strong>de</strong> cada T1, T2, …., Tn proviene <strong>de</strong> una<br />

Selección <strong>de</strong> T.<br />

Al aplicar Unión a T1, T2, …., Tn obtenemos a la<br />

relación principal T.<br />

Pue<strong>de</strong>n existir fragmentos no disjuntos, <strong>de</strong>bido a la<br />

combinación <strong>de</strong> una fragmentación y una replicación.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Ejemplo:<br />

Fragmentación Horizontal


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Fragmentación Vertical<br />

Una tabla se divi<strong>de</strong> en columnas por<br />

fragmentos, cada uno <strong>de</strong> estos fragmentos<br />

posee el Primary Key <strong>de</strong> la tabla primaria.<br />

Una tabla T se fragmenta en T1, T2, …, Tn<br />

fragmentos, don<strong>de</strong> cada T1, T2, … , Tn<br />

provienen <strong>de</strong> una Proyección sobre T.<br />

Al aplicar un Join a T1, T2, … , Tn<br />

obtenemos a la relación principal T.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Ejemplo:<br />

Fragmentación Vertical


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Fragmentación Mixta<br />

Se aplican los dos tipos <strong>de</strong> fragmentaciones.<br />

Ejemplo:


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Replicación <strong>de</strong> <strong>Datos</strong><br />

Se posee en cada nodo replicas exactas<br />

<strong>de</strong> la tabla principal.<br />

Ventajas:<br />

Disponibilidad: El sistema sigue funcionando<br />

aún si algún nodo <strong>de</strong>ja <strong>de</strong> funcionar.<br />

Aumento <strong>de</strong>l Paralelismo: Varios nodos<br />

pue<strong>de</strong>n realizar consultas en paralelo sobre<br />

la misma tabla. De este modo <strong>de</strong>s<strong>de</strong><br />

cualquier nodo se conseguirá el dato<br />

<strong>de</strong>seado, así eliminando las transacciones<br />

globales.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Replicación <strong>de</strong> <strong>Datos</strong><br />

Desventajas:<br />

Aumento <strong>de</strong> la sobrecarga en las actualizaciones:<br />

Ya que el sistema <strong>de</strong>be asegurar consistencia<br />

<strong>de</strong> los datos, ahora será mucho mayor ya que<br />

al actualizar una <strong>de</strong> las replicas los cambios<br />

se <strong>de</strong>ben propagar a cada una <strong>de</strong> las otras<br />

replicas restantes.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Procesamiento <strong>de</strong> un Query Distribuido<br />

El principal objetivo es la reducción <strong>de</strong> datos<br />

transferidos, se estudia el coste <strong>de</strong> las<br />

trasferencias.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Queries Nonjoin en un DBMS<br />

Distribuido<br />

Una operación tan simple como la Selección<br />

o Proyección, pue<strong>de</strong> ser afectada por la<br />

replicación y fragmentación.<br />

Supongamos una relación<br />

Empleado(COD, Nombre, Apellido, Dir, Sexo,<br />

Sueldo, Fecha Nac, Dpto)<br />

Se aplica una operación <strong>de</strong> Selección.<br />

Select E.Nombre<br />

From Empleado E<br />

Where E.Dpto = “Computación”<br />

AND E.Dpto = “Biologia”


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Queries Nonjoin en un DBMS<br />

Distribuido<br />

Si la relación es fragmentada horizontalmente por<br />

<strong>de</strong>partamentos, y cada fragmento es colocado en<br />

un nodo ubicado en el correspondiente<br />

<strong>de</strong>partamento; el DBMS <strong>de</strong>be respon<strong>de</strong>r al Query<br />

evaluando en ambos nodos y tomando la unión<br />

<strong>de</strong> las respuestas.<br />

Por otra parte si la cláusula Where tenía la<br />

condición E.Dpto = “Computación”, el DBMS <strong>de</strong>be<br />

conocer esto, y el Query <strong>de</strong>be ser respondido en<br />

el nodo Computación solamente.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Joins en un DBMS Distribuido<br />

Las operaciones <strong>de</strong> Join en relaciones<br />

almacenadas en distintos nodos son<br />

extremadamente costosos.<br />

Supongamos dos relaciones:<br />

Empleado(COD, Nombre, Apellido, Dir,<br />

Sexo, Sueldo, Fecha Nac, Dpto)<br />

10.000 tuplas.<br />

Cada tupla tiene 100 bytes.<br />

COD = 9 bytes.<br />

Dpto = 4 bytes.<br />

Nombre = 15 bytes.<br />

Apellido = 15 bytes.<br />

Tamaño <strong>de</strong> la relación: 100 * 10.000 = 1.000.000 bytes.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Joins en un DBMS Distribuido<br />

Departamento(NDpto, NombreDpto, Responsable,<br />

Edificio)<br />

100 tuplas.<br />

Cada tupla tiene 35 bytes.<br />

NombreDpto = 10 bytes.<br />

NDpto = 4 bytes.<br />

Responsable = 9 bytes.<br />

Tamaño <strong>de</strong> la relación: 35 * 100 = 3500 bytes.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Ejemplo:<br />

Joins en un DBMS Distribuido<br />

“Por cada empleado, obtener el nombre <strong>de</strong>l<br />

empleado y el nombre <strong>de</strong>l <strong>de</strong>partamento al<br />

que pertenece”<br />

Q1: π Nombre,Apellido,NombreDPto<br />

(EMPLEADO*DEPARTAMENTO)<br />

La consulta se procesa <strong>de</strong>s<strong>de</strong> el nodo 3<br />

(Este no posee datos implicados en la consulta).<br />

El resultado constará <strong>de</strong> 10.000 tuplas<br />

cada una <strong>de</strong> 40 bytes, por lo tanto el tamaño <strong>de</strong>l<br />

resultado es <strong>de</strong> 400.000 bytes.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Joins en un DBMS Distribuido<br />

El nodo 1 posee la relación Departamento.<br />

El nodo 2 posee la relación Empleado.<br />

El nodo 3 no posee relaciones para satisfacer<br />

la consulta.<br />

Existen 3 alternativas para resolver esto.


10) Almacenamiento <strong>de</strong> <strong>Datos</strong> en Un DBMS<br />

Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Leer lo necesario<br />

Transferir, tanto la relación EMPLEADO ubicada<br />

en el nodo 2, como la relación DEPARTAMENTO<br />

ubicada en el nodo 1, al nodo 3 y realizar en el<br />

nodo 3 la operación <strong>de</strong> Join.<br />

En éste caso se transfieren:<br />

1.000.000 + 3.500 = 1.003.500 bytes.


Distribuido.<br />

10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Envío a un Nodo<br />

Transferir la relación EMPLEADO ubicada en el<br />

nodo 1 al nodo 2, ejecutar el Join en el nodo 2 y<br />

enviar el resultado al nodo 3.<br />

Esto implicaría transferir:<br />

1.000.000 + 400.000 (resultado) = 1.400.000 bytes<br />

Ó<br />

Transferir la relación DEPARTAMENTO ubicada<br />

en el nodo 2 al nodo 1, ejecutar el Join en el nodo<br />

1 y enviar el resultado al nodo 3.<br />

En este caso, los bytes transferidos serán:<br />

3.500 + 400.000 (resultado) = 403.500 bytes.


10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

SemiJoins<br />

•Reducción <strong>de</strong>l número <strong>de</strong> tuplas<br />

antes <strong>de</strong> ser transferidas a otro nodo.<br />

•Se envía la columna con la que se va<br />

a realizar el Join <strong>de</strong> una relación R al<br />

nodo don<strong>de</strong> se encuentra la otra<br />

relación, allí se realiza el Join.<br />

•Se envían las columnas implicadas<br />

en el resultado al nodo inicial y se<br />

vuelve a realizar el join con R.


10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

SemiJoins<br />

Ejemplo con semijoin Q1:<br />

Paso 1:<br />

Proyección en DEPARTAMENTO<br />

sobre atributos que van a intervenir<br />

en la operación <strong>de</strong> Join y<br />

transferencia al nodo 1.<br />

F1: π NDpto<br />

(DEPARTAMENTO).<br />

Tamaño resultante:<br />

4 bytes <strong>de</strong>l atributo NDpto *<br />

100 tuplas <strong>de</strong> DEPARTAMENTO = 400<br />

bytes transferidos.


10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

SemiJoins<br />

Paso 2:<br />

Realización <strong>de</strong>l Join <strong>de</strong> las<br />

tuplas transferidas en el paso<br />

anterior. Transferencia <strong>de</strong>l resultado<br />

<strong>de</strong>l Join <strong>de</strong> nuevo al nodo 1. Se<br />

transfieren sólo los atributos<br />

necesarios para realizar el join final:<br />

R1: π Dpto,Nombre,Apellido (F1 * EMPLEADO)<br />

Tamaño:(4 + 15 + 15) * 10.000 = 340.000<br />

bytes transferidos.<br />

El resultado en este Join es llamado:<br />

La reducción <strong>de</strong> Empleado con respecto a<br />

Departamento.


10.1) Fragmentación<br />

10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Paso 3:<br />

SemiJoins<br />

Se Realiza el Join final:<br />

Resultado:<br />

Departamento Join R1.<br />

Total Costo <strong>de</strong> Trasferencia:<br />

Costo Paso 1 + Costo Paso 2<br />

400 bytes + 340.000 bytes =<br />

340.400 bytes trasferidos.


10.1.1) Horizontal<br />

10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Actualizaciones <strong>de</strong> la Data Distribuida<br />

Igualmente las transacciones <strong>de</strong>ben<br />

seguir siendo atómicas, hay dos<br />

maneras <strong>de</strong> actualizar las copias <strong>de</strong><br />

una relación modificada.


10.1.2) Vertical<br />

10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Replicación Síncrona<br />

Todas las copias <strong>de</strong> la relación<br />

modificada son actualizadas antes<br />

que la transacción que las modificó<br />

haga commit. Aquí se aplican 2<br />

técnicas:


10.1.3) Mixta<br />

10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Voting (Votando)<br />

Una transacción <strong>de</strong>be escribir en la mayoría<br />

<strong>de</strong> las copias para modificar un objeto, y<br />

<strong>de</strong>be leer suficientes para asegurarse que la<br />

copia esta presente.<br />

Ejemplo:


10.2) Replicación <strong>de</strong> <strong>Datos</strong><br />

11) Procesamiento <strong>de</strong> un Query Distribuido<br />

11.1) Queries Nonjoin en un DBMS<br />

Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Read-any write-all<br />

(Leer cualquiera, Escribir en todas)<br />

Para leer un objeto, una transacción<br />

pue<strong>de</strong> leer cualquier copia, pero para<br />

escribir un objeto, ésta <strong>de</strong>be escribir<br />

todas las copias.<br />

Ejemplo:


Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Replicación Asíncrona<br />

Es la más ampliamente usada a nivel comercial<br />

en los DBMSs. Las copias <strong>de</strong> una relación<br />

modificada son actualizadas solo<br />

periódicamente. Si una transacción lee varias<br />

copias <strong>de</strong> la misma relación pue<strong>de</strong> estar<br />

leyendo distintos valores.<br />

La replicación asíncrona trae consigo un costo<br />

significativo. Antes que una transacción <strong>de</strong><br />

actualización pueda hacer commit, esta <strong>de</strong>be<br />

obtener los locks sobre todas las copias <strong>de</strong> la<br />

data modificada. La transacción pue<strong>de</strong> haber<br />

mandado solicitu<strong>de</strong>s <strong>de</strong> lock a sitios remotos y<br />

esperar por los locks, pero durante este<br />

periodo ella mantiene sus otros locks.


Distribuido<br />

11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Sitio Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Replicación Asíncrona<br />

Si el nodo o el enlace <strong>de</strong> comunicación<br />

fallan, la transacción no pue<strong>de</strong> hacer commit<br />

hasta que todos los nodos a los cuales les<br />

ha modificado la data se recuperen. Por lo<br />

tanto, la replicación asíncrona no es<br />

<strong>de</strong>seable e inclusive inalcanzable en muchas<br />

situaciones. El hecho <strong>de</strong> mantener copias<br />

con distintitos valores <strong>de</strong> una misma<br />

relación ocasiona la inconsistencia <strong>de</strong> los<br />

datos.<br />

Existen dos técnicas:<br />

•De Nodo Primario.<br />

•Par a Par


11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

De Nodo Primario<br />

Se establece la relación como copia primaria<br />

o maestra. Las réplicas o los fragmentos <strong>de</strong><br />

la relación completa son copias secundarias<br />

y pue<strong>de</strong>n ser creadas <strong>de</strong>s<strong>de</strong> otros nodos; y<br />

a diferencia <strong>de</strong> la copia primaria, las<br />

secundarias pue<strong>de</strong>n no ser actualizada.


11.2) Joins en un DBMS Distribuido<br />

11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Ejemplo:<br />

De Nodo Primario


11.2.1) Leer lo Necesario<br />

11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Par a Par<br />

Más <strong>de</strong> una copia se pue<strong>de</strong> establecer<br />

como copia primaria, haciendo posible la<br />

actualización en ella. Y a las copias<br />

secundarias no se les permite actualizar.<br />

Esta técnica es la más usada.


11.2.2) Envío a un nodo<br />

11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Transacción Distribuida<br />

Una subtransacción es aquella<br />

transacción iniciada en un nodo y que<br />

acce<strong>de</strong> a otros nodos.<br />

Cuando una transacción es<br />

referida a otro nodo, el manejador <strong>de</strong><br />

transacción <strong>de</strong> este nodo se encarga <strong>de</strong><br />

partir la transacción en una colección <strong>de</strong><br />

subtransacciones que se ejecutan en<br />

diferentes nodos.


11.2.3) Semijoins<br />

12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Control <strong>de</strong> Concurrencia Distribuida<br />

Los lock en <strong>BDD</strong> pue<strong>de</strong>n estar ubicados<br />

en distintos nodos, y estos pue<strong>de</strong>n ser<br />

distribuidos a lo largo <strong>de</strong> los nodos <strong>de</strong><br />

muchas maneras:


12) Actualización <strong>de</strong> la Data Distribuida<br />

12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Centralizado<br />

Un solo nodo es el encargado <strong>de</strong> manejar<br />

las distintas peticiones <strong>de</strong> los locks y<br />

unlocks para todos los objetos.


12.1) Replicación Síncrona<br />

12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Copia Primaria<br />

Se <strong>de</strong>signa una copia <strong>de</strong> cada objeto<br />

como copia primaria, todas las peticiones<br />

<strong>de</strong> locks y unlocks, son manejadas por el<br />

manejador <strong>de</strong> lock <strong>de</strong>l nodo en el cual<br />

estan ubicadas las copias primarias <strong>de</strong> los<br />

objetos, sin importar don<strong>de</strong> este<br />

almacenado la copia particular solicitada.


12.1.1) Voting (Votando)<br />

12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Totalmente Distribuido<br />

Las peticiones <strong>de</strong> locks y unlocks sobre<br />

una copia <strong>de</strong> un objeto almacenado en un<br />

nodo son manejadas por el manejador <strong>de</strong><br />

lock <strong>de</strong>l mismo nodo.


12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

Interbloqueos Distribuido<br />

16.3) Protocolo <strong>de</strong> Tres Fases Cada nodo posee su Grafo <strong>de</strong> Espera, si en<br />

alguno <strong>de</strong> estos grafos locales aparece un ciclo,<br />

es porque existe un interbloqueo. Sin embargo<br />

pue<strong>de</strong> ocurrir un interbloqueo aunque no<br />

existan ciclos en grafos locales <strong>de</strong> espera.<br />

Ejemplo:<br />

Supongamos 2 nodos X e Y, ambos<br />

contienen copias <strong>de</strong> los objetos Obj1 y Obj2;<br />

a<strong>de</strong>más la técnica usada es read-any write-all.<br />

T1: T2:<br />

Begin<br />

Begin<br />

S-lock Obj1 at nodo X S-lock Obj2 at nodo Y<br />

X-lock Obj2 at nodo X X-lock Obj1 at nodo Y<br />

X-lock Obj2 at nodo Y X-lock Obj1 at nodo X


12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Interbloqueos Distribuido<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases Grafos <strong>de</strong> Espera:


12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Interbloqueos Distribuido<br />

Por lo tanto para <strong>de</strong>tectar este tipo <strong>de</strong><br />

interbloqueos se <strong>de</strong>be usar un algoritmo<br />

<strong>de</strong> interbloqueo distribuido.<br />

Existen 3 algoritmos.<br />

1º: Es centralizado, consiste en<br />

mandar periódicamente todos los grafos<br />

locales <strong>de</strong> espera a un nodo responsable<br />

por la <strong>de</strong>tección <strong>de</strong> interbloqueo global.


12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Interbloqueos Distribuido<br />

2º: Es jerárquico, consiste en<br />

agrupar los nodos <strong>de</strong> modo creciente, los<br />

primeros grupos contendrán pocos nodos,<br />

y a medida que crezca los grupos irán<br />

conteniendo mas nodos, hasta el nodo<br />

principal q contendrá a todos los nodos.<br />

Cada grupo construye su grafo <strong>de</strong> espera<br />

y así revelara los intebloqueos generales.<br />

Los grupos mas abajo en la<br />

jerarquía enviaran sus grafos <strong>de</strong> espera<br />

más constantemente que los grupos en un<br />

nivel alto en la jerarquía.


12.1.2) Read-any write-all<br />

(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Interbloqueos Distribuido<br />

3º: Si una transacción esta en<br />

espera más <strong>de</strong> un intervalo <strong>de</strong> tiempo<br />

<strong>de</strong>finido, entonces esta es abortada.


(Leer cualquiera, Escribir<br />

en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Recuperación Distribuida<br />

De la Recuperación Distribuida se tiene:<br />

•Ejecución Normal y Protocolos Commit<br />

•Reinicio luego <strong>de</strong> una Falla<br />

•Protocolo <strong>de</strong> Tres Fases


en todas)<br />

12.2) Replicación Asíncrona<br />

12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Ejecución Normal y Protocolos Commit<br />

Durante la ejecución normal cada nodo<br />

mantiene su log, y las acciones <strong>de</strong> las<br />

subtransacciones son logged en el nodo<br />

don<strong>de</strong> son ejecutadas. El manejador <strong>de</strong><br />

transacciones en el nodo don<strong>de</strong> se origino<br />

es llamado “el coordinador” para esta<br />

transacción, los manejadores <strong>de</strong><br />

transacciones en los nodos don<strong>de</strong> las<br />

subtransacciones se ejecutan son<br />

llamados subordinados.


12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Protocolo <strong>de</strong> Dos Fases<br />

Cuando un usuario hace Commit en una<br />

transacción, el Commit es mandado al<br />

coordinador.<br />

Y se realizan los siguientes 4 pasos:<br />

•El coordinador manda un mensaje <strong>de</strong><br />

prepárense a cada subordinado.<br />

•Al recibir el subordinado el mensaje,<br />

<strong>de</strong>ci<strong>de</strong> si aborta o hace Commit en su<br />

transacción. Y envía un mensaje <strong>de</strong> aviso<br />

<strong>de</strong> estado (Si o No) al coordinador.


12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Protocolo <strong>de</strong> Dos Fases<br />

• Si el coordinador recibe un mensaje <strong>de</strong><br />

si <strong>de</strong> todos los subordinados, fuerza la<br />

escritura <strong>de</strong>l Commit en los registros log y<br />

luego manda un mensaje <strong>de</strong> Commit a<br />

todos los subordinados. Si recibe un<br />

mensaje <strong>de</strong> no en todos o alguno <strong>de</strong> los<br />

subordinados no respon<strong>de</strong> en un intervalo<br />

<strong>de</strong> tiempo, fuerza la escritura <strong>de</strong> abort en<br />

el log, y manda un mensaje <strong>de</strong> aborten a<br />

los subordinados.


12.2.1) De Nodo Primario<br />

12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Protocolo <strong>de</strong> Dos Fases<br />

• Cuando un subordinado recibe un<br />

mensaje <strong>de</strong> abort o Commit, este fuerza la<br />

escritura <strong>de</strong> abort o Commit en el log y<br />

manda un mensaje <strong>de</strong> ack al coordinador,<br />

don<strong>de</strong> este aborta o hace Commit en la<br />

subtransacción.


12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Reinicio luego <strong>de</strong> una Falla<br />

• Si tenemos un Commit o un Abort <strong>de</strong> la<br />

transacción T, limpiamos la transacción,<br />

aplicamos Redo o Undo respectivamente.<br />

Si este nodo es el coordinador, <strong>de</strong>bemos<br />

periódicamente reenviar los mensajes a<br />

cada subordinado hasta que recibamos<br />

ack <strong>de</strong> todos ellos. Después <strong>de</strong> recibirlos,<br />

escribimos un end en el log para T.


12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Reinicio luego <strong>de</strong> una Falla<br />

• Si tenemos un registro <strong>de</strong> log prepárense para<br />

la transacción T, pero no un Commit ni un<br />

Abort; entonces sabemos que este nodo es un<br />

subordinado, ya que el coordinador pue<strong>de</strong> ser<br />

<strong>de</strong>terminado con el registro prepárense <strong>de</strong>l log.<br />

Entonces <strong>de</strong>bemos repetidamente contactar al<br />

coordinador <strong>de</strong>l nodo y <strong>de</strong>terminar el estatus <strong>de</strong><br />

T. Una vez que el coordinador responda, sin<br />

importar si fue Commit o Abort, escribimos el<br />

correspondiente registro log, aplicamos Redo o<br />

Undo y escribimos end <strong>de</strong> la transacción.


12.2.2) Par a Par<br />

13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Reinicio luego <strong>de</strong> una Falla<br />

• Si tenemos no preparado, Commit o Abort en<br />

el log para la transacción T; seguramente la<br />

transacción T no había hecho Commit antes <strong>de</strong> la<br />

falla, entonces <strong>de</strong>bemos abortar unilateralmente y<br />

Undo T y escribir un end en el log. Para este caso<br />

no po<strong>de</strong>mos <strong>de</strong>terminar si el nodo es el<br />

coordinador o es subordinado para T. Sin embargo<br />

no existe problema <strong>de</strong>bido a que si este nodo es<br />

coordinador para un transacción T y falla, los<br />

subordinados que mandaron mensaje <strong>de</strong> si no<br />

pue<strong>de</strong>n <strong>de</strong>cidir hacer Commit o Abort a T hasta<br />

que el coordinador se recupere y pueda <strong>de</strong>cidir por<br />

ellos. En este caso <strong>de</strong>cimos que T esta<br />

bloqueada.


13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Protocolo <strong>de</strong> Tres Fases<br />

Este es una mejora al protocolo 2 fases, este<br />

protocolo pue<strong>de</strong> eliminar el bloqueo incluso<br />

si el nodo coordinador falla durante la<br />

recuperación.<br />

Cuando el coordinador man<strong>de</strong> el<br />

mensaje prepárense y reciba el mensaje <strong>de</strong><br />

si <strong>de</strong> todos los subordinados, manda a<br />

todos los nodos un mensaje <strong>de</strong> precommit.<br />

Luego cuando ya ha recibido un número<br />

significativo <strong>de</strong> ack, fuerza la escritura <strong>de</strong>l<br />

Commit en el log y manda mensaje <strong>de</strong><br />

Commit a todos los subordinados.


13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

16.3) Protocolo <strong>de</strong> Tres Fases<br />

Protocolo <strong>de</strong> Tres Fases<br />

Este protocolo impone un costo adicional<br />

durante la ejecución normal y requiere que<br />

las fallas en los enlaces <strong>de</strong> comunicación no<br />

conlleven a la partición <strong>de</strong> la red, para<br />

asegurar estar libre <strong>de</strong> bloqueos. Por esta<br />

razón no se usa en la práctica.


13) Transacción Distribuida<br />

14) Control <strong>de</strong> Concurrencia Distribuida<br />

14.1) Centralizado<br />

14.2) Copia Primaria<br />

14.3) Totalmente Distribuido<br />

15) Interbloqueos Distribuidos<br />

16) Recuperación Distribuida<br />

16.1) Ejecución Normal y Protocolos<br />

Commit<br />

16.1.1) Protocolo <strong>de</strong> Dos Fases<br />

16.2) Reinicio luego <strong>de</strong> una Falla<br />

Bibliografía<br />

Bibliografía<br />

•Ramakrishnan, Gehrke<br />

"Database Management Systems“<br />

Cap 22.<br />

•http://sweb.uv.es/docencia/iiguia/asignatu/2000/BD2/<br />

BD2Tema9.pdf<br />

•www.dlsi.ua.es/asignaturas/sid/sid2001-t4.ppt<br />

•http://alfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/<br />

DISTRIBUIDAS.pdf

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

Saved successfully!

Ooh no, something went wrong!