Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria secondaria
collezione di dati –Persistente: il ciclo di vita dei dati non è limitato alle singole esecuzioni dei programmi che li usano –Condivisa da più utenti e più applicazioni Base di dati
La condivisione non è mai completa: controllo della sicurezza La condivisione comporta la necessità di gestire accessi contemporanei agli stessi dati: controllo della concorrenza Condivisione
I dati devono essere protetti da accessi non autorizzati e quindi è necessario definire: il regolamento di accesso (chi può accedere a quali dati e in quale modalità) gli effetti di una violazione (dal negare laccesso fino al bloccare il sistema) Sicurezza
Transazione: sequenza di operazioni che costituiscono ununica operazione logica Trasferisci 1000 dal c/c c1 al c/c c2 cerca c1 modifica saldo in saldo-1000 cerca c2 modifica saldo in saldo+1000 Una transazione deve essere eseguita completamente (commited) o non deve essere eseguita affatto (rolled back) Transazione
Concorrenza Transazione 1: Accredita 1000 sul c/c c1 Transazione 2: Accredita 500 sul c/c c1 Transazione 1TempoTransazione 2 cerca c1t1 t2cerca c1 modifica saldo in saldo+1000t3 t4modifica saldo in saldo+500 valore iniziale saldo: 2000 valore finale saldo: 2500
I sistemi di basi di dati offrono agli utenti una vista astratta dei dati (schema della base di dati) e rendono trasparenti i dettagli di memorizzazione e manipolazione Schema di una base di dati
Modello dei dati Insieme di strutture da utilizzare per la definizione dello schema della base di dati
Linguaggi di un DBMS data definition language (DDL) –per la definizione dello schema e altre operazioni generali data manipulation language (DML) –per linterrogazione (query language) e laggiornamento della basi di dati
I DBMS possono essere classificati in base al modello dei dati (strutture per organizzare i dati): gerarchici (metà anni 60) a rete (metà anni 60) relazionali (anni 80) orientati ad oggetti (metà anni 80) Classificazione dei DBMS