En aquest tema, explorarem els diferents tipus de bases de dades NoSQL, les seves característiques i els casos d'ús més comuns. Les bases de dades NoSQL es classifiquen principalment en quatre categories: bases de dades de documents, bases de dades de claus-valor, bases de dades de columnes i bases de dades de grafs.

  1. Bases de Dades de Documents

Característiques

  • Emmagatzemen dades en formats de documents, com JSON, BSON o XML.
  • Cada document és una unitat independent que pot contenir dades estructurades o semi-estructurades.
  • Permeten una gran flexibilitat en l'estructura de les dades, ja que cada document pot tenir un esquema diferent.

Exemples

  • MongoDB
  • CouchDB

Casos d'Ús

  • Aplicacions web que necessiten una estructura flexible de dades.
  • Sistemes de gestió de continguts.
  • Aplicacions mòbils que requereixen sincronització de dades.

Exemple Pràctic

{
  "user_id": "12345",
  "name": "Joan",
  "email": "[email protected]",
  "orders": [
    {
      "order_id": "54321",
      "product": "Llibre",
      "quantity": 1
    },
    {
      "order_id": "98765",
      "product": "Ordinador",
      "quantity": 1
    }
  ]
}

  1. Bases de Dades de Claus-Valor

Característiques

  • Emmagatzemen dades com a parelles clau-valor.
  • Són molt ràpides per a operacions de lectura i escriptura.
  • Són ideals per a emmagatzemar dades senzilles i ràpidament accessibles.

Exemples

  • Redis
  • DynamoDB

Casos d'Ús

  • Emmagatzematge de sessions d'usuari.
  • Caches de dades.
  • Sistemes de recomanació.

Exemple Pràctic

"user:12345" -> "{ 'name': 'Joan', 'email': '[email protected]' }"
"session:67890" -> "{ 'user_id': '12345', 'token': 'abcdef' }"

  1. Bases de Dades de Columnes

Característiques

  • Emmagatzemen dades en columnes en lloc de files.
  • Són molt eficients per a consultes que involucren grans volums de dades.
  • Permeten l'emmagatzematge de dades distribuïdes.

Exemples

  • Apache Cassandra
  • HBase

Casos d'Ús

  • Aplicacions d'anàlisi de dades.
  • Sistemes de recomanació.
  • Emmagatzematge de registres de logs.

Exemple Pràctic

user_id name email order_id product quantity
12345 Joan [email protected] 54321 Llibre 1
12345 Joan [email protected] 98765 Ordinador 1

  1. Bases de Dades de Grafs

Característiques

  • Emmagatzemen dades en nodes i arestes, representant relacions entre entitats.
  • Són ideals per a dades altament connectades.
  • Permeten consultes complexes sobre relacions.

Exemples

  • Neo4j
  • ArangoDB

Casos d'Ús

  • Xarxes socials.
  • Sistemes de recomanació.
  • Anàlisi de fraus.

Exemple Pràctic

(Node) Joan -[friend_of]-> (Node) Maria
(Node) Joan -[purchased]-> (Node) Llibre
(Node) Maria -[purchased]-> (Node) Ordinador

Comparació de Tipus de Bases de Dades NoSQL

Tipus de Base de Dades Característiques Principals Casos d'Ús Comuns Exemples
Documents Flexible, semi-estructurat Aplicacions web, CMS, apps mòbils MongoDB, CouchDB
Claus-Valor Ràpid, senzill Emmagatzematge de sessions, caches Redis, DynamoDB
Columnes Eficient per grans volums Anàlisi de dades, logs Cassandra, HBase
Grafs Relacions complexes Xarxes socials, anàlisi de fraus Neo4j, ArangoDB

Exercici Pràctic

Enunciat

  1. Tria un tipus de base de dades NoSQL i descriu un cas d'ús específic per a una aplicació real.
  2. Implementa un petit exemple de dades utilitzant el format adequat per al tipus de base de dades seleccionat.

Solució

  1. Tipus de Base de Dades: Documents Cas d'Ús: Aplicació de gestió de projectes on cada projecte té una estructura de dades diferent.

  2. Exemple de Dades:

{
  "project_id": "001",
  "name": "Projecte A",
  "description": "Desenvolupament d'una aplicació web",
  "team_members": [
    {
      "name": "Joan",
      "role": "Desenvolupador"
    },
    {
      "name": "Maria",
      "role": "Dissenyadora"
    }
  ],
  "tasks": [
    {
      "task_id": "t001",
      "description": "Crear la interfície d'usuari",
      "status": "En curs"
    },
    {
      "task_id": "t002",
      "description": "Implementar la base de dades",
      "status": "Pendent"
    }
  ]
}

Conclusió

En aquesta secció, hem explorat els diferents tipus de bases de dades NoSQL, les seves característiques, exemples i casos d'ús. Hem vist com cada tipus de base de dades és adequat per a diferents necessitats i aplicacions. A la següent secció, compararem les bases de dades relacionals i no relacionals per entendre millor quan utilitzar cadascuna.

© Copyright 2024. Tots els drets reservats