Database distribuito: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Frammentazione: definizione della frammentazione verticale |
m →Altri progetti: Aggiunto il parametro "Preposizione" nel template "Interprogetto" |
||
(24 versioni intermedie di 17 utenti non mostrate) | |||
Riga 1:
In [[informatica]] un '''database distribuito''' è un [[database]] che si trova sotto il controllo di un [[
== Descrizione ==▼
Formalmente si ha uno schema logico globale comune a tutti i nodi ed un insieme di schemi logici locali che dipendono funzionalmente da quello globale.
Per passare dallo schema logico globale a quelli locali si operano delle trasformazioni chiamate frammentazioni.
Il [[DBMS]] serve a strutturare i dati ed accedere in modo intelligente
* [[affidabilità]] perché i dati devono essere mantenuti anche in caso di malfunzionamento;
* [[confidenzialità|riservatezza]], perché i dati devono essere [[protezione del database|protetti]], per impedire che il database venga danneggiato da interventi non autorizzati ([[attacco ai database]]).
Inoltre il DBMS deve essere in grado di garantire le proprietà ACID come nel caso di un DBMS centralizzato.
▲==Descrizione==
=== Architetture possibili ===
Esistono diverse modalità possibili di distribuzione dei dati:
*
*
*
*
*
Gli utenti possono accedere ai database distribuiti attraverso:
Line 26 ⟶ 24:
=== Considerazioni ===
I database distribuiti richiedono una attenta gestione per garantire che:
* La distribuzione sia trasparente
* Le [[transazione (basi di dati)|transazioni]] siano trasparenti
== Frammentazione ==
La frammentazione è una proprietà tipica del DBMS
*
*
*
*
In generale la frammentazione deve rispettare le seguenti proprietà:
* completezza
* ricostruibilità
* disgiunzione
=== Frammentazione
Una frammentazione verticale è una partizione della relazione R in n relazioni dette ''frammenti'' definite:
Line 58 ⟶ 56:
<math>L_i \cap L_j \supseteq key(R) \forall i \ne j</math>
=== Frammentazione orizzontale ===
Una frammentazione orizzontale è una partizione definita su una relazione R tale che:
<math>Schema(R_i) = Schema(R) \forall_i</math>
lo schema resti uguale in ogni frammento
<math>\forall_i \ R_i \subseteq R</math>
ogni frammento contiene un sottoinsieme dei record di R
<math>\forall_i \ R_i = \delta_ci(R)</math>
normalmente un frammento definito da una selezione
La frammentazione orizzontale soddisfa la proprietà di completezza:
<math>R_i \cup ... \cup R_n = R</math>
La proprietà di ricostruibilità è sempre garantita dall'unione.
== Replicazione ==
La replicazione è una proprietà tipica del DBMS distribuito che permette di allocare stesse porzioni del Database su nodi diversi. La replicazione si ritiene utile al fine di ridurre il trasferimento di informazioni tra i diversi nodi nell'ambito della stessa transazione o interrogazione. Dall'utilizzo della replicazione si ha un aumento della località dei dati utilizzati da ogni applicazione; si introduce tuttavia il problema delle transazioni multiple, ossia transazioni da eseguire su più nodi contemporaneamente.
== Trasparenza ==
La
Il DBMS fornisce diversi livelli di trasparenza, alcuni ereditati dalla tecnologia di DBMS centralizzato altri necessari per la gestione dell'architettura distribuita:
== Altri progetti ==▼
* Trasparenza fisica (tipica dei DBMS centralizzati), indipendenza dell'applicazione dalle modifiche allo schema fisico del Database;
{{interprogetto|v=Basi di dati distribuite}}▼
* Trasparenza logica (tipica dei DBMS centralizzati), indipendenza dell'applicazione dalle modifiche allo schema logico del Database;
* Trasparenza di rete; indipendenza dell'applicazione dalla dislocazione dei dati nei diversi nodi, l'applicazione non conosce la topologia della rete;
* Trasparenza di frammentazione, indipendenza dell'applicazione dalla frammentazione dei dati, l'applicazione non conosce come sono frammentate le relazioni;
* Trasparenza di replicazione, indipendenza dell'applicazione dalla replicazione dei dati, l'applicazione non conosce quali siano le replicazioni presenti;
* Trasparenza di modello o linguaggio, indipendenza dell'applicazione dal modello o dal linguaggio utilizzato.
== Bibliografia ==
{{portale|informatica}}▼
*M. T. Özsu and P. Valduriez, ''Principles of Distributed Databases'' (3rd edition) (2011), Springer, ISBN 978-1-4419-8833-1
*Elmasri and Navathe, ''Fundamentals of database systems'' (3rd edition), Addison-Wesley Longman, ISBN 0-201-54263-3
== Voci correlate ==
*[[Blockchain]]
▲== Altri progetti ==
▲{{interprogetto|v=Basi di dati distribuite|preposizione=sui}}
{{Controllo di autorità}}
▲{{portale|informatica}}
[[Categoria:Basi di dati distribuite]]
|