DATABASE I - Dipartimento di Matematica e Informatica

Informatica
Introduzione alle basi di dati
Prof. Giovanni Giuffrida
e-mail: [email protected]
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
1
Materiale didattico
• 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
• Slides del corso
10 March 2014
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 perseguimento
degli 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 modo
gerarchico o decentrato), più o meno fortemente integrati
10 March 2014
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)
10 March 2014
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)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
5
Sistemi informativi e automazione
• Il concetto di “sistema informativo” è indipendente
da 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!
10 March 2014
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
Sistema azienda
Sistema organizzativo
Sistema informativo
Sistema informatico
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
7
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
Ordini al ristorante
...
10 March 2014
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
10 March 2014
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
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
10
Informazioni e dati
• Nei sistemi informatici (e non solo), le informazioni vengono
rappresentate 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.
• L‘Informazione può essere vista come un‘interpretazione
semantica dei dati
– Dipendente dal contesto (e.g., abitudini, interlocutori, cultura,
momento storico, ecc.)
10 March 2014
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.
10 March 2014
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.
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
13
Perché i dati?
• La rappresentazione precisa di forme più
ricche di informazione e conoscenza è difficile
– Ci sono stati dei tentantivi in passato di creare
“Basi di conoscenza“
– Ha funzionato solo per specifiche applicazioni
molto circoscritte
• I dati costituiscono spesso una risorsa
strategica
– Più stabili nel tempo di altre componenti quali
processi, tecnologie, ruoli umani
10 March 2014
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)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
15
Sistema di gestione di basi di dati
DataBase 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 dei
programmi che le utilizzano
– Condivise: utilizzate da applicazioni diverse anche in località geografiche
diverse
– Affidabili: resistenza a malfunzionamenti hardware e software, blackout, etc.
– 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
10 March 2014
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)
10 March 2014
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 fra
i vari settori
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
18
Possibili problemi nella condivisione
dei dati
• Ridondanza:
– informazioni ripetute
• Rischio di incoerenza:
– le versioni possono non coincidere
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
19
Archivi e basi di dati
Gestione
orario lezioni
Archivio 1:
orario lezioni
Gestione
ricevimento
Archivio 2:
ricevimento
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
20
Archivi e basi di dati
Gestione
orario lezioni
Base di dati
Gestione
ricevimento
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
21
Le basi di dati sono condivise
• Una base di dati è una risorsa integrata e
condivisa tra varie applicazioni e vari utenti
• Attività 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
10 March 2014
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.
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
23
Descrizioni dei dati nei DBMS
• Descrizioni e rappresentazione dei dati a livelli diversi
– permettono l’indipendenza dei dati dalla rappresentazione
fisica:
• i programmi fanno riferimento alla struttura a livello più alto, e le
rappresentazioni sottostanti possono essere modificate senza
necessità di modifica dei programmi
– Precisiamo attraverso il concetto di
• Modello dei dati
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
24
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 alcuni costruttori
• Ad esempio, il modello relazionale prevede il costruttore
relazione, che permette di definire insiemi di record omogenei
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
25
Due possibili modelli
• modelli logici: utilizzati nei DBMS esistenti per
l’organizzazione dei dati
– utilizzati dai programmi
– indipendenti dalle strutture fisiche
esempi: relazionale, reticolare, gerarchico, a
oggetti
• 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
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
26
Organizzazione dei dati in una base di
dati
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
10 March 2014
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Basi di Dati - Introd. - Prof. G. Giuffrida
Ora
8:00
9:45
9:45
11:45
9:45
8:00
27
Schemi e istanze
• Lo schema della base di dati
Insegnamento
10 March 2014
Docente
Aula
Basi di Dati - Introd. - Prof. G. Giuffrida
Ora
28
Schemi e istanze
• L’istanza della base di dati
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
N1
N2
N1
N1
N3
N3
8:00
9:45
9:45
11:45
9:45
8:00
• Insieme di righe (anche dette: tuple,
ennuple)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
29
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
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
30
Due tipi (principali) di modelli
• Modelli logici: utilizzati nei DBMS esistenti per
l’organizzazione dei dati
– utilizzati dai programmi
– indipendenti dalle strutture fisiche
– esempi: relazionale, reticolare, gerarchico, a oggetti
• 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
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
31
Architettura (semplificata) di un DBMS
utente
Schema logico
Schema interno
BD
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
32
Architettura semplificata di un DBMS:
schemi
– Schema logico: descrizione della base di dati nel
modello logico (ad esempio, la struttura della
tabella)
– Schema fisico: rappresentazione dello schema
logico per mezzo di strutture memorizzazione
(file)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
33
Indipendenza dei dati
• il livello logico è indipendente da quello fisico:
– una tabella è utilizzata nello stesso modo
qualunque sia la sua realizzazione fisica (che può
anche cambiare nel tempo)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
34
Architettura standard (ANSI/SPARC)
a tre livelli per DBMS
utente
utente
Schema
esterno
utente
Schema
esterno
utente
utente
Schema
esterno
Schema logico
Schema interno
BD
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
35
Architettura ANSI/SPARC: schemi
• Schema fisico/interno: rappresentazione dei dati
per mezzo di strutture fisiche di memorizzazione
• Schema logico: descrizione dell’intera base di dati
nel modello logico “principale” del DBMS
• Schema esterno: descrizione di parte della base di
dati del modello logico (“viste” parziali, derivate,
anche in modelli diversi)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
36
Una vista
Corsi
Corso Docente
Basi di dati Rossi
Neri
Sistemi
Bruni
Reti
Controlli Bruni
CorsiSedi
10 March 2014
Aula
DS3
N3
N3
G
Corso
Sistemi
Reti
Controlli
Aule
Nome Edificio
DS1
OMI
N3
OMI
G
Pincherle
Aula Edificio
N3
OMI
N3
OMI
G Pincherle
Basi di Dati - Introd. - Prof. G. Giuffrida
Piano
Terra
Terra
Primo
Piano
Terra
Terra
Primo
37
Indipendenza dei dati
• Conseguenza della articolazione in livelli
• L’accesso avviene solo tramite il livello esterno
(che può coincidere con il livello logico)
• Due forme:
– Indipendenza fisica
– Indipendenza logica
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
38
Indipendenza fisica
• Il livello logico e quello esterno sono
indipendenti da quello fisico
– una relazione è utilizzata nello stesso modo
qualunque sia la sua realizzazione fisica
– la realizzazione fisica può cambiare senza che
debbano essere modificati i programmi
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
39
Indipendenza logica
• Il livello esterno è indipendente da quello
logico
• Aggiunte o modifiche alle viste non richiedono
modifiche al livello logico
• Modifiche allo schema logico che lascino
inalterato lo schema esterno sono trasparenti
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
40
Tabelle e relazioni nel modello
relazionale
• Una tabella rappresenta una relazione se
– i valori di ogni colonna sono fra loro omogenei
– le righe sono diverse fra loro
– le intestazioni delle colonne sono diverse tra loro
• In una tabella che rappresenta una relazione
– l’ordinamento tra le righe è irrilevante
– l’ordinamento tra le colonne è irrilevante
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
41
Il modello relazionale è basato su
valori
• i riferimenti fra dati in relazioni diverse sono
rappresentati per mezzo di valori dei domini
che compaiono nelle ennuple
• Il modello risulta molto intuitivo
• Semplice da comprendere
• Complicato da implementare
– complessità nascosta agli utenti
– Se ne occupa il sistema stesso
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
42
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
4/10/2001
Nome
Mario
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
esami
Studente
3456
3456
9283
6554
Voto
30
24
28
26
Corso
04
02
01
01
corsi
Codice
01
02
04
Titolo
Analisi
Chimica
Chimica
Docente
Mario
Bruni
Verdi
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
43
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
4/10/2001
Nome
Mario
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
esami
Studente
Voto
30
24
28
26
Corso
corsi
Codice
01
02
04
Titolo
Analisi
Chimica
Chimica
Docente
Mario
Bruni
Verdi
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
44
Vantaggi del modello basato su valori
• indipendenza dalle strutture fisiche che possono
cambiare dinamicamente
• si rappresenta solo ciò che è rilevante dal punto di
vista dell’applicazione
• i dati sono portabili piu' facilmente da un sistema ad
un altro
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
45
Strutture nidificate
Da Filippo
Via Roma 2, Roma
Da Filippo
Via Roma 2, Roma
Ricevuta Fiscale
1235 del 12/10/2000
Ricevuta Fiscale
1240 del 13/10/2000
3
2
3
2
Coperti
Antipasti
Primi
Bistecche
3,00
6,20
12,00
18,00
2
2
2
2
2
Totale 39,20
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
Coperti
Antipasti
Primi
Orate
Caffè
2,00
7,00
8,00
20,00
2,00
Totale 39,00
46
Relazioni che rappresentano strutture
nidificate
Ricevute
Dettaglio
4/10/2001
Numero
1235
1240
Data
12/10/2000
13/10/2000
Totale
39,20
39,00
Numero
1235
1235
1235
Qtà
3
2
3
Coperti
Coperti
Antipasti
Primi
3,00
3,00
6,20
12,00
1235
1240
…
2
2
…
Bistecche
Coperti
…
18,00
2,00
…
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
47
Strutture nidifcate, riflessione
• Abbiamo rappresentato veramente tutti gli
aspetti delle ricevute?
• Dipende da che cosa ci interessa!
– l'ordine delle righe e' rilevante?
– possono esistere linee ripetute in una ricevuta?
• Sono possibili rappresentazioni diverse
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
48
Rappresentazione alternativa per
strutture nidificate
Ricevute
Dettaglio
4/10/2001
Numero
1235
1240
Data
12/10/2000
13/10/2000
Totale
39,20
39,00
Numero
1235
1235
1235
Riga
1
2
3
Qtà
3
2
3
Descrizione
Coperti
Antipasti
Primi
1235
1240
…
4
1
…
2
2
…
Bistecche
Coperti
…
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
Importo
3,00
6,20
12,00
18,00
2,00
…
49
Informazione incompleta
• ll modello relazionale impone ai dati una
struttura rigida:
– le informazioni sono rappresentate per mezzo di
ennuple
– solo alcuni formati di ennuple sono ammessi:
quelli che corrispondono agli schemi di relazione
• I dati disponibili possono non corrispondere al
formato previsto
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
50
Informazione incompleta: motivazioni
Nome
Franklin
Winston
SecondoNome
Delano
Charles
Josip
4/10/2001
Cognome
Roosevelt
Churchill
De Gaulle
Stalin
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
51
Informazione incompleta: soluzioni?
• non conviene (anche se spesso si fa) usare valori del
dominio (0, stringa nulla, “99”, ...):
– potrebbero non esistere valori “non utilizzati”
– valori “non utilizzati” potrebbero diventare
significativi
– in fase di utilizzo sarebbe necessario ogni volta
tener conto del “significato” di questi valori
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
52
Informazione incompleta
nel modello relazionale
• Si adotta una tecnica rudimentale ma efficace:
– valore nullo: denota l’assenza di un valore del
dominio (e non è un valore del dominio)
• Si possono (e debbono) imporre restrizioni sulla
presenza di valori nulli
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
53
Troppi valori nulli
studenti Matricola Cognome
6554
Rossi
9283
Verdi
NULL
Rossi
4/10/2001
Nome
Mario
Luisa
Maria
Data di nascita
05/12/1978
12/11/1979
01/02/1978
esami
Studente
NULL
NULL
9283
Voto
30
24
28
Corso
NULL
02
01
corsi
Codice
01
02
04
Titolo
Analisi
NULL
Chimica
Docente
Mario
NULL
Verdi
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
54
Tipi di valore nullo
• (almeno) tre casi differenti di tipo NULL
– valore sconosciuto
– valore inesistente
– valore senza informazione
• I DBMS non distinguono i tipi di valore nullo
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
55
Vincoli di integrità
– Esistono istanze di basi di dati che, pur
sintatticamente corrette, non rappresentano
informazioni possibili per l’applicazione di
interesse
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
56
Una base di dati "scorretta"
Esami Studente Voto Lode Corso
276545
32
01
276545
30 e lode 02
787643
27 e lode 03
739430
24
04
Studenti
4/10/2001
Matricola Cognome
276545
Rossi
Neri
787643
787643
Bianchi
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
Nome
Mario
Piero
Luca
57
Vincolo di integrità
– Proprietà che deve essere soddisfatta dalle istanze
che rappresentano informazioni corrette per
l’applicazione
– Un vincolo è una funzione booleana (un
predicato):
associa ad ogni istanza il valore vero o falso
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
58
Vincoli di integrità, perché?
– descrizione più accurata della realtà
– contributo alla “qualità dei dati”
– usati dai DBMS nella esecuzione delle
interrogazioni
– non tutte le proprietà di interesse sono
rappresentabili per mezzo di vincoli formulabili in
modo esplicito
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
59
Tipi di vincoli
– vincoli intrarelazionali
• vincoli su valori (o di dominio)
• vincoli di ennupla
– vincoli interrelazionali
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
60
Esami Studente Voto Lode Corso
276545
32
01
276545
30 e lode 02
787643
27 e lode 03
739430
24
04
Studenti
4/10/2001
Matricola Cognome
276545
Rossi
Neri
787643
787643
Bianchi
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
Nome
Mario
Piero
Luca
61
Vincoli di ennupla
– Esprimono condizioni sui valori di ciascuna
ennupla, indipendentemente dalle altre ennuple
– Caso particolare:
• Vincoli di dominio: coinvolgono un solo attributo
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
62
Sintassi ed esempi
• Una possibile sintassi:
– espressione booleana di atomi che confrontano
valori di attributo o espressioni aritmetiche su di
essi
(Voto  18) AND (Voto  30)
(Voto = 30) OR NOT (Lode = "e lode")
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
63
Vincoli di ennupla, esempio
Stipendi
Impiegato
Rossi
Neri
Bruni
Lordo
55.000
45.000
47.000
Ritenute
12.500
10.000
11.000
Netto
42.500
35.000
36.000
Lordo = (Ritenute + Netto)
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
64
Chiave: Identificazione delle ennuple
Matricola Cognome
27655
Rossi
Rossi
78763
Neri
65432
87654
Neri
67653
Rossi
–
–
–
4/10/2001
Nome
Mario
Mario
Piero
Mario
Piero
Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
Nascita
5/12/78
3/11/76
10/7/79
3/11/76
5/12/78
non ci sono due ennuple con lo stesso valore sull’attributo
Matricola
non ci sono due ennuple uguali su tutti e tre gli attributi
Cognome, Nome e Data di Nascita
insieme di attributi che identificano le ennuple di una
relazione
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
65
Una chiave
Matricola Cognome
27655
Rossi
Rossi
78763
Neri
65432
87654
Neri
67653
Rossi
Nome
Mario
Mario
Piero
Mario
Piero
Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
Nascita
5/12/78
3/11/76
10/7/79
3/11/76
5/12/78
• Matricola è una chiave:
– contiene un solo attributo e quindi è minimale
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
66
Un'altra chiave
Matricola Cognome Nome
27655
Rossi
Mario
Rossi
Mario
Rossi
Mario
Mario
78763
Rossi
Neri
Piero
65432
87654
Neri
Mario
Mario
67653
Rossi
Piero
Rossi
Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
Nascita
5/12/78
5/12/78
3/11/76
3/11/76
10/7/79
3/11/76
3/11/76
5/12/78
5/12/78
• Cognome, Nome, Nascita è un’altra chiave:
– è superchiave
– minimale
4/10/2001
Atzeni-Ceri-Paraboschi-Torlone, Basi di
dati, Capitolo 2
67
Linguaggi per basi di dati
• Un altro contributo all’efficacia: disponibilità di vari linguaggi
e interfacce diverse
– linguaggi testuali interattivi (SQL)
– comandi (come quelli del linguaggio interattivo) immersi in un
linguaggio ospite (Pascal, C, Cobol, etc.)
– comandi (come quelli del linguaggio interattivo) immersi in un
linguaggio ad hoc, con anche altre funzionalità (p.es. per grafici o
stampe strutturate), anche con l’ausilio di strumenti di sviluppo (p. es.
per la gestione di maschere)
– con interfacce amichevoli (senza linguaggio testuale)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
68
SQL, un linguaggio interattivo
SELECT Corso, Aula, Piano
FROM Aule, Corsi
WHERE Nome = Aula
AND Piano="Terra"
Corso
Sistemi
Reti
10 March 2014
Aula Piano
N3 Terra
N3
Terra
Basi di Dati - Introd. - Prof. G. Giuffrida
69
Interazione non testuale (in Access)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
70
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
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
71
Un'operazione DDL (sullo schema)
CREATE TABLE orario (
insegnamento
CHAR(20) ,
docente
CHAR(20) ,
aula
CHAR(4) ,
ora
time
)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
72
Personaggi e interpreti
• Progettisti e realizzatori di DBMS
• Progettisti della base di dati e amministratori della
base di dati (DBA)
• Progettisti e programmatori di applicazioni
• Utenti
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
73
Database administrator (DBA)
• Persona o gruppo di persone responsabile del
controllo centralizzato e della gestione del
sistema, delle prestazioni, dell’affidabilità,
delle autorizzazioni
• Le funzioni del DBA includono quelle di
progettazione, anche se in progetti complessi
ci possono essere distinzioni
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
74
Transazioni
• Programmi che realizzano attività frequenti e predefinite, con
poche 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)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
75
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
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
76
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 di
scala”
• disponibilità di servizi integrati
• riduzione di ridondanze e inconsistenze
• indipendenza dei dati (favorisce lo sviluppo e la manutenzione delle
applicazioni)
Contro
• costo dei prodotti e della transizione verso di essi
• non scorporabilità delle funzionalità (con riduzione di efficienza)
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
77
Esercitazioni
• Indicare quali delle seguenti affermazioni sono vere:
– l'indipendenza dei dati permette di scrivere programmi senza
conoscere le strutture fisiche dei dati
– l'indipendenza dei dati permette di modificare le strutture fisiche dei
dati senza dover modificare i programmi che accedono alla base di dati
– l'indipendenza dei dati permette di scrivere programmi conoscendo
solo lo schema concettuale della BD
– l'indipendenza dei dati permette di formulare interrogazioni senza
conoscere le strutture fisiche
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
78
Esercitazioni
• Indicare quali delle seguenti affermazioni sono vere:
– il fatto che le basi di dati siano condivise favorisce l'efficienza dei
programmi che le utilizzano
– il fatto che le basi di dati siano condivise permette di ridurre
ridondanze e inconsistenze
– il fatto che le basi di dati siano persistenti ne garantisce l'affidabilità
– il fatto che le basi di dati siano persistenti favorisce l'efficienza dei
programmi
– il fatto che le basi di dati siano condivise rende necessaria la gestione
della privatezza e delle autorizzazioni
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
79
Esercitazioni
• Indicare quali delle seguenti affermazioni sono vere:
– la distinzione fra DDL e DML corrisponde alla distinzione fra schema e
istanza
– le istruzioni DML permettono di interrogare la base di dati ma non di
modificarla
– le istruzioni DDL permettono di specificare la struttura della base di
dati ma non di modificarla
– non esistono linguaggi che includono sia istruzioni DDL sia istruzioni
DML
– SQL include istruzioni DML e DDL
– le istruzioni DML permettono di interrogare la base di dati e di
modificarla
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
80
Esercitazioni
• Indicare quali delle seguenti affermazioni sono vere:
–
–
–
–
gli utenti casuali utilizzano transazioni predefinite
i terminalisti utilizzano transazioni predefinite
gli utenti casuali progettano la base di dati
i progettisti del DBMS realizzano le transazioni che saranno utilizzate
dai terminalisti
– i progettisti della base di dati realizzano il DBMS
– i progettisti delle applicazioni utilizzano la base di dati come
progettata dal progettista del DBMS
– i progettisti delle applicazioni utilizzano la BD come progettata dal
progettista della BD
10 March 2014
Basi di Dati - Introd. - Prof. G. Giuffrida
81