• Scelta del client (confronto tra i client più comuni, per il corso useremo DBeaver) e primo collegamento alle instanze di prova
• Ruoli, database, schemi e search_path in PostgreSQL e fondamentali differenze con Oracle DB
• I data type di Postgres, in particolare l'uso di TOAST vs. large object
• Caratteristiche del "dialetto" SQL di PostgreSQL, in particolare riguardante le funzioni builtin
• Il linguaggio PL/PgSQL con esempi
• Cenni a altri linguaggi procedurali disponibili
• Esperienze di progettazione dei database (design relazionale classico, design orientato ai documenti JSON, partizionamento delle tabelle)
• I query plan di PostgreSQL e esperienze di tuning delle query
• Indici GIN per ottimizzare interrogazioni con ILIKE, espressioni regolari e JSON • VACUUM e ANALYZE
• Concorrenzialità e transazioni, locking e monitoring dei lock
• Esperienze di migrazioni da Oracle DB a PostgreSQL con cenni ai tool Ora2Pg e l'Oracle foreign data wrapper
• Accedere da Java: il driver JDBC e le sue caratteristiche