BDD Bases de Datos Distribuidas
BDD Bases de Datos Distribuidas
BDD Bases de Datos Distribuidas
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