Sei sulla pagina 1di 23

05/04/2011

LE BASI DI DATI

Introduzione alle Basi di Dati


In ogni modello di organizzazione della vita delluomo, dal pi complesso al pi semplice, vengono trattate informazioni che sono risorse preziosissime, grazie alle quali la stessa organizzazione pu sopravvivere. Una volta individuate e raccolte, tali informazioni devono essere necessariamente memorizzate in modo che si possa facilmente:
recuperarle in base a determinati criteri di ricerca aggiungerne di nuove modificarle apportando nel tempo variazioni cancellare quelle non pi necessarie.
2

05/04/2011

Introduzione alle Basi di Dati


La necessit di raccogliere informazioni per utilizzi successivi era gi sentita molto prima dellavvento dei sistemi di elaborazione (anagrafe comunale, contabilit di unazienda, sistema di prenotazione aereo o ferroviario), ma solo linformatica ha permesso di realizzare gli strumenti idonei alla loro gestione.

Necessit delle Basi di Dati


Quando i programmi applicativi, usavano i file come venivano forniti dal sistema operativo (file system) i principali problemi erano causati dalla condivisione dei file stessi. Inoltre quando gli stessi archivi vengono utilizzati da pi programmi, si possono verificare molti problemi:
Inconsistenza e ridondanza dei dati: ciascun programmatore definisce autonomamente i file di cui ha bisogno e si crea una fonte potenziale di ridondanza (perch la stessa informazione appartiene a vari archivi) e di inconsistenza (perch il contenuto dei vari archivi pu essere diverso). Es: Si consideri unapplicazione bancaria; supponiamo che lindirizzo di un correntista sia contenuto sia sul file relativo ai conti correnti, sia sul file relativo ai depositi bancari. Questa duplicazione fonte di potenziale inconsistenza se, per esempio, la variazione di indirizzo viene registrata su uno dei due file, ma non sullaltro. In ogni caso, la duplicazione 4 dellinformazione provoca uno spreco di memoria.

05/04/2011

Necessit delle Basi di Dati


Riservatezza dei dati: Nel file system di un sistema operativo vi sono meccanismi di controllo dellaccesso ai file, ma questi non sono in genere molto robusti o sofisticati; essi considerano lintero archivio come un unico oggetto, mentre in unapplicazione spesso necessario proteggere ciascun campo o record in modo differenziato. Es: Si consideri sempre unapplicazione bancaria; chiaro che solo alcuni programmi autorizzati potranno operare sul valore dei conti correnti. Fra le situazioni da evitare, vi per esempio la possibilit che un cliente, di fronte a uno sportello automatico, possa attivare un programma che preleva denaro da un conto bancario non suo.
5

Necessit delle Basi di Dati


Integrit dei dati: Lintegrit di un insieme di dati pu essere specificata tramite un opportuno insieme di regole, dette vincoli di consistenza o vincoli di integrit. In un sistema con archivi separati, la consistenza dei dati viene gestita dai programmi applicativi e ci pu essere molto pericoloso perch ciascuno di essi soggetto ad errori. Es: Per esempio un assegno non pu essere pagato se il suo incasso rende negativo lammontare del conto corrente, la data di nascita del correntista deve essere tale da rendere il titolare del conto corrente maggiorenne.

05/04/2011

Necessit delle Basi di Dati


Concorrenza: I file system offrono meccanismi di protezione basilari, che allocano lintero file a un programma per la scrittura e per la lettura, ma tali meccanismi possono ridurre troppo sensibilmente le prestazioni. Es: Consideriamo ancora larchivio dei conti correnti. In uno stesso istante possono essere attivi vari programmi che operano su di esso e accedono ai suoi dati. In particolare, possibile che due programmi cerchino di operare sullo stesso conto corrente; in particolare i programmi devono essere protetti uno dallaltro.
7

Introduzione alle Basi di Dati

(b)

Confronto fra la gestione di archivi separati (a) e di una base di dati (b).

