Programació d'aula
Calendari de sessions
Horari: dimarts i dijous, 2 hores seguides cada dia. Inici: 15 setembre 2026. Vacances: Nadal (22 des.–7 gen.) · Immaculada (8 des.) · Carnestoltes (25 feb.–3 mar.) · Setmana Santa (7 abr.–20 abr.) Proves escrites: una prova al final de cada RA; Bloc 4 (RA4) amb prova parcial (S36, febrer) i prova final (S44, març).
Bloc 1 — Sistemes d'emmagatzematge (RA1)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S01 | 15 set. | 1h | Presentació del mòdul. Què és una base de dades. Història dels SGBD. Arquitectura ANSI/SPARC. | Qüestionari inicial. AC0372/01/08 — Investigació de motors al mercat (db-engines.com). | RA1 |
| S02 | 17 set. | 1h | Sistemes de fitxers. Models de dades: relacional, jeràrquic, en xarxa, orientat a objectes. Avantatges i limitacions de cada model. | AC0372/01/01 — Comparativa d'organitzacions de fitxers. AC0372/01/02 — Comparativa de models de dades. | RA1 |
| S03 | 22 set. | 1h | [Agrupat] Model NoSQL: document, clau-valor, columnar, graf. Casos d'ús. Tipus de BD per ús: OLTP, OLAP, NewSQL, en memòria. Data Warehouse vs Data Lake. | AC0372/01/03 — Taula comparativa de 4 sistemes NoSQL. AC0372/01/04, AC0372/01/05 — Identificació del tipus de BD adequat per a escenaris empresarials. | RA1 |
| S04 | 24 set. | 1h | Components interns d'un SGBD: motor de consultes, optimitzador, gestor de transaccions, motor d'emmagatzematge, catàleg del sistema. El rol del DBA. | AC0372/01/06 — Diagrama d'arquitectura d'un SGBD. AC0372/01/07 — Investigació del perfil DBA i eines de gestió. | RA1 |
| S05 | 29 set. | 1h | Instal·lació de PostgreSQL: nativa (Linux/Windows) i amb Docker. Configuració inicial. postgresql.conf i pg_hba.conf. Catàleg del sistema. |
AC0372/01/09 — Exploració del catàleg del sistema (pg_tables, information_schema). | RA1 / RA2 |
| S06 | 01 oct. | 1h | [Agrupat] Instal·lació de MySQL/MariaDB i SQL Server amb Docker. Configuració inicial: my.cnf, mssql.conf. Diferències MySQL vs MariaDB. Eines: sqlcmd, Azure Data Studio. |
Configuració inicial dels SGBD: ALTER USER, creació de BD amb UTF-8, revisió de max_connections i buffer pool. | RA1 / RA2 |
| S07 | 06 oct. | 1h | Eines de gestió gràfica: DBeaver, pgAdmin, MySQL Workbench, Oracle SQL Developer. Connexió als 4 motors. | Connexió i exploració dels 4 motors instal·lats. | RA1 |
| S08 | 08 oct. | 1h | Repàs i pràctica integradora del Bloc 1. Resolució de dubtes. | Pràctica avaluable PR0301 — Exploració de SGBD amb Docker. Rúbrica RA1. | RA1 |
| S09 | 13 oct. | 2h | Prova escrita RA1 | Prova individual: models de dades, SGBD, NoSQL, OLTP/OLAP, components interns, instal·lació i eines de gestió. | RA1 |
| Total Bloc 1 | 10h |
Bloc 2 — Disseny de bases de dades (RA2)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S10 | 15 oct. | 2h | Introducció al disseny de BD. Fases del disseny: conceptual, lògic, físic. Importància de la modelització prèvia. | Anàlisi d'un mal disseny de BD real. Identificació de problemes. | RA2 |
| S11 | 20 oct. | 4h | [Agrupat] Model Entitat-Relació: entitats, atributs (simples, compostos, derivats, multivalorats), claus. Relacions: grau, cardinalitat (1:1, 1:N, N:M), participació total i parcial. | AC0372/02/01 — Identificació d'entitats i atributs en un enunciat de negoci. AC0372/02/02 — Modelització de relacions per a un enunciat de clínica veterinària. | RA2 |
| S12 | 22 oct. | 2h | Diagrames ER: notació de Chen i notació de peus de gall (Crow's foot). Entitats dèbils. Relacions ternàries. | AC0372/02/04 — Creació d'un diagrama ER complet per a una botiga en línia. | RA2 |
| S13 | 27 oct. | 2h | Normalitzacio: objectiu i motivació. Primera Forma Normal (1FN): atomicitat, eliminació de grups repetitius. | AC0372/02/03 — Exercici de normalització d'una taula desnormalitzada. | RA2 |
| S14 | 29 oct. | 4h | [Agrupat] Segona Forma Normal (2FN): dependència funcional plena. Tercera Forma Normal (3FN): dependència transitiva. | AC0372/02/03 — Normalització fins a 3FN d'un esquema de facturació. | RA2 |
| S15 | 03 nov. | 2h | Forma Normal de Boyce-Codd (FNBC). Quan aplicar i quan no. Desnormalitzacio deliberada per rendiment. | AC0372/02/03 — Casos pràctics de FNBC. Discussió sobre desnormalització. | RA2 |
| S16 | 05 nov. | 4h | [Agrupat] Model relacional: taules, tuples, dominis, claus primàries, claus candidates. Transformació d'entitats E/R a taules. Claus foranes: integritat referencial. Transformació de relacions 1:N i N:M. Relacions reflexives. | AC0372/02/04 — Transformació d'un diagrama E/R al model relacional. AC0372/02/05 — Transformació completa d'un diagrama E/R de 8 entitats al model relacional. | RA2 |
| S17 | 10 nov. | 2h | Eines de modelització: draw.io, dbdiagram.io, MySQL Workbench. Generació de DDL des del model. | Dibuix d'un esquema en dbdiagram.io i exportació del DDL. | RA2 |
| S18 | 12 nov. | 2h | Repàs i pràctica integradora del Bloc 2. Resolució de dubtes. | Pràctica avaluable PR0302 — Disseny complet d'una BD de gestió. Rúbrica RA2. | RA2 |
| S19 | 17 nov. | 2h | Presentació i correccio de la pràctica PR0302. Consolidacio de conceptes. | Correcció col·lectiva de dissenys. Feedback individualitzat. | RA2 |
| S20 | 19 nov. | 2h | Prova escrita RA2 | Prova individual: model E/R, diagrames ER, normalització (1FN–FNBC), model relacional, transformació E/R → relacional. | RA2 |
| Total Bloc 2 | 28h |
Bloc 3 — DDL: Definició de dades (RA3)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S21 | 24 nov. | 2h | [Agrupat] Història i evolució del SQL: de SEQUEL (1974) als estàndards actuals, dialectes entre motors. Introducció al DDL. CREATE DATABASE: opcions, jocs de caràcters, col·lacions, esquemes. CREATE TABLE: sintaxi, tipus de dades (numèrics, text, data/hora, booleans, JSON). Diferències entre motors. | AC0372/03/01 — Investigació sobre l'article de Codd i l'origen del model relacional. AC0372/03/02 — Comparació del suport a SQL:2023 entre motors. AC0372/03/03 — Creació de bases de dades amb configuració específica als 4 motors. AC0372/03/04 — Taula de tipus de dades equivalents entre PostgreSQL, MySQL, SQL Server i Oracle. | RA3 |
| S22 | 26 nov. | 2h | Restriccions (constraints): PRIMARY KEY, NOT NULL, UNIQUE. Claus primàries compostes. | AC0372/03/04 — Implementació d'un esquema de clients amb restriccions bàsiques. | RA3 |
| S23 | 01 des. | 2h | Restriccions: FOREIGN KEY. Accions referencials: CASCADE, SET NULL, RESTRICT, NO ACTION. CHECK, DEFAULT. | AC0372/03/04 — Implementació de l'esquema de la pràctica PR0302 amb totes les restriccions. | RA3 |
| S24 | 03 des. | 2h | índex: tipus (B-tree, Hash, GIN, GIST). Quan crear un índex. Cost del manteniment d'índexos. EXPLAIN bàsic. | AC0372/03/05 — Creació d'índexos i mesura del seu impacte en un query. | RA3 |
Festiu Immaculada Concepció: 8 de desembre 2026
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S25 | 10 des. | 2h | VIEWS: CREATE VIEW, views actualitzables, WITH CHECK OPTION. Usos: abstracció, seguretat, simplificació. | AC0372/03/05 — Creació de vistes per a un sistema de facturació. | RA3 |
| S26 | 15 des. | 2h | [Agrupat] ALTER TABLE: ADD/DROP COLUMN, MODIFY/ALTER COLUMN, ADD/DROP CONSTRAINT. DROP TABLE i DROP DATABASE: riscos, restriccions de clau forana. TRUNCATE vs DROP. | AC0372/03/06 — Migració d'un esquema existent amb ALTER TABLE. Exercici de gestió del cicle de vida d'un esquema. | RA3 |
| S27 | 17 des. | 2h | Repàs i pràctica integradora del Bloc 3. Resolució de dubtes. | Pràctica avaluable PR0303 — Implementacio de BD amb Docker. Rúbrica RA3. | RA3 |
Vacances de Nadal: 22 desembre 2026 – 7 gener 2027
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S28 | 12 gen. | 2h | Correccio col·lectiva de la pràctica PR0303. | Feedback i consolidació. | RA3 |
| S29 | 14 gen. | 2h | Prova escrita RA3 | Prova individual: DDL (CREATE DATABASE/TABLE), constraints (PK, FK, UNIQUE, CHECK, DEFAULT), índexos, vistes, ALTER TABLE, DROP TABLE. | RA3 |
| Total Bloc 3 | 18h |
Bloc 4 — Consultes SQL (RA4)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S30 | 19 gen. | 2h | [Agrupat] Introducció a SQL. Estàndards SQL. SELECT bàsic: projecció, AS. WHERE: operadors de comparació, lògics (AND, OR, NOT), IS NULL, BETWEEN, IN, LIKE. | AC0372/04/01 — Primeres consultes sobre la BD de pràctica. AC0372/04/02 — Consultes de filtratge sobre la BD de treball. | RA4 |
| S31 | 21 gen. | 2h | [Agrupat] ORDER BY: ASC, DESC, múltiples columnes. DISTINCT. LIMIT/FETCH FIRST/TOP. Funcions escalars: de cadena (UPPER, LOWER, SUBSTR, TRIM, CONCAT), numèriques (ROUND, FLOOR, CEIL, MOD), de data (NOW, DATE_TRUNC, EXTRACT). | AC0372/04/02 — Consultes de filtratge, ordenació i limitació. AC0372/04/06, AC0372/04/07, AC0372/04/08 — Consultes amb funcions escalars de cadena, numèriques, de data i de conversió. | RA4 |
| S32 | 26 gen. | 2h | Funcions d'agregació: COUNT, SUM, AVG, MAX, MIN. Distinció NULL en agregats. | AC0372/04/03 — Estadístiques sobre la BD de treball. | RA4 |
| S33 | 28 gen. | 2h | GROUP BY: agrupació per una o múltiples columnes. HAVING: filtratge de grups. Diferència WHERE vs HAVING. | AC0372/04/03 — Consultes d'agrupació i filtratge de grups. | RA4 |
| S34 | 02 feb. | 2h | JOINs: concepte de join. INNER JOIN: només files que coincideixen. Sintaxi explícita vs implícita. | AC0372/04/04 — Consultes INNER JOIN sobre 3 taules. | RA4 |
| S35 | 04 feb. | 2h | LEFT JOIN i RIGHT JOIN: files sense correspondència. FULL OUTER JOIN. CROSS JOIN: producte cartesià. | AC0372/04/04 — Identificació de registres orfes. Consultes LEFT JOIN. | RA4 |
| S36 | 09 feb. | 2h | Prova escrita RA4 (parcial) | Prova individual: SELECT, WHERE, ORDER BY, funcions escalars i d'agregació, GROUP BY, HAVING, INNER/LEFT/RIGHT/FULL/CROSS JOIN. | RA4 |
| S37 | 11 feb. | 2h | JOIN de múltiples taules. Auto-join (JOIN d'una taula amb si mateixa). JOIN amb condicions complexes. | AC0372/04/04 — Consultes de 4 taules. Auto-join per a jerarquies. | RA4 |
| S38 | 16 feb. | 2h | Subconsultes: subconsultes escalars, subconsultes en FROM (derived tables), subconsultes en WHERE. | AC0372/04/05 — Reescriptura de JOINs com a subconsultes i viceversa. | RA4 |
| S39 | 18 feb. | 2h | [Agrupat] Subconsultes correlacionades. EXISTS i NOT EXISTS. IN vs EXISTS: rendiment i semàntica. | AC0372/04/05 — Consultes amb EXISTS per a validació d'existència. | RA4 |
| S40 | 23 feb. | 2h | Expressions de Taula Comuna (CTE) amb WITH. CTE recursives bàsiques. UNION, INTERSECT, EXCEPT. | AC0372/04/05 — Refactorització amb CTE. | RA4 |
Carnestoltes: 25 febrer – 3 març 2027 (dijous 25 feb. i dimarts 2 mar. festius)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S41 | 04 mar. | 2h | Window Functions: ROW_NUMBER, RANK, LAG, LEAD, SUM OVER. Casos d'ús. | AC0372/04/09 — Consultes amb window functions. | RA4 |
| S42 | 09 mar. | 2h | Repàs i pràctica integradora del Bloc 4. Resolució de dubtes. | Pràctica avaluable PR0304 — Consultes SQL avancades. Rúbrica RA4. | RA4 |
| S43 | 11 mar. | 2h | Correcció col·lectiva. Optimització bàsica de consultes: lectura d'un pla EXPLAIN. | Feedback i discussio de solucions alternatives. | RA4 |
| S44 | 16 mar. | 2h | Prova escrita RA4 (final) | Prova individual: JOINs múltiples, auto-join, subconsultes (escalars, correlacionades, EXISTS), CTE, UNION/INTERSECT/EXCEPT, window functions, optimització bàsica. | RA4 |
| Total Bloc 4 | 30h |
Bloc 5 — DML: Manipulació de dades (RA5)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S45 | 18 mar. | 2h | Introducció al DML. INSERT INTO: inserció d'una fila, especificació de columnes, valors per defecte. INSERT múltiple i INSERT...SELECT. | AC0372/05/01 — Inserció de dades en la BD de pràctica. | RA5 |
| S46 | 23 mar. | 2h | UPSERT: INSERT ON CONFLICT (PG) / INSERT IGNORE + REPLACE (MySQL) / MERGE (SQL Server). UPDATE: actualització amb WHERE, UPDATE sense WHERE, UPDATE amb JOIN. | AC0372/05/01 — Càrrega massiva de dades amb INSERT...SELECT. AC0372/05/02 — Actualització de preus i estocs amb UPDATE. | RA5 |
| S47 | 25 mar. | 2h | [Agrupat] DELETE: eliminació amb WHERE, sense WHERE. Ordre d'eliminació per restriccions de FK. TRUNCATE vs DELETE. | AC0372/05/02 — Eliminació de registres respectant la integritat referencial. | RA5 |
| S48 | 30 mar. | 2h | Transaccions: concepte, BEGIN/START TRANSACTION, COMMIT, ROLLBACK. Per que són necessàries. SAVEPOINT i ROLLBACK TO SAVEPOINT. Autocommit. | AC0372/05/03 — Demostració pràctica: transferència bancària amb i sense transacció. AC0372/05/03 — Exercici de transaccions amb savepoints. | RA5 |
| S49 | 01 abr. | 2h | Nivells d'aïllament: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE. Anomalies de concurrència (dirty read, non-repeatable read, phantom read) i com els nivells les eviten. | AC0372/05/03 — Demostració de cada anomalia i la seva solució. | RA5 |
| S50 | 06 abr. | 2h | Repàs i pràctica integradora del Bloc 5. Resolució de dubtes. | Pràctica avaluable PR0305 — Manipulació de dades amb Docker. Rúbrica RA5. | RA5 |
Setmana Santa: 7 abril – 20 abril 2027 (Pasqua el 18 d'abril)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S51 | 22 abr. | 2h | Correcció col·lectiva de la pràctica PR0305. | Feedback i discussio de solucions. | RA5 |
| S52 | 27 abr. | 2h | Prova escrita RA5 | Prova individual: INSERT, UPDATE, DELETE, TRUNCATE, UPSERT, transaccions (BEGIN/COMMIT/ROLLBACK), SAVEPOINTs, nivells d'aïllament. | RA5 |
| Total Bloc 5 | 16h |
Bloc 6 — Seguretat i còpia de seguretat (RA6)
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S53 | 29 abr. | 4h | [Agrupat] Importància de la seguretat en BD. Amenaces: injecció SQL, accés no autoritzat. Principi del mínim privilegi. Gestió d'usuaris: CREATE USER, ALTER USER, DROP USER. Autenticació als 4 motors. | AC0372/06/00, AC0372/06/01 — Demostració d'injecció SQL. Creació d'usuaris amb restriccions als 4 motors. | RA6 |
| S54 | 04 mai. | 2h | Privilegis: GRANT i REVOKE. Privilegis de base de dades vs taula vs columna. Rols: CREATE ROLE, GRANT ROLE TO USER. | AC0372/06/01 — Implementació d'una matriu de permisos per a un escenari multi-departament. | RA6 |
| S55 | 06 mai. | 4h | [Agrupat] Còpies de seguretat: tipus (completa, incremental, diferencial). pg_dump i pg_restore. mysqldump. Backup a SQL Server. Restauració: RTO i RPO. Còpies físiques vs lògiques. Verificació de restauració. | AC0372/06/02 — Script de backup automatitzat amb pg_dump. AC0372/06/02, AC0372/06/03 — Exercici de restauració completa des d'un backup. | RA6 |
| S56 | 11 mai. | 2h | Repàs i pràctica integradora del Bloc 6. Resolució de dubtes. | Pràctica avaluable PR0306 — Backup i seguretat amb Docker. Rúbrica RA6. | RA6 |
| S57 | 13 mai. | 2h | Prova escrita RA6 | Prova individual: seguretat en BD (usuaris, GRANT/REVOKE, rols, SQL injection), còpies de seguretat (pg_dump, mysqldump) i restauració. | RA6 |
| Total Bloc 6 | 14h |
Sessió final
| Sessió | Data | Hores | Continguts | Activitats | RA Treballat |
|---|---|---|---|---|---|
| S58 | 18 mai. | 2h | Tancament del curs. Revisió general de notes i feedback individualitzat. Autoavaluació. | Presentació de portafolis. Reflexió final sobre el mòdul. | Tots |
| Total | 2h |