Fondamenti dei Sistemi di Database: Concetti, Modelli e SQL

Inviato da Javi e classificato in Informatica

Scritto il in con una dimensione di 5,25 KB

Cos'è un sistema di database

Un sistema di database è costituito da:

  • Database: Una raccolta di dati correlati. È composto da:
    • Dizionario dei dati: contiene una descrizione della struttura del BD, i "metadati".
    • Dati: le informazioni memorizzate.
  • Sistema di gestione di database (DBMS): un insieme di programmi che consente di definire, creare, manipolare e controllare l'accesso al database.
  • Utenti: amministratori, progettisti, utilizzatori finali, ecc.

Vantaggi dell'utilizzo di un DBMS

  • Abbattimento della ridondanza e controllo dei dati.
  • Prevenzione delle incoerenze (evitando diverse copie degli originali).
  • Mantenimento dell'integrità (correttezza delle informazioni) tramite vincoli di integrità (tipo di dati, lunghezza, ecc.).
  • Facilità di sviluppo e mantenimento delle relazioni tra i dati.
  • Controllo degli accessi, sicurezza e gestione della concorrenza.
  • Facilità di backup e correzione degli errori.
  • Flessibilità: possibilità di modificare la struttura senza alterare i dati memorizzati.

Modelli di dati

Il modello di dati di un DB è un insieme di concetti che descrivono i tipi di dati, le relazioni e le restrizioni, oltre alle operazioni di interrogazione e modifica. Si divide in:

  • Concettuale: vicino al mondo reale, basato su entità e attributi. Esempio: UML.
  • Logico: descrive la struttura globale, comprensibile dagli utenti ma vicino all'organizzazione fisica. Esempio: relazionale o orientato agli oggetti.
  • Fisico: descrive la struttura fisica, come memorizzare e accedere ai record, blocchi, ecc.

Schema e stato

  • Schema: specifica la progettazione del database (i metadati).
  • Stato: l'insieme di dati contenuti nel database in un momento particolare. Il gestore deve garantire che sia sempre coerente.

Linguaggi e interfacce

  • LDD (Linguaggio di Definizione dei Dati): per specificare la struttura concettuale.
  • LDA (Linguaggio di Definizione di Stoccaggio): per definire la memorizzazione.
  • LDV (Linguaggio di Definizione di Vista): permette all'utente di definire punti di vista.
  • DML (Linguaggio di Manipolazione dei Dati): consente l'accesso, l'inserimento, la cancellazione e la modifica dei dati. Può essere procedurale o dichiarativo.

Modello relazionale dei dati

È il modello più utilizzato. Ecco una corrispondenza tra terminologia formale e SQL:

FormaleSQLDescrizione
RapportoTabellaRappresenta un'entità generica
TupleRigaRappresenta una particolare entità
AttributoColonna-
DominioDominioValori atomici che un attributo può assumere

Proprietà delle relazioni

  • Non ci sono tuple ripetute.
  • Le tuple non sono ordinate.
  • Gli attributi non sono ordinati.
  • I valori degli attributi sono atomici.

Regole di integrità

  • Chiavi candidate, primarie e alternative: Sottoinsieme di attributi che soddisfa il vincolo di esclusività e non contiene valori nulli.
  • Chiavi esterne: Insieme di attributi che fa riferimento alla chiave primaria di un'altra relazione. Consente di collegare le tabelle.

Algebra relazionale

Raccolta di operatori che utilizzano le relazioni come operandi. Le operazioni principali includono: Unione, Intersezione, Differenza, Prodotto cartesiano, Restrizione, Proiezione, Incontro (Join), Divisione e Funzioni di aggregazione.

Transazioni

Una transazione è una sequenza di azioni che legge o aggiorna il database. Proprietà (ACID):

  • Atomicità: tutto o niente.
  • Integrità: passaggio da uno stato coerente all'altro.
  • Isolamento: le modifiche non sono visibili finché non sono confermate.
  • Durabilità: i cambiamenti persistono anche dopo un guasto.

Controllo della concorrenza

Problemi comuni: Aggiornamento perso, Lettura sporca (dirty read), Riassunto sbagliato e Lettura non ripetibile. Si utilizzano metodi di bloccaggio (condiviso o esclusivo) e protocolli come il Two-Phase Locking (2PL) per garantire la serializzabilità.

Recupero (Failover)

Il gestore deve garantire l'atomicità e la durata. Si utilizzano file di log, checkpoint e strategie di aggiornamento (immediato o differito) per ripristinare il database in uno stato corretto dopo un guasto.

SQL e LDD

Il linguaggio SQL permette la manipolazione (SELECT, INSERT, UPDATE, DELETE) e la definizione (CREATE, ALTER, DROP) di schemi, tabelle, viste e indici. Le viste sono tabelle derivate che non vengono create fisicamente, garantendo dati sempre aggiornati.

Voci correlate: