Le basi di dati e il modello relazionale

Insegnamento di Informatica – a.a. 2016-17
Macerata, AA. 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello gerarchico: schema
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello reticolare: schema
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
Modello relazionale: schema
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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)
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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)
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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)
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2016-17
R
A
S
B
B
C
1
6
2
7
3
8
9
5
7
7
8
9
A
B
C
D
2
2
2
3
3
4
4
5
12
7
8
10
C
D
1
1
2
2
3
3
4
5
6
9
7
7
8
8
10
10
R JOIN S
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© 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
Dipartimento di Scienze politiche, della comunicazione e delle relazioni internazionali - Corso di Laurea in Scienze della comunicazione
© Francesco Ciclosi – Settembre 2016
CC-BY-SA 4.0 – Common Deed – Legal Code