Abilità Informatiche A.A. 2010/2011
Lezione 8: Basi di Dati
Facoltà di Lingue e Letterature Straniere
Base di dati
(accezione generica, metodologica)


Insieme organizzato di dati utilizzati per il supporto allo
svolgimento delle attività di un ente (azienda, ufficio,
persona)
(accezione specifica, tecnologica)


2
insieme di dati gestito da un DBMS (Data Base
Management System)
Sistemi di gestione di basi di dati (DBMS)

DBMS = Sistema software in grado di gestire collezioni di dati che siano
(anche):



3
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
Caratteristiche di un DBMS
Un sistema DBMS deve garantire:

affidabilità (resistenza a malfunzionamenti hardware e software)
 privatezza (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).


4
Alcuni DBMS in commercio








5
Microsoft Access
IBM-DB2
Oracle
Informix
Sybase
Microsoft SQLServer
Ingres
MySql (open-source)
Sistemi per basi di dati

DATA BASE = Collezione omogenea di informazioni strutturate in sequenze di
dati che hanno tutti la stessa struttura (insieme di archivi a disposizione di più
utenti o applicazioni)

SISTEMI PER LA GESTIONE DI DATABASE (DBMS) = sistemi software che
gestiscono dati di un sistema informativo, assumendo il ruolo di interfaccia
verso i programmi utente.
6
Condivisione

Ogni organizzazione (specie se grande) è divisa in settori o comunque
svolge diverse attività. A ciascun settore o attività corrisponde un (sotto-)
sistema informativo (privato o porzione di un sistema più grande).

Possono esistere sovrapposizioni fra i dati di interesse dei vari settori.

Una base di dati è una risorsa integrata, condivisa fra i vari settori.
7
Un esempio
8
Un esempio
9
Possibili problemi

Rischio di ridondanza: informazioni ripetute

Rischio di incoerenza: le due versioni possono non coincidere
10
Archivi e Basi di Dati
11
I 3 livelli di astrazione di un DB
utente
utente
utente
utente
utente
SCHEMA ESTERNO
SCHEMA ESTERNO
SCHEMA LOGICO
SCHEMA CONCETTUALE
DATA BASE
12
utente
SCHEMA ESTERNO
Architettura di un DBMS
13
I 3 livelli di astrazione di un DB




Schema esterno: descrizione di una porzione della base di dati in un
modello logico attraverso “viste” parziali, o derivate, che possono
prevedere organizzazioni dei dati diverse rispetto a quelle utilizzate nello
schema logico, e che riflettono esigenze e privilegi di accesso di particolari
tipologie di utenti; ad uno schema logico si possono associare più schemi
esterni
Schema logico: descrizione dell‟intera base di dati nel modello logico
“principale” del DBMS, ad esempio la struttura delle tabelle
Schema concettuale: descrizione del tipo di dati che si vogliono
rappresentare, che prescinde dalla realizzazione fisica dei dati
particolari, ovvero identificazione degli oggetti che si vogliono
rappresentare, dei loro attributi e delle relazioni tra questi oggetti
Schema fisico: rappresentazione dello schema logico per mezzo di
strutture fisiche di memorizzazione, ovveri specifici files
14
Indipendenza Fisica e Logica
L‟utilizzo dei Data Base offre un vantaggio quale l‟indipendenza
dei dati e dei programmi; é possibile modificare l‟organizzazione
dei dati e dei programmi indipendenti l‟uno dall‟altro, vi sono due
tipi di indipendenza:
Indipendenza fisica: la disposizione e l‟organizzazione fisica
dei dati sui supporti di memoria di massa possono essere
cambiate senza cambiare l‟organizzazione logica e consiste
nella possibilità di modificare lo schema fisico (la struttura
fisica) dei dati senza dover modificare i programmi applicativi
che usano i dati.
Indipendenza logica: la disposizione e l‟organizzazione
logica dei dati può essere cambiata senza modificare le
applicazioni non coinvolte direttamente e consiste nella
possibilità di modificare lo schema concettuale senza dover
modificare il software applicativo
15
Dalla realtà al modello fisico
Realtà
Modello
Concettuale
È una rappresentazione astratta della realtà, organizzata in
forma grafica in modo da ottenere uno schema dei dati. E’
comprensibile da chiunque, anche senza conoscenze
informatiche. MODELLO TIPICO: Entità-Relazioni
Modello
Logico
Il modello logico dota i dati di una struttura utile per semplificare
ed ottimizzare le operazioni di Archiviazione, Interrogazione e
manipolazione dei dati. STRUTTURA TIPICA: Data Base
Modello
Fisico
Il modello fisico è ottenuto dall’implementazione, attraverso
opportuni software, degli archivi e delle modalità di accesso.
Si tratta di file registrati su H.D. CASO TIPICO: uso del
software ACCESS di Microsoft e creazione del file *.mdb
16
Un semplice modello concettuale
STUDENTE
Matricola
Cognome, Nome
Data di Nascita
RISULTATI_ESAMI
Matricola
Materia
Data
Voto
17
Modellazione Logica



