Salta el contingut

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