Home Insegnanti Contattami Portfolio

Base di dati

1️⃣ Base di Dati

Una base di dati è:

Database Management System (DBMS)

Un DBMS è un sistema che gestisce collezioni di dati che possono essere grandi, persistenti e condivise. Garantisce vari aspetti cruciali:

Esempi di DBMS includono:

Affidabilità dei Database

I database sono considerati affidabili grazie alla loro capacità di resistere a malfunzionamenti hardware e software. Poiché rappresentano una risorsa pregiata, devono essere conservati a lungo termine. Una tecnica fondamentale per garantire l'affidabilità è la gestione delle transazioni.

Gestione delle Transazioni

Una transazione è un insieme di operazioni da considerare indivisibile (atomica). Una transazione deve:

Questi principi garantiscono che le operazioni sui database siano sicure, coerenti e resistenti agli errori.

Modelli di Dati

Normalizzazione

La normalizzazione è il processo di organizzazione dei dati in una base di dati per ridurre la ridondanza e migliorare l'integrità dei dati. Include vari livelli (forme normali):

  1. Prima Forma Normale (1NF): Rimuove i valori duplicati nelle colonne.
  1. Seconda Forma Normale (2NF): Rimuove le dipendenze parziali tra colonne.
  1. Terza Forma Normale (3NF): Rimuove le dipendenze transitiva tra colonne.
  1. Boyce-Codd Normal Form (BCNF): Una versione più rigorosa della 3NF.

2️⃣ Database Management System (DBMS)

Architettura del DBMS

ACID Properties

Le proprietà ACID sono un insieme di proprietà che garantiscono che le transazioni nei DBMS siano affidabili:

  1. Atomicità: Le operazioni di una transazione sono indivisibili; o tutte si completano o nessuna si completa.
  1. Coerenza: Le transazioni portano il database da uno stato coerente a un altro stato coerente.
  1. Isolamento: Le operazioni di una transazione sono isolate dalle operazioni di altre transazioni.
  1. Durabilità: Una volta che una transazione è confermata (commit), i suoi effetti sono permanenti anche in caso di guasto del sistema.

Concorrenza e Locking

Backup e Recupero

Performance Tuning

Tipi di Indici

3️⃣ Tecnologie Emergenti

Big Data

Gestione e analisi di enormi quantità di dati eterogenei raccolti da varie fonti. Esempi di tecnologie: Hadoop, Spark.

Data Warehousing

Archiviazione e gestione di grandi volumi di dati storici per analisi e reportistica. Esempi: Amazon Redshift, Google BigQuery.

Machine Learning e AI nei DBMS

Integrazione di algoritmi di machine learning e intelligenza artificiale per analisi avanzate, previsione e automazione delle operazioni database. Esempi: Google Cloud AI, Azure Machine Learning.

Cloud Databases

Database ospitati su piattaforme cloud che offrono scalabilità, affidabilità e flessibilità. Esempi: Amazon RDS, Microsoft Azure SQL Database, Google Cloud SQL.

Blockchain

Tecnologia emergente per basi di dati decentralizzate e immutabili, utilizzata principalmente in criptovalute e contratti intelligenti. Esempi: Ethereum, Hyperledger.

4️⃣ Sicurezza del Database

Controlli di Accesso

Implementazione di ruoli e permessi per controllare chi può accedere e modificare i dati. Tecniche includono:

Crittografia

Protezione dei dati sensibili mediante tecniche di crittografia sia a riposo (stored data) che in transito (data in transit).

Auditing

Monitoraggio e registrazione delle attività degli utenti per identificare e prevenire accessi non autorizzati o comportamenti sospetti.