Introducció a les Bases de Dades NoSQL

Les bases de dades NoSQL (Not Only SQL) són sistemes de gestió de bases de dades dissenyats per emmagatzemar, gestionar i recuperar dades de manera eficient en entorns on les bases de dades relacionals tradicionals poden no ser adequades. Aquestes bases de dades són especialment útils per a aplicacions que requereixen alta escalabilitat, flexibilitat en l'estructura de dades i capacitat per gestionar grans volums de dades.

Característiques Clau de les Bases de Dades NoSQL

  1. Escalabilitat Horitzontal: Capacitat per distribuir dades i càrregues de treball a través de múltiples servidors.
  2. Model de Dades Flexible: Suport per a estructures de dades no rígides, com ara documents, claus-valor, columnes àmplies i gràfics.
  3. Alta Disponibilitat: Dissenyades per ser tolerants a fallades i proporcionar alta disponibilitat.
  4. Rendiment: Optimitzades per a operacions de lectura i escriptura ràpides.
  5. Consistència Eventual: Moltes bases de dades NoSQL opten per la consistència eventual en lloc de la consistència immediata.

Tipus de Bases de Dades NoSQL

  1. Bases de Dades de Documents: Emmagatzemen dades en formats de documents, com JSON, BSON o XML.
    • Exemples: MongoDB, CouchDB
  2. Bases de Dades de Claus-Valor: Emmagatzemen dades com a parelles clau-valor.
    • Exemples: Redis, DynamoDB
  3. Bases de Dades de Columnes Amples: Emmagatzemen dades en files i columnes, però amb una estructura flexible.
    • Exemples: Cassandra, HBase
  4. Bases de Dades de Gràfics: Optimitzades per a emmagatzemar i navegar relacions complexes entre dades.
    • Exemples: Neo4j, ArangoDB

Exemples Pràctics

Exemple 1: MongoDB (Base de Dades de Documents)

MongoDB és una base de dades NoSQL de documents que emmagatzema dades en format BSON (una extensió binària de JSON).

Inserció de Documents

// Inserir un document en una col·lecció
db.usuaris.insertOne({
    "nom": "Joan",
    "edat": 30,
    "correu": "[email protected]",
    "adreça": {
        "carrer": "Carrer Major",
        "ciutat": "Barcelona"
    }
});

Consulta de Documents

// Consultar documents amb una edat superior a 25 anys
db.usuaris.find({ "edat": { $gt: 25 } });

Exemple 2: Redis (Base de Dades de Claus-Valor)

Redis és una base de dades NoSQL de claus-valor que emmagatzema dades en memòria per a un accés ràpid.

Inserció de Claus-Valor

# Inserir una clau-valor
SET usuari:1000 "Joan"

Consulta de Claus-Valor

# Consultar el valor d'una clau
GET usuari:1000

Exercicis Pràctics

Exercici 1: Treballar amb MongoDB

  1. Inserir Documents: Inseriu tres documents a la col·lecció productes amb els següents camps: nom, preu, categoria.
  2. Consultar Documents: Realitzeu una consulta per trobar tots els productes amb un preu superior a 50.

Solució

// Inserir documents
db.productes.insertMany([
    { "nom": "Producte A", "preu": 30, "categoria": "Electrònica" },
    { "nom": "Producte B", "preu": 60, "categoria": "Llar" },
    { "nom": "Producte C", "preu": 80, "categoria": "Electrònica" }
]);

// Consultar documents amb preu superior a 50
db.productes.find({ "preu": { $gt: 50 } });

Exercici 2: Treballar amb Redis

  1. Inserir Claus-Valor: Inseriu tres claus-valor amb les claus producte:1, producte:2, producte:3 i els valors corresponents.
  2. Consultar Claus-Valor: Recupereu el valor de la clau producte:2.

Solució

# Inserir claus-valor
SET producte:1 "Producte A"
SET producte:2 "Producte B"
SET producte:3 "Producte C"

# Consultar el valor de la clau producte:2
GET producte:2

Conclusió

Les bases de dades NoSQL ofereixen una solució flexible i escalable per a la gestió de grans volums de dades en aplicacions modernes. Amb diferents tipus de bases de dades NoSQL disponibles, és important triar la que millor s'adapti a les necessitats específiques de la vostra aplicació. A través dels exemples i exercicis pràctics, hem vist com treballar amb MongoDB i Redis, dues de les bases de dades NoSQL més populars.

Processament de Dades Massives

Mòdul 1: Introducció al Processament de Dades Massives

Mòdul 2: Tecnologies d'Emmagatzematge

Mòdul 3: Tècniques de Processament

Mòdul 4: Eines i Plataformes

Mòdul 5: Optimització de l'Emmagatzematge i Processament

Mòdul 6: Anàlisi de Dades Massives

Mòdul 7: Casos d'Estudi i Aplicacions Pràctiques

Mòdul 8: Bones Pràctiques i Futur del Processament de Dades Massives

© Copyright 2024. Tots els drets reservats