Salta el contingut

Rúbrica PR507403 — MongoDB amb Docker

Aquesta rúbrica s'aplica a la pràctica PR507403 — MongoDB amb Docker del Bloc 3 del mòdul M5074 Sistemes de Big Data.

Nota final de la pràctica = suma ponderada dels quatre criteris (total 100 punts → escala 0-10).


Criteris d'avaluació

Criteri 1 — Instal·lació Docker i disseny de l'esquema (25%)

Avalua el funcionament del desplegament Docker i la qualitat del disseny de les col·leccions productes, clients i comandes (Parts 1 i 2).

Nivell Puntuació Descriptor
Excel·lent 23-25 pts El docker-compose.yml aixeca MongoDB i Mongo Express correctament, amb healthcheck funcional i volum persistent. La connexió amb Compass i mongosh està verificada amb captures. L'esquema de les tres col·leccions és coherent amb el cas d'ús: la decisió embedding/referencing per a cada relació (comanda-client, comanda-línies, client-adreces) està justificada amb arguments tècnics precisos (cardinalitat, patró d'accés, risc de creixement). S'identifica correctament un anti-patró real i com s'evita. Les dades carregades (≥20 productes, ≥10 clients, ≥30 comandes) són variades i coherents.
18-22 pts El desplegament Docker funciona correctament però falta alguna evidència (captura de Compass o de l'estat dels contenidors). L'esquema és adequat i les tres relacions tenen una decisió embedding/referencing raonable, però la justificació d'alguna és superficial. S'identifica un anti-patró però l'explicació de com evitar-lo és incompleta. Les dades carregades compleixen els mínims però amb poca variabilitat.
Suficient 13-17 pts El desplegament Docker funciona amb incidències menors (falta el servei Mongo Express o el healthcheck no està configurat). L'esquema és funcional però alguna decisió d'embedding/referencing és incorrecta o no està justificada. No s'identifica cap anti-patró. Les dades carregades no arriben als mínims establerts (productes, clients o comandes).
Insuficient 0-12 pts El desplegament Docker no funciona o no hi ha evidència que s'hagi executat. L'esquema no diferencia embedding de referencing o el disseny és incoherent amb el cas d'ús (per exemple, tot embedded en un sol document gegant). No hi ha dades carregades o són clarament insuficients.

Criteri 2 — CRUD i queries amb operadors (20%)

Avalua la correcció i completesa de les 10 operacions CRUD i de consulta de la Part 3.

Nivell Puntuació Descriptor
Excel·lent 18-20 pts Les 10 operacions estan implementades correctament i cobreixen tots els operadors demanats ($gte/$lte, $in, $and/$or, $elemMatch, $regex, $mul, $addToSet, upsert, delete amb filtre de data). El codi està ben comentat explicant què fa cada query. La taula d'equivalència CRUD↔SQL a l'informe és completa i correcta. Les queries s'han executat realment sobre les dades carregades (no és codi teòric sense provar).
14-17 pts La majoria de les 10 operacions estan implementades correctament, amb algun error puntual de sintaxi o d'operador (per exemple, usar $or on tocava $and). El codi té comentaris però no sempre expliquen el propòsit de la query. La taula CRUD↔SQL està present amb algun error.
Suficient 10-13 pts Falten diverses operacions de les 10 demanades, o diverses contenen errors que impedeixen la seva execució. Els comentaris són escassos. La taula CRUD↔SQL és incompleta.
Insuficient 0-9 pts La majoria de les operacions no estan implementades, no funcionen, o no usen els operadors específics demanats (es limiten a find() sense filtres). No hi ha taula d'equivalència SQL.

Criteri 3 — Aggregation Pipeline (30%)

Avalua la correcció, complexitat i utilitat analítica dels 4 pipelines de la Part 4.

Nivell Puntuació Descriptor
Excel·lent 27-30 pts Els 4 pipelines (vendes per categoria, top 5 clients, resum mensual, $facet) estan implementats correctament i produeixen resultats coherents amb les dades carregades. S'utilitzen correctament $match, $unwind, $group, $lookup i $facet segons correspongui a cada cas. El $match es col·loca al principi del pipeline quan és possible (bona pràctica d'optimització). Cada pipeline té documentada la pregunta de negoci que respon i el resultat obtingut amb captura. Els acumuladors ($sum, $avg) i les expressions de data ($year, $month) s'usen correctament.
21-26 pts Els 4 pipelines estan implementats i funcionen, però algun té un error menor (per exemple, un $lookup que no aplana el resultat amb $unwind quan caldria, o un $group amb un acumulador no òptim). La majoria de preguntes de negoci estan documentades. Els resultats estan adjuntats per a la majoria de pipelines.
Suficient 15-20 pts Només 2 o 3 dels 4 pipelines estan implementats correctament. Hi ha errors conceptuals en l'ús de $group o $lookup (per exemple, agrupar pel camp incorrecte). La documentació de les preguntes de negoci és mínima o absent en algun cas.
Insuficient 0-14 pts Un o cap pipeline funciona correctament. No s'utilitzen $lookup o $unwind quan són necessaris per a la consulta. No hi ha resultats ni documentació de les preguntes de negoci.

Criteri 4 — Índexs i anàlisi de rendiment (25%)

Avalua la correcta creació d'índexs i la interpretació de explain() de la Part 5.

Nivell Puntuació Descriptor
Excel·lent 23-25 pts S'executa explain("executionStats") abans i després de crear l'índex compost, amb captures de totes dues. L'índex compost creat respecta la regla ESR i la prefix rule, i la comparació de mètriques (totalDocsExamined, nReturned, executionTimeMillis) demostra comprensió real de la millora (COLLSCAN → IXSCAN). L'índex de text i el multikey sobre tags estan creats i provats correctament amb consultes que els aprofiten. getIndexes() es documenta amb tots els índexs creats. L'informe explica amb criteri propi per què cada índex és adequat.
18-22 pts S'executa explain() abans i després, amb captures, però la comparació de mètriques és superficial (no s'interpreten els valors, només es mostren). L'índex compost és funcional però l'ordre dels camps no segueix estrictament ESR. L'índex de text o el multikey estan creats però no es prova explícitament que s'utilitzen.
Suficient 13-17 pts Només es mostra l'explain() d'abans o de després, no tots dos. L'índex creat no és l'adequat per a la query (per exemple, un índex simple quan calia un compost). No es crea l'índex de text o el multikey.
Insuficient 0-12 pts No hi ha evidència d'haver executat explain(). No es creen índexs o els índexs creats no tenen relació amb les queries de la pràctica. No hi ha getIndexes() ni cap interpretació dels resultats.

