A. A. 2015/16
Parte I
Introduzione
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS
• Nuovi programmi applicativi vengono aggiunti al sistema mano a mano che nascono
nuove necessità
• Con il passare del tempo più file e più programmi applicativi vengono aggiunti al
sistema
• I vari file potrebbero avere formati differenti e i programmi possono essere scritti in diversi linguaggi
di programmazione
• Essa può portare ad inconsistenza dei dati, ovvero le varie copie degli stessi dati potrebbero differire
• Si supponga che uno degli impiegati bancari debba selezionare i nomi di tutti i clienti che vivono
nella parte di città con CAP 89128
• Non vi è alcun programma applicativo già pronto per soddisfare tale problema
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS
– Problemi di integrità
• I valori dei dati memorizzati nel database devono soddisfare alcuni vincoli di integrità
• Per controllare che tali vincoli vengano rispettati gli sviluppatori dovranno aggiungere del codice
appropriato nei vari programmi applicativi
• Tale attività diventa particolarmente complessa quando i vincoli coinvolgono diversi dati provenienti
da file differenti
– Problemi di atomicità
• In molte applicazioni è cruciale che i dati vengano riportati all’ultimo stato consistente esistente
prima del guasto
• Esempio: due clienti prelevano soldi dallo stesso conto nello stesso istante
• Per affrontare tale problema il sistema deve mantenere qualche forma di supervisione ma la
supervisione è difficile da garantire
– Problemi di sicurezza
• Non tutti gli utenti del DBMS dovrebbero essere capaci di accedere a tutti i dati
• Tali vincoli di sicurezza possono essere difficilmente garantiti con una gestione basata sui file dal
momento che è difficile controllare tutti i programmi “ad-hoc” che via via vengono aggiunti al
sistema
– Modelli concettuali
• Essi vengono utilizzati per descrivere i dati in maniera completamente indipendente dalla struttura
del DBMS sottostante
• Essi tendono a descrivere i concetti nel mondo reale, piuttosto che i dati utili a rappresentarli
• I modelli concettuali vengono utilizzati durante la fase preliminare del processo di progettazione di
basi di dati per analizzare nel modo migliore la realtà di interesse, senza preoccuparsi del DBMS con
cui questa viene successivamente rappresentata
– Modelli logici
• Descrivono la realtà avendo come riferimento una strutturazione concreta dei dati
– Il modello relazionale: rappresenta la realtà di interesse per mezzo di relazioni le cui righe
rappresentano specifiche istanze e le cui colonne corrispondono a specifiche proprietà
– Il modello ad oggetti: estende alle basi di dati il paradigma di programmazione orientata agli oggetti
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Schemi e Istanze
– Data Definition Language: viene utilizzato per definire lo schema della base di dati
– Data Manipulation Language: viene utilizzato per gestire l’aggiornamento dei dati e la loro
interrogazione
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Linguaggi per basi di dati – Data Definition Language
• Uno schema di una base di dati viene specificato mediante il Data Definition
Language (DDL)
• Il risultato della compilazione delle istruzioni DDL è un insieme di tabelle che viene
memorizzato in un file speciale denominato dizionario dei dati o directory dei dati
• Un dizionario dei dati è un file che contiene metadati, ovvero dati sui dati
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Linguaggi per basi di dati – Data Manipulation Language
– I DML procedurali
• Essi possono generare codice che non è così efficiente come quello prodotto dai
linguaggi procedurali
• Sebbene non sia tecnicamente corretto è pratica comune utilizzare i termini Query
Language e Data Manipulation Language come sinonimi
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Architettura di un DBMS
• In alto a destra vediamo lo schema del database che, sottoposto al compilatore DDL,
produce una descrizione interna del database stesso
• Le istruzioni DML che estraggono i dati dal database sono spesso trasformate in
modo significativo dal Query Language Processor in modo tale che possano essere
eseguite più efficientemente
• Il Query Language Processor accede alle tabelle di descrizione del database; queste
sono state create dal compilatore DDL per avere alcune informazioni utili per
l’ottimizzazione delle interrogazioni
• Al di sotto del Query Language Processor opera il Database Manager, il cui ruolo è
quello di ricevere i comandi espressi ad alto livello di astrazione e di tradurli in
comandi espressi a basso livello
• Questo può essere un file system “general purpose” dotato di tutte le operatività del
sistema oppure un sistema specializzato
• La progettazione di una base di dati va inquadrata in un contesto più ampio del ciclo
di vita dei sistemi informativi
– Studio di fattibilità
• Tale fase richiede un’interazione con gli utenti del sistema e produce una descrizione completa ma
informale dei dati coinvolti
– Progettazione
• Le descrizioni dei dati e dei programmi prodotte durante questa fase sono più formali e possono fare
riferimento a specifici modelli
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Il ciclo di vita dei sistemi informativi
– Implementazione
– Validazione e collaudo
– Funzionamento
• Le basi di dati costituiscono solo una delle componenti di un sistema informativo che,
tipicamente, include anche i programmi applicativi, le interfacce con l’utente e altri
programmi di servizio
– Progettazione concettuale
• Essa rappresenta le specifiche informali della realtà di interesse in termini di una descrizione formale
e completa, ma indipendente dai criteri di rappresentazione utilizzati nei sistemi di gestione delle
basi di dati
• Durante questa fase il progettista deve cercare di rappresentare il contenuto informativo della base
di dati senza preoccuparsi né delle modalità di gestione delle informazioni in un sistema reale né
dell’efficienza dei programmi
• Durante la progettazione concettuale si fa uso delle specifiche dei dati mentre le specifiche sulle
operazioni servono soltanto a verificare che lo schema concettuale sia completo
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione dei dati
– Progettazione logica
• Consiste nella traduzione dello schema concettuale in termini delle strutture di rappresentazione
proprie del tipo di DBMS a disposizione
• Il prodotto di questa fase viene denominato schema logico della base di dati e fa riferimento a un
modello logico dei dati
• Durante questa fase le scelte progettuali tengono conto anche dei criteri di ottimizzazione delle
rappresentazioni e della qualità dello schema logico ottenuto
• In tale fase le specifiche sulle operazioni vengono utilizzate per rendere le operazioni stesse
eseguibili in maniera efficiente
• Durante questa fase è necessario anche conoscere il modello logico adottato ma non è ancora
necessario conoscere il particolare DBMS scelto
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione dei dati
– Progettazione dell’ORM (Object Relational Mapping)
• Un prodotto ORM fornisce, mediante un'interfaccia orientata agli oggetti, tutti i servizi inerenti alla
persistenza dei dati, astraendo nel contempo le caratteristiche implementative dello specifico
RDBMS utilizzato.
• Il superamento (più o meno completo) dell'incompatibilità di fondo tra il progetto orientato agli
oggetti ed il modello relazionale sul quale è basata la maggior parte degli attuali RDBMS utilizzati;
con una metafora legata al mondo dell'elettrotecnica, si parla in questo caso di disadattamento
dell'impedenza tra paradigma relazionale e ad-oggetti (object/relational impedance mismatch).
• Un'elevata portabilità rispetto alla tecnologia DBMS utilizzata: cambiando DBMS non devono essere
riscritte le routine che implementano lo strato di persistenza; generalmente basta cambiare poche
righe nella configurazione del prodotto per l'ORM utilizzato.
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione dei dati
• Drastica riduzione della quantità di codice sorgente da redigere; l'ORM maschera dietro semplici
comandi le complesse attività di creazione, prelievo, aggiornamento ed eliminazione dei dati (dette
CRUD - Create, Read, Update, Delete). Tali attività occupano di solito una buona percentuale del
tempo di stesura, testing e manutenzione complessivo. Inoltre, sono per loro natura molto ripetitive
e, dunque, favoriscono la possibilità che vengano commessi errori durante la stesura del codice che
le implementa.
• L'uso di un ORM favorisce il raggiungimento di più alti standard qualitativi software, migliorando in
particolare le caratteristiche di correttezza, manutenibilità, evolvibilità e portabilità.
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione dei dati
– Progettazione fisica
• In questa fase lo schema logico viene completato con la specifica dei parametri fisici di
memorizzazione dei dati
• Il prodotto di questa fase viene denominato schema fisico e fa riferimento a un modello fisico dei
dati che dipende dal DBMS scelto
• Nella progettazione fisica si fa uso dello schema logico e delle specifiche sulle operazioni per
ottimizzare le prestazioni del sistema
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione delle applicazioni
• Per progettazione delle applicazioni si intende quella fase della progettazione di un
sistema informativo che si occupa di progettare tutti i programmi che dovranno
operare sui dati relativi al sistema informativo stesso
• Tale fase della progettazione è, senza dubbio, meno standardizzata rispetto a quella
precedente
• Nelle aziende si usano, a tal fine, degli approcci poco formali. Generalmente, in tali
approcci, si possono riscontrare almeno le sequenti tre macro-fasi:
• Durante questa fase si cerca di individuare uno schema ad albero o a grafo che rappresenti quali
sono i moduli che compongono un determinato sistema e come interagiscono tra loro
• Lo schema che ne deriva ricorda molto da vicino le cosiddette «mappe dei siti» che spesso si trovano
in molti portali
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione delle applicazioni
– Definizione dei mock-up
• Un mock-up, o wireframe o screen blueprint, è una guida visuale realizzata per indicare la struttura
delle varie pagine Web
• Un wireframe illustra il layout della pagina, compresi gli elementi della sua interfaccia, i sistemi di
navigazione e la loro interazione
• Un wireframe non ha generalmente uno stile tipografico, non ha colori ed è limitato a livello grafico
poiché esso si focalizza sulle funzionalità e il comportamento della pagine Web
• In altre parole esso si focalizza su cosa fa una schermata e non sulla sua grafica
• L’individuazione dei casi d’uso comporta non solo la definizione delle funzionalità del sistema ma
anche degli attori che interagiscono con esso
• Il modo più classico di definire i casi d’uso consiste nell’utilizzo dei diagrammi dei casi d’uso di UML
• Una volta definito ciascun caso d’uso si può procedere alla sua progettazione dettagliata
• A tal fine si possono utilizzare vari strumenti, da quelli testuali ai workflow agli strumenti più
strettamente formali, come i diagrammi di sequenza o i diagrammi di attività di UML
• Un esempio di diagramma dei casi d’uso UML è riportato nella seguente figura: