Salta el contingut

Programació d'aula

Calendari de sessions

Bloc 1 — Introducció i Fonaments (RA1 / RA2) · 6 hores

Sessió Continguts Activitats RA Treballat
S01 Presentació del mòdul. Conceptes de SGBD. Arquitectura ANSI/SPARC. Tipus de SGBD (relacional, NoSQL, NewSQL). Questionari inicial. AC0101 — Investigació de motors al mercat (db-engines.com). RA1
S02 Comparativa PostgreSQL, MySQL/MariaDB, SQL Server, Oracle. Llicències, casos d'ús, posicionament al mercat. Rol del DBA. AC0102 — Taula comparativa dels 4 motors. Anàlisi d'ofertes de treball. RA1
S03 Arquitectura física d'un SGBD: buffer pool, WAL, fitxers de dades, logs. Propietats ACID. AC0103 — Diagrames d'arquitectura. Resolució de casos pràctics ACID. RA1
S04 Nivells d'aïllament de transaccions: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE. MVCC i 2PL. AC0104 — Demostració d'anomalies de concurrència en dues consoles simultànies. RA1
S05 Motors d'emmagatzematge: InnoDB vs MyISAM, heap/B-tree (PG), filegroups (SQL Server), tablespaces (Oracle). AC0105 — Comparativa de motors d'emmagatzematge. Exercici MyISAM → InnoDB. RA1
S06 Instal·lació de PostgreSQL 16: nativa (Linux/Windows) i amb Docker. Configuració inicial. postgresql.conf i pg_hba.conf. AC0110 — Exploració inicial de contenidors Docker: pull, run, connexió a PostgreSQL i MySQL. RA1 / RA2

Bloc 1 — Instal·lació (continuació) · 3 hores

Sessió Continguts Activitats RA Treballat
S07 Instal·lació de MySQL 8.0 i MariaDB 11: nativa i amb Docker. Configuració inicial. my.cnf. Diferències MySQL vs MariaDB. AC0111 — Configuració inicial del SGBD: ALTER USER, creació de BD amb UTF-8, revisió de max_connections i buffer pool. RA1 / RA2
S08 Instal·lació de SQL Server 2022 (Linux/Docker). Configuració inicial. mssql.conf. Eines: sqlcmd, Azure Data Studio. AC0106 — Configuració de SQL Server 2022 per a entorn de desenvolupament. RA1 / RA2
S09 Oracle Database 21c XE amb Docker. Configuració bàsica. init.ora. Estructura del CDB/PDB (Pluggable Databases). AC0107 — Exploració de l'arquitectura CDB/PDB d'Oracle. RA1 / RA2
S10 Arxius de configuració dels 4 motors. Paràmetres clau: memòria, connexions, logs, encoding. Variables de sessió vs globals. AC0108 — Comparativa de paràmetres de configuració. Cas pràctic: tuning bàsic. RA2
S11 Eines de gestió: DBeaver (universal), pgAdmin 4 (PostgreSQL), MySQL Workbench, SQL Server Management Studio, Oracle SQL Developer. AC0109 — Instal·lació i connexió de DBeaver als 4 motors. Exploració del catàleg. RA1
S12 Repàs i pràctica integradora del Bloc 1. Resolució de dubtes. Pràctica avaluable PR01 — Instal·lació i configuració dels 4 motors. Rúbrica RA1. RA1 / RA2

Bloc 2 — Control d'accés (RA3) · 6 hores

