Introducció

Les bases de dades distribuïdes són sistemes de gestió de bases de dades (SGBD) en què les dades es distribueixen a través de múltiples nodes o servidors. Aquest enfocament permet gestionar grans volums de dades, augmentar la disponibilitat i la tolerància a fallades, i millorar el rendiment mitjançant la distribució de la càrrega de treball.

Objectius del Mòdul

  • Comprendre els conceptes bàsics de les bases de dades distribuïdes.
  • Aprendre sobre els diferents models de bases de dades distribuïdes.
  • Explorar els avantatges i desafiaments associats amb les bases de dades distribuïdes.
  • Conèixer algunes de les tecnologies i eines més utilitzades en aquest camp.

Conceptes Bàsics

Definició

Una base de dades distribuïda és una col·lecció de dades que es distribueixen físicament en diferents llocs però que es gestionen com una sola entitat lògica.

Característiques Clau

  • Distribució de Dades: Les dades es distribueixen en múltiples nodes.
  • Transparència: Els usuaris perceben la base de dades com una única entitat, independentment de la seva distribució física.
  • Escalabilitat: Capacitat per augmentar la capacitat del sistema afegint més nodes.
  • Tolerància a Fallades: Capacitat per continuar operant malgrat les fallades d'alguns nodes.

Models de Bases de Dades Distribuïdes

Model Relacional Distribuït

  • Descripció: Utilitza el model de dades relacional, on les dades es representen en taules.
  • Exemples: Google Spanner, CockroachDB.

Model NoSQL Distribuït

  • Descripció: Utilitza models de dades no relacionals, com ara documents, claus-valor, columnes amples i gràfics.
  • Exemples: Cassandra, MongoDB, HBase.

Comparació de Models

Característica Relacional Distribuït NoSQL Distribuït
Estructura de Dades Taules Documents, Claus-Valor, Columnes, Gràfics
Escalabilitat Generalment vertical Horitzontal
Consistència ACID BASE
Casos d'Ús Transaccions crítiques Big Data, Aplicacions Web

Avantatges i Desafiaments

Avantatges

  • Escalabilitat: Facilita l'escalabilitat horitzontal.
  • Disponibilitat: Millora la disponibilitat del sistema mitjançant la replicació de dades.
  • Rendiment: Pot millorar el rendiment distribuint la càrrega de treball.

Desafiaments

  • Consistència: Mantenir la consistència de les dades en un entorn distribuït és complex.
  • Latència: La comunicació entre nodes pot introduir latència.
  • Gestió de Fallades: La detecció i recuperació de fallades és més complicada.

Tecnologies i Eines

Google Spanner

  • Descripció: Base de dades relacional distribuïda que ofereix consistència global i alta disponibilitat.
  • Característiques: ACID, escalabilitat horitzontal, integració amb Google Cloud.

Apache Cassandra

  • Descripció: Base de dades NoSQL distribuïda dissenyada per gestionar grans volums de dades a través de molts servidors.
  • Característiques: Escalabilitat horitzontal, alta disponibilitat, model de dades de columnes amples.

MongoDB

  • Descripció: Base de dades NoSQL orientada a documents que ofereix escalabilitat i flexibilitat.
  • Característiques: Documents JSON, escalabilitat horitzontal, alta disponibilitat.

Exemples Pràctics

Configuració Bàsica de Cassandra

# Instal·lació de Cassandra
sudo apt-get update
sudo apt-get install cassandra

# Inici del servei de Cassandra
sudo service cassandra start

# Connexió a la consola de Cassandra
cqlsh

Creació d'una Taula en Cassandra

CREATE KEYSPACE exemple
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};

USE exemple;

CREATE TABLE usuaris (
    id UUID PRIMARY KEY,
    nom TEXT,
    correu TEXT
);

Inserció de Dades en Cassandra

INSERT INTO usuaris (id, nom, correu)
VALUES (uuid(), 'Joan', '[email protected]');

Exercicis Pràctics

Exercici 1: Configuració de MongoDB

  1. Instal·la MongoDB en el teu sistema.
  2. Inicia el servei de MongoDB.
  3. Connecta't a la consola de MongoDB.
  4. Crea una base de dades anomenada empresa.
  5. Crea una col·lecció anomenada empleats dins de la base de dades empresa.

Solució

# Instal·lació de MongoDB
sudo apt-get update
sudo apt-get install -y mongodb

# Inici del servei de MongoDB
sudo service mongodb start

# Connexió a la consola de MongoDB
mongo

# Creació de la base de dades i col·lecció
use empresa
db.createCollection("empleats")

Exercici 2: Inserció i Consulta de Dades en MongoDB

  1. Insereix un document en la col·lecció empleats amb els camps nom, càrrec i salari.
  2. Consulta tots els documents de la col·lecció empleats.

Solució

# Inserció de dades
db.empleats.insert({
    nom: "Maria",
    càrrec: "Enginyera de Software",
    salari: 60000
})

# Consulta de dades
db.empleats.find()

Conclusió

Les bases de dades distribuïdes són essencials per gestionar dades a gran escala en entorns moderns. Tot i que presenten desafiaments significatius, com la consistència i la latència, ofereixen avantatges importants en termes d'escalabilitat, disponibilitat i rendiment. Conèixer les diferents tecnologies i models disponibles permet als professionals triar la millor solució per a les seves necessitats específiques.

En el proper mòdul, explorarem els Cachés Distribuïts, una altra peça clau en les arquitectures distribuïdes per millorar el rendiment i l'eficiència dels sistemes.

© Copyright 2024. Tots els drets reservats