Informatica Introduzione alle basi di dati · –Azienda privata, pubblica, info private (PIM),...
Transcript of Informatica Introduzione alle basi di dati · –Azienda privata, pubblica, info private (PIM),...
Informatica Introduzione alle basi di dati
Prof. Giovanni Giuffrida
e-mail: [email protected]
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 1
Materiale didattico
• Slides del corso
• Atzeni,Ceri,Paraboschi,Torlone, Basi di Dati,Modelli e linguaggi di
interrogazione, terza edizione, McGraw-Hill 2002.
• Albano-Ghelli-Orsini, Basi di Dati Relazionali e a Oggetti, Zanichelli, 1997
• Ullman, Basi di Dati e Basi di Conoscenza
• Access: Manuale utente
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 2
Sistema informativo
• Componente (sottosistema) di qualsiasi organizzazione– Azienda privata, pubblica, info private (PIM), famiglia, etc.
• Gestisce (acquisisce, elabora, conserva, produce) le informazioni di interesse (i.e., utilizzate per il perseguimentodegli scopi dell’organizzazione)– ogni organizzazione ha un sistema informativo, possibilmente non
esplicitato nella struttura stessa
– quasi sempre, il sistema informativo è di supporto ad altri sottosistemi
– il sistema informativo è di solito suddiviso in sottosistemi (in modogerarchico o decentrato), più o meno fortemente integrati
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 3
Sistema organizzativo
• Insieme di risorse e regole per lo svolgimento coordinato delle attività al fine del perseguimento degli scopi
– il sistema informativo è parte del sistema organizzativo
– il sistema informativo esegue/gestisce processi informativi (cioè i processi che coinvolgono informazioni)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 4
Risorse aziendali
• le risorse di una azienda:
– persone
– denaro
– materiali
– informazioni
• Oggi viviamo nell‘era della conoscenza
• Il capitale principale delle organizzazioni è rappresentato dalla conoscenza (basata sui dati)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 5
Sistemi informativi e automazione
• Il concetto di “sistema informativo” è indipendenteda qualsiasi automazione
• esistono organizzazioni la cui ragion d’essere è la gestione di informazioni– Es.: servizi anagrafici, tribunali, biblioteche, etc
– Operano da secoli
– La gestione delle loro informazioni si è evoluta nel tempo • Ma ciò non altera l‘obiettivo dell‘organizzazione!
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 6
Sistema Informatico
• Porzione automatizzata del sistema informativo:– la parte del sistema informativo che gestisce informazioni con tecnologia informatica
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 7
Sistema organizzativo
Sistema informativo
Sistema informatico
Sistema informativo e sistema informatico
• Anche prima di essere informatizzati, molti sistemi informativi si sono evoluti– Razionalizzazione delle procedure di accesso ai dati
– Standardizzazione dell’esecuzione delle procedure
– Organizzazione delle informazioni
– Duplicazione degli archivi
• Esempi:– Uffici anagrafe– Contabilità familiare– Ordinazione al ristorante
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 8
Gestione delle informazioni
• Nelle attività umane, le informazioni vengono gestite (registrate e scambiate) in forme diverse:
– idee informali
– linguaggio naturale (scritto o parlato, formale o colloquiale, in una lingua o in un’altra)
– disegni, grafici, schemi
– numeri e codici
• e su vari supporti
– memoria umana, carta, dispositivi elettronici
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 9
Gestione delle informazioni
• Nelle attività standardizzate dei sistemi informativi complessi, sono state introdotte col tempo forme di organizzazione e codifica delle informazioni
• Ad esempio, nei servizi anagrafici si è iniziato con registrazioni discorsive e poi
– nome e cognome
– estremi anagrafici
– codice fiscale
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 10
Informazioni e dati
• Nei sistemi informatici (e non solo), le informazioni vengonorappresentate in modo essenziale, spartano: attraverso i dati
• Dal Vocabolario della lingua italiana (1987)informazione: notizia, dato o elemento che consente di avere
conoscenza più o meno esatta di fatti, situazioni, modi di essere. dato: ciò che è immediatamente presente alla conoscenza, prima di ogni
elaborazione; (in informatica) elementi di informazione costituiti da simboli che debbono essere elaborati.
• Informazione può essere vista come un‘interpretazionesemantica dei dati– Dipendente dal contesto
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 11
Dati e informazioni
• I dati hanno bisogno di essere interpretati
Esempio
‘Mario’ ’275’ su un foglio di carta sono due dati.
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 12
Dati e informazioni
• I dati hanno bisogno di essere interpretati
Esempio
‘Mario’ ’275’ su un foglio di carta sono due dati.
Se il foglio di carta viene fornito in risposta alla domanda “A chi mi devo rivolgere per il problema X; qual è il suo interno?”, allora i dati possono essere interpretati per fornire informazione e arricchire la conoscenza.
Oppure, soldi che Mario mi deve
Oppure, giorni lavorativi di Mario
Etc. Etc.
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 13
Perché i dati?
• La rappresentazione precisa di forme più ricche di informazione e conoscenza è difficile
• I dati costituiscono spesso una risorsastrategica
– Più stabili nel tempo di altre componenti quali processi, tecnologie, ruoli umani
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 14
Base di dati
Insieme organizzato di dati utilizzati per il
supporto allo svolgimento delle attività di un
ente (azienda, ufficio, personale)
• Tecnologicamente parlando:
– Insieme di dati gestito da un sistema software
dedicato alla gestione di basi di dati
– Data Base Management System (DBMS)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 15
Sistema di gestione di basi di datiDataBase Management System — DBMS
Applicazione software in grado di gestire collezioni di dati che siano:
– Grandi: di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati
– Persistenti: con un periodo di vita indipendente dalle singole esecuzioni deiprogrammi che le utilizzano
– Affidabili: resistenza a malfunzionamenti hardware e software, blackout, etc.
– Condivise: utilizzate da applicazioni diverse anche in località geografichediverse
– Private: con una disciplina e un controllo degli accessi
• Come ogni prodotto informatico, un DBMS deve essere
– Efficiente: utilizzando al meglio le risorse di spazio e tempo del sistema
– Efficace: rendendo produttive le attività dei suoi utilizzatori
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 16
Alcuni DBMS in commercio
• Business estremamente grosso e profittevole
• Alcuni sistemi– Microsoft Access
– IBM-DB2
– Oracle
– Informix
– Sybase
– Microsoft SQLServer
– Ingres
– MySql (open-source)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 17
Condivisione dei dati
• Ogni organizzazione (specie se grande) è divisa in settori o comunque svolge diverse attività
• A ciascun settore o attività corrisponde un(sotto-)sistema informativo
• Possono esistere sovrapposizioni fra i dati di interesse dei vari settori
• Una base di dati è una risorsa integrata, condivisa frai vari settori
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 18
Possibili problemi nella condivisione dei dati
• Ridondanza:
– informazioni duplicate
• Rischio di incoerenza:
– le versioni possono non coincidere
• L’incoerenza tra i dati è un problema frequente nelle grandi organizzazioni (e molto complicato a volte da risolvere)
– Le basi di dati condivise hanno aiutato molto
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 19
Archivi e basi di dati
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 20
Gestione
ricevimentoArchivio 2:
ricevimento
Gestione
orario lezioniArchivio 1:
orario lezioni
Archivi e basi di dati
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 21
Gestione
ricevimento
Gestione
orario lezioni
Base di dati
Le basi di dati condivise
• Una base di dati e' una risorsa integrata e condivisa tra varie applicazioni e vari utenti
• Attivita' diverse da parte di diversi utenti su
dati in parte condivisi:
– Meccanismi di autorizzazione
– Controllo degli accessi
– Controllo della concorrenza, accesso ai dati in
competizione
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 22
Efficienza
• Si misura (come in tutti i sistemi informatici) in termini di– tempo di esecuzione (tempo di risposta)
– spazio di memoria (principale e secondaria)
• L’efficienza è funzione di vari fattori– Qualità del DBMS
– Qualità delle applicazioni che usano il DBMS
– Manutenzione del DBMS
– Caratteristiche del server
– Ecc.
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 23
Architettura standard (ANSI/SPARC)a tre livelli per DBMS
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 24
BD
Schema logico
Schema
esterno
Schema fisico
Schema
esterno
Schema
esterno
utenteutente
utenteutente utente
Architettura ANSI/SPARC: schemi
• Schema esterno: descrizione di parte della base di dati del modello logico (“viste” parziali, derivate, anche in modelli diversi)
• Schema logico: descrizione dell’intera base di dati nel modello logico “principale” del DBMS
• Schema fisico: rappresentazione dei dati per mezzo di strutture fisiche di memorizzazione sui dischi rigidi
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 25
Astrazione dei dati nei DBMS
• Descrizioni e rappresentazione dei dati a livelli diversi di astrazione
• I livelli seguono un ordine ben preciso
• Ciò permette l’indipendenza dei dati dalla loro rappresentazione fisica sugli hard-disk:
– i programmi fanno riferimento alla struttura a livello più alto, e le rappresentazioni sottostanti possono essere modificate senza necessità di modifica dei programmi
– La rappresentazione ad un livello può cambiare nel tempo senza bisogno di cambiare i livelli sovrastranti
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 26
Modello dei dati
• Insieme di costrutti e metodi utilizzati per organizzare i dati di interesse e descriverne la dinamica
• Componente fondamentale: meccanismi di strutturazione (o costruttori di tipo)
• Ogni modello dei dati prevede specifici costruttori
• Ad esempio, il modello relazionale prevede il costruttorerelazione, che permette di definire insiemi di record omogenei
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 27
Due tipi principali di modelli
• Modelli concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema– cercano di descrivere i concetti del mondo reale
– sono utilizzati nelle fasi preliminari di progettazione
– Il più noto è il modello Entity-Relationship
• Modelli logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati– utilizzati dai programmi
– indipendenti dalle strutture fisiche
– esempi: relazionale, reticolare, gerarchico, a oggetti
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 28
Organizzazione dei dati nel modello relazionale
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 29
Insegnamento Docente Aula Ora
Analisi matem. I Luigi Neri N1 8:00Basi di dati Piero Rossi N2 9:45
Chimica Nicola Mori N1 9:45Fisica I Mario Bruni N1 11:45Fisica II Mario Bruni N3 9:45
Sistemi inform. Piero Rossi N3 8:00
Orario
Schemi e istanze
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 30
• Lo schema della base di dati
Insegnamento Docente Aula Ora
Schemi e istanze
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 31
• L’istanza della base di dati
Analisi matem. I Luigi Neri N1 8:00Basi di dati Piero Rossi N2 9:45
Chimica Nicola Mori N1 9:45Fisica I Mario Bruni N1 11:45Fisica II Mario Bruni N3 9:45
Sistemi inform. Piero Rossi N3 8:00
Schemi e istanze
• In ogni base di dati esistono:
– Aspetto intensionale: lo schema• Sostanzialmente invariante nel tempo
• Descrive la struttura
• Nell’esempio, le intestazioni delle tabelle
– Aspetto estensionale: l’istanza• I valori possono cambiare anche molto
rapidamente
• Raccoglie i dati
• Nell’esempio, il “corpo” di ciascuna tabella
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 32
Esempio di DB relazionale
Matr_Studente Corso Voto
678 Programmazione 27
456 Architettura 30
567 Programmazione 18
678 Matematica 22
678 Architettura 30
456 Statistica 19
678 Statistica 22
567 Matematica 18
Denominazione Docente
Programmazione Ferro
Architettura Pappalardo
Matematica Lizzio
Statistica Lizzio
Studenti
Esami
Corsi
Nome Matricola Indirizzo Citta Luogo di nascita
Mario Rossi 456 Via Roma 1 Catania Catania
Ugo Bianchi 567 Via Etnea 154 Enna Ragusa
Teo Verdi 678 Via Parma 12 Catania Enna
Leo Poldo 768 Piazza Roma 1 Ragusa Ragusa
Esempio di query
Quali docent hanno
dato piu’ di 24 a Teo
Verdi ed in quali
corsi?
Corso Docente
Programmazione Ferro
Architettura Pappalardo
Linguaggi per basi di dati
• Permettono interrogazioni formali delle basi di dati nel modello logicoutilizzato
• Algebra relazionale: Formalismo di base per la formalizzazione diinterrogazioni nel modello relazionale (la madre di tutti i modelli)
• SQL (Structured Query Language): Linguaggio di tipo testuale per basi didati relazionali– Adottato da tutti i sistemi DBMS relazionali
• Interfacce visuali (tipo Access)• I vari linguaggi di programmazione (e.g. Java) permettono di interrogare le
basi di dati incorporando SQL al loro interno• New: Linguaggi No-SQL
– Ancora in definizione– Non strutturati– Efficienti– Imprecisi
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 35
Esempio di SQL
SELECT Corso, Aula, PianoFROM Aule, CorsiWHERE Nome = AulaAND Piano="Terra"
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 36
Corso Aula
Reti N3
Sistemi N3
Piano
Terra
Terra
Interazione non testuale (in Access)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 37
Una distinzione terminologica (separazione fra dati e programmi)
• Data manipulation language (DML)
– Per l’interrogazione e l’aggiornamento di (istanze di) basi di dati
• Data definition language (DDL)
– Per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 38
Un'operazione DDL (sullo schema)
CREATE TABLE orario (
insegnamento CHAR(20) ,
docente CHAR(20) ,
aula CHAR(4) ,
ora time
)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 39
Transazioni
• Programmi che realizzano attività frequenti e predefinite, conpoche eccezioni, previste a priori
• Esempi: – versamento presso uno sportello bancario
– emissione di certificato anagrafico
– dichiarazione presso l’ufficio di stato civile
– prenotazione aerea
• Le transazioni sono di solito realizzate con programmi in linguaggio ospite (tradizionale o ad hoc)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 40
Transazioni
• Altra definizione importante di transazione:– Sequenza indivisibile di operazioni
• Atomicità: O vengono eseguite tutte le operazioni o nessuna
• I DBMS sono in grado di garantire l‘atomicità delle transazioni
• Costrutti per marcare l‘inizio e la fine della transazione
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 41
Vantaggi e svantaggi dei DBMS
Pro
• dati come risorsa comune, base di dati come modello della realtà
• gestione centralizzata con possibilità di standardizzazione ed “economia discala”
• disponibilità di servizi integrati
• riduzione di ridondanze e inconsistenze
• indipendenza dei dati (favorisce lo sviluppo e la manutenzione delleapplicazioni)
Contro
• costo dei prodotti e della transizione verso di essi
• non scorporabilità delle funzionalità (con riduzione di efficienza)
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 42
FINE
15 December 2016 Basi di Dati - Introd. - Prof. G. Giuffrida 43