Què és NoSQL?

NoSQL (Not Only SQL) és una categoria de sistemes de gestió de bases de dades que difereixen dels sistemes de bases de dades relacionals tradicionals (SQL) en diversos aspectes. Les bases de dades NoSQL estan dissenyades per gestionar grans volums de dades no estructurades o semi-estructurades, oferint una major flexibilitat i escalabilitat.

Característiques Clau de NoSQL

  1. Escalabilitat Horitzontal:

    • Les bases de dades NoSQL poden escalar-se horitzontalment afegint més servidors a la xarxa, en lloc de millorar el maquinari d'un sol servidor.
  2. Model de Dades Flexible:

    • NoSQL permet emmagatzemar dades en formats no estructurats o semi-estructurats, com ara documents JSON, columnes, gràfics o claus-valor.
  3. Alta Disponibilitat i Tolerància a Fallades:

    • Les bases de dades NoSQL estan dissenyades per ser altament disponibles i tolerants a fallades, sovint utilitzant replicació i particionament de dades.
  4. Rendiment Elevat:

    • Optimitzades per a operacions de lectura i escriptura ràpides, les bases de dades NoSQL poden gestionar grans volums de trànsit de dades amb baixa latència.

Quan Utilitzar NoSQL?

Les bases de dades NoSQL són ideals per a aplicacions que requereixen:

  • Grans volums de dades: Sistemes que gestionen terabytes o petabytes de dades.
  • Dades no estructurades o semi-estructurades: Aplicacions que treballen amb dades que no encaixen bé en un esquema relacional.
  • Alta velocitat de lectura/escriptura: Aplicacions que necessiten processar grans quantitats de transaccions per segon.
  • Escalabilitat horitzontal: Necessitat de distribuir dades i càrrega de treball a través de múltiples servidors.

Tipus de Bases de Dades NoSQL

  1. Bases de Dades de Documents

  • Exemples: MongoDB, CouchDB
  • Model de Dades: Emmagatzemen dades com a documents, sovint en format JSON o BSON.
  • Ús Comú: Aplicacions web, sistemes de gestió de continguts.

  1. Bases de Dades de Claus-Valor

  • Exemples: Redis, DynamoDB
  • Model de Dades: Emmagatzemen dades com a parelles clau-valor.
  • Ús Comú: Caché de sessions, emmagatzematge de configuracions.

  1. Bases de Dades de Columnes Amples

  • Exemples: Cassandra, HBase
  • Model de Dades: Emmagatzemen dades en files i columnes, però amb una estructura més flexible que les bases de dades relacionals.
  • Ús Comú: Anàlisi de grans volums de dades, aplicacions de xarxes socials.

  1. Bases de Dades de Gràfics

  • Exemples: Neo4j, OrientDB
  • Model de Dades: Emmagatzemen dades com a nodes, arestes i propietats, permetent representacions complexes de relacions.
  • Ús Comú: Xarxes socials, motors de recomanació.

Comparació entre Bases de Dades Relacionals i NoSQL

Característica Bases de Dades Relacionals (SQL) Bases de Dades NoSQL
Model de Dades Esquemes fixos, taules Flexible, documents, claus-valor, gràfics, columnes amples
Escalabilitat Vertical (millorar maquinari) Horitzontal (afegir més servidors)
Transaccions ACID (Atomicitat, Consistència, Aïllament, Durabilitat) BASE (Bàsicament Disponible, Estat Suau, Consistència Eventual)
Tipus de Dades Estructurades No estructurades o semi-estructurades
Casos d'Ús Aplicacions empresarials, sistemes financers Big Data, aplicacions web, xarxes socials

Exemples Pràctics

Exemple 1: Emmagatzematge de Documents amb MongoDB

{
  "_id": "1",
  "nom": "Joan",
  "cognoms": "Garcia",
  "correu": "[email protected]",
  "adreça": {
    "carrer": "Carrer Major, 1",
    "ciutat": "Barcelona",
    "codi_postal": "08001"
  }
}

Exemple 2: Emmagatzematge de Claus-Valor amb Redis

SET usuari:1:nom "Joan"
SET usuari:1:cognoms "Garcia"
SET usuari:1:correu "[email protected]"

Exercici Pràctic

Exercici 1: Crear una Base de Dades de Documents amb MongoDB

  1. Instal·la MongoDB si no ho has fet ja.
  2. Crea una col·lecció anomenada usuaris.
  3. Insereix un document amb la següent informació:
    • Nom: Maria
    • Cognoms: Pérez
    • Correu: [email protected]
    • Adreça: Carrer de la Pau, 10, València, 46001

Solució

use meva_base_de_dades

db.usuaris.insertOne({
  "nom": "Maria",
  "cognoms": "Pérez",
  "correu": "[email protected]",
  "adreça": {
    "carrer": "Carrer de la Pau, 10",
    "ciutat": "València",
    "codi_postal": "46001"
  }
})

Conclusió

Les bases de dades NoSQL ofereixen una alternativa potent i flexible a les bases de dades relacionals tradicionals, especialment per a aplicacions que requereixen gestionar grans volums de dades no estructurades o semi-estructurades. Comprendre els diferents tipus de bases de dades NoSQL i els seus casos d'ús és essencial per triar la solució adequada per a cada projecte.

En el següent tema, explorarem els diferents tipus de bases de dades NoSQL amb més detall, incloent-hi exemples pràctics i casos d'ús específics.

© Copyright 2024. Tots els drets reservats