Le basi di dati e il modello relazionale

Insegnamento di Informatica – a.a. 2016-17
Macerata, A.A. 2016-2017
Le basi di dati e il modello
relazionale
INSEGNAMENTO DI INFORMATICA – A.A. 2016-17
Francesco Ciclosi
Insegnamento di Informatica – a.a. 2016-17
Modelli di databse
 Esistono vari tipi di modelli per le basi di dati,
tra i quali i più noti sono:
• Gerarchico
• Reticolare
• Relazionale
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello gerarchico: schema
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello gerarchico: considerazioni (1/2)
 È adatto a rappresentare situazioni dove è
possibile fornire all’insieme dei dati una struttura
con entità che stanno in alto ed entità che stanno
in basso, secondo uno schema ad albero
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello gerarchico: considerazioni (2/2)
 In esso i nodi rappresentano le entità e gli archi
rappresentano le associazioni
 Presenta dei limiti:
• La rigidità della struttura di dati creata
• La possibile ridondanza dei dati
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello reticolare: schema
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello reticolare: considerazioni (1/2)
 Le entità rappresentano i nodi e le
associazioni rappresentano gli archi di uno
schema a grafo orientato
 È un’estensione del modello gerarchico
• Consente anche associazioni tra entità che stanno
in basso, e non solo dall’alto verso il basso
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello reticolare: considerazioni (2/2)
 Si differenzia dal
modello gerarchico
perché un record figlio
può avere un numero
qualsiasi di padri
• Ciò consente di evitate
situazioni di ripetizione
di dati uguali
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: schema
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Il requisito di indipendenza dei dati (1/2)
 Il modello relazionale si basa sui concetti di
relazione e di tabella
 Risponde al requisito di indipendenza dei dati
distinguendo tra:
• Livello fisico (come i dati sono fisicamente
memorizzati nel calcolatore)
• Livello logico (relativo all’organizzazione dei dati e
al modo in cui vi si accede)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Il requisito di indipendenza dei dati (2/2)
 Gli utenti e i programmatori fanno riferimento
al solo livello logico
 Le strutture fisiche di memorizzazione dei dati
sono di esclusiva pertinenza del DBMS, che si
occupa anche dell’esposizione del livello logico
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: considerazioni (1/2)
 Nasce nel 1970 e si basa su alcuni concetti
fondamentali, tipicamente matematici
 Rappresenta il database come un insieme di
tabelle
 Si adatta in modo naturale alla classificazione e
alla strutturazione dei dati
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: considerazioni (2/2)
 Assegna grande importanza all’uso rigoroso del
linguaggio matematico, con due obiettivi
importanti:
• Utilizzare un linguaggio conosciuto a livello
universale (quello matematico)
• Eliminare i problemi di ambiguità nella terminologia
e nella simbologia
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: definizione (1)
Si basa sul concetto matematico di relazione tra insiemi di oggetti
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: definizione (2)
 Dati n insiemi A1, A2, A3, …, An, si dice relazione un
sottoinsieme dell’insieme di tutte le n-uple a1, a2, a3,
…, an che si possono costruire prendendo nell’ordine
un elemento a1 dal primo insieme A1, a2 dal secondo
insieme A2, e così via
• Il numero n si chiama grado della relazione
• Gli insiemi Ai si chiamano domini della relazione
• Il numero delle n-uple (indicate anche con il termine
tuple) si chiama cardinalità della relazione
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: definizione (3)
 La relazione viene rappresentata mediante una
tabella, con
• tante colonne quante sono i domini (grado della
relazione)
• tante righe quante sono le n-uple (cardinalità della
relazione)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: definizione (4)
 La relazione rappresenta un’entità
• ogni n-upla rappresenta un’istanza dell’entità
• le colonne rappresentano gli attributi dell’entità
• il dominio è l’insieme dei valori che possono essere
assunti da un attributo
 La chiave della relazione è un attributo o una
combinazione di attributi che identificano
univocamente le n-uple all’interno della relazione
• ovvero ogni riga della tabella possiede valori diversi per
l’attributo (o gli attributi) chiave
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali: selezione (select)
 Genera una nuova relazione costituita solo dalle n-uple della
relazione di partenza che soddisfano una determinata condizione
• Le righe con i valori degli attributi corrispondenti alla condizione
prefissata
 La relazione ottenuta possiede tutte le colonne della relazione di
partenza, (stesso grado) ma ne ha cardinalità minore o uguale
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali: proiezione (project)
 Genera una nuova
relazione estraendo dalla
tabella iniziale due o più
colonne corrispondenti agli
attributi prefissati
 La relazione risultante ha:
• grado minore o uguale al grado
della relazione di partenza
• cardinalità di norma uguale a
quella di partenza
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali: congiunzione (join)
 Combina due relazioni aventi uno o più attributi in
comune, generando una nuova relazione che contiene
le righe della prima e della seconda tabella
 Questo tipo di congiunzione viene detta join naturale
(natural join)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Tipi di Join (1/3)
 Equi-join
• la relazione viene realizzata facendo corrispondere valori
uguali per attributi comuni nelle due tabelle
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
R
A
1
6
9
5
S
B
B
C
2
7
7
7
3
8
8
9
A
B
C
C
D
2
2
2
3
3
4
4
5
12
7
8
10
D
1
1
6
2
2
7
3
3
8
4
5
10
9
7
8
10
R JOIN S
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Tipi di Join (2/3)
 Left join
• elenca comunque tutte le righe della prima tabella
congiungendo tra le righe della seconda solo quelle
per le quali si trovano valori corrispondenti per
l’attributo comune
 Right join
• elenca comunque tutte le righe della seconda tabella
congiungendo tra le righe della prima solo quelle per
le quali si trovano valori corrispondenti per
l’attributo comune
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
R
A
B
C
S
B
C
D
1
2
3
2
3
4
6
7
8
2
3
5
9
7
8
2
4
12
5
7
9
7
8
10
A
B
C
A
D
B
C
D
1
2
3
4
1
2
3
4
1
2
3
5
1
2
3
5
6
7
8
10
2
4
12
9
7
8
10
6
7
8
10
5
7
9
9
7
8
10
R Left Join S
R Right Join S
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Tipi di Join (3/3)
 Self-join
• combina le righe di una tabella con le righe della
stessa tabella quando sono presenti valori
corrispondenti per attributi, cioè due attributi con lo
stesso dominio
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali: l’unione
 In casi particolari consente di ottenere una nuova
tabella, che contiene le righe della prima e della
seconda tabella con riduzione a una di quelle ripetute
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali: l’intersezione
 In casi particolari genera, a partire da due tabelle
omogenee, una nuova tabella che contiene soltanto
le righe comuni
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Le operazioni relazionali: la differenza
 In casi particolari genera una nuova tabella che
contiene soltanto le righe della prima tabella che
non sono contenute nella seconda tabella
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Structured Query Language
Insegnamento di Informatica – a.a. 2016-17
SQL – Structured Query Language
 È un linguaggio di programmazione per
database relazionali
 Consente di operare sui dati mediante:
• Interrogazione
• Modifica
• Cancellazione
 Utilizza le query: strumenti di programmazione
 Consente di amministrare il sistema di database
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
SQL: uno e trino
 Il linguaggio SQL è diviso in tre sezioni:
• Data Definition Language
o Raggruppa le operazioni attraverso le quali è possibile
creare, modificare e cancellare i database
• Data Manipulation Language
o Raggruppa le operazioni attraverso le quali è possibile
inserire, leggere e cancellare i dati
• Data Control Language
o Raggruppa le operazioni attraverso le quali è possibile
amministrare gli utenti e i permessi
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Gli operatori SQL
 Il linguaggio SQL utilizza una serie di operatori:
• Operatori di confronto
o Come ad esempio l’operatore EXISTS
• Operatori aritmetici
• Operatori condizionali
o Quale l’operatore WHERE
• Operatori logici
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
I miei contatti
linkedin
http://it.linkedin.com/pub/francesco-ciclosi/62/680/a06/
facebook
https://www.facebook.com/francesco.ciclosi
twitter
@francyciclosi
www
http://docenti.unimc.it/f.ciclosi
http://www.francescociclosi.it
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code