Estratto del documento

Introduzione alle basi di dati

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 una1 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 a 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 stati 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 anni 60 presso la General Electric da Charles Bachman che introdusse il modello reticolare 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 ancora utilizzato, che si basava invece su un modello di rappresentazione dei dati di tipo gerarchico.

Nel 1970, presso i laboratori di ricerca dell'IBM di San Jose, Edgar Codd sviluppò un nuovo modello di rappresentare i dati: il modello 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 intuitivo da essere compreso anche dai non addetti ai lavori.

Per tal motivo il modello proposto da Codd si affermò sia in ambito accademico che commerciale: il modello relazionale divenne così uno standard di fatto per la rappresentazione e la manipolazione di enormi quantità di informazioni.

Nel 1980 quando il modello relazionale aveva ormai assunto una posizione di egemonia venne introdotto il linguaggio SQL Query Language (Structured Language) che si affermò in breve tempo come lo strumento principale per la definizione, la manipolazione e l'interrogazione di Basi di Dati relazionali.

Attualmente le Basi di Dati relazionali ed il linguaggio SQL sono gli 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 carattere multimediale (Basi di Dati Multimediali): le Basi di Dati Multimediali hanno tratto un significativo 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.

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 costituiscano un punto di forza dell'approccio proposto da questo modello di organizzazione dell'informazione.

Definizione di Base di Dati e di DBMS

Una Base di Dati è una collezione di dati correlati. Con il termine dati si fa riferimento a qualunque tipo di informazione che possa essere memorizzata 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 attribuiscono proprietà aggiuntive2. Una Base di Dati ha le seguenti proprietà:

  • 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 applicazioni in gioco.

Detto questo una Base di Dati può essere composta soltanto da pochi elementi, quale può 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.

Le Basi di Dati sono rese accessibili attraverso i sistemi opportuni. Un Sistema di Gestione delle Basi di Dati (DBMS – Database Management System) è un insieme di programmi che permettono agli utenti di creare e mantenere una Base di Dati.

Un DBMS è perciò un sistema software con scopi generali 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:

  • L'amministratore della Base di Dati: 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;
  • I progettisti della Base di Dati: sono coloro che si occupano di definire le 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;
  • Gli utenti della Base di Dati: 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;
  • Gli analisti di sistema e programmatori di applicazioni: sono coloro che rispettivamente determinano le esigenze degli utenti finali, sviluppano le specifiche per le operazioni che verranno più frequentemente svolte sulla Base di Dati e implementano i programmi che effettuano queste operazioni3.

Figura 1: Architettura di un Sistema di Basi di Dati

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.

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.

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, né 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.

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: un voto è associato ad un particolare studente ed un 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

Anteprima
Vedrai una selezione di 11 pagine su 48
Basi di dati - Riassunto esame, prof. Coccoli Pag. 1 Basi di dati - Riassunto esame, prof. Coccoli Pag. 2
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 6
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 11
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 16
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 21
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 26
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 31
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 36
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 41
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Basi di dati - Riassunto esame, prof. Coccoli Pag. 46
1 su 48
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Exxodus di informazioni apprese con la frequenza delle lezioni di Basi di dati e Sistemi Informativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Genova o del prof Coccoli Carlo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community