05/04/2011

Teoria delle Basi di dati


In campo informatico, la Teoria delle Basi di Dati studia come organizzare al meglio grandi quantit di informazioni, per poterle gestire in modo:
semplice, in quanto devono poter essere facilmente fruibili in applicazioni differenti e da parte di differenti utenti; efficiente, perch lutilizzo delle risorse deve essere ottimizzato:
in tempo (efficiente utilizzo del microprocessore); in spazio (efficiente utilizzo della memoria);

efficace, nel senso che le informazioni devono essere rappresentative della realt che si vuole analizzare (ad es: unet non pu essere negativa); sicuro, in quanto le operazioni sui dati sono permesse solo a soggetti identificabili e autorizzati.
9

1 Def. di Base di Dati


Una

base di dati (in inglese, DATABASE) pu essere considerata come una raccolta di dati logicamente correlati progettati per essere utilizzati in maniera ottimizzata da differenti applicazioni e utenti diversi

Una base di dati deve essere:

Sicura, ossia deve essere progettata in modo da impedire che venga danneggiata da eventi accidentali (malfunzionamenti hardware e software) o interventi non autorizzati; Integra, ossia deve essere garantito che le operazioni effettuate da utenti autorizzati non provochino una perdita di consistenza dei dati; Consistente, ossia i dati in essa contenuti devono essere significativi ed effettivamente utilizzabili nelle applicazioni della azienda per cui stata progettata; Condivisibile, cio applicazioni e utenti diversi devono poter accedere, secondo opportune modalit ai dati comuni; Persistente/permanente cio deve avere un tempo di vita che non limitato a quello delle singole esecuzioni dei programmi che la utilizzano.
10

05/04/2011

2 Def. di Base di Dati


Una BASE DI DATI (Data Base o DB) un insieme di dati strutturati e permanenti, raggruppati in insiemi omogenei, in relazione fra loro, organizzati con la minima ridondanza, per essere usati da applicazioni diverse, in modo controllato. I dati sono memorizzati in modo da essere indipendenti dai programmi applicativi che li usano (Albano Orsini, 1985).

11

2 Def. di Base di Dati


Strutturati: hanno un formato predefinito detto tipo. I dati di uno stesso tipo si raggruppano in tabelle. Permanenti: memorizzati su memorie di massa: HD, CD, DVD. Minima ridondanza: i dati sono utilizzabili per scopi diversi e aggregati in modo diverso per evitare di memorizzare lo stesso dato pi di una volta. Condivisi da utenti e programmi diversi: viene gestita la concorrenza sui dati La privatezza dei dati e la sicurezza: i dati sono protetti da utenti non autorizzati
12

05/04/2011

Esempio
In una scuola si memorizzano le informazioni sugli studenti:
Nel file STUDENTI si memorizzano codice_studente COGNOME, INDIRIZZO, SEZIONE, ANNO ed gestito dalla segreteria ( dati omogenei) Nel file RISULTATI si memorizzano codice_studente, MATERIA E DATA gestito dai docenti per registrare i risultati negativi delle verifiche. ( dati omogenei)
13

Esempio
Se si devono elencare tutti gli studenti della 3A che hanno fallito la verifica
In ambiente database, essendo condivisi tutti i dati, basta accedere a RISULTATI e tramite il codice dellalunno risalire al nome, cognome, risalire alla sezione e allanno.

14

05/04/2011

Sistema informativo e sistema informatico


Le informazioni necessarie a unorganizzazione sono gestite da un sistema informativo.
Un sistema informativo un insieme organizzato di strumenti automatici, procedure manuali, norme organizzative, risorse umane e materiali, orientato alla gestione delle informazioni rilevanti per unorganizzazione, gestione intesa come raccolta, archiviazione, elaborazione e scambio di informazioni necessarie alle attivit operative, di gestione, di preparazione, controllo e valutazione dellorganizzazione. Un sistema informativo un sistema, cio un insieme organizzato di risorse (materiali e umane) e procedure aziendali di natura diversa che interagiscono tra loro, finalizzato alla produzione di informazioni, da cui il termine informativo.

15

Esempio di Sistema Informativo


Es: Compagnia di trasporti aerei
Il sistema informativo della compagnia deve essere in grado di fornire ai clienti un efficiente sistema di prenotazione dei posti sui voli, gestire il personale di terra e il personale di volo, gestire la manutenzione degli aerei, la contabilit, il magazzino dei pezzi di ricambio, il rifornimento degli aerei.. Ovviamente il flusso di informazioni da gestire (e memorizzare) enorme e dalla sua gestione dipendono lefficienza e la qualit del servizio offerto dalla compagnia.
16

05/04/2011

Sistema Informatico
linsieme degli strumenti informatici utilizzati per il trattamento automatico delle informazioni, rappresentate mediante dati digitali, al fine di agevolare le funzioni del suo sistema informativo.

Un sistema informatico un sistema informativo (o una parte di esso) che stato automatizzato.

17

Esempio di Sistema Informatico


Se consideriamo la compagnia aerea, il sistema informatico costituito dagli archivi elettronici in cui sono memorizzati i dati di interesse relativi ai clienti, agli aerei, al personale, dalle componenti fisiche che costituiscono il supporto di memorizzazione, dalle procedure di interrogazione per la ricerca delle informazioni, dalle reti di comunicazione tra i terminali degli operatori e cos via.
AMBIENTE ESTERNO

ORGANIZZAZIONE

Sistema Decisionale
INFORMAZIONI

DATI ESTERNI

Sistema Informativo Sistema informativo


Sistema Informatico

D E C I S I O N I
BENI O SERVIZII

RISORSE

Sistema Produttivo

18

05/04/2011

Dato e Informazione
Il termine dato (dal latino datum, plurale data) significa letteralmente fatto. Lo scopo dei dati quello di codificare in vari modi i fatti (anche ipotetici) ritenuti importanti nellambito di una organizzazione. I dati sono una codifica, una rappresentazione, dei fatti presenti in unorganizzazione. Un dato costituisce uninformazione per qualcuno se fornisce una nuova conoscenza. Per dato dunque si intende un fatto raccolto tramite osservazioni e/o misurazioni mentre per informazione si intende linterpretazione e/o il collegamento tra i dati che permette di prendere decisioni. In ambito informatico informazione linsieme di uno o pi dati memorizzati, classificati e messi in relazione o interpretati nellambito di un contesto in modo da avere un significato. Linformazione , infatti, lincremento di conoscenza che pu essere acquisita dai dati.
19

Es: Dato e informazione


I dati della figura seguente non forniscono alcuna informazione utile finch non si definisce cosa ciascun dato rappresenta e le eventuali relazioni esistenti tra i dati stessi.
45 Art01 12

Art56

Art03 23

Il dato 23, senza chiave di interpretazione che gli dia un significato, non costituisce informazione per nessuno. Lo stesso dato 23, con la chiave di interpretazione Articoli di magazzino assume il significato di quantit disponibile per un determinato articolo.
20

10

05/04/2011

Es: Dato e informazione


Possiamo dare un significato al precedente insieme con la seguente forma tabellare Chiameremo schema o intensione la chiave di interpretazione dei dati, ovvero il significato che si attribuisce al dato per ricavare linformazione.
Articoli in magazzino Codice articolo Art01 Art02 Art03 Quantit 23 12 45

Chiameremo invece istanza di uno schema o estensione linsieme dei valori assumi da uno schema in un certo istante di tempo.

Art01 Art02 Art03

23 12 45

21

Significato intensionale ed estensionale dei dati


Quando parliamo di
significato intensionale dei dati (o schema) ci riferiamo al contenuto informativo dei dati; Significato estensionale (o istanza) ci riferiamo ai valori che pu assumere uno schema in un certo istante. NB: lo schema non varia nel tempo, mentre listanza di uno schema varia nel tempo poich possono essere eseguite modifiche, inserimenti, cancellazioni.
Schema(o contesto semantico): Istanza: Codice articolo Art01 Art02 Art03 Quantit 23 12 45

Il significato intensionale del dato 23: quantit in magazzino dellarticolo Art01

22

11

05/04/2011

Modello di dati
La pi diffusa classificazione delle basi di dati si basa sul modello di dati che essa supporta. Un modello di dati un insieme di concetti e di costrutti utilizzati per organizzare i dati di interesse e descriverne la struttura e la dinamica (associazioni e vincoli che devono rispettare).

23

Modello di dati
Nella teoria delle basi di dati, i modelli si distinguono in :
modelli concettuali, che permettono di rappresentare i concetti (dati) in modo indipendente da ogni sistema, cercando di descrivere i concetti del mondo reale. Come tali, mettono in evidenza i concetti presenti in una base di dati, piuttosto che la struttura con cui tali concetti possono essere rappresentati nella memoria del calcolatore. Sono modelli utilizzati nella fase preliminare di progettazione. Il pi noto il modello ER (Entity-Relationship) modelli logici, che consentono una specifica rappresentazione dei dati. Sono detti logici per sottolineare il fatto che le strutture utilizzate da questi modelli, pur essendo astratte, riflettono una particolare organizzazione (tabelle, alberi, grafi, oggetti)
24

12

05/04/2011

Modello Gerarchico
Ha caratterizzato i primi DBMS sviluppati verso la met degli anni Sessanta. I dati sono organizzati in record connessi tra loro secondo strutture ad albero. Ogni record del database deve avere un unico padre. La manutenzione di un database gerarchico piuttosto complessa poich la cancellazione di un record comporta leliminazione di tutti i record dipendenti da esso. Inoltre il modello gerarchico comporta la dipendenza dei programmi dalle strutture, quindi non possiamo modificare le strutture senza modificare i programmi.

25

Modello Reticolare
Nasce nel 1973-1978. basato sulle strutture dati a reticolo: basato sul modello gerarchico, ma lo generalizza superando la rigidit della struttura ad albero. Non si escludono tuttavia problemi relativi alla dipendenza dei programmi dalle strutture e soprattutto alla complessit delle strutture stesse che aumentano in proporzione alla crescita dei dati. Per modificare un database con questa struttura, bisogna cancellare il database e ricrearlo.

26

13

05/04/2011

Modello Relazionale
Inventato da Codd nel 1970, basato sul concetto di insiemi di record (tabelle) e le relazioni tra le informazioni derivano dalla corrispondenza di alcuni campi di record appartenenti a tabelle diverse.

27

Modello di dati
Le operazioni sui database gerarchici e reticolari sono macchinose: necessario specificare i percorsi per ritrovare i singoli record coinvolti nellelaborazione. Si dice che lapproccio utilizzato nellelaborazione dei dati di tipo procedurale, ossia occorre indicare al computer come ritrovare i dati. I sistemi basati sul modello relazionale ammettono un approccio di tipo dichiarativo nellelaborazione delle informazioni: ci significa che necessario specificare cosa trovare poich del come (cio il reperimento dei percorsi) si occupa il sistema. Dal modello relazionale e dalla programmazione ad oggetti negli ultimi anni nato anche il modello a oggetti.
28

14

05/04/2011

Fasi di progettazione di una base di dati

29

Fasi di progettazione di una base di dati


1. Progettazione concettuale: il suo scopo costruire e definire una rappresentazione corretta e completa della realt di interesse. Linput di questa fase il documento delle specifiche formali (specifiche formali dei dati e delle funzioni) in cui vengono descritte le tipologie di dati e le funzioni che opereranno su di essi. Loutput di questa fase lo schema concettuale, cio una rappresentazione astratta e il pi possibile formale della realt. Riferendoci solo ai dati un esempio il diagramma ER.
30

15

05/04/2011

Fasi di progettazione di una base di dati


2. Progettazione logica: il suo scopo trasformare questa rappresentazione astratta (diagramma ER) in uno schema logico. Nel modello relazionale una descrizione relazionale, del diagramma ER, tramite tabelle. Linput di questa fase il diagramma ER della fase di progettazione concettuale. Loutput di questa fase uno schema logico riassumibile con relazioni rappresentate tramite tabelle.
31

Fasi di progettazione di una base di dati


3. Progettazione fisica: il suo scopo quello di implementare lo schema logico definendo tutti gli aspetti fisici di memorizzazione e rappresentazione in memorie di massa. Linput di questa fase sono le tabelle della fase di progettazione logica. Loutput di questa fase limplementazione in memoria di massa di tali tabelle.

32

16

05/04/2011

Prima dellintroduzione dei Database


Lorganizzazione di un archivio dipendeva in buona parte dalla tipologia dei programmi applicativi Buona parte dei dati doveva essere memorizzata pi volte (ridondanza) in diversi file, in modo da poter essere disponibile per i vari programmi Gli svantaggi della ridondanza erano:
Il costo addizionale legato alla generazione e alla memorizzazione delle copie dei singoli dati; La complessit delle operazioni necessarie per aggiornare, a ogni variazione, tutti gli archivi in cui il dato cambiato presente; Limpossibilit pratica di avere tutti gli archivi allo stesso livello di 33 aggiornamento

Prima dellintroduzione dei Database


Lultimo inconveniente porta a problemi di incongruenza dei dati: possibile che attraverso uninterrogazione si riceva una versione non aggiornata dei dati e ci comporti unerrata interpretazione degli stessi Inoltre possibile che nella stessa serie di dati ve ne siano alcuni aggiornati e alcuni no e ci renderebbe praticamente inaffidabile il risultato di ogni interrogazione (problema dellinconsistenza dei dati)
34

17

05/04/2011

Prima dellintroduzione dei Database


Altri problemi che possono sorgere sono legati alla concorrenza: in uno stesso istante possono essere attivi vari programmi che operano su uno stesso file. Se due programmi leggono lo stesso valore iniziale e lo modificano contemporaneamente, solo lultima operazione di modifica sar registrata, con il risultato che unoperazione di scrittura andr persa. Programmi ad accesso concorrente devono operare sotto vincoli di mutua esclusione.
35

DBMS
Un DBMS (Data Base Management System) un insieme di strumenti software che, sulla base delle specifiche dellutente, provvede alla generazione dello schema, alla ricerca e allaggiornamento dei dati. Nel caso specifico di database relazionali si parla di RDBMS (Relational) Un DBMS rappresenta uninterfaccia tra gli sviluppatori, gli utenti del database e il sistema di elaborazione. Il DBMS un sistema attivo, mentre la base di dati loggetto passivo su cui opera il DBMS.
36

18

05/04/2011

Funzioni del DBMS


Le funzioni cui un DBMS deve assolvere e garantire sono le seguenti:
Gestione della base di dati Persistenza e consistenza dei dati Privatezza e sicurezza dei dati Integrit dei dati Supporto alle transazioni Gestione del dizionario dei dati
37

Funzioni del DBMS


Gestione della base di dati: il database deve essere in grado di permettere operazioni di
Creazione Inserimento Aggiornamento Interrogazioni della base di dati Deve anche consentire di
interfacciare i programmi scritti con i classici linguaggi di programmazione e la base di dati attraverso le sue specifiche funzionalit Garantire un accesso ai dati attraverso interfacce semplici e intuitive al fine di venire incontro al personale non specialistico.
38

19

05/04/2011

Funzioni del DBMS


Persistenza e consistenza dei dati
Persistenza: deve essere in grado di conservare intatto il contenuto della base di dati (o almeno di permetterne la ricostruzione) in caso di malfunzionamento del sistema di elaborazione su cui in funzione. A tale scopo la quasi totalit dei DBMS sono provvisti di specifiche funzionalit di salvataggio e di ripristino dei dati (backup e restore). Consistenza: deve essere in grado di garantire la consistenza dei dati facendo fronte al pericolo di stati inconsistenti dovuti allaccesso concorrente in lettura/scrittura.

Privatezza e sicurezza dei dati


Ciascun utente, identificabile univocamente, deve essere autorizzato a svolgere solo specificate azioni sui dati, per mezzo di meccanismi di autorizzazioni , profili e password.
39

Funzioni del DBMS


Integrit dei dati:
lintegrit va intesa sostanzialmente in riferimento ai valori che i dati possono assumere e in relazione alle interdipendenze tra dati appartenenti a differenti tabelle Va anche intesa come integrit definita dallutente, cio controllo sui vincoli imposti per una specifica base di dati come conseguenza di scelte specifiche di implementazione o di norme di legge.

Supporto alle transazioni: ACID


Una transazione una sequenza di operazioni effettuate su una base di dati, che pu concludersi con un successo o un insuccesso. Nel caso di successo, le modifiche sulla base di dati devono essere rese permanenti altrimenti non deve rimanere traccia della transazione e la base di dati deve tornare nello stato precedente alla stessa. Il DBMS deve, pertanto, garantire che tutte le operazioni che compongono la transazione siano correttamente e completamente eseguite oppure che non ne sia eseguita alcuna. 40

20

05/04/2011

Architettura di un DBMS
Gli utenti di un DBMS vedono una macchina astratta che consente loro di compiere specifiche operazioni per descrivere e manipolare i dati contenuti nel database, utilizzando appositi linguaggi. Larchitettura di questa macchina virtuale e le sue relazioni con lesterno comprende tre livelli:
Livello esterno Livello concettuale o logico Livello interno o fisico
41

Architettura di un DBMS

42

21

05/04/2011

Livello esterno del DBMS


Il livello esterno il livello con cui interagiscono i singoli utenti del database, attraverso specifiche applicazioni, in quanto fornisce gli strumenti utili per modificare e vedere i dati. Come si evince dalla figura, ogni utente pu essere interessato solo ad un sottoinsieme dei dati contenuti nel database. pertanto compito dellamministratore di sistema DBA (DataBase Administrator) fornire a ciascun utente un sottoschema del database logico, ossia una vista, che contenga tutto e solo ci che lutente desidera o abilitato a usare. Questo livello mette a disposizione un apposito linguaggio detto DML (Data Manipulation Language) che consente di interrogare il database, ma anche di inserire, cancellare e modificare i dati.
43

Livello concettuale o logico


A livello concettuale o logico troviamo il database logico, costituito dalla rappresentazione astratta del database, in quanto indipendente dalla implementazione fisica e pu essere visto come la definizione dellintero schema dei dati. A questo scopo il DBMS mette a disposizione il linguaggio DDL (Data Definition Language), che viene utilizzato per descrivere le caratteristiche delle categorie di dati presenti nel database e le corrispondenze esistenti tra loro. A questo livello disponibile anche il DCL (Data Control Language) che permette operazioni relative al controllo degli accessi degli utenti.
44

22

05/04/2011

Livello interno del DBMS


A livello interno o fisico troviamo il database fisico, costituito dallimplementazione del database logico. Considera i tipi di dati, i formati, le strutture di memorizzazione e i metodi di accesso; come tale, rappresenta la forma in cui il database viene memorizzato e usato.

45

Indipendenza fisica e logica dei dati


Con lorganizzazione a tre livelli, un DBMS permette di ottenere indipendenza fisica e logica dei dati. Con indipendenza fisica si intende la possibilit di modificare lorganizzazione fisica dei dati senza conseguentemente modificare lorganizzazione logica e i programmi applicativi che agiscono sul database. Per indipendenza logica, invece, si intende la possibilit di modificare lo schema logico del database senza dover modificare i programmi applicativi non interessati alla modifica.
46

23