Una volta decisi quali sono i concetti importanti da
rappresentare e quali sono i loro attributi, occorre
pensare come e‟ possibile rappresentare questa
informazione usando una base di dati
Questo è il compito della modellazione logica
(attenzione: questa non esprime ancora proprietà di
dati specifici, ma delle loro proprietà e/o relazioni)
Esprimibile in diagrammi
18
Il modello concettuale E-R
Gli elementi che compongono il modello Entità-Relazioni
sono tre:
• Le Entità
• Le Associazioni (Relazioni)
• Gli Attributi
19
Entità (Entity)
L’entità è un oggetto concreto o astratto che ha un
significato all’interno del modello dei dati anche se
viene considerato isolato.
Di solito si definisce un tipo di entità attraverso un
nome e lo si rappresenta con un rettangolo.
Esempio:
Gli studenti di Ca’ Foscari sono
classificabili con il tipo di entità
studente.
Ciascun studente rappresenta quindi
un’istanza dell’entità studente.
20
Studente
Associazioni (Relationship)
È il legame che stabilisce un’interazione fra le entità
Ogni relazione ha due versi e per ogni verso esiste un’entità di
partenza e una di arrivo. L’associazione di solito è identificata da un
verbo e viene rappresentata nel modello da un rombo.
Esempio:
Tra le entità Persona e Automobile si può instaurare la relazione
possiede:
Una persona possiede un’automobile
( verso)
Una automobile è posseduta da una persona
( verso )
Persona
21
Possiede
Automobile
Attributi
Gli attributi descrivono le proprietà delle entità
Esempio:
Gli attributi dell’entità Automobile possono essere:
Produttore, Modello, Potenza, Cilindrata, PrezzoListino.
Gli attributi sono caratterizzati da:
• formato: è il tipo di formato assunto dall’attributo. Ad es. Stringa,
Numerico, DataOra …
• dimensione: è la quantità massima di cifre che occorrono per
rappresentarlo
• opzionalità: indica se è obbligatorio o facoltativo
22
Un esempio
Entità
Persona
Relazione
Possiede
Automobile
Attributi
Cognome
Nome
Titolo
Codice Fiscale
Produttore
Modello
Potenza
Cilindrata
PrezzoListino
Notare la differenza fra PrezzoListino e PrezzoAcquisto
23
Associazione UNO a UNO
Ad ogni elemento dell’entità 1 corrisponde uno ed un solo elemento
dell’entità 2
Studente
1
Consegue 
 E’ Conseguito da
Diploma di
1 Laurea
Esempio:
All’università ciascun studente quando si laurea avrà un suo diploma
di laurea (solo suo!)
24
Associazione UNO a MOLTI
Ad ogni elemento dell’entità 1 possono corrispondere più elementi
dell’entità 2, mentre ad ogni elemento dell’entità 2 ne corrisponde uno
solo dell’entità 1
Studente
1
Sostiene 
 Valuta

Prova di
esame
Esempio:
Uno stesso studente sostiene più prove di esame, una per ciascun
insegnamento del suo piano di studi. Ciascun esame registrato si
riferisce ad un singolo studente.
25
Associazione MOLTI a MOLTI
Ad ogni elemento dell’entità 1 possono corrispondere più elementi
dell’entità 2 e viceversa
Studente

