1. Introduzione alle Basi di Dati
1.2 Un po' di Storia...
La necessità di memorizzare e manipolare l'informazione è sempre stato un elemento di grande interesse sin dalla nascita
dell'Information Technology (IT) stessa. Per tal motivo le Basi di Dati, che sono sistemi atti a manipolare grandi quantità di
dati, hanno sempre occupato un ruolo primario nel campo dell'IT. Il modo di concepire, progettare ed implementare una
1
Base di Dati si è evoluto nel tempo assecondando le esigenze di questo settore. Si è passati perciò da applicazioni realizzate
ed implementate per modellare uno specifico scenario fino a grandi Basi di Dati integrate in Internet, eventualmente
distribuite ed accessibili ovunque con differenti tecnologie. Il percorso evolutivo sopra descritto è maturato nell'arco di
mezzo secolo partendo dagli anni cinquanta fino ad arrivare ai giorni d'oggi.
Attualmente le Basi di Dati maggiormente utilizzate sono le Basi di Dati Relazionali.
Lentamente, si stanno affermando le Basi di Dati ad Oggetti che spesso sono realizzate come estensioni delle prime e
quindi più propriamente dette Basi di Dati Relazionali ad Oggetti. Sebbene non siano ancora stati introdotti i concetti di
Basi di Dati Relazionali e di Basi di Dati ad Oggetti si può comunque intuire come questa lenta transizione sia dettata da
un cambio delle esigenze del contesto in cui le Basi di Dati sono inserite: la realtà dell'IT. Questa è una costante che ha
sempre influenzato la modellazione delle Basi di Dati: essendo queste orientate manipolare informazioni che spesso hanno
forte legame con scenari reali sono sempre state influenzate dalle esigenze di questi. Uno dei motivi di questa dipendenza è
dato dal voler rendere la modellazione e la trattazione dei dati il più conforme possibile a quanto avvenga nella realtà. Sono
stati perciò proposti diversi modelli che si sono seguiti nel tempo ed hanno affrontato il problema della rappresentazione
dell'informazione e della sua manipolazione da diverse prospettive.
Argomento del corso di Basi di Dati, e quindi di queste dispense, sono principalmente le Basi di Dati Relazionali
anche se nella storia si sono state proposti diversi modelli. Il resto del paragrafo propone una breve carrellata delle
diverse soluzioni che sono state proposte nel corso del tempo. Le prime realizzazioni di sistemi assimilabili alle Basi di Dati
risalgono ai primi anni cinquanta. Non vi era allora un concetto di Base di Dati vero e proprio ma venivano sviluppate
soluzioni specifiche per particolari domini applicativi; non era perciò possibile utilizzare un'applicazione precedentemente
sviluppata per gestire le informazioni in un altro contesto. La prima Base di Dati general purpose fu realizzata nei primi
modello reticolare
anni 60 presso la General Electric da Charles Bachman che introdusse il e fu un punto di riferimento
tutto il decennio. Verso la fine degli anni 60 l'IBM sviluppò il sistema IMS (Information Management System), attualmente
tipo gerarchico.
ancora utilizzato, che si basava invece su un modello di rappresentazione dei dati di Nel 1970, presso i
il modello
laboratori di ricerca dell'IBM di San Jose, Edgar Codd sviluppò un nuovo modello di rappresentare i dati:
entità relazione.
– L'introduzione del modello relazionale costituì un enorme cambiamento nell'ambito dello sviluppo dei
sistemi per la gestione delle Basi di Dati: il modello relazionale era infatti supportato da una solida infrastruttura teorica
ma allo stesso tempo abbastanza semplice ed intuivo da essere compreso anche dai non addetti ai lavori. Per tal motivo il
il modello relazionale divenne così uno
modello proposto da Codd si affermò sia in ambito accademico che commerciale:
standard di fatto per la rappresentazione e la manipolazione di enormi quantità di informazioni. Nel 1980 quando il
linguaggio SQL Query
modello relazionale aveva ormai assunto una posizione di egemonia venne introdotto il (Structured
Language) che si affermò in breve tempo come lo strumento principale per la definizione, la manipolazione e
Attualmente le Basi di Dati relazionali ed il linguaggio SQL sono gli
l'interrogazione di Badi di Dati relazionali.
strumenti maggiormente utilizzati per la gestione di Basi di Dati. Nei tardi anni 80 e negli anni 90 vennero fatti
ulteriori progressi nel campo dei Sistemi di Basi di Dati volti sostanzialmente a fornire estensioni degli strumenti
precedentemente affermatisi. In particolare venne teorizzato il concetto di Base di Dati ad Oggetti che ha arricchito il
modello relazionale, e di conseguenza il linguaggio SQL, con il concetto di oggetto. L'integrazione del modello relazionale
con il modello ad oggetti ha permesso di estendere ulteriormente il dominio applicativo delle Basi di Dati: con l'avvento e la
diffusione su larga scala di Internet sono ormai prassi comune, nonché fonte di guadagni notevoli, enormi Basi di Dati
accessibili via web e distribuite in rete. Tra queste ve ne sono alcune che sono specializzate nella gestione di informazioni
di Dati Multimediali): le Basi di Dati Multimediali hanno tratto un significativo
di carattere multimediale (Basi
vantaggio dall'integrazione del modello relazionale con quello ad oggetti ed hanno permesso la realizzazione di
grandi biblioteche digitali (e multimediali) fruibili dalla comunità in rete.
La pubblicazione di informazioni in rete diventa sempre più massiva e per tal motivo le Basi di Dati continuano ad
assumere un ruolo sempre più importante. Dal punto di vista commerciale i sistemi di Basi di Dati rappresentano uno dei
più estesi e solidi segmenti di mercato in quanto costituiscono un requisito ormai irrinunciabile per qualunque tipo di
sistema che gestisca almeno un medio volume di informazioni.
1.3 Concetti Generali
In questo paragrafo verranno introdotti i concetti generali associati ad una Base di Dati ed ai sistemi di Basi di Dati in
genere. Verranno definite più nel dettaglio quali sono le caratteristiche che ogni Base di Dati possiede e come tali
caratteristiche vengano costituiscano un punto di forza dell'approccio proposto da questo modello di organizzazione
dell'informazione.
1.3.1 Definizione di Base di Dati e di DBMS
Base di Dati dati
Una è una collezione di dati correlati. Con il termine si fa riferimento a qualunque tipo di informazione
che possa essere memorizzato ed abbia un significato implicito. Esempi di dati possono perciò essere: nomi, numeri di
telefono, indirizzi, ma anche la media voti, l'insieme dei corsi frequentati etc. La definizione precedentemente data è di fatto
piuttosto generale, anche se fornisce in maniera immediata quale sia la caratteristica principale di una Base di Dati. In
realtà l'espressione Base di Dati assume un significato più restrittivo in quanto per essere considerata tale le si
proprietà:
attribuiscono proprietà aggiuntive . Una Base di Dati ha le seguenti
2
1 Il termine implementare è stato mutuato dal mondo dell'informatica e fa riferimento all'atto di realizzare, costruire un programma, un'applicazione od un sistema software che risolva
un determinato problema o modelli un particolare dominio. L'implementazione è una fase del processo di produzione del software che sempre segue la progettazione: durante la
progettazione viene realizzata una specifica del software e l'implementazione traduce questa specifica in un oggetto concreto che è il sistema software realizzato.
2 La semplice definizione di Base di Dati come collezione di dati correlati potrebbe infatti condurre a definire Base di Dati quasi qualunque cosa, ad esempio queste stesse dispense:
in tal caso le parole che formano il testo di queste dispense costituirebbero la collezione dei dati che sono ovviamente correlati.
1
rappresenta un certo aspetto del mondo reale (dominio od universo del discorso): i cambiamenti in tale dominio si
riflettono sulla Base di Dati;
è una collezione di dati logicamente coerenti con un significato intrinseco: questo significa che un assortimento
casuale di dati non può essere considerato una Base di Dati;
è progettata, costruita e popolata con dati per uno scopo specifico: una Base di Dati è sempre associata ad un
determinato gruppo ed alcune applicazioni a cui questi sono interessati.
In altre parole una Base di Dati presenta una sorgente da cui derivano i dati, un certo grado di interazione con gli
eventi del mondo reale, ed un pubblico che è attivamente interessato al suo contenuto.
La definizione precedentemente restringe perciò l'insieme delle collezioni di dati che possono essere considerati Basi di
Dati. Esempi più significativi sono perciò: l'insieme delle informazioni che sono gestite dall'anagrafe comunale per tenere
traccia degli abitanti, l'insieme dei dati associati ad ogni contribuente per il pagamento delle tasse, oppure l'insieme delle
schede che catalogano i libri di una biblioteca. Osserviamo che in tal caso non è il volume dei dati che caratterizza l'essere
o meno una Base di Dati ma il fatto che sussistano le proprietà precedentemente elencate: in tutti gli esempi è infatti
possibile individuare il dominio del discorso, la coerenza logica delle informazioni in esame, e l'insieme di utenti ed
Detto questo una Base di Dati può essere composta soltanto da pochi elementi (quale può
applicazioni in gioco.
essere la propria collezione di CD e DVD) o da milioni di elementi (quali possono essere le informazioni storiche
sull'andamento del meteo in una regione). Sistema di Gestione delle Basi di Dati (DBMS –
Le Basi di Dati sono rese accessibili attraverso i sistemi opportuni. Un
Database Management System) è un insieme di programmi che permettono agli utenti di creare e mantenere una Base di
sistema software con scopi generali
Dati. Un DBMS è perciò un che permette di definire, costruire, manipolare e
condividere Basi di Dati per varie applicazioni. Vediamo ora più nel dettaglio quale sia il significato di queste attività:
Definire una Base di Dati implica specificare i tipi di dati che questa ospiterà al suo interno le loro strutture ed i
vincoli a cui devono sottostare.
Costruire una Base di Dati significa immagazzinare i dati stessi in un supporto di memorizzazione controllato dal
DBMS.
Manipolare una Base di Dati vuol dire effettuare delle ricerche sulla collezione dei dati per estrarne delle
informazioni e dei prospetti (report), aggiornare la Base di Dati per renderla coerente con il dominio a cui è
associata ed eventualmente cambiarne la struttura quando il dominio muta.
Condividere una Base di Dati significa consentire a più utenti e programmi di accedere contemporaneamente ad
essa.
La figura 1 fornisce uno schema di massima di come sia organizzato un sistema di gestione per di Basi di Dati o più
semplicemente DBMS.
In un sistema come quello descritto in figura vi sono diverse figure professionali che giocano un ruolo importante:
della Base di Dati:
l'amministratore l'amministratore è la figura che gestisce e mantiene la Base di Dati e si
occupa del corretto funzionamento del DBMS. Il DBA (Database Administrator) è il garante del funzionamento
della Base di Dati e quindi deve rispondere delle violazioni di sicurezza e di eventuali rendimenti scadenti del
sistema. Nel caso di Basi di Dati di grandi dimensioni il DBA è supportato da uno staff di persone;
progettisti della Base di Dati:
i sono coloro che si occupano di definire la strutture adeguate per rappresentare i
dati e di individuare i dati stessi da memorizzare. I progettisti delle Basi di Dati interagiscono con tutti i potenziali
utenti del sistema per individuare e quindi definire in maniera precisa il dominio del discorso associato alla Base
di Dati;
utenti della Base di Dati:
gli questi sono quelle persone le cui attività lavorative richiedono l'accesso alla Base di
Dati per interrogazioni, aggiornamenti e generazioni di prospetti. Di fatto, la Base di Dati è stata realizzata per
loro;
analisti di sistema programmatori di applicazioni:
gli e sono coloro che Facoltà di Scienze della
rispettivamente determinano le esigenze degli utenti finali, sviluppano le specifiche per le operazioni che verranno
3
i .
più frequentemente svolte sulla Base di Dati e implementano i programmi che effettuano queste operazion
Figura 1: Architettura di un Sistema di Basi di Dati
3 Questa ultima classe di utenti non deve essere confusa con i progettisti delle Basi di Dati. I primi infatti determinano la struttura ed il dominio associato alla Base di Dati, i secondi
intervengono in un momento successivo per fornire degli strumenti di alto livello agli utenti finali e rendere più efficiente l'interazione con la Base di Dati
2
Esiste una classe di applicazioni per la gestione delle Basi di Dati che in realtà non presenta tutte le caratteristiche
elencate. Tali applicazioni sono normalmente orientate alla gestione delle Basi di Dati ad uso personale. Le Basi di Dati ad
uso personale rappresentano un caso particolare delle Basi di Dati in quanto l'insieme degli utenti interessati ai dati è
normalmente molto ridotto e nella maggior parte composto da una sola persona: le figure professionali precedentemente
elencate sono di fatto coperte da un unico individuo che l'utente finale della Base di Dati. Tali Basi di Dati spesso
immagazzinano un numero di dati relativamente ridotto e costituiscono un esempio su piccola scala di quello che sono le
Basi di Dati in generale. Le applicazioni che gestiscono le Basi di Dati ad uso personale, di cui alcuni esempi sono
OpenOffice.org Base e Microsoft Access, hanno un insieme di funzionalità ridotte rispetto ai DBMS ad esempio non sono
pensati per gestire l'accesso concorrente di più utenti, non devono sottostare a determinati requisiti di performance, ne
presentano strumenti sofisticati per l'analisi dei dati. Tali applicazioni sono maggiormente orientate ad offrire uno
strumento semplice per la gestione di piccole Basi di Dati per persone non esperte. Nonostante ciò sono un ottimo esempio
di Base di Dati e verranno utilizzate nell'ambito di questo corso come strumento per la progettazione e l'utilizzo della Base
di Dati di esempio.
1.3.2 Un Esempio
È possibile ora fornire un primo esempio più significativo di una Base di Dati. L'esempio qui riportato è adatto sia per
modellare una Base di Dati sofisticata sia una Base di Dati ad uso personale. In tal caso si sceglierà un livello di dettaglio
inferiore e si trascureranno tutti quegli aspetti associati alla gestione dell'insieme di utenti associati alla Base di Dati, ai
requisiti di performance ed all'accesso concorrente. L'esempio presentato sarà inoltre l'esempio guida che verrà utilizzato
per illustrare i diversi concetti associati alle Basi di Dati.
Consideriamo un esempio a noi familiare cercando di modellare uno scenario reale con cui abbiamo a che fare
quotidianamente: vogliamo costruire una Base di Dati in grado di modellare con buona approssimazione l'attività di una
Facoltà Universitaria. L'attività è determinata da coloro che la frequentano ovvero gli studenti, i professori, i dottorandi, i
ricercatori, ed il personale amministrativo. Una facoltà è costituita da più dipartimenti ai quali appartengono i professori, i
ricercatori ed il personale amministrativo ed ogni dipartimento ha un direttore. I professori tengono dei corsi che sono
frequentati dagli studenti. Gli studenti hanno un piano di studi che individua i corsi che devono frequentare ed hanno una
media voti. Il personale accademico della facoltà oltre ad insegnare porta avanti dei progetti di ricerca, un progetto
normalmente prevede un responsabile ed ha un dipartimento di riferimento.
La caratterizzazione di una facoltà universitaria effettuata con la precedente descrizione ci permette di individuare a grandi
linee quali siano i dati e le informazioni di interesse per rappresentare tale realtà con una Base di Dati. In un primo
momento si potrebbe pensare di organizzare questo insieme di informazioni in un insieme di file che contengono tali dati.
Con riferimento alle sole informazioni riguardanti lo studente potremmo definire i seguenti file:
il file degli studenti: questo memorizza l'elenco degli studenti con i dati anagrafici di interesse per l'università;
il file degli insegnamenti: questo mantiene l'elenco degli insegnamenti disponibili in una facoltà e le informazioni
che li qualificano;
il file dei moduli: un modulo identifica un particolare insegnamento tenuto da un particolare docente in un
determinato anno e semestre. Il file dei moduli mantiene l'elenco dei moduli;
il file delle votazioni: una voto è associato ad un particolare studente ed u determinato modulo. Il file delle
votazioni mantiene l'elenco di tutte le votazioni di tutti i moduli e di tutti gli studenti;
il file dei docenti: mantiene l'elenco dei docenti che lavorano in una facoltà con il dipartimento di appartenenza;
il file dei dipartimenti: il file mantiene l'elenco dei dipartimenti registrando per ognuno alcune informazioni di
carattere burocratico ed ad esempio il direttore.
I file precedentemente introdotti saranno organizzati con una struttura a record: informalmente possiamo pensare ad una
struttura tabellare in cui ogni riga rappresenta appunto le informazioni associate ad un record. I record presenti in un file
hanno tutti gli stessi attributi (le colonne della tabella) in quanto modellano sempre la stessa entità. Ad esempio il file degli
studenti conterrà un record per ogni studente e per ogni studente ci interesserà memorizzare gli stessi attributi (matricola,
nome, cognome...). La figura 7 illustra una possibile organizzazione dei file sopra elencati.
Possiamo in questo caso riscontrare le differenti proprietà che caratterizzano una base di dati. In questo caso il dominio
del discorso scelto è quello della facoltà universitaria con tutto ciò che ne consegue: al mutare delle entità d
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Basi di dati
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3)…
-
Domande + Risposte Esame Basi di dati
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 2)…