Taula de conversió de puntuació a nota

Puntuació (sobre 100) Nota (sobre 10) Qualificació
90 - 100 9,0 - 10 Excel·lent
80 - 89 8,0 - 8,9 Notable alt
70 - 79 7,0 - 7,9 Notable baix
60 - 69 6,0 - 6,9
50 - 59 5,0 - 5,9 Suficient
0 - 49 0 - 4,9 Insuficient (no superat)

La nota mínima per superar la pràctica és 5,0 (50 punts sobre 100).


Criteris de no presentació i plagi

Causes d'avaluació com a no presentat (NP)

Les situacions següents comporten la qualificació de No Presentat (NP) independentment del contingut de la pràctica:

  • No lliurar el .zip dins el termini establert al Campus Virtual sense causa justificada prèvia.
  • No incloure el docker-compose.yml o algun dels quatre scripts (01 a 04) al lliurament.
  • No incloure cap captura d'explain() a l'informe, de manera que sigui impossible verificar la Part 5.

Política de plagi i ús d'IA generativa

La pràctica avalua la capacitat de dissenyar, implementar i raonar sobre un sistema MongoDB real. Per tant:

  • Copiar scripts d'altres companys o de fonts externes sense adaptar-los al propi disseny de dades és plagi i comporta una nota de 0 i l'obertura d'un expedient acadèmic.
  • Usar IA generativa (ChatGPT, Claude, Gemini, etc.) per generar íntegrament els scripts o l'informe i presentar-los com a elaboració pròpia és equivalent al plagi i té les mateixes conseqüències.
  • L'ús d'IA com a eina de consulta (resoldre dubtes puntuals de sintaxi, entendre un missatge d'error) és permès i no cal declarar-lo. La concepció del disseny, les decisions d'embedding/referencing i la interpretació dels resultats han de ser pròpies.
  • El professorat pot convocar l'alumne a una defensa oral de qualsevol pràctica entregada per verificar-ne la comprensió, especialment si el codi presenta un nivell tècnic inconsistent amb la resta del curs.

Pes de la pràctica en la qualificació final del mòdul

Element Pes
PR507403 — MongoDB amb Docker 15% de la nota final del mòdul M5074
Activitats del Bloc 3 (AC5074/03/01 fins a AC5074/03/05) Incloses a la nota de participació

Consulta la programació del mòdul per al pes complet de cada bloc i instrument d'avaluació.


Rúbrica PR507403 | Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027