Analisi e Basi di Dati
Capitolo 1: Introduzione al modello
relazionale dei dati
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Contenuti



Introduzione
Rappresentazione dei dati
Recupero ed interrogazione dei dati
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Introduzione

Perché conoscere i database?


Grande diffusione di tecnologie che tracciano ogni tipo di
attività
Perché analizzare i dati?


A volte è lo scopo principale della propria attività
In generale: conoscere il modo in cui le attività si svolgono
aiuta a:


Rilevare comportamenti anomali
Ottimizzare le risorse allocate
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Database



DBMS: Data Base Management System, ovvero sistema
per la gestione di basi di dati
E' un sistema software per la gestione dei dati
Permette di:




creare un database
gestirlo (aggiornamento dati, copie di sicurezza, ecc.)
controllarne gli accessi
recuperare le informazioni in esso contenute.
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Rappresentazione dei dati

Modello relazionale dei dati




I dati sono suddivisi in tabelle
Tra le tabelle possono sussistere delle relazioni
Ogni tabella contiene “pezzi” dell'informazione
Le relazioni consentono di collegare tra loro pezzi di
informazione
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Modello relazionale: esempio


Database universitario
Un ateneo vuole mantenere tutte le informazioni
anagrafiche dei propri studenti, con numero di matricola
Studenti
Matricola
6554
8765
3456
9283
Cognome
Pinco
Neri
Rossi
Verdi
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Nome
Pallino
Paolo
Maria
Luisa
Data di nascita
05/12/1978
03/11/1976
01/02/1978
12/11/1979
Modello relazionale: esempio/2


L'ateneo vuole tenere traccia anche dei corsi e degli
esami sostenuti da ogni studente
Occorrono due nuove tabelle
Corsi
Codice
1
2
4
Titolo
Analisi
Chimica
Chimica
Docente
Sempronio
Bruni
Verdi
Esami
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Studente
3456
3456
9283
6554
Voto
30
24
28
26
Corso
4
2
1
1
Modello relazionale: esempio/2

Nota: la tabella Esami contiene dei “riferimenti” alle
righe delle altre tabelle
Studenti
Matricola
6554
8765
3456
9283
Cognome
Pinco
Neri
Rossi
Verdi
Nome
Pallino
Paolo
Maria
Luisa
Corsi
Esami
Studente
3456
3456
9283
6554
Voto
30
24
28
26
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Data di nascita
05/12/1978
03/11/1976
01/02/1978
12/11/1979
Codice
1
2
4
Corso
4
2
1
1
Titolo
Analisi
Chimica
Chimica
Docente
Sempronio
Bruni
Verdi
Modello relazionale: Concetti di base

Terminologia di riferimento per DBMS relazionali



una base di dati (relazionale) è una collezione di tabelle;
una tabella è una collezione di ennuple (dette anche
“tuple”);
una ennupla è una collezione di coppie “attributo-valore”,
corrispondente ad una riga della tabella

Il termine “attributo” indica la colonna della tabella
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Modello relazionale: Concetti di base
tabella
(istanza)
Studenti
ennupla
attributo
valore
matricola
cognome
nome
dataNascita
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/02/1978
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Modello relazionale: Concetti di base


Schema di una base di dati: definizione di ciò che un
database può contenere ed il modo in cui le
informazioni sono organizzate
Elementi di uno schema:




Quali tabelle contiene
Quali attributi e di quale tipo (numerico, stringhe, date, ecc.)
sono contenuti in una tabella
Quali relazioni sussistono tra le tabelle
Altri vincoli di varia natura (cfr. prossimi capitoli)
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Recupero ed interrogazione dei dati

La memorizzazione dei dati in un DBMS avviene
principalmente per due motivi:



Mantenere un archivio dei dati
Consentire di recuperare all'occorrenza parti di informazione
utili per determinati scopi
Vediamo una carrellata delle operazioni fornite dati
DBMS per il secondo obiettivo
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
DBMS: Selezione


permette di prelevare da una tabella tutte le ennuple
che soddisfano alcune condizioni specificate
Esempio: Selezionare gli studenti aventi numero di
matricola inferiore a 7000

Condizione =
“matricola < 7000”
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
DBMS: Selezione

Condizione = “matricola < 7000”
Studenti
Matricola
6554
8765
3456
9283
Cognome
Pinco
Neri
Rossi
Verdi
Nome
Pallino
Paolo
Maria
Luisa
Data di nascita
05/12/1978
03/11/1976
01/02/1978
12/11/1979
(Selezione)
Matricola
6554
3456
Cognome
Pinco
Rossi
Nome
Pallino
Maria
Data di nascita
05/12/1978
01/02/1978
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
DBMS: Proiezione


Permette di selezionare da una tabella alcune colonne,
scartando quindi le altre
Esempio: estrarre i soli nominativi degli studenti del
nostro database

Operazione = proiettare la tabella “Studenti” sugli attributi
(colonne) “Cognome” e “Nome”
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
DBMS: Proiezione

Operazione = proiettare la tabella “Studenti” sugli
attributi (colonne) “Cognome” e “Nome”
Studenti
Matricola
6554
8765
3456
9283
(Proiezione)
Cognome
Pinco
Neri
Rossi
Verdi
Cognome
Pinco
Neri
Rossi
Verdi
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Nome
Pallino
Paolo
Maria
Luisa
Nome
Pallino
Paolo
Maria
Luisa
Data di nascita
05/12/1978
03/11/1976
01/02/1978
12/11/1979
DBMS: Join


Combina due tabelle, le ennuple della prima tabella con
le ennuple della seconda
richiede di indicare un attributo per ognuna delle due
tabelle, che faranno da collegamento


tra tutte le possibili coppie di ennuple verranno selezionate
solo quelle in cui i corrispondenti attributi di “collegamento”
hanno ugual valore
Esempio: estrarre una tabella che per ogni esame indica
le informazioni presenti in “Esami” più tutti i dati dei
corrispondenti corsi

Join tra Esami e Corsi, con “Corso (tab. Esami) = Codice (tab.
Corsi)”
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
DBMS: Join

Esami
Join tra Esami e Corsi, con “Corso (tab. Esami) = Codice
(tab. Corsi)”
Studente
3456
3456
9283
6554
Voto
30
24
28
26
←
Esami join
Corsi
(Corso=Codice)
Studente
3456
3456
9283
6554
Corso
4
2
1
1
Esami
Voto
30
24
28
26
Corsi
Codice
1
2
4
→←
Corso
4
2
1
1
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
Codice
4
2
1
1
Titolo
Analisi
Chimica
Chimica
Corsi
Titolo
Chimica
Chimica
Analisi
Analisi
Docente
Sempronio
Bruni
Verdi
→
Docente
Verdi
Bruni
Sempronio
Sempronio
DBMS: Operatori insiemistici

Classiche operazioni definite nella teoria degli insiemi.




Mettono insieme ennuple provenienti da tabelle diverse ma
aventi lo stesso schema
Unione di due tabelle: contiene tutte le ennuple che
appartengono ad almeno una delle tabelle di partenza
Intersezione di due tabelle: contiene tutte le ennuple
che appartengono ad entrambe le tabelle di partenza
Differenza di due tabelle: contiene tutte le ennuple che
appartengono alla prima tabella e non alla seconda
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola
DBMS: sommario
Selezione
Proiezione
Join
Unione,
Intersezione,
Differenza
M. Nanni, S. Rinzivillo, Analisi e basi di dati © 2011 De Agostini Scuola