Studia 
 E’ studiata da

Materia
Esempio:
Ogni studente studia più materie (quelle del suo piano di studi) e per
ogni materia ci sono vari studenti che la studiano.
26
Un esempio di schema logico: FILM
Entità
Relazioni tra entità
Diagramma Entità-Relazione (Chen 1970)
27
Attributi di entità
Schema logico (E-R)
Con cardinalità delle relazioni (MIN,MAX)
28
Schema Logico (gerarchie )
29
Schema logico (gerarchie)
30
Schema logico (completo)
31
Modelli di rappresentazione dei dati


A partire dagli anni Settanta il modello dominante è
stato il quello relazionale, proposto da Edgard F. Codd
nel 1970
Per certi tipi di applicazioni (in particolare per basi di
dati accessibili via Web) si fa molto uso di XML (vedi
prossime lezioni)
32
Il modello relazionale

L‟informazione è rappresentata nelle basi di dati sotto
forma di relazioni
r(x,y,z,w)

Due tipi di relazioni rappresentate

Relazioni rappresentate con tabelle che rappresentano un oggetto ed i
suoi attributi
risultato_esame(IUB,4/2/2008,112233,29)

Relazioni tra le tabelle
 Per esempio, tra tabella studente e tabella risultato_esame
33
DB Relazionali. Tabelle



Un database relazionale è formato da un insieme di tabelle
(o relazioni)
Ogni tabella è composta da righe, una diversa dall‟altra.
Esempio: in un elenco telefonico ogni riga è composta di
un cognome, un nome, un indirizzo, un numero di
telefono.
Il tipo dei dati (stringa o numero), il loro significato
(cognome o numero di telefono) e la loro posizione
(prima il cognome, poi il nome, ecc) sono prefissati.
34
Tabelle che rappresentano Relazioni
RECORD
ATTRIBUTO
35
Racord e campi

Ogni riga di una tabella è
strutturalmente identica alle
altre, e viene detta record.

Ogni record è composto da
valori di tipo diverso, detti
campi.

I campi sono definiti una volta
per tutte in uno schema della
tabella.
36
Tabelle (o Relazioni)

Una tabella è relativa ad una entità.

Ogni riga della tabella corrisponde ad un‟istanza di questa entità.
37
Esempio
SCHEMA della RELAZ.
RECORD
ATTRIBUTO
VALORE (o CAMPO)
Materia Data
Matr.
Voto
IDUL
4/2/10
112233 29
no
IUC
4/2/10
114422 30
si
risultato_esame(IDUL,4/2/2010,112233,29)
38
Lode?
Un altro esempio
STUDENTE
MATRICOLA
COGNOME
NOME
DATA
NASCITA
Rossi
Mario
11/11/1973
….
112233
….
studente(112233,Rossi,Mario,11/11/1973)
39
L’organizzazione dei dati
40
Schema e istanze

In ogni base di dati esistono:


41
lo schema, sostanzialmente invariante nel tempo, che ne descrive
la struttura (aspetto intensionale); nell‟esempio, le intestazioni
delle tabelle
l‟istanza, costituita dai valori attuali, che possono cambiare molto
e molto rapidamente (aspetto estensionale); nell‟esempio, il
“corpo” di ciascuna tabella.
Il concetto di relazione





D1, D2, …, Dn (n insiemi anche non distinti)
il prodotto cartesiano D1 ×D2 ×…×Dn , è l‟insieme di
tutte le n-uple ordinate (d1, d2, …, dn) tali che d∈D1,
d2∈D2 , …, dn∈Dn.
una relazione matematica su D1, D2, …, Dn è un
sottoinsieme del prodotto cartesiano D1 × D2 × … × Dn.
D1, D2, …, Dn sono i domini della relazione.
Il numero di n-uple è la cardinalità della relazione. Nelle
applicazioni reali, la cardinalità è sempre finita.
42
Proprietà di una relazione

In base alle definizione, una relazione matematica è un insieme di nuple ordinate: (d1, d2, …, dn) tali che d1∈D1 , d2∈D2 , …, dn∈Dn .

Una relazione è un insieme, quindi:



non è definito alcun ordinamento fra le n-uple;
le n-uple di una relazione sono distinte l‟una dall‟altra;
Dentro a ciascuna n-upla c‟è un ordine! .L‟i-esimo valore di ciascuna
proviene dall‟i -esimo dominio, ovvero è definito un ordinamento fra
i domini.
43
Esempio
string × string × integer × integer


Ciascuno dei domini ha un ruolo distinto, distinguibile
attraverso la posizione: il primo e il terzo dominio si
riferiscono a nome e reti della squadra ospitante; il secondo e
il quarto a nome e reti della squadra ospitata.
La struttura è posizionale
44
Tabelle e relazioni

Una tabella rappresenta una relazione se




i valori di ciascuna colonna sono fra loro omogenei (dallo stesso
dominio)
le righe sono diverse fra loro
le intestazioni delle colonne sono diverse tra loro
Inoltre, in una tabella che rappresenta una relazione


45
l‟ordinamento tra le righe è irrilevante
l‟ordinamento tra le colonne è irrilevante
Chiave primaria



Ogni riga di ogni tabella (cioè ogni rappresentazione
di un oggetto) deve avere almeno un campo che
permetta di identificare quella riga in modo univoco
non deve dunque esserci un altro record con lo
stesso valore per quell‟attributo, anche se il valore
può apparire in altri attributi
Tale attributo è chiamato chiave primaria
46
Chiave primaria, un esempio
STUDENTE
MATRICOLA
COGNOME
NOME
DATA
NASCITA
Rossi
Mario
11/11/1973
….
112233
….
47
Chiave primaria multipla
A volte la chiave è definita da più campi insieme.
NOME
COGNOME
ESAME
APPROVATO?
Carlo
Rossi
IUB
si
Mario
Rossi
IUB
no
Carlo
Bianchi
IUC
si
48
Chiavi artificiali
RISULTATO_ESAME
ID
MATERIA
1
….
2
IUB
3
….
DATA
MATRICOLA VOTO
4/2/2008
112233
Tipicamente, numeri consecutivi, uno per record
49
29
Valori nulli (NULL)
PERSONAGGI BIBLICI
NOME
Età
PADRE
Matusalemme
968
Enoch
Eva
NULL
NULL
….
Il valore NULL può essere dato a campi il cui valore non si conosce,
o per casi in cui il valore non è definito (a volte i due casi sono distinti)
50
Vincoli di integrità
51
Vincolo di integrità

Proprietà che deve essere soddisfatta dalle istanze che rappresentano
informazioni corrette per l‟applicazione

Ogni vincolo può essere visto come una funzione booleana (o un predicato)
che associa ad ogni istanza il valore VERO o FALSO.

Tipi di vincoli:

vincoli intrarelazionali;
casi particolari:
vincoli su valori (o di dominio)
 vincoli di ennupla
vincoli interrelazionali


52
Vincoli di ennupla

Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle
altre ennuple.

Una possibile sintassi: espressione booleana (con AND, OR e NOT) di atomi
che confrontano valori di attributo o espressioni aritmetiche su di essi.

Un vincolo di ennupla è un vincolo di dominio se coinvolge un solo attributo

Esempi:



53
(Voto >=18) AND (Voto <=30)
(Voto =30) OR NOT (Lode = “e lode”)
Lordo = (Ritenute - Netto)
Relazioni tra tabelle

Una base di dati relazionale permette di specificare, oltre
che informazioni su attributi di oggetti, informazioni sulle
relazioni tra oggetti

Per esempio, che un particolare risultato di esame è stato
ottenuto dallo studente Mario Rossi
54
Relazioni tra tabelle
ID
MATERIA
DATA
MATRICOLA
VOTO
4/2/2008
112233
29
….
456789
IUB
….
MATRICOLA
COGNOME
NOME
DATA
NASCITA
Rossi
Mario
11/11/1973
….
112233
….
55
Operazioni su un Database relazionale

Operazioni tipiche su un database relazionale



DEFINIRE nuove tabelle e nuove relazioni
AGGIUNGERE dati
RITROVARE un sottoinsieme delle righe


56
Possibilmente restringendo il ritrovamento ad un sottoinsieme delle
colonne
VISUALIZZARE un sottoinsieme dei dati per scopi particolari
Proiezione e Selezione


PROIEZIONE (πtest): estrazione di una serie di colonne
(attributi) da un DB
SELEZIONE (σtest): estrazione di una serie di righe
(record)

57
Dove test è un test che, se ha successo, aggiunge la
colonna/riga sotto esame alla proiezione/selezione
(rispettivamente)
Esempio: DataBase film (1)
58
Esempio: DataBase film (2)

Selezione su titolo ed anno

Proiezione su selezione per valore dell‟attributo
“nazione”
59
Esempio: DataBase film (3)

Intersezione (⋂) tra gli attori di film diversi

attori NON presenti in un film (differenza, - )
60
Da E-R a database relazionale

La progettazione nello schema E-R contiene costrutti che vanno
“tradotti” nel sistema relazionale. Ciò comporta:
 La eliminazione delle gerarchie, riportando le informazioni su
nodo padre.
 La traduzione delle entità come tabelle, i cui valori saranno i
valori dei singoli individui appartenenti a quella entità
 La connessione tra le tabelle così stabilite
61
DBMS Relazionali

Praticamente tutti i DATABASE MANAGEMENT
SYSTEMS (DBMS) moderni sono basati sul modello
relazionale


E.g., Oracle, Access, MySQL, PostgreSLQ (open source)
Disponibili per i principali sistemi operativi (Windows,
UNIX)
62
Una tabella in Access
63
Relazioni tra tabelle
64
Gerarchie come relazioni
65
Gerarchie come relazioni
‘‘Distribuzione o Produzione’’
66
Entità come Relazioni

In un diagramma ER, le entità sono collezioni di individui, ciascuno
dotato di attributi con valori.
Rese come tabelle:
EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)
FILM(codice, titolo, durata, anno, nazione)
67
Collegare Tabelle

EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)
FILM(codice, titolo, durata, anno, nazione)

Come specificare che una edizione è l‟edizione di un certo film?


Aggiungendo alla tabella EDIZIONE una chiave esterna (qui, il numero di codice del
film).
La chiave si specifica aggiungendo ai valori di EDIZIONE il nome della relazione
che contiene la chiave:
EDIZIONE(codice, titolo, nazione, durata, lingua, vietato, film)

68
Impossibile fare il contrario, visto che un film ha tipicamente molte edizioni:
un campo può contenere un solo valore!
Collegare Tabelle con relazioni di tipo N-a-N

Come specificare che un film ha la relazione di CAST con molti attori,
ed una PERSONA ha spesso recitato in molti FILM?

E‟ necessario indicarlo in maniera indiretta, tramite una nuova relazione (qui,
CAST), che conterrà DUE chiavi esterne:
PERSONA(nome, nazione, data_di_nascita)
FILM(codice, titolo, durata, anno, nazione)
CAST(persona, film, personaggio)
69
Regole di derivazione:
dai diagrammi ER alle tabelle
1.
Ogni ENTITA’ diventa una tabella
2.
Ogni istanza di un’entità sarà perciò un record della tabella
3.
Ogni ATTRIBUTO di un’entità diventa un campo di ciascuno dei record della
tabella e ne eredita le caratteristiche
4.
L’identificatore univoco di un’entità diventa Chiave Primaria (Primary Key) del
record della tabella
5.
L’associazione UNO a UNO diventa una tabella contenente gli attributi di
entrambe le entità
6.
L’associazione UNO A MOLTI si traduce in due tabelle, uno per ciascuna delle
entità della relazione
7.
L’identificatore univoco dell’entità di partenza nell’associazione UNO A MOLTI
diventa Chiave Esterna (Foreign Key) dell’entità di arrivo, cioè l’attributo che è
Chiave Primaria del primo archivio diventa un campo dei record del secondo
archivio
8.
L’associazione MOLTI A MOLTI diventa una nuova tabella in aggiunta alle due
archivi derivate dalle due entità legate dall’associazione. Questa nuova tabella
sarà formata da record che contengono le chiavi primarie delle due tabelle più
gli eventuali attributi dell’associazione
70
Tabella da associazione UNO a UNO
Studente
Nome
Cognome
Matricola
1
Consegue 
 E’ Conseguito da
Diploma di
laurea
1
TipoDiploma
Anno
Voto
L’archivio che deriva è dato dalla sola
tabella DIPLOMATI che contiene come
campi tutti gli attributi di Studente e tutti
quelli di Diploma
71
Tabella Laureati
Archivio
Campo
72
Tipo
Nome
String*25
Cognome
String*25
Matricola
Laureati
Chiave
PK
Long Int
TipoLaurea
String*50
Anno
Integer
Voto
Integer
Tabella da associazione UNO a MOLTI
Studente
1
Sostiene 
 Valuta
Nome
Cognome
Matricola
Classe

Prova di
Esame
Materia
TipoEsame
Voto
DataSvolgim
IDVerifica
L’archivio che deriva è formato da 2 tabelle:
Studenti con campi: Nome,Cognome,Matricola (PK)
Verifiche con campi: Materia, TipoVerifica, Voto, DataSvolgim
e MatricolaStudente (FK)
73
Tabelle Studenti ed Esami
Archivio
Studenti
Campo
74
Tipo
Nome
String *25
Cognome
String *25
Matricola
Prove di Esame
Chiave
PK
Long Int
Materia
String*25
TipoVerifica
String*25
Voto
Real
DataSvolgim
Date
IDVerifica
PK
Long Int
MatricolaStudente
FK
Long Int
Archivio da associazione MOLTI a MOLTI
Docente
Insegna 

 E’ tenuto da

Corso
diventa
Docente
CognomeNome
ID
Materia
Qualifica
75
1
Modulo

NumeroOre

1
Corso
Sigla
NumeroAlunni
Aula
Archivi Docenti, Classi, Insegna
Archivio
Campo
Chiave
CognomeNome
Docenti
ID
Modulo
String*50
PK
Integer
Materia
String*25
Qualifica
String*15
Sigla
ClasCorsosi
Tipo
PK
String*5
NumeroAlunni
Integer
Aula
Integer
IDdoc
PK
Integer
SiglaModulo
PK
String*5
NumeroOre
Integer
Regole di derivazione
76
Il linguaggio SQL
per interrogare un database


Le informazioni in una base di dati possono essere ritrovate
mediante INTERROGAZIONI
In un database relazionale moderno le interrogazioni sono fatte
utilizzando un linguaggio di interrogazione chiamato SQL (Simple
Query Language)
77
Sintassi di SQL

Diversi tipi di comandi:


DDL (Data Definition Language: comandi per la creazione e
l‟update del DB)
DML (Data Manipulation Language: comandi per la
interrogazione del DB)
Create TABLE persona (
Nome
varchar(50) PRIMARY
KEY,
Nazione
varchar(50),
Data_Nascita
date
);
78
SELECT nome, nazione,
data_nascita
FROM persona
WHERE nazione = ‘Italia’;
Creare una tabella con SQL
CREATE TABLE persona (
Codice
Titolo
Anno
Durata
Nazione
);
79
integer PRIMARY KEY,
varchar(50), NOT NULL,
varchar(4),
integer,
varchar(50), DEFAULT „Italia‟,
Creare una associazione tra tabelle con SQL
CREATE TABLE cast (
persona
film
personaggio
PRIMARY KEY
);
80
varchar(50), REFERENCES persona(nome),
integer, REFERENCES film(codice),
varchar(50),
(persona, film)
Popolare un DB con SQL
Comandi INSERT, UPDATE, DELETE
1.
INSERT INTO film VALUES (5, „Il sesto senso‟, 1999, 107, „USA‟);
2.
INSERT INTO film(codice, titolo, anno) VALUES (5, „Il sesto senso‟, 1999);
3.
UPDATE film SET durata = 130 WHERE titolo = „Il senso senso‟;
4.
DELETE FROM persona WHERE nazione = „Italia‟;
Il secondo comando inserisce valori NULL per gli attributi non specificati; Il
quarto comando distrugge un‟intera tupla (record) della tabella persona se
sono verificate le condizioni indicate
81