Sessió Continguts Activitats RA Treballat
S13 Introducció al control d'accés. Autenticació vs autorització. Models de control d'accés: DAC, MAC, RBAC. Conceptes: usuari, rol, privilegi, objecte. AC0301 — Esquema de model de seguretat. Comparativa DAC vs RBAC. RA3
S14 Gestió d'usuaris: CREATE USER, ALTER USER, DROP USER. Autenticació: password, certificat, Kerberos. pg_hba.conf (PostgreSQL), mysql.user (MySQL). AC0302 — Creació d'usuaris amb restriccions en els 4 motors. RA3
S15 Privilegis en PostgreSQL i MySQL: GRANT, REVOKE. Privilegis de sistema vs objecte. Herència de privilegis. AC0303 — Matriu de permisos per a un escenari multi-departament. RA3
S16 Privilegis en SQL Server (logins, users, schemas). Oracle (system privileges, object privileges, GRANT ... WITH ADMIN OPTION). Organització d'esquemes (schemas) a PostgreSQL, SQL Server i Oracle. AC0304 — Configuració de seguretat SQL Server i Oracle · AC0308 — Anàlisi i reorganització d'esquemes: propietaris, rols d'accés i separació de dominis. RA3
S17 Rols: CREATE ROLE, GRANT ROLE TO USER. Rols predefinits. Rols en SQL Server (fixed server roles, database roles). Rols d'Oracle. AC0305 — Disseny i implementació d'una jerarquia de rols per a una empresa fictícia. RA3
S18 Vistes de seguretat: vistes per ocultar dades sensibles. Row-Level Security (PostgreSQL). Dynamic Data Masking (SQL Server). AC0306 — Implementació de RLS a PostgreSQL. Màscara de dades a SQL Server. RA3
S19 Auditoria de bases de dades: pgaudit (PostgreSQL), audit_log (MySQL), SQL Server Audit, Oracle Unified Auditing. AC0307 — Configuració d'auditoria i anàlisi de logs d'accés. RA3
S20 Repàs i pràctica integradora del Bloc 2. Pràctica avaluable PR02 — Implementació de control d'accés complet. Rúbrica RA3. RA3

Bloc 3 — Automatització de tasques (RA4) · 6 hores

Sessió Continguts Activitats RA Treballat
S21 Introducció a la programació de SGBD. Procediments emmagatzemats: concepte, avantatges, sintaxi bàsica. PL/pgSQL vs T-SQL vs PL/SQL vs SQL/PSM. AC0401 — Procediment "Hello World" en els 4 motors. Anàlisi de diferències sintàctiques. RA4
S22 Estructures de control en PL/pgSQL i T-SQL: IF/ELSIF/ELSE, CASE, LOOP, WHILE, FOR. Gestió d'excepcions. Variables i cursors. AC0402 — Procediment de càlcul de facturació mensual. Exercici de cursors. RA4
S23 Procediments a MySQL (SQL/PSM) i Oracle (PL/SQL). Paràmetres IN, OUT, IN OUT. Overloading (Oracle). Packages (Oracle). AC0403 — Procediment multi-motor per a gestió d'estoc. RA4
S24 Funcions definides per l'usuari (UDF): escalars, de taula (table-valued functions a SQL Server), aggregate functions (PostgreSQL). AC0404 — Funció de càlcul d'IVA i descomptes. Funció de formatació de NIFs. RA4
S25 Disparadors (Triggers): BEFORE/AFTER, INSERT/UPDATE/DELETE, statement vs row level. Casos d'ús: auditoria, validació, desnormalització. AC0405 — Trigger d'auditoria de canvis. Trigger de validació de dades. RA4
S26 Triggers a SQL Server (DML triggers, DDL triggers, INSTEAD OF). Triggers a Oracle (compound triggers). Bones pràctiques i antipatrons. AC0406 — Trigger DDL per a prevenció de DROP TABLE accidental. RA4
S27 Esdeveniments programats (Event Scheduler): CREATE EVENT (MySQL). pg_cron (PostgreSQL). SQL Server Agent. Oracle DBMS_SCHEDULER. AC0407 — Tasca de neteja automàtica de logs. Tasca de resum estadístic diari. RA4
S28 Repàs i pràctica integradora del Bloc 3. Pràctica avaluable PR03 — Automatització completa d'un procés de negoci. Rúbrica RA4. RA4

Bloc 4 — Optimització del rendiment (RA5) · 6 hores

