back

Database distribuito

 

Un database distribuito è un database esteso su più calcolatori distanti anche centinai di chilometri l'uno dall'altro.

Ad esempio il DNS non è altro che un database distribuito.

Per grosse aziende o per dati molto importanti la realtà odierna è quella dei database distribuiti. Infatti per aziende multinazionali (ma anche nazionali) e impensabile mantenere tutte le informazioni in un unico punto, per due motivi:

  1. traffico di accesso al database, pensate se tutto il mondo si collega ad un solo punto quale ingorgo può nascere...

  2. mantenimento dei dati: i server principali delle banche sono custoditi molto meglio dei soldi (in realtà oggi sono loro la vera cassaforte) in camere blindate, con allarmi sofisticatissimi... Tenendo in memoria tutte le transazioni dei conti correnti dei clienti, calcolando giorno per giorno l'incremento degli interessi, eccetera. Cosa succede se per un guasto tecnico, un cataclisma,  una guerra, un attentato... questo viene distrutto? A seconda della rilevanza della banca in questione crollano la banca, gl'investimenti della banca, i risparmiatori ... fino agli stati interi.

 

La soluzione a questi problemi è utilizzare più mirror per lo stesso database (ossia più copie), o come nel caso del DNS equiripartire le informazioni su più punti, in modo da non ingorgare un solo punto.

 

Problema: ma se io ho più copie di un database, gestite da più persone simultaneamente, come faccio ad essere sicuro tutti i database copia siano identici? (problema della coerenza dei dati in più punti)

Soluzione: molto, molto, molto, molto complicata.

 

Problema: ma se due persone accedono simultaneamente allo stesso database, modificando simultaneamente lo stesso dato cosa succede?

Soluzione:molto, molto complicata.