In un sistema distribuito abbiamo diversi basi dati locali, diverse applicazioni su ogni nodo di elaborazione (dove ogni nodo condivide varie informazioni) con gli utenti che accedono alle varie applicazioni. Questo tipo di architettura prende il nome di architettura shared nothing. In quanto i DBMS di ogni singola macchina sono autonomi (anche di vendor diversi) ma che lavorano insieme.

Non abbiamo solo dati “distribuiti” tra vari nodi ma possiamo anche “duplicarne” alcuni per diversi scopi, coi nodi collegati in rete (anche soluzioni interamente distribuite nel cloud).

Confrontando un db distribuito con un multi-database (ovvero vari database completi da “unificare”) notiamo come entrambi abbiano un’alta distribuzione, il primo una bassa eterogeneità (a differenza del secondo, dove nei vari db potrei avere forte differenza di tipologia dei dati contenuti). Si ha anche bassa autonomia nel caso di db distribuiti a differenza del multi-db (dove ogni db è singolarmente autonomo).

Bisogna capire cosa distribuire. Si hanno diverse condizioni (che possono essere presenti simultaneamente):

Ad esempio, il client e un server possono ripartirsi le funzionalità di elaborazione, oppure su una schiera di sistemi server possono essere ripartiti diversi sottoprogrammi che implementano diverse funzionalità.

Untitled

La distribuzione si dice essere ortogonale e trasparente agli altri.

Capire cosa distribuire è una parte consistente dello studio di come costruire un’architettura distribuita (magari frutto di situazioni particolari come la “fusione” di due sistemi a causa di un’acquisizione aziendale, ec… dove diverse logiche applicative e diverse strutture dati possono creare situazioni molto pericolose).

Possiamo classificare i db distribuiti.

Definizione: Un DBMS Distribuito Eterogeneo Autonomo (DEA) è in generale una federazione di DBMS che collaborano nel fornire servizi di accesso ai dati con livelli di trasparenza definiti (infatti le diversità tra db nei nodi vengono “nascosti” a vari livelli di trasparenza per distribuzione, eterogeneità e autonomia).

Come abbiamo visto esiste l’esigenza di integrare a posteriori vari db preesistenti (anche a causa di integrazione di nuovi applicativi o nuove cooperazioni di processi) e questa situazione è spinta dallo sviluppo della rete.

Possiamo quindi dividere i livelli di federazione su tre categorie tra loro ortogonali (indipendenti):