Sessió Continguts Activitats RA Treballat
S29 Introducció a l'optimització. Mètriques de rendiment: temps de resposta, throughput, latència. Identificació de colls d'ampolla. AC0501 — Benchmark bàsic amb pgbench (PostgreSQL) i sysbench (MySQL). RA5
S30 Índexs: estructura B-tree, cost de manteniment, selectivitat. Quan crear un índex i quan no. Índexs compostos, parcials, expressions. AC0502 — Anàlisi del rendiment amb i sense índex sobre una taula de 1M files. RA5
S31 Plans d'execució: EXPLAIN i EXPLAIN ANALYZE (PostgreSQL, MySQL). EXPLAIN i SET STATISTICS IO ON (SQL Server). EXPLAIN PLAN FOR (Oracle). AC0503 — Interpretació de plans d'execució. Identificació de Seq Scan vs Index Scan. RA5
S32 Optimització de consultes SQL: reescriptura, ús correcte de JOINs, subqueries vs CTE, evitar funcions en clàusules WHERE, LIMIT/FETCH FIRST. AC0504 — Optimització de 5 consultes lentes. Comparació de plans abans i després. RA5
S33 Monitoratge del SGBD: pg_stat_statements, Performance Schema (MySQL), DMVs (SQL Server), AWR/ASH (Oracle). Eines: Prometheus + Grafana, pgBadger. AC0505 — Configuració de monitoratge bàsic. Identificació de consultes lentes al log. RA5
S34 Estadístiques del planificador: ANALYZE, VACUUM ANALYZE (PostgreSQL). ANALYZE TABLE (MySQL). UPDATE STATISTICS (SQL Server). DBMS_STATS (Oracle). AC0506 — Demostració de plans incorrectes per estadístiques obsoletes. RA5
S35 Optimització a nivell de motor: work_mem, effective_cache_size (PostgreSQL). sort_buffer_size, join_buffer_size (MySQL). AC0507 — Tuning de memòria i mesura d'impacte. RA5
S36 Repàs i pràctica integradora del Bloc 4. Pràctica avaluable PR04 — Anàlisi i optimització de rendiment. Rúbrica RA5. RA5

Bloc 5 — Alta disponibilitat (RA6) · 6 hores

Sessió Continguts Activitats RA Treballat
S37 Introducció a l'alta disponibilitat. RTO i RPO. MTTR i MTBF. Causes de fallada. Estratègies: actiu-passiu, actiu-actiu. AC0601 — Càlcul de RTO/RPO per a escenaris d'empresa. Anàlisi de casos reals de downtime. RA6
S38 Còpia de seguretat i recuperació: còpia lògica vs física. pg_dump / pg_restore (PostgreSQL). mysqldump / mysqlpump (MySQL). AC0602 — Script de backup automatitzat. Test de restauració. RA6
S39 Backup continu i PITR (Point-in-Time Recovery) a PostgreSQL amb pg_basebackup + WAL archiving. Backup incremental a MySQL amb Binary Log. AC0603 — Configuració de PITR a PostgreSQL. Restauració a un punt en el temps. RA6
S40 Backup a SQL Server: Full, Differential, Transaction Log Backup. Estratègies de backup. SQL Server Agent per a backups automàtics. AC0604 — Pla de backup complet per a SQL Server. Exercici de restore. RA6
S41 Backup a Oracle: RMAN (Recovery Manager). Backup complet, incremental, arxivat. Flashback Database. AC0605 — Configuració de RMAN. Simulació de fallada i recuperació. RA6
S42 Replicació: conceptes bàsics. Replicació lògica vs física. Streaming Replication (PostgreSQL). Mestre-rèplica a MySQL/MariaDB (GTID). AC0606 — Replicació mestre-rèplica PostgreSQL amb Docker Compose: configuració de streaming replication. RA6
S43 Replicació a SQL Server: Always On Availability Groups (bàsic). Replicació a Oracle: Data Guard (conceptes). AC0607 — Configuració d'Always On AG a SQL Server (entorn Docker). RA6
S44 Bases de dades distribuïdes: sharding, particionament horitzontal. Citus (PostgreSQL). Proxies: ProxySQL (MySQL), pgBouncer (PostgreSQL). AC0608 — Configuració de pgBouncer com a pool de connexions. RA6
S45 Clustering: Patroni + etcd (PostgreSQL HA). Galera Cluster (MySQL/MariaDB multi-master). Failover automàtic. AC0609 — Cluster Patroni de 3 nodes amb Docker Compose: test de failover automatitzat. RA6
S46 Repàs general del mòdul. Preparació de l'examen final. Pràctica avaluable PR05 — Alta disponibilitat i backup/recovery. Rúbrica RA6. RA6

Sessions finals

Sessió Continguts Activitats RA Treballat
S47 Revisió general del mòdul. Resolució de pràctiques pendents. Q&A. Revisió de notes i feedback individualitzat. Tots
S48 Examen teòric final Prova escrita individual cobrint tots els blocs. Tots
S49 Defensa oral de les pràctiques (si escau). Tancament del curs. Autoavaluació. Presentació de portafolis de pràctiques. Reflexió final. Tots