Introducció

MongoDB és una base de dades NoSQL orientada a documents que emmagatzema dades en un format flexible, similar a JSON. A diferència de les bases de dades SQL tradicionals, MongoDB no utilitza taules i files, sinó col·leccions i documents. Aquesta estructura permet una major flexibilitat i escalabilitat, especialment per a aplicacions modernes que requereixen gestionar grans volums de dades no estructurades o semi-estructurades.

Característiques Clau de MongoDB

  1. Orientació a Documents:

    • MongoDB emmagatzema dades en documents BSON (una extensió binària de JSON).
    • Cada document pot tenir una estructura diferent, permetent una gran flexibilitat.
  2. Escalabilitat Horitzontal:

    • MongoDB suporta la fragmentació (sharding), que permet distribuir dades a través de múltiples servidors.
    • Això facilita l'escalabilitat horitzontal, essencial per a aplicacions que creixen ràpidament.
  3. Alta Disponibilitat:

    • Utilitza replicació per garantir la disponibilitat de les dades.
    • Les rèpliques permeten que les dades estiguin disponibles fins i tot en cas de fallada d'un servidor.
  4. Model de Dades Flexible:

    • No requereix un esquema fix, permetent canvis ràpids en l'estructura de les dades.
    • Ideal per a desenvolupament àgil i iteratiu.
  5. Potent Llenguatge de Consulta:

    • Ofereix un llenguatge de consulta ric i expressiu per a la manipulació de dades.
    • Suporta operacions complexes com agregacions, cerca de text, i geoespacial.

Comparació amb Bases de Dades SQL

Característica MongoDB Bases de Dades SQL
Estructura de Dades Documents BSON Taules i Files
Esquema Flexible, sense esquema fix Esquema rígid, definit per endavant
Escalabilitat Horitzontal (fragmentació) Principalment vertical
Disponibilitat Alta (replicació) Depèn de la configuració
Llenguatge de Consulta Llenguatge de consulta de MongoDB SQL

Avantatges de MongoDB

  1. Flexibilitat:

    • Permet canvis ràpids en l'estructura de les dades sense necessitat de migracions complexes.
  2. Escalabilitat:

    • Facilita l'escalabilitat horitzontal, permetent gestionar grans volums de dades de manera eficient.
  3. Rendiment:

    • Optimitzat per a operacions de lectura i escriptura ràpides.
  4. Desenvolupament Àgil:

    • Ideal per a metodologies de desenvolupament àgil, permetent iteracions ràpides i canvis freqüents.

Desavantatges de MongoDB

  1. Consistència:

    • En configuracions distribuïdes, pot haver-hi problemes de consistència eventual.
  2. Complexitat de Gestió:

    • La gestió de la fragmentació i la replicació pot ser complexa.
  3. Limitacions de Transaccions:

    • Tot i que MongoDB suporta transaccions multi-document, aquestes poden ser menys eficients que en bases de dades SQL.

Exemples Pràctics

Exemple 1: Creació d'un Document

{
  "nom": "Joan",
  "edat": 30,
  "adreça": {
    "carrer": "Carrer Major",
    "ciutat": "Barcelona"
  },
  "aficions": ["lectura", "esport"]
}

Exemple 2: Consulta Bàsica

db.usuaris.find({ "edat": { $gt: 25 } })

Aquest exemple busca tots els documents a la col·lecció usuaris on l'edat és superior a 25.

Exercici Pràctic

Exercici 1: Crea un document que representi un llibre amb els següents camps: títol, autor, any de publicació, i gènere. Després, escriu una consulta per trobar tots els llibres publicats després de l'any 2000.

Solució

Document del Llibre:

{
  "títol": "El Senyor dels Anells",
  "autor": "J.R.R. Tolkien",
  "any_publicació": 1954,
  "gènere": "Fantasia"
}

Consulta:

db.llibres.find({ "any_publicació": { $gt: 2000 } })

Conclusió

MongoDB és una base de dades NoSQL potent i flexible, ideal per a aplicacions modernes que requereixen una gestió eficient de grans volums de dades no estructurades. La seva capacitat d'escalabilitat horitzontal i el seu model de dades flexible la fan una opció atractiva per a molts desenvolupadors. En els següents mòduls, explorarem com instal·lar MongoDB, realitzar operacions CRUD, i molt més.

© Copyright 2024. Tots els drets reservats