Salta el contingut

Dades no relacionals — MongoDB

Resultat d'Aprenentatge

RA3: Gestiona i emmagatzema dades en grans conjunts extraient valor de diverses fonts.

Criteris d'Avaluació (CA)

CA Descripció
CA3.1 Extreu i emmagatzema dades de diverses fonts utilitzant les eines adequades.
CA3.2 Fixa l'objectiu d'extreure valor de les dades orientant el disseny de l'emmagatzematge.
CA3.3 Comprova requisits d'emmagatzematge massiu i selecciona el motor adequat.
CA3.4 Desenvolupa sistemes de gestió i processament de grans volums de dades no estructurades.

Continguts del Bloc 3

MongoDB és el sistema de bases de dades NoSQL orientat a documents més estès al món. La seva popularitat no és casual: el model de documents s'adapta de manera natural a molts problemes del món real on les dades no tenen un esquema fix, on les entitats contenen llistes i objectes niuats, i on l'esquema pot evolucionar al llarg del temps sense migracions costoses.

En aquest bloc s'aprèn MongoDB des dels fonaments fins a un nivell de producció:

  • El model de documents i com difereix del model relacional: quan desnormalitzar i quan referenciar
  • Les operacions CRUD i la sintaxi de filtres de MongoDB
  • L'Aggregation Pipeline: la manera principal d'analitzar dades a MongoDB, equivalent als SELECTs complexos del SQL
  • El disseny d'esquemes (schema design): com modelar relacions One-to-Many i Many-to-Many en MongoDB, els patrons de disseny i les seves implicacions en el rendiment
  • Els índexs en MongoDB: com funcionen, quins tipus existeixen i com mesurar el seu impacte amb explain

Tot el treball és pràctic i sobre Docker. Al final del bloc, l'alumne és capaç d'instal·lar, configurar i operar una instància MongoDB, dissenyar l'esquema per a un cas d'ús real i escriure pipelines d'agregació per respondre a preguntes analítiques complexes.

Qüestionari inicial

  1. Quina diferència hi ha entre una base de dades relacional i una base de dades orientada a documents?
  2. Qué és BSON i per qué MongoDB l'usa en lloc de JSON pur?
  3. En quins casos triaries MongoDB per sobre de PostgreSQL?
  4. Qué és un document en MongoDB? Com s'assembla a un objecte JSON?
  5. Qué és una col·lecció en MongoDB? A qué equivalent en una BD relacional?
  6. Qué significa que MongoDB és "schema-less"? Té algun desavantatge?
  7. Qué és l'Aggregation Pipeline de MongoDB? A qué equivalent en SQL?
  8. Qué és el $lookup en MongoDB i a qué equivalent en SQL?
  9. Quin problema resol l'índex de text en MongoDB?
  10. Quan convé fer "embedding" (documents niuats) i quan convé fer "referencing" en MongoDB?
  11. Qué és la cardinalitat en el disseny de BD i com afecta la decisió entre embedding i referencing?
  12. Com faries una còpia de seguretat d'una instància MongoDB?

Organització dels continguts

  • Fonaments de MongoDB


    Model de documents, col·leccions, BSON. Comparativa amb el model relacional. Casos d'ús on MongoDB guanya. Instal·lació Docker.

    Fonaments de MongoDB

  • Queries i CRUD


    insertOne, insertMany, find, findOne, updateOne, deleteOne. Operadors de filtre: $eq, $gt, $in, $regex. Projecció i ordenació.

    Queries i CRUD

  • Aggregation Pipeline


    $match, $group, $project, $sort, $lookup, $unwind, $addFields. Diferència entre find i aggregate. Casos analítics reals.

    Aggregation Pipeline

  • Índexs i rendiment


    Índexs simples, compostos, de text i geoespacials. Explain en MongoDB. Schema design: embedding vs referencing, patrons de disseny.

    Índexs i rendiment

Durada i avaluació

Element Valor
Hores 15 hores (5 sessions de 3h)
Pes en la qualificació final 15% del mòdul
Pràctica avaluable PR507403 — MongoDB amb Docker
Activitats AC5074/03/01 fins a AC5074/03/05

Enfocament d'aquest bloc

La trampa més freqüent quan s'aprèn MongoDB venint de SQL és intentar aplicar el pensament relacional al model de documents. L'objectiu d'aquest bloc és entendre que MongoDB no és un SQL pitjor, sinó una eina diferent dissenyada per a problemes on el model relacional és rígid o costós. Aprendre quan usar cadascuna és la competència clau.