ARCHITETTURA DI UN DBMS Modelli di dati Un approccio con basi di dati fornisce un certo livello di astrazione dei dati Nasconde i dettagli sulla memorizzazione dei dati stessi Un modello dei dati fornisce i mezzi per realizzare questa astrazione Struttura della base di dati: tipi di dati, associazioni, vincoli Operazioni di base sui dati: aggiornamenti e interrogazioni Operazioni definite dall utente
Categorie di modelli di dati Due estremi Modelli di dati concettuali (alto livello, semantici) Vicini al modo in cui gli utenti percepiscono i dati Modelli di dati fisici (basso livello, interno) Dettagli sul modo in cui i dati sono memorizzati dal computer Fra i due estremi Modelli di dati rappresentabili Concetti che possono essere compresi dagli utenti finali, ma non lontani dal modo in cui i dati sono memorizzati nel computer Modelli di dati autodescrittivi Descrizione dei dati associata ai dati (XML, e alcuni modelli NoSQL) Modelli di dati concettuali Entità Un oggetto (o concetto) del mondo reale Attributo Proprietà di interesse delle entità Associazione fra due o più entità Rappresenta una interazione fra le entità
Modelli di dati implementabili Rappresentano i dati usando strutture di record Modello relazionale Oggi il più diffuso Modello reticolare e modello gerarchico Molto usati nel passato Modello a oggetti Più vicino ai modelli concettuali Schemi e istanze Lo schema descrive la struttura della base di dati (aspetto intensionale), sostanzialmente invariante nel tempo Diagramma di schema rappresenta la struttura di ciascun tipo di record Lo stato della base di dati è l insieme dei dati in una base di dati in un determinato istante (aspetto estensionale) Il primo inserimento di dati viene chiamato popolamento Il DBMS deve garantire che ogni stato della base di dati sia valido spesso chiamato anche istanza o snapshot
Schema di una base di dati Architettura a tre livelli
Architettura a tre livelli spesso chiamato livello logico Indipendenza logica dei dati È la capacità di poter cambiare lo schema logico senza dover cambiare gli schemi esterni o i programmi applicativi Il progettista deve modificare coerentemente solo la definizione della vista e i mapping fra livelli I programmi applicativi che fanno riferimento agli schemi esterni non devono essere modificati Si possono modificare i vincoli nello schema logico senza influenzare gli schemi esterni o i programmi applicativi che fanno riferimento agli schemi esterni
Indipendenza fisica dei dati È la capacità di cambiare lo schema interno senza dover cambiare lo schema logico o gli schemi esterni. Cambiamenti allo schema interno Riorganizzazione file per creare strutture di accesso addizionali Riorganizzazione file per migliorare recupero e aggiornamento La realizzazione dell indipendenza dei dati logica e fisica può causare inefficienze (rallentamenti) Le richieste a ciascun livello devono essere tradotte in richieste al livello inferiore Linguaggi per definire gli schemi DDL (Data Definition Language) Per definire lo schema logico. La maggior parte dei DBMS usa questo linguaggio anche per la definizione dello schema interno SDL (Storage Definition Language) Usato dai DBMS che mantengono una netta distinzione fra livello logico e interno per specificare lo schema interno. Il mapping fra livello logico e interno può essere specificato in DDL o SDL VDL (View Definition Language) Dovrebbe esistere in un DBMS aderente all architettura a tre livelli. Nella pratica le viste sono definite tramite DDL
Linguaggi per la manipolazione dei dati DML (Data Manipulation Language) Per recuperare i dati, inserire nuovi dati, modificare o cancellare dati esistenti DML di alto livello (non-procedurale) Le operazioni possono essere specificate direttamente al DBMS tramite un terminale Le operazioni possono essere incapsulate (embedded) all interno di un linguaggio di programmazione (un precompilatore le estrae) DML di basso livello (procedurale) Deve essere incapsulato in un linguaggio di programmazione DML di basso e alto livello DML di basso livello record-at-a-time perché recuperano un record alla volta. Usano i costrutti iterativi tipici dei linguaggi di programmazione DML di alto livello set-oriented perché possono recuperare molti record in una singola istruzione Sono detti linguaggi dichiarativi perché specificano cosa recuperare e non come
Linguaggi usati dai DBMS Nei DBMS attuali DDL, SDL, VDL e DML non sono considerati linguaggi distinti (la distinzione è solo logica) Ad esempio, SQL (standard) consente di specificare operazioni di DDL, VDL e DML di alto livello La definizione della memorizzazione fisica è tipicamente mantenuta separata La versione attuale di SQL non prevede operazioni SDL (erano un componente di SQL nelle prime versioni) Linguaggi di programmazione e linguaggi dei DBMS Si parla di incapsulamento se, ad esempio, si inseriscono istruzioni SQL in C Una base di dati orientata agli oggetti fornisce invece un unico linguaggio integrato per la scrittura di applicazioni e per le funzionalità del DBMS Ad esempio C++ con opportune estensioni Alcuni DBMS relazionali offrono linguaggi integrati (ad esempio, PL/SQL di Oracle)
Utenti della base di dati e linguaggi Utenti casuali DML di alto livello Programmatori DML incapsulato Utenti non sofisticati Interfacce amichevoli Interfacce dei DBMS Interfacce a menu per la navigazione Guida passo-passo nella formulazione dell interrogazione Interfacce a moduli (form) Per utenti non sofisticati: si riempiono i campi in un modulo pre-definito Interfacce grafiche L utente costruisce l interrogazione manipolando un diagramma dello schema (ad es. usando un mouse)
Interfacce dei DBMS (cont.) Interfacce in linguaggio naturale Interfacce vocali Interfacce per utenti non esperti Viene definito un piccolo insieme di comandi abbreviati (ad esempio, i tasti funzione) per le operazioni più frequenti Cassieri di banca Terminali di prenotazione voli Interfacce per il DBA Comandi privilegiati di amministrazione Ambiente di un DBMS
Moduli di un DBMS Programmi di utilità di un DBMS Sono di ausilio alle operazioni del DBA Caricamento dati da file esistenti (strumenti di conversione) Backup: copia di sicurezza della base di dati su nastro Riorganizzazione dei file per incrementare le prestazioni Monitoraggio delle prestazioni per programmare eventuali operazioni di manutenzione Altri strumenti per ordinare i file, gestire la compressione dei dati, controllare l accesso da parte degli utenti, ecc.
Strumenti, ambienti applicativi e comunicazione Strumenti CASE (Computer Aided Software Engineering) Per la progettazione di basi di dati Dizionario dei dati (Deposito di informazioni) Per immagazzinare schemi, vincoli, decisioni di progettazione, standard d uso, ecc. Ambienti di sviluppo applicazioni Software di comunicazione Architettura fisica centralizzata
Architettura logica client/server Architettura fisica client/server Comunicazioni fra applicazioni client e DataBase Server ODBC (Open DataBase Connectivity)
Architettura logica a tre livelli Classificazione dei DBMS Rispetto al modello logico dei dati Relazionale Uso di tabelle A oggetti Uso di classi, gerarchie, metodi Relazionale e a oggetti Modello relazionale esteso agli oggetti Modelli NoSQL key-value, document based, column nased, graph, XML... Modelli di vecchia generazione Reticolare, Gerarchico
Classificazione dei DBMS (cont.) Rispetto al numero di utenti Singolo utente (DBMS per uso personale) Multiutente Rispetto al numero di siti in cui è distribuita la base di dati Centralizzato Distribuito DDBMS omogenei usano lo stesso software in più siti DBMS federati (software middleware per accedere a diverse basi di dati sviluppate autonomamente) Classificazione dei DBMS (cont.) Rispetto al costo Open-source e supporto da terze parti DBMS per uso personale DBMS Enterprise Rispetto alle opzioni per i cammini di accesso ai file Rispetto alla finalità General-purpose Special-purpose (ad es., prenotazioni aeree, elenchi telefonici, ecc.) consentono l ottimizzazione delle prestazioni
EVOLUZIONE DEL MERCATO DEI DBMS Gartner 2013 Magic Quadrant Operational DBMS
Gartner 2014 Magic Quadrant Operational DBMS Gartner 2015 Magic Quadrant Operational DBMS
Gartner 2016 Magic Quadrant Operational DBMS