Sei sulla pagina 1di 30

Basi di Dati I

A. A. 2015/16

Parte I
Introduzione
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS

• Un DataBase Management System (DBMS) consiste in una collezione di dati correlati


e in un insieme di programmi per accedere a questi dati

• Il suo primo scopo è quello di fornire un ambiente conveniente ed efficiente da usare


nel recupero e nella memorizzazione delle informazioni

• I DBMS sono stati progettati per gestire grandi quantità di informazioni

• La gestione delle informazioni comporta la definizione di strutture per la loro


memorizzazione e di meccanismi per la loro manipolazione

• Un DBMS deve gestire la sicurezza delle informazioni memorizzate, facendo fronte


sia a crash del sistema che ad accessi non autorizzati

• Un DBMS deve essere capace di gestire, in modo corretto ed efficiente, la


condivisione dei dati tra diversi utenti
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS

• Supponiamo di dover gestire l’informatizzazione di una filiale di una banca che


mantiene informazioni sui clienti e sui conti

• Un modo per mantenere l’informazione su un computer è quello di memorizzarla in


file permanenti

• Per consentire agli utenti di manipolare le informazioni, il sistema deve avere un


certo numero di programmi applicativi; tra questi programmi dovranno
necessariamente essere presenti:

– Un programma per la gestione dei depositi e dei prelievi

– Un programma per aggiungere un nuovo conto

– Un programma per calcolare il saldo di un conto

– Un programma per generare gli estratti conto


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS

• Questi programmi applicativi vengono scritti da programmatori in risposta alle


necessità della banca

• 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 file che compongono il sistema sono supportati da un sistema operativo


convenzionale

• Prima dell’avvento dei DBMS le organizzazioni memorizzavano le informazioni


utilizzando tipicamente tali sistemi
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS

• Questo modo di gestire le informazioni comporta alcuni grossi svantaggi. Più


specificatamente, vi possono essere:

– Ridondanze ed inconsistenze dei dati

• I vari file potrebbero avere formati differenti e i programmi possono essere scritti in diversi linguaggi
di programmazione

• La stessa informazione può essere duplicata in diversi posti

• Tale ridondanza porta a dei costi di memorizzazione e di accesso più alti

• Essa può portare ad inconsistenza dei dati, ovvero le varie copie degli stessi dati potrebbero differire

– Difficoltà nell’accesso ai dati

• 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

• Se vi è la necessità di aggiungere nuovi vincoli sarà necessario cambiare i programmi

• Tale attività diventa particolarmente complessa quando i vincoli coinvolgono diversi dati provenienti
da file differenti

– Problemi di atomicità

• Un computer è soggetto a guasto

• In molte applicazioni è cruciale che i dati vengano riportati all’ultimo stato consistente esistente
prima del guasto

• Esempio: il trasferimento di 50 euro da un conto A a un conto B; questo deve essere effettuato in


modo atomico
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Scopi di un DBMS

– Anomalie nell’accesso concorrente

• Molti sistemi consentono a più utenti di aggiornare simultaneamente i dati

• In tali ambienti l’interazione di aggiornamenti concorrenti può portare a dati inconsistenti

• Esempio: due clienti prelevano soldi dallo stesso conto nello stesso istante

• A seconda di chi scrive il valore, il conto può contenere un valore diverso

• 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

• Queste difficoltà, tra le altre, hanno stimolato lo sviluppo dei DBMS


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Modelli dei dati

• Un modello dei dati è un formalismo matematico composto da due parti:

– Una notazione per descrivere i dati


– Un insieme di operazioni per manipolare i dati

• I modelli si suddividono in:

– 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

• Il più importante modello concettuale è il modello Entità/Relazione


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Modelli dei dati

– Modelli logici

• Sono gli effettivi modelli di riferimento per i vari DBMS

• Descrivono la realtà avendo come riferimento una strutturazione concreta dei dati

• Modelli logici molto comuni sono i seguenti:

– Il modello gerarchico: è basato sull’utilizzo di strutture ad albero, e quindi di gerarchie

– Il modello reticolare: è basato sull’uso dei grafi

– 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

• Lo schema di una base di dati definisce le caratteristiche e la struttura dei dati

• L’istanza o stato di una base di dati memorizza i valori effettivi

• Esempio: dato un fornitore il corrispondente schema è:

FORNITORE (Codice, Nome, Indirizzo)

• Le istanze rappresentano gli effettivi fornitori:

• Lo schema prende anche il nome di componente intensionale della base di dati


mentre le istanze rappresentano la sua componente estensionale
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Linguaggi per basi di dati

• Ad un DBMS possono essere associate due diverse tipologie di linguaggi:

– 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

• Per manipolazione dei dati intendiamo:

– L’estrazione delle informazioni memorizzate nel database

– L’inserimento di nuove informazioni nel database

– La cancellazione di informazioni dal database

– La modifica di informazioni precedentemente memorizzate nel database

• Un Data Manipulation Language (DML) è un linguaggio che permette agli utenti di


accedere e manipolare i dati

• Esistono due tipologie di DML:

– I DML procedurali

– I DML non procedurali


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Linguaggi per basi di dati – Data Manipulation Language

• I DML non procedurali sono generalmente più facili da imparare e da utilizzare


rispetto a quelli procedurali

• Essi possono generare codice che non è così efficiente come quello prodotto dai
linguaggi procedurali

• Una query è un’istruzione che richiede l’estrazione di informazioni

• La porzione di un DML che si occupa dell’estrazione delle informazioni viene


denominata Query Language

• 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

• La seguente figura illustra, in maniera semplificata, come interagiscono i linguaggi e i


vari componenti di un DBMS
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

• Il Query Language Processor riceve i programmi di manipolazione dei dati da due


fonti

• La prima fonte è costituita dalle istruzioni dell’utente immesse direttamente dal


terminale

• La seconda fonte è data dai programmi applicativi nei quali le istruzioni di


interrogazione e di manipolazione dei dati vengono inserire in un linguaggio host e
sottoposte al pre-processore per essere successivamente eseguite

• Le parti di un programma applicativo scritte in un linguaggio host vengono gestite dal


compilatore di tale linguaggio

• Le parti di un programma applicativo costituite da istruzioni del linguaggio di


manipolazione dei dati vengono gestire dal Query Language Processor
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Architettura di un DBMS

• 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

• Il Database Manager gestisce la Tabella delle Autorizzazioni e la Tabella per il


Controllo della Concorrenza

• La Tabella delle Autorizzazioni permette al Database Manager di controllare che


l’utente abbia il permesso di eseguire l’interrogazione proposta o di modificare il
database
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Architettura di un DBMS

• La Tabella per il Controllo della Concorrenza consente di gestire l’accesso


contemporaneo agli stessi dati da parte di più programmi di interrogazione e
manipolazione

• Il Database Manager traduce i programmi sottomessi dal Query Language Processor


in operazioni sui file che vengono gestite dal File Manager

• Questo può essere un file system “general purpose” dotato di tutte le operatività del
sistema oppure un sistema specializzato

• Esempio: un File Manager specializzato può provare a porre in un unico cilindro di un


disco quelle parti di un file a cui è possibile si acceda come ad un’unica entità

• Esempio: un File Manager che ottimizza la gestione della concorrenza


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Il ciclo di vita dei sistemi informativi

• La progettazione di una base di dati va inquadrata in un contesto più ampio del ciclo
di vita dei sistemi informativi

• Tale ciclo comprende, generalmente, le seguenti attività:

– Studio di fattibilità

– Raccolta e analisi dei requisiti

• Tale fase richiede un’interazione con gli utenti del sistema e produce una descrizione completa ma
informale dei dati coinvolti

– Progettazione

• Si divide generalmente in progettazione dei dati e progettazione delle applicazioni

• Le due attività sono complementari e possono procedere in parallelo o in cascata

• 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

• Il processo descritto precedentemente non è quasi mai strettamente sequenziale

• Oggi viene spesso effettuata anche la prototipizzazione

• 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

• In questo corso focalizzeremo l’attenzione sulla fase di progettazione e daremo solo


uno sguardo alla fase di implementazione
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo

• Nell’ambito delle basi di dati si è consolidata negli anni una metodologia di


progettazione oramai da tutti accettata come standard

• Tale metodologia è illustrata nella figura seguente:


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo

• Essa si distingue tra progettazione dei dati e progettazione delle applicazioni

• La progettazione di ciascuno di questi componenti si articola, a sua volta, in varie


sottofasi

• La progettazione dei dati si suddivide in progettazione concettuale, progettazione


logica e progettazione fisica

• La progettazione delle applicazioni si suddivide in definizione dell’architettura del


sistema, definizione dei mock-up e definizione dei casi d’uso e loro eventuale
formalizzazione

• Le due componenti interagiscono continuamente tra di loro


Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione dei dati
• La progettazione dei dati consiste nelle seguenti quattro fasi:

– 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

• Il prodotto di questa fase viene denominato schema concettuale e fa riferimento a un modello


concettuale dei 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)

• In informatica l'Object-Relational Mapping (ORM) è una tecnica di programmazione che favorisce


l'integrazione di sistemi software aderenti al paradigma della programmazione orientata agli oggetti
con sistemi RDBMS.

• 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.

• Ci sono vari vantaggi nell'uso di un tale sistema sono i seguenti.

• 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.

• Realizzazione dell'architettura di un sistema software mediante approccio stratificato, tendendo


pertanto ad isolare in un solo livello la logica di persistenza dei dati, a vantaggio della modularità
complessiva del sistema.

• 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:

– Definizione dell’architettura del sistema

• 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

• Un wireframe relativo ad un profilo utente


viene mostrato nella figura seguente
Introduzione ai DBMS e alla realizzazione di un
Sistema Informativo
Metodologia di progettazione di un sistema informativo –
Progettazione delle applicazioni
– Definizione dei casi d’uso e loro eventuale formalizzazione

• Un caso d’uso rappresenta una funzionalità fornita del sistema

• 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:

Potrebbero piacerti anche