Sistemi per il recupero delle informazioni
PARTE - V
MODELLO RELAZIONALE DEI DATI
PROGETTAZIONE

Ricordiamo le fasi della progettazione di una Base di Dati
ESEMPIO
ESEMPIO
VIENE TRADOTTO NELLO SCHEMA
MUSEI (NomeM, Città, Indirizzo, Direttore)
ARTISTI (NomeA, Nazionalità, DataN, DataM)
OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)
PERSONAGGI (Personaggio, Codice*)
DIPINTI (Codice*, Tipo, Larghezza, Altezza)
SCULTURE (Codice*, Materiale, Altezza, Peso)
ENNUPLA E RELAZIONE
I meccanismi per definire una base di dati con il modello relazionale
sono solo due:
• l’ennupla
• la relazione.
Ennupla. È un insieme finito di coppie (Attributo, valore atomico)
Relazione. È un insieme finito (eventualmente vuoto) di ennuple con la
stessa struttura.
I campi di un’ennupla sono atomici (numeri, stringhe o il valore NULL).
Un’ennupla si usa per rappresentare entità e la relazione si usa per
rappresentare classi di entità.
TERMINOLOGIA - I
 attributo: corrisponde (non sempre) ad un attributo del modello E-R.
Diversamente dal modello E-R, gli attributi sono sempre univoci (ad un sol
valore) ed atomici (non composti)

L’ordine degli attributi non è significativo
 dominio (di un attributo): è l’insieme dei valori che può assumere un
attributo.
 chiave primaria
di una relazione: un attributo che identifica
univocamente le ennuple della relazione. Gli attributi della chiave primaria
vengono sottolineati
TERMINOLOGIA - II
 Una relazione si definisce dandole un nome ed elencando fra parentesi
tonde il tipo delle sue ennuple. La definizione di una relazione è detta
schema della relazione
R(A1:T1, A2:T2,..., An:Tn)
 R è il nome della relazione
 A1, A2,... sono gli attributi della relazione
 T1, T2,... sono i tipi degli attributi (interi, reali, booleani, stringhe)
 Per semplicità omettiamo la specifica dei tipi, per cui lo schema di relazione è
R(A1, A2,...,An)
TERMINOLOGIA - III
 Lo schema della relazione è la descrizione della struttura di una
relazione
 Un’istanza di uno schema di relazione è un insieme finito di ennuple.
 osserviamo che tutte le ennuple di una relazione hanno la stessa struttura
 Lo schema relazionale è la descrizione della struttura di una base di
dati
 insieme di schemi di relazione
 insieme di vincoli
RELAZIONE E TABELLA
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
ORARIO (Insegnamento, Docente, Aula, Ora)
Relazione e tabella sono sinonimi
SCHEMA
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
ORARIO (Insegnamento, Docente, Aula, Ora)
Le colonne della tabella formano
lo schema della relazione
ISTANZE
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
ORARIO (Insegnamento, Docente, Aula, Ora)
I contenuti delle righe della tabella formano
le istanze della relazione
Schema di Base di dati
R= {CORSI(Corso, Docente, Aula),
AULE(Nome, Edificio, Piano),
CORSISEDI(Corso, Aula, Edificio, Piano) 
DATABASE
Corsi
Aule
Docente Aula
Corso
Basi di dati Rossi DS3
Neri
N3
Sistemi
Bruni
N3
Reti
Bruni
G
Controlli
CorsiSedi
Nome
DS3
N3
G
Edificio Piano
OMI
Terra
OMI
Terra
Pincherle Primo
Corso
Aula
Edificio
Piano
Sistemi
Reti
N3
N3
OMI
OMI
Terra
Terra
Controlli
G
Pincherle Primo
Un database e’ un insieme di tabelle
CHIAVI ESTERNE
Le associazioni tra i dati sono rappresentate attraverso i valori di
opportuni campi, chiamati chiavi esterne, che assumono come valori
quelli della chiave primaria di un’altra relazione.
In altre parole una chiave esterna è un attributo (od un insieme di attributi) di
una relazione R che assume i valori della chiave primaria di un’altra relazione
S.
Serve a rappresentare un’associazione tra R ed S
ESEMPIO
ESEMPIO



Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di
SiglaCDS nella relazione CDS
Se in una istanza di STUDENTI l’attributo SiglaCDS assume il valore “XYZ”,
deve esistere, nella istanza di CDS una ennupla con SiglaCDS = “XYZ”.
Il motivo è ovvio; se una studente è iscritto a “XYZ”, deve esistere il Corso
di Studi “XYZ”
Tale proprietà si chiama Vincolo di integrità referenziale, e deve essere
sempre soddisfatto da una chiave esterna:
DA MODELLO A OGGETTI A MODELLO
RELAZIONALE
La trasformazione di uno schema a oggetti in uno schema relazionale avviene
eseguendo i seguenti passi:
1.
2.
3.
4.
5.
6.
rappresentazione delle classi
rappresentazione delle associazioni uno a uno e uno a molti;
rappresentazione delle associazioni molti a molti o non binarie;
rappresentazione delle gerarchie di inclusione;
rappresentazione degli attributi multivalore;
appiattimento gli attributi composti
1. Rappresentazione delle classi
Una classe C è rappresentata da una relazione R i cui attributi sono quelli
di C
si traduce in
Studenti(Matricola, Nome, AnnoImmatric)
2. Rappresentazione delle associazioni uno a uno e uno a
molti
Come abbiamo già visto nell’esempio degli studenti e dei corsi di studi, le
associazioni uno a molti si rappresentano aggiungendo agli attributi della
relazione rispetto a cui l’associazione è univoca una chiave esterna che
riferisce l’altra relazione.
ESEMPIO: la relazione tra corsi di studi e studenti, essendo univoca rispetto ai
corsi di studi, si rappresenta aggiungendo agli studenti una chiave esterna
SiglaCDS.
Quando l’associazione è uno ad uno la chiave esterna si aggiunge ad una
qualunque delle due relazioni, preferendo quella rispetto a cui
l’associazione è totale.
Se l’associazione ha degli attributi, questi vanno aggiunti alla relazione a cui si
aggiunge la chiave esterna.
ESEMPIO
Studenti(Matricola, Nome, AnnoImmatric, Codice*)
CorsidiLa(Codice, Nome, Tipo)
la chiave esterna Codice* rappresenta l’associazione è_iscritto
N.B. È un grave errore fare il contrario. Lo schema:
Studenti(Matricola, Nome, AnnoImmatric)
CorsidiLa(Codice, Nome, Tipo, Matricola*)
rappresenta Corsi di Laurea ai quali può essere iscritto un solo studente!
3. Rappresentazione delle associazioni molti a molti o non
binarie
Un’associazione molti a molti tra due classi si rappresenta aggiungendo
allo schema una nuova relazione che contiene due chiavi esterne che
riferiscono le due relazioni coinvolte.
precisamente:
se A è un’associazione multivalore da R ad S e da S ad R, A è rappresentata
con uno schema di relazione in cui gli attributi sono le chiavi primarie pkR di R e
pkS di S.
A (pkR*, pkS*)
Se l’associazione ha degli attributi, questi attributi vengono aggiunti alla nuova
relazione, e non vanno a far parte della chiave della nuova relazione.
ESEMPIO
CorsidiLa(Codice,Nome,Facoltà,Tipo)
Docenti(CodDoc, Settore)
Insegna(Codice*, CodDoc*)
Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di
oggetti in associazione.
Il docente identificato dal CodDoc 1592 insegna ai
corsi di laurea identificati dai codici Inf, SBC e Mat , il
docente identificato dal CodDoc 3014 insegna al
corso di laurea identificato dai codici Inf, ecc...
4. Rappresentazione delle gerarchie fra classi
Partizionamento orizzontale
Si definiscono tre relazioni RA(XA), RB(XA,XB), RC(XA, XC), dove RA
contiene solo gli elementi della classe A che non stanno in nessuna
delle sottoclassi, mentre RB ed RC contengono tutti gli elementi di B e
di C
NOTA: se le sottoclassi costituiscono una copertura, la relazione RA(XA) non
viene definita perché sarebbe sempre vuota.
ESEMPIO: trattandosi di sottoclassi che non soddisfano il vincolo di copertura si
definiscono le relazioni Persone con attributi CodFisc, Nome, Telefono,
Studenti con attributi CodFisc, Nome, Telefono, Matricola e Facoltà e la
relazione Lavoratori con attributi CodFisc, Nome, Telefono, Attività e
Reddito. La relazione Persone contiene le informazioni delle persone che
non sono né studenti né lavoratori, la relazione Studenti contiene le
informazioni degli studenti e la relazione Lavoratori contiene le informazioni
dei lavoratori.
Persone(CodFisc, Nome, Telefono)
Lavoratori(CodFisc*, Attività, Reddito)
Studenti(CodFisc*, Matricola, Facoltà)
23
ESEMPIO

Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli
attributi di ciascuna classe
Anche con questa soluzione viene ignorata la gerarchia: si perde la
superclasse
Si osservi che con nessuna delle tre soluzioni è in generale possibile
esprimere i vincoli strutturali della gerarchia, vale a dire i vincoli di
disgiunzione e di totalità
5. Rappresentazione delle proprietà multivalore
Una proprietà multivalore di una classe C si rappresenta eliminando il
corrispondente attributo da C e creando una relazione con due
attributi: una chiave esterna che fa riferimento alla chiave primaria di C
ed un attributo che corrisponde all’attributo multivalore da
trasformare.
Un oggetto con chiave primaria K ed in cui l’attributo assume valore A1, ..., An si
rappresenta poi inserendo nella nuova relazione n coppie (K, A1), ..., (K,An).
ESEMPIO: si immagini che un utente abbia attributi Codice, Cognome e
Telefoni, con Telefoni multivalore.
Applicando la trasformazione, si ottengono le due seguenti relazioni:
Utenti(Codice, Cognome)
TelefoniUtenti(Codice*, Telefono)
ESEMPIO
Film(CodFilm,Titolo,Regista,Anno)
Attori(CodFilm*, Attore)
6. Appiattimento degli attributi composti
Se un attributo A di uno schema di relazione è di tipo strutturato con
campi Ai, si sostituisce A con gli attributi Ai.
Se A faceva parte della chiave primaria dello schema di relazione, si sostituisce
A con gli attributi Ai nella chiave, e poi si verifica che non esista un
sottoinsieme degli attributi della nuova chiave primaria che è esso stesso
una chiave.
Sullo schema relazionale ottenuto si ripetono questa trasformazione e la
precedente finché esistono schemi di relazioni con proprietà composte e
proprietà multivalore.
ESEMPIO: se gli Utenti hanno un attributo strutturato Indirizzo con attributi Via,
CAP e Città, applicando la trasformazione alla relazione
Utenti(Codice, Cognome, Indirizzo)
si ottiene lo schema di relazione
Utenti(Codice, Cognome, Via, CAP, Città)
Riassumendo
Le regole di traduzione
 Entità: diventano tabelle ed i loro identificatori chiavi primarie
 Associazioni 1-1: se obbligatorie si procede come per le 1-N scegliendo il
lato in cui includere gli attributi e la chiave esterna; se una opzionale si
includono gli attributi e la chiave esterna sul lato“obbligatorio”; se entrambe
opzionali si costruisce una tabella autonoma come per il caso N-N.
 Associazioni1-N:gli attributi dell’associazione e la chiave primaria della
tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa
all’entità dal lato“1”.
 Associazioni N-N: diventano tabelle con chiave primaria formata
dall’unione delle chiavi delle entità coinvolte
Confronto tra modello E-R e modello
Relazionale
Nonostante una evidente analogia tra
Classe e Relazione
Oggetto e Ennupla
Attributo(E-R) e Attributo(Rel)
sussiste in realtà una significativa differenza tra i concetti nei due modelli



Non sempre una relazione rappresenta una classe: può rappresentare una
associazione o un attributo multivalore
Non sempre un’ ennupla rappresenta un oggetto: può rappresentare una
coppia di oggetti in associazione o un possibile valore di un attributo
multivalore
Non sempre un attributo Rel rappresenta un attributo E-R: può
rappresentare un oggetto di un’altra classe (chiave esterna)
Esercizio

La segreteria di un corso di laurea deve gestire alcune informazioni
relative all’orario delle lezioni.
 informazioni: aule, corsi, lezioni
 le aule sono identificate da un codice, di ogni aula interessa il
numero dei posti, l’edificio in cui è situata, se ha o non ha
proiettore
 alcune aule sono dotate di calcolatori, in questo caso interessa
sapere il numero dei pc
 i corsi sono identificati da un codice; di ogni corso interessa il
nome e il docente
 le lezioni sono caratterizzate da un’ora d’inizio, un’ora di fine,
un giorno della settimana, il semestre
 ogni lezione è tenuta in un’aula e si riferisce ad un corso
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
Es: PERSONE(Nome, SecondoNome, Cognome)
Nome
Franklin
SecondoNome
Delano
Cognome
Roosevelt
Winston
Charles
Churchill
De Gaulle
Josip
Stalin
Informazione incompleta: soluzioni?

Non conviene (anche se spesso si fa) usare valori del dominio (0,
stringa nulla, “99”, ...):
potrebbero non esistere valori “non utilizzati”
- in fase di utilizzo (nei programmi) sarebbe necessario ogni volta
tener conto del “significato” di questi valori
-

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
Troppi valori nulli
studenti
Matricola
Cognome
Nome
Data di nascita
6554
Rossi
Mario
05/12/1978
9283
Verdi
Luisa
12/11/1979
NULL
Rossi
Maria
01/02/1978
esami
corsi
Studente
Voto
Corso
NULL
30
NULL
NULL
24
02
9283
28
01
Codice
Titolo
Docente
01
Analisi
Mario
02
Chimica
NULL
NULL
Chimica
Verdi
Tipi di valore nullo

(almeno) tre casi differenti
 valore sconosciuto
 valore inesistente
 valore senza informazione
Citta’
IndirizzoPrefettura
Roma
Genova
Ovada
Prato
Via Quattro Novembre
NULL
NULL
NULL
Vincoli, schemi e istanze

I vincoli corrispondono a proprietà del mondo reale modellato dalla
base di dati
 interessano a livello di schema (con riferimento cioè a tutte le
istanze)

Ad uno schema associamo un insieme di vincoli e consideriamo
corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli

Un'istanza può soddisfare altri vincoli
La Conoscenza Astratta nel modello
Relazionale

Nel modello relazionale si possono esprimere i seguenti vincoli:
 Vincolo di chiave
 Vincolo di chiave esterna
 Tipo di un attributo
 Attributo obbligatorio
 Vincoli strutturali delle associazioni (non completamente)
Una base di dati "scorretta"
Esami
Studenti
Studente
Voto
Lode
Corso
276545
32
276545
30
e lode
02
787643
27
e lode
03
739430
24
01
04
Matricola
Cognome
Nome
276545
Rossi
Mario
787643
Neri
Piero
787643
Bianchi
Luca
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
Perchè?
 descrizione più accurata della realtà
 contributo alla “qualità dei dati”
 utili nella progettazione (vedremo)
 usati dai DBMS nella esecuzione delle interrogazioni
Tipi di vincoli

Vincoli intrarelazionali: coinvolgono
database.
 Esempi
- vincoli di ennupla
- vincoli di chiave
- vincoli su valore
una
singola relazione del

Vincoli interrelazionali: coinvolgono diverse relazioni del database.
 Esempio: vincoli di integrità referenziale
Vincoli di ennupla



Esprimono
condizioni
sui
valori
di
ciascuna
indipendentemente dalle altre ennuple
Caso particolare:
 vincoli di dominio: coinvolgono un solo attributo
ennupla,
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")
Vincoli di ennupla, esempio
Stipendi
Impiegato
Lordo
Ritenute
Netto
Rossi
55.000
12.500
42.500
Neri
45.000
10.000
35.000
Bruni
47.000
11.000
36.000
Lordo = (Ritenute + Netto)
Importanza delle chiavi

L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della
base di dati

Le chiavi permettono di correlare i dati in relazioni diverse:
 il modello relazionale è basato su valori

In presenza di valori nulli, i valori della chiave non permettono
 di identificare le ennuple
 di realizzare facilmente i riferimenti da altre relazioni
Chiave primaria


Chiave su cui non sono ammessi nulli
Notazione: sottolineatura
Matricola
Cognome
Nome
Corso
Nascita
86765
NULL
Mario
Ing Inf
5/12/78
78763
Rossi
Mario
Ing Civile
3/11/76
65432
Neri
Piero
Ing Mecc
10/7/79
87654
Neri
Mario
Ing Inf
NULL
43289
Neri
Mario
NULL
5/12/78
Integrità referenziale

Informazioni in relazioni diverse sono correlate attraverso valori
comuni
 in particolare, valori delle chiavi (primarie)

le correlazioni debbono essere "coerenti"
Esempio
Codice
34321
53524
64521
73321
Infrazioni
Vigili
Auto
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov Numero
MI
39548K
TO
E39548
PR
839548
PR
839548
Matricola
Cognome
Nome
3987
Rossi
Luca
3295
Neri
Piero
9345
Neri
Mario
7543
Mori
Gino
Prov
Numero
Cognome
Nome
MI
39548K
Rossi
Mario
TO
E39548
Rossi
25/06/2017
839548
Neri
Mario
PR
Luca
Infrazioni
Codice
Data
Vigile
Prov
Numero
34321
1/2/95
3987
MI
39548K
53524
4/3/95
3295
TO
E39548
64521
5/4/96
3295
PR
839548
73321
5/2/98
9345
PR
839548
Vigili
Matricola
Cognome
Nome
3987
Rossi
Luca
3295
Neri
Piero
9345
Neri
Mario
7543
Mori
Gino
Vincolo di integrità referenziale

Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di
una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di
comparire come valori della chiave primaria di R2

ES: vincoli di integrità referenziale fra: l’attributo Vigile della relazione
INFRAZIONI e la relazione VIGILI
Violazione di vincolo di integrità referenziale
Infrazioni
Codice
Data
Vigile
Prov
Numero
34321
1/2/95
3987
MI
39548K
53524
4/3/95
3295
TO
E39548
64521
5/4/96
3295
PR
839548
73321
5/2/98
9345
PR
839548
Auto
Prov
Numero
Cognome
Nome
MI
E39548
Rossi
Mario
TO
F34268
Rossi
Mario
PR
839548
Neri
Luca
Integrità referenziale e valori nulli
Impiegati
Progetti
Matricola
Cognome
Progetto
34321
Rossi
IDEA
53524
Neri
XYZ
64521
Verdi
NULL
73032
Bianchi
IDEA
Codice
Inizio
Durata
Costo
IDEA
01/2000
36
200
XYZ
07/2001
24
120
BOH
09/2001
24
150
Azioni compensative

Esempio:
 Viene eliminata una ennupla causando una violazione

Comportamento “standard”:
 Rifiuto dell'operazione

Azioni compensative:
 Eliminazione in cascata
 Introduzione di valori nulli
Eliminazione in cascata
Impiegati
Progetti
Matricola
Cognome
Progetto
34321
Rossi
IDEA
53524
Neri
XYZ
64521
Verdi
NULL
73032
Bianchi
IDEA
Codice
Inizio
Durata
Costo
IDEA
01/2000
36
200
XYZ
07/2001
24
120
BOH
09/2001
24
150
Introduzione di valori nulli
Impiegati
Progetti
Matricola
Cognome
Progetto
34321
Rossi
IDEA
53524
Neri
NULL
XYZ
64521
Verdi
NULL
73032
Bianchi
IDEA
Codice
Inizio
Durata
Costo
IDEA
01/2000
36
200
XYZ
07/2001
24
120
BOH
09/2001
24
150
Sistemi per il recupero delle informazioni
PARTE - VI
ALGEBRA RELAZIONALE: operazioni
BASE DI DATI
Una base di dati può essere utilizzata con due modalità:
 interattivamente: l’utente interagisce direttamente con la base di
dati. L’utente presenta al sistema una richiesta di dati. Tale richiesta
prende il nome di interrogazione (query). L’interrogazione viene
interpretata dal sistema, che in risposta restituisce i dati richiesti.
Nella richiesta devono essere specificate le proprietà dei dati che
interessano. Se ad es. vogliamo l’elenco dei libri scritti da Calvino,
nella richiesta deve essere specificata questa proprietà.
L’interrogazione deve essere formulata per mezzo di un linguaggio
formale
 mediante programmi: questo uso è riservato ad utenti
programmatori. Le interrogazioni fanno parte di un programma
applicativo che può essere eseguito dal sistema numerose volte, ed il
risultato delle interrogazioni può essere utilizzato dal programma per
successive elaborazioni
LINGUAGGI RELAZIONALI
Come esempio di linguaggi per l’uso interattivo di basi di dati, relazionali,
vediamo
 l’algebra relazionale: insieme di operatori su relazioni che danno
come risultato relazioni. Non si usa come linguaggio di interrogazione
dei DBMS ma come rappresentazione interna delle interrogazioni.
 il linguaggio SQL (Structured Query Language), che offre una
sintassi per l’algebra relazionale.
Il termine algebra è dovuto al fatto che sono previsti operatori (query) che
agiscono su relazioni e producono altre relazioni come risultato.
Gli operatori possono essere combinati per formare espressioni complesse.
ESEMPI DI QUERY
NOME
Mario Rossi
MATRICOL
123456
INDIRIZZO
Via Etnea 1
TELEFONO
222222
Ugo Bianchi
234567
Via Roma 2
333333
Teo Verdi
345678
Via Enna 3
444444
CORSO
Programmazione
Architetture
Matematica Discreta
CORSO
Programmazione
Architetture
Programmazione
Matematica
Discreta
Architettura
MATRICOLA
345678
123456
234567
345678
VOTO
27
30
18
22
345678
30
PROFESSORE
Ferro
Pappalardo
Lizzio
PROFESSORE CORSO
Programmazione Ferro
Architetture
Pappalardo
Quali Professori hanno
dato piu' di 24 a Teo
Verdi ed in quali corsi?
Algebra relazionale

Insieme di operatori
 su relazioni
 che producono relazioni (tabelle)
 e possono essere composti per svolgere operazioni più
complesse
OPERATORI FONDAMENTALI

Gli operatori fondamentali dell’algebra relazionale sono:
 Ridenominazione;
 Unione;
 Intersezione;
 Differenza;
 Proiezione;
 Restrizione (o Selezione);
 Prodotto.

I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di
attributi
RIDENOMINAZIONE

Operatore unario

Modifica il nome di un attributo senza cambiarne il valore: restituisce
la relazione ottenuta sostituendo in R gli attributi A, B,… con gli
attributi A’, B’,…

DEFINIZIONE OPERATORIALE: AA’ (R)
ESAMI
Corso
Programmazione
EINN
Matricola
123456
23456
Voto
27
28
MatricolaCodice Studente(Esami)
ESAMI
Corso
Programmazione
EINN
ESEMPIO
Codice Studente
123456
23456
Voto
27
28
Paternità
Padre
Figlio
Adamo
Abele
Adamo
Caino
Abramo
Isacco
 Genitore  Padre (Paternità)
Genitore
Padre
Figlio
Adamo
Abele
Adamo
Caino
Abramo
Isacco
OPERATORI INSIEMISTICI

Le relazioni sono degli insiemi, quindi possiamo applicare gli
operatori sugli insiemi

I risultati debbono essere relazioni

E’ possibile applicare unione, intersezione, differenza solo a relazioni
definite sugli stessi attributi
UNIONE, INTERSEZIONE, DIFFERENZA

Siano R ed S relazioni dello stesso tipo allora
L’unione di R con S restituisce una relazione dello stesso tipo con
le ennuple che stanno in R in S, o in entrambe.
 L’intersezione di R con S restituisce una relazione dello stesso
tipo con le ennuple che stanno contemporaneamente sia in R sia
in S.
 La differenza di R con S restituisce una relazione dello stesso tipo
con le ennuple che stanno in R ma non in S.


DEFINIZIONE OPERATORIALE
 R S
 RS
 R-S
ESEMPIO DI UNIONE
ESEMPIO DI INTERSEZIONE
ESEMPIO DI DIFFERENZA
ESEMPIO: UNIONE?
Maternità
Madre
???


“Paternita’” e “Maternità” sono attributi con nomi diversi ma entrambi sono
“Genitori”
Soluzione: ridenominare gli attributi
ESEMPIO: RIDENOMINAZIONE E UNIONE
Impiegati
Operai
Cognome
Ufficio
Stipendio
Rossi
Roma
55
Neri
Milano
64
Cognome
Fabbrica
Salario
Bruni
Monza
45
Verdi
Latina
55
 Sede, Retribuzione  Ufficio, Stipendio (Impiegati)
 Sede, Retribuzione  Fabbrica, Salario (Operai)
Cognome
Sede
Retribuzione
Rossi
Roma
55
Neri
Milano
64
Bruni
Monza
45
Verdi
Latina
55

selezione
proiezione
operatori "ortogonali“
selezione:
decomposizione orizzontale
proiezione:
decomposizione verticale
PROIEZIONE

Produce risultati:
 su un sottoinsieme degli attributi dell’operando
 con valori da tutte le n-uple della relazione

Data la relazione R su insieme di attributi X={A1,A2,…An} e un
sottoinsieme Y di X, la proiezione di R su Y è la relazione ottenuta da R
considerando solo i valori sugli attributi di Y

DEFINIZIONE OPERATORIALE:

La cardinalità di Y(R), cioè il numero degli elementi che lo compongono,
puo’ essere minore di R nel caso di duplicati
Y(R)
ESEMPIO PROIEZIONE

cognome e filiale di tutti gli impiegati
Matricola
Cognome
Filiale
Stipendio
7309
Neri
Napoli
55
5998
Neri
Milano
64
9553
Rossi
Roma
44
5698
Rossi
Roma
64
 Cognome, Filiale (Impiegati)
ESEMPIO PROIEZIONE - II
per tutti gli impiegati:
• matricola e cognome

Si riduce la cardinalita’ del risultato rispetto all’operando
SELEZIONE (o RESTRIZIONE)

Produce risultati:
 con lo stesso schema dell’operando
 con un sottoinsieme delle ennuple dell’operando: quelle che soddisfano
la condizione

Data la relazione R la restrizione di R alla condizione C restituisce una
relazione dello stesso tipo di R avente per valori gli elementi di R che
soddisfano la condizione C.

La condizione di selezione è formata da
 operatori booleani (AND, OR, NOT)
 condizione atomiche: termini che possono contenere
 confronti fra attributi (per esempio, Stipendio>Tasse, dove
Stipendio e Tasse sono attributi)
 confronti fra attributi e costanti (per esempio, Età  60, dove
Età è un attributo)

DEFINIZIONE OPERATORIALE:
Condizione(R)
ESEMPIO RESTRIZIONE
Impiegati che
• guadagnano più di 50
• guadagnano più di 50 e lavorano a Milano
• hanno lo stesso nome della filiale presso cui lavorano
Selezione: sintassi e semantica


sintassi
 Condizione (Operando)
 Condizione: espressione booleana (come quelle dei vincoli di
ennupla)
semantica
 il risultato contiene le ennuple dell'operando che soddisfano la
condizione
Operatori booleani

Connettivi logici
  (AND),
  (OR),
  (NOT)

Operatori di confronto
 = (uguale)
 (diverso)
  (maggiore)
 (minore)
  (maggiore o uguale)
  (minore o uguale)

impiegati che guadagnano più di 50
Impiegati
Matricola
Cognome
Filiale
Stipendio
7309
Rossi
Roma
55
5998
Neri
Milano
64
9553
5698
Milano
Neri
Milano
Napoli
44
64
5698
Neri
Napoli
64
Stipendio > 50 (Impiegati)

impiegati che guadagnano più di 50 e lavorano a Milano
Impiegati
Matricola
Cognome
Filiale
Stipendio
7309
5998
Rossi
Neri
Milano
Roma
55
64
5998
Neri
Milano
64
9553
Milano
Milano
44
5698
Neri
Napoli
64
Stipendio > 50 AND Filiale = 'Milano' (Impiegati)

impiegati che hanno lo stesso nome della filiale presso cui lavorano
Impiegati
Matricola
Cognome
Filiale
Stipendio
7309
9553
Milano
Rossi
Milano
Roma
55
44
5998
Neri
Milano
64
9553
Milano
Milano
44
5698
Neri
Napoli
64
 Cognome = Filiale(Impiegati)
Selezione e proiezione


Combinando selezione e proiezione, possiamo estrarre interessanti
informazioni da una relazione
matricola e cognome degli impiegati che guadagnano più di 50
Matricola Cognome
7309
Rossi
5998
Neri
9553
5698
Milano
Neri
5698
Neri
Filiale
Roma
Milano
Milano
Napoli
Napoli
Stipendio
55
64
44
64
64
 Matricola,Cognome (Stipendio > 50 )(Impiegati)
PRODOTTO (Join)

Date le relazioni R ed S con attributi diversi, il prodotto di R con S
restituisce una relazione con attributi quelli di R e di S ed elementi la
copia delle ennuple del prodotto cartesiano di R e S, ovvero ogni
ennupla di R è concatenata con tutte le ennuple di S.

DEFINIZIONE OPERATORIALE:

Se R ha n elementi ed S ne ha m il prodotto ne ha m*n
RxS
Numero
Voto
Numero
Candidato
1
25
1
Mario Rossi
2
13
2
Nicola Russo
3
27
3
Mario Bianchi
4
28
4
Remo Neri
Numero
Candidato
Voto
1
Mario Rossi
25
2
Nicola Russo
13
3
Mario Bianchi
27
4
Remo Neri
28
JOIN NATURALE


operatore binario (generalizzabile)
produce un risultato
 sull'unione degli attributi degli operandi
 con ennuple costruite ciascuna a partire da una ennupla di ognuno degli
operandi

Permette di combinare ennuple da relazioni diverse basandosi sui valori
degli attributi

Sia R con attributi XY ed S con attributi YZ. Il join naturale produce
una relazione di attributi XYZ; ennuple del risultato sono ottenute
combinando le ennuple di R e S che hanno gli stessi valori negli
attributi con lo stesso nome
ESEMPIO - I

join completo: ogni ennupla contribuisce al risultato
ESEMPIO - II

Join non completo: alcuni valori tra gli attributi comuni non
coincidono, quindi, alcune ennuple non partecipano al JOIN
ESEMPIO - III

Join vuoto: caso limite
 potrebbe anche succedere che nessuna ennupla trovi il
corrispettivo
ESEMPIO - IV

L’altro caso estremo del JOIN
 ogni ennupla di R1 si combina con ogni ennupla di R2
 la cardinalita’ del risultato e’ il prodotto delle cardinalita’
Cardinalità del join




Il join di R1 e R2 contiene un numero di ennuple compreso fra zero e il
prodotto di |R1| e |R2|
se il join coinvolge una chiave di R2, allora il numero di ennuple è
compreso fra zero e |R1|
se il join coinvolge una chiave di R2 e un vincolo di integrità
referenziale, allora il numero di ennuple è pari a |R1|
R1(A,B) , R2 (B,C)
in generale
0  |R1 JOIN R2|  |R1|  |R2|
 se B è chiave in R2
0  |R1 JOIN R2|  |R1|

se B è chiave in R2 ed esiste vincolo di integrità referenziale fra B
(in R1) e R2:
|R1 JOIN R2| = |R1|
Join, una difficoltà

Impiegato
Reparto
Reparto
Capo
Rossi
A
B
Mori
Neri
B
C
Bruni
Bianchi
B
Impiegato
Reparto
Capo
Neri
B
Mori
Bianchi
B
Mori
alcune ennuple non contribuiscono al risultato: vengono "tagliate
fuori"
Join esterno


Il join esterno estende, con valori nulli, le ennuple che verrebbero
tagliate fuori da un join (interno)
esiste in tre versioni:
 sinistro, destro, completo
Join esterno



sinistro: mantiene tutte le tuple del primo operando, estendendole con
valori nulli, se necessario
destro: ... del secondo operando ...
completo: … di entrambi gli operandi ...
Impiegati
Impiegato Reparto
Rossi
A
Neri
B
Bianchi
B
Reparti
Reparto
B
C
Impiegati JOINLEFT Reparti
Impiegato Reparto
Neri
B
Bianchi
B
Rossi
A
Capo
Mori
Mori
NULL
Capo
Mori
Bruni
Impiegati
Impiegato Reparto
Rossi
A
Neri
B
Bianchi
B
Reparti
Reparto
B
C
Impiegati JOINRIGHT Reparti
Impiegato Reparto
Neri
B
Bianchi
B
NULL
C
Capo
Mori
Mori
Bruni
Capo
Mori
Bruni
Impiegati
Impiegato Reparto
Rossi
A
Neri
B
Bianchi
B
Reparti
Reparto
B
C
Impiegati JOINFULL Reparti
Impiegato Reparto
Neri
B
Bianchi
B
Rossi
A
NULL
C
Capo
Mori
Mori
NULL
Bruni
Capo
Mori
Bruni
Join e proiezioni
Impiegato Reparto
Rossi
A
Neri
B
Bianchi
B
Reparto
B
C
Impiegato Reparto
Neri
B
Bianchi
B
Impiegato Reparto
Neri
B
Bianchi
B
Capo
Mori
Bruni
Capo
Mori
Mori
Reparto
B
Capo
Mori
Proiezioni e join
Impiegato
Reparto
Capo
Neri
B
Mori
Bianchi
B
Bruni
Verdi
A
Bini
Impiegato
Reparto
Reparto
Capo
Neri
B
B
Mori
Bianchi
B
B
Bruni
Verdi
A
A
Bini
Impiegato
Neri
Bianchi
Neri
Bianchi
Verdi
Reparto
B
B
B
B
A
Capo
Mori
Bruni
Bruni
Mori
Bini
Join e proiezioni

R 1(X1), R 2(X2)
PROJX1 (R 1 JOIN R2 )  R 1

R(X), X = X1  X2
(PROJX1 (R)) JOIN (PROJX2 (R))  R
Prodotto cartesiano

un join naturale su relazioni senza attributi in comune
 contiene sempre un numero di tuple pari al prodotto delle cardinalità
degli operandi (le tuple sono tutte combinabili )
Impiegati
Reparti
Impiegato
Reparto
Codice
Capo
Rossi
A
A
Mori
Neri
B
B
Bruni
Bianchi
B
Impiegati JOIN Reparti
Impiegato
Reparto
Codice
Capo
Rossi
A
A
Mori
Rossi
A
B
Bruni
Neri
B
A
Mori
Neri
B
B
Bruni
Bianchi
B
A
Mori
Bianchi
B
B
Bruni

Il prodotto cartesiano, in pratica, ha senso (quasi) solo se seguito da
selezione:
SELCondizione (R1 JOIN R2)

L'operazione viene chiamata theta-join e indicata con
R1 JOINCondizione R2


La condizione C è spesso una congiunzione (AND) di atomi di
confronto A1 A2 dove  è uno degli operatori di confronto (=, >, <, …)
se l'operatore è sempre l'uguaglianza (=) allora si parla di equi-join
Impiegati
Impiegato Reparto
Rossi
A
Neri
B
Bianchi
B
Reparti
Codice
A
B
Capo
Mori
Bruni
Impiegati JOINReparto=Codice Reparti
Impiegato Reparto Codice
Rossi
A
A
Rossi
A
Neri
B
B
Neri
A
Bianchi
B
B
Neri
B
B
Bianchi
B
A
Bianchi
B
B
Capo
Mori
Bruni
Mori
Bruni
Bruni
Mori
Bruni
Esempi
Impiegati
Matricola Nome
7309
Rossi
5998
Bianchi
9553
Neri
5698
Bruni
4076
Mori
8123
Lupi
Supervisione
Età
34
37
42
43
45
46
Impiegato
7309
5998
9553
5698
4076
Stipendio
45
38
35
42
50
60
Capo
5698
5698
4076
4076
8123

Trovare matricola, nome, età e stipendio degli impiegati che
guadagnano più di 40 milioni
Matricola Nome
7309
Rossi
5998
5698
Bianchi
Bruni
9553
4076
Mori
Neri
5698
8123
Bruni
Lupi
4076
Mori
8123
Lupi
Età
34
37
43
42
45
43
46
45
46
SELStipendio>40(Impiegati)
Stipendio
45
38
42
35
50
42
60
50
60

Trovare matricola, nome ed età degli impiegati che guadagnano più di
40 milioni
Matricola Nome
7309
Rossi
5998
5698
Bianchi
Bruni
9553
4076
Mori
Neri
5698
8123
Bruni
Lupi
4076
Mori
8123
Lupi
Età
34
37
43
42
45
43
46
45
46
Stipendio
45
38
42
35
50
42
60
50
60
PROJMatricola, Nome, Età (SELStipendio>40(Impiegati))
Selezione con valori nulli
Impiegati
Matricola Cognome
7309
Rossi
5998
Neri
9553
Bruni
Filiale
Roma
Milano
Milano
Età
32
45
NULL
SEL Età > 40 (Impiegati)
• la condizione atomica è vera solo per valori non nulli
Un risultato non desiderabile
SEL Età>30 (Persone)  SEL Età30 (Persone)  Persone


Perché? Perché le selezioni vengono valutate separatamente!
Ma anche
SEL Età>30  Età30 (Persone)  Persone

Perché? Perché anche le condizioni atomiche vengono valutate
separatamente!
Selezione con valori nulli: soluzione



SEL Età > 40 (Impiegati)
la condizione atomica è vera solo per valori non nulli
per riferirsi ai valori nulli esistono forme apposite di condizioni:
IS NULL
IS NOT NULL
si potrebbe usare (ma non serve) una "logica a tre valori" (vero, falso,
sconosciuto)

Quindi:
SEL Età>30 (Persone)  SEL Età30 (Persone)  SEL Età IS NULL (Persone)
=
SEL Età>30  Età30  Età IS NULL (Persone)
=
Persone
Impiegati
Matricola Cognome
7309
5998
Rossi
Neri
5998
9553
Bruni
Neri
9553
Bruni
Filiale
Milano
Roma
Milano
Milano
Età
32
45
NULL
45
NULL
SEL (Età > 40) OR (Età IS NULL) (Impiegati)
Sistemi per il recupero delle informazioni
DATABASE MANAGEMENT SYSTEM
(DBMS)
INTRODUZIONE
In questa sezione chiariremo qual è il significato tecnico del termine basi
di dati e le funzionalità che offrono i sistemi che ne consentono la
definizione e l’uso.
Iniziamo col chiarire cosa si intende per “base di dati”, visto che spesso
questo termine viene usato per riferirsi ad un qualsiasi insieme di dati
archiviati con un calcolatore.
INTRODUZIONE


Gli archivi costituiscono una memoria di lavoro indispensabile per gestire quantità
ingenti di informazioni, per ordinare gli elementi utili, metterli in relazione e filtrare i
dati che devono essere utilizzati nelle varie circostanze. Prima della diffusione dei
sistemi informatici erano gestiti in forma cartacea, con schedari e registri, che
permettevano di catalogare e ordinare i dati in base ad un unico criterio di ricerca e
rendevano piuttosto disagevole il recupero e l’analisi dell’informazione.
L’avvento dei computer nella gestione degli archivi ha notevolmente migliorato i
processi di memorizzazione e recupero dei dati: la creazione di software specifici per
la gestione di banche dati, chiamati DBMS (Data Base Management System), ha
infatti permesso di unificare in un unico programma le funzionalità di archiviazione e
gestione dei dati. Se all’inizio i software per la gestione di database occupavano
grande spazio di memoria e risultavano abbastanza complessi da utilizzare, oggi
programmi come Microsoft Access uniscono sofisticate funzioni di archiviazione,
ricerca e analisi dei dati a un interfaccia amichevole, e consentono un utilizzo
versatile adatto alle più svariate esigenze.
Archivi e basi di dati
Gestione
orario lezioni
Database
Gestione
ricevimento
DATABASE
Accezione generica, metodologica
 Insieme organizzato di dati utilizzati per il supporto allo svolgimento
delle attività di un ente (azienda, ufficio, persona)
Accezione specifica, metodologica e tecnologica
 Insieme di dati gestito da un DBMS
COS’E’ UNA BASE DATI
Una base di dati è una raccolta di dati permanenti suddivisi in due
categorie:

I METADATI

I DATI
COS’E’ UNA BASE DATI
I METADATI
i metadati, ovvero lo schema della base di dati, sono una raccolta di
definizioni che descrivono
 la struttura di alcuni insiemi dati,
 le restrizioni sui valori ammissibili dei dati
 le relazioni esistenti fra gli insiemi.
Lo schema va definito prima di creare i dati ed è indipendente dalle
applicazioni che usano la base di dati.
COS’E’ UNA BASE DATI
I DATI
i dati, le rappresentazioni dei fatti conformi alle definizioni dello schema,
con le seguenti caratteristiche:
a) sono organizzati in insiemi omogenei, fra i quali sono definite delle
relazioni.
b) sono molti, in assoluto e rispetto ai metadati, e non possono essere
gestiti in memoria temporanea;
c) sono permanenti, cioè, una volta creati, continuano ad esistere finché
non sono esplicitamente rimossi;
d) sono accessibili mediante transazioni;
e) sono protetti sia da accesso da parte di utenti non autorizzati, sia da
corruzione dovuta a malfunzionamenti hardware e software;
f) sono utilizzabili contemporaneamente da utenti diversi.
ESEMPIO DATI e METADATI
Si consideri la base di dati degli studenti ed esami superati definiti dagli
schemi di relazioni:
Studenti(Matricola, Cognome, Città, AnnoNascita)
Esami(Materia, Candidato, Voto, Data)
Dovrebbe essere chiaro che una base di dati contiene i dati immessi, meno
ovvio è il fatto che in una base di dati si memorizzano anche informazioni sui
dati definiti, chiamati metadati.
Esempi di queste informazioni sono:
1. i nomi delle relazioni definite;
2. il tipo delle ennuple delle relazioni;
3. le chiavi primarie ed esterne definite;
4. i vincoli sui valori ammissibili degli attributi.
Queste informazioni sono memorizzate in tabelle predefinte che sono gestite
automaticamente dal sistema.
RIEPILOGO
I dati sono strutturati, cioè hanno un formato predefinito
I dati sono raggruppati in insiemi omogenei, in relazione fra loro, e sono
previsti operatori per estrarre elementi da un insieme e per conoscere quelli
che, in altri insiemi, sono in relazione con essi.
I dati sono molti e sono memorizzati in una memoria permanente,
tipicamente a dischi magnetici.
I dati sono una risorsa condivisa e disponibile per usi molteplici che spesso
hanno un’importanza relativa variabile nel tempo.
I dati sono protetti da usi non autorizzati e da malfunzionamenti hardware e
software.
DataBase Management System (DBMS) - I
Le caratteristiche delle basi di dati sono garantite da un sistema per la
gestione di basi di dati (DBMS, Data Base Management System), che ha il
controllo dei dati e li rende accessibili agli utenti autorizzati.
Un DBMS è un sistema centralizzato o distribuito che offre opportuni
linguaggi
a) per definire lo schema della base di dati,
b) per scegliere le strutture dati per la memorizzazione dei dati,
c) per usare la base di dati interattivamente o da programmi.
DataBase Management System (DBMS) - II

Un sistema di gestione di basi di dati è un sistema software in grado
di gestire collezioni di dati che siano grandi, condivise e persistenti,
assicurando la loro affidabilità e privatezza.

Un DBMS deve essere efficiente ed efficace.
 Esempi di prodotti software disponibili sul mercato: Access,
DB2, Oracle, Informix, Sybase, SQLServer
I DATABASE SONO...



grandi
 dimensioni (molto) maggiori della memoria centrale dei sistemi di
calcolo utilizzati
 il limite deve essere solo quello fisico dei dispositivi
persistenti
 hanno un tempo di vita indipendente dalle singole esecuzioni dei
programmi che le utilizzano
condivisi
 ogni organizzazione è divisa in settori o comunque svolge diverse
attività . Ciascun settore/attività ha un (sotto) sistema informativo
(non necessariamente disgiunto)
 Una base di dati e' una risorsa integrata, condivisa fra applicazioni
 Conseguenze:
 Attivita' diverse su dati condivisi: meccanismi di autorizzazione
 Accessi di più utenti ai dati condivisi:controllo della
concorrenza
I DBMS GARANTISCONO…


PRIVATEZZA
 Si possono definire meccanismi di autorizzazione
 l'utente A è autorizzato a leggere tutti i dati e a modificare
quelli sul ricevimento
 l'utente B è autorizzato a leggere X e a modificare Y
AFFIDABILITA` (per le basi di dati):
 resistenza a malfunzionamenti hardware e software

una base di dati è una risorsa pregiata e quindi deve essere
conservata a lungo termine
I DBMS DEVONO ESSERE …

EFFICIENTI
 Cercano di utilizzare al meglio le risorse di spazio di memoria
(principale e secondaria) e tempo (di esecuzione e di risposta)
 I DBMS, con tante funzioni, rischiano l'inefficienza e per questo ci
sono grandi investimenti e competizione
 L’efficienza è anche il risultato della qualità delle applicazioni

EFFICACI
 Cercano di rendere produttive le attività dei loro utilizzatori,
offrendo funzionalità articolate, potenti e flessibili:
 il corso è in buona parte dedicato ad illustrare come i DBMS
perseguono l'efficacia
DBMS VS FILESYSTEM





La gestione di insiemi di dati grandi e persistenti è possibile anche
attraverso sistemi più semplici — gli ordinari file system dei sistemi
operativi
I file system prevedono forme rudimentali di condivisione: "tutto o
niente"
I DBMS estendono le funzionalità dei file system, fornendo più servizi
ed in maniera integrata
Nei programmi tradizionali che accedono a file, ogni programma
contiene una descrizione della struttura del file stesso, con i
conseguenti rischi di incoerenza fra le descrizioni (ripetute in ciascun
programma) e i file stessi
Nei DBMS, esiste una porzione della base di dati (il catalogo o
dizionario) che contiene una descrizione centralizzata dei dati, che
può essere utilizzata dai vari programmi
FUNZIONALITA’ DEI DBMS
Un DBMS offre specifiche funzionalità per i seguenti scopi:
– definizione di basi di dati;
– uso dei dati;
– controllo dei dati;
– amministrazione della base di dati;
– distribuzione dei dati.
ARCHITETTURA STANDARD - I
utente
utente
Livello
esterno
utente
Livello
esterno
Livello logico
Livello interno
database
utente
utente
Livello
esterno
ARCHITETTURA STANDARD - II
Nei DBMS la base di dati è descritta separatamente dai programmi
applicativi che ne fanno uso ed è utile distinguere tre diversi livelli di
descrizione dei dati:
livello logico: descrizione dell’intera base di dati nel modello logico
“principale” del DBMS
livello interno (o fisico): rappresentazione dello schema logico per mezzo
di strutture fisiche di memorizzazione (es.: files)
livello esterno (di vista logica): descrizione di parte della base di dati in
un modello logico (“viste” parziali, derivate, anche in modelli diversi)
ESEMPIO: differenze fra le descrizioni dei dati
Si consideri una base di dati per gestire informazioni sui docenti di
un’università, di supporto alle attività dell’ufficio stipendi e della biblioteca.
Al livello di vista logica, l’ufficio stipendi richiede una vista dei dati sui
docenti che include i seguenti campi: Nome e cognome, Codice fiscale,
Parametro e Stipendio.
La biblioteca richiede invece una vista dei dati sui docenti che include i
seguenti campi: Nome e cognome, Recapito telefonico.
Al livello logico, i dati sui docenti sono descritti da un unico insieme di
ennuple che includeranno i campi diversi che occorrono nelle due viste.
Grazie al meccanismo degli schemi esterni, ogni applicazione vedrà poi
solo i dati di sua competenza.
Infine, al livello fisico, il progettista della base di dati fisserà
un’organizzazione fisica per l’insieme dei dati dei docenti descritto al livello
logico, scegliendone una fra quelle previste dal DBMS.
LIVELLO ESTERNO: ESEMPIO
Corsi
Docente Aula
Corso
Basi di dati Rossi DS3
Neri
N3
Sistemi
Bruni
N3
Reti
Bruni
G
Controlli
CorsiSedi
Aule
Nome
DS3
N3
G
Corso
Aula
Sistemi
Reti
Controlli
N3
N3
G
Edificio Piano
OMI
Terra
OMI
Terra
Pincherle Primo
Edificio
Piano
OMI
Terra
OMI
Terra
Pincherle Primo
INDIPENDENZA DEI DATI

L‘approccio con tre livelli di descrizione dei dati è stato proposto
come un modo per garantire le proprietà di indipendenza logica e
fisica dei DBMS

l’accesso avviene solo tramite il livello esterno (che può coincidere
con il livello logico)

due forme:
 indipendenza fisica
 indipendenza logica
INDIPENDENZA FISICA

indipendenza delle applicazioni dall‘organizzazione fisica dei dati; i
programmi applicativi non devono essere modificati in seguito a
modifiche dell‘organizzazione fisica dei dati

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
INDIPENDENZA LOGICA

indipendenza delle applicazioni dall‘organizzazione logica dei dati; i
programmi applicativi non devono essere modificati in seguito a
modifiche dello schema logico. Le modifiche possono essere
l‘aggiunta di nuove definizioni, la modifica o l’eliminazione di alcune di
quelle esistenti

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
Uso dei dati
Come conseguenza dell’integrazione dei dati, un DBMS deve prevedere più
modalità d’uso per soddisfare le esigenze delle diverse categorie di utenti
che possono accedere alla base di dati.
Distinguiamo tre categorie di utenti con differente approccio ai dati.
Un programmatore delle applicazioni ha bisogno di accedere alla base di dati da
programmi sviluppati con linguaggi di programmazione diversi.
Gli utenti non programmatori sono coloro che richiedono un linguaggio interattivo
a sè stante, di facile uso, per fare principalmente ricerche di dati.
Infine, gli utenti delle applicazioni sono coloro che richiedono delle modalità molto
semplici per attivare un numero predefinito di operazioni,senza avere nessuna
competenza informatica: l’utente agisce selezionando una delle possibili scelte
proposte (menu), e fornisce i valori degli argomenti riempendo campi di opportune
“maschere”.
LINGUAGGI PER DATABASE

138
Un altro contributo all’efficacia: disponibilità di vari linguaggi e
interfacce
 linguaggi testuali interattivi (SQL)
 comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C
...)
 comandi (SQL) immersi in un linguaggio ad hoc, con anche altre
funzionalità (p.es. per grafici o stampe strutturate)
 con interfacce amichevoli (senza linguaggio testuale)
25/06/2017
Controllo dei dati
Una caratteristica molto importante dei DBMS è il tipo di
meccanismi offerti per garantire le seguenti proprietà di una base
di dati:



integrità
affidabilità
sicurezza
Controllo dei dati: integrità
I DBMS prevedono dei meccanismi per controllare che i dati inseriti, o
modificati, siano conformi alle definizioni date nello schema, in modo da
garantire che la base di dati si trovi sempre in uno stato che rispetti i
vincoli dichiarati.
Esempi di vincoli discussi in precedenza sono le chiavi primarie ed
esterne.
140
Controllo dei dati: affidabilità
I DBMS devono disporre di meccanismi per proteggere i dati da
malfunzionamenti hardware o software e da interferenze indesiderate dovute
all’accesso contemporaneo ai dati da parte di più utenti.
Per quanto riguarda la protezione da malfunzionamenti, un DBMS prevede
che le interazioni con la base di dati avvengano per mezzo di transazioni, cioè
con un meccanismo che garantisce il buon esito delle operazioni delle
applicazioni nel caso di funzionamento normale, e che esclude effetti parziali
dovuti all’interruzione delle applicazioni per una qualsiasi ragione.
Controllo dei dati: affidabilità
Una transazione è un programma sequenziale costituito da un insieme di azioni
di lettura e scrittura in memoria permanente e di elaborazioni di dati in memoria
temporanea, con le seguenti proprietà:
– Atomicità: solo le transazioni che terminano normalmente fanno transitare la
base di dati in un nuovo stato. Le transazioni che terminano prematuramente
sono trattate dal sistema come se non fossero mai iniziate; pertanto eventuali
loro effetti sulla base di dati sono annullati.
– Serializzabilità: l’effetto sulla base di dati dell’esecuzione contemporanea di più
transazioni è equivalente ad una esecuzione seriale delle transazioni, cioè ad
una esecuzione in cui le transazioni vengono eseguite una dopo l’altra in un
qualche ordine.
– Persistenza: le modifiche sulla base di dati di una transazione terminata
normalmente sono permanenti, cioè non sono alterabili da eventuali
malfunzionamenti.
TRANSAZIONI (PER L‘UTENTE)

Esempi:
 versamento presso uno presso sportello bancario
 emissione di certificato anagrafico
 dichiarazione presso l’ufficio di stato civile
 prenotazione aerea

Due accezioni
 Per l'utente:
 programma a disposizione, da eseguire per realizzare una funzione
di interesse

Per il sistema:
 sequenza indivisibile di operazioni
Controllo dei dati: affidabilità
Un malfunzionamento è un evento a causa del quale la base di dati può trovarsi in
uno stato scorretto.
Si distinguono tre tipi di malfunzionamenti:
 fallimenti di transazioni: interruzioni di transazioni che non comportano
perdite di dati in memoria temporanea o permanente.
 fallimenti di sistema: interruzioni del suo funzionamento dovuti ad
un’anomalia hardware o software dell’unità centrale o di una periferica, con
conseguente interruzione di tutte le transazioni attive. Si assume che il
contenuto della memoria permanente sopravviva, mentre si considera perso il
contenuto della memoria temporanea.
 disastri: sono malfunzionamenti che danneggiano la memoria permanente
contenente la base di dati
FUNZIONALITA’ DEI DBMS
Controllo dei dati: affidabilità
Quando si verifica un malfunzionamento vengono attivate, in modo
utomatico o semi-automatico, opportune procedure per garantire
che la base di dati contenga soltanto quelle modifiche apportate
dalle transazioni terminate con successo prima dell’occorrenza del
malfunzionamento.
Per poter eseguire queste procedure un DBMS mantiene una copia
di sicurezza della base di dati e tiene traccia di tutte le modifiche
fatte sulla base di dati dal momento in cui è stata eseguita l’ultima
copia di sicurezza.
Grazie a questi dati, quando si verifica un malfunzionamento il
DBMS può ricostruire una versione corretta dei dati utilizzando
l’ultima copia e rieseguendo tutte le operazioni che hanno
145
modificato
i dati e di cui ha mantenuto traccia.
Controllo dei dati: affidabilità - ESEMPIO
Si supponga che Antonio e Giovanna condividano un conto corrente
contemporaneamente facciano un prelievo e un versamento da sportelli diversi.
e
che
Sia 350 il saldo, 400 la somma che Giovanna versa e 50 la somma che Antonio preleva.
Supponiamo che sulla base di dati si verifichino i seguenti eventi, nell’ordine mostrato:
– il cassiere di Giovanna legge il saldo 350,
– il cassiere di Antonio legge il saldo 350,
– il cassiere di Giovanna modifica il saldo in 750,
– il cassiere di Antonio modifica il saldo in 300.
L’effetto dell’operazione di Giovanna è annullato da quello dell’operazione di Antonio e il saldo
finale è di 300
Per evitare interferenze indesiderate il DBMS deve, invece, coordinare opportunamente
l’esecuzione concorrente di un insieme di transazioni T1, …, Tn, intercalando opportunamente
nel tempo le azioni sulla base di dati di ogni transazione, in modo che l’effetto dell’esecuzione
sia quello ottenibile eseguendo le transazioni isolatamente, in un qualche ordine.
Controllo dei dati: sicurezza
I DBMS prevedono meccanismi sia per controllare che solo persone
autorizzate accedano ai dati, sia per restringere i dati accessibili e le
operazioni che si possono fare su di essi.
Esempi del primo tipo sono la “identificazione” degli utenti autorizzati, con
parole di riconoscimento, oppure la possibilità di proteggere i dati da furti
mediante crittografia.
Amministrazione della base di dati
L’amministratore della base di dati (Data Base Administrator (DBA)) è una persona
(o un gruppo di persone) che dopo aver partecipato allo studio di fattibilità per
decidere l’impiego di un DBMS, ne seleziona uno, lo mette in funzione, lo mantiene
in esercizio e segue ogni applicazione dalla progettazione all’impiego.
L’amministratore della base di dati ha bisogno di:
– analisi dei requisiti di nuove applicazioni e progettazione, sviluppo e manutenzione
di basi di dati e delle applicazioni che ne fanno uso;
– definizione degli schemi di basi di dati (logici, fisici ed esterni), delle autorizzazioni
e modalità di accesso ai dati per ogni classe di utenti e delle politiche per la
sicurezza dei dati;
– definizione delle procedure per il caricamento dei dati, la creazione di copie di
sicurezza, il ripristino dei dati dopo malfunzionamenti di sistema o dei dischi;
– controllo del funzionamento del sistema per decidere eventuali riorganizzazioni
della struttura logica e fisica dei dati al fine di migliorare le prestazioni delle
applicazioni.
Distribuzione dei dati
Un DBMS moderno deve garantire la possibilità di distribuire i dati gestiti dal
sistema su più elaboratori collegati tra di loro da una rete locale o geografica,
eventualmente replicando alcuni dati.
La distribuzione dei dati su reti locali è molto utile per sostituire i costosi calcolatori
di grandi dimensioni, tradizionalmente usati per i DBMS, con reti di calcolatori di
costo più ridotto.
La distribuzione dei dati su reti geografiche è utile ad aziende con più sedi per
poter gestire in ogni sede i dati di interesse locale, mantenendo la possibilità di
accedere a tutti i dati dell’organizzazione.
Infine, entrambi i tipi di distribuzione, se combinati con la replicazione di alcuni dati,
permettono di continuare ad operare sui dati anche quando un elaboratore sia fuori
servizio.
La distribuzione dei dati aumenta la complessità dei DBMS che devono essere in
grado
di gestire transazioni eseguite su nodi diversi della rete e garantire la
149
coerenza di eventuali dati duplicati.
FUNZIONALITA’ DEI DBMS
Da questa rapida presentazione delle funzionalità dei DBMS si dovrebbe
intuire come essi siano dei prodotti complessi e costosi. Attualmente i DBMS
relazionali sono disponibili su tutte le categorie di calcolatori con differenze
che riguardano:
– la quantità di dati memorizzabili;
– il numero di utenti che possono accedere contemporaneamente ai dati;
– i meccanismi offerti per il controllo dei dati, per l’integrità e l’affidabilità;
– le tecniche per la gestione dei dati nelle memorie permanenti;
– i tipi di linguaggi per l’uso dei dati da parte degli specialisti;
– i tipi di prodotti per l’utente finale;
– le prestazioni
150
– gli strumenti per l’amministrazione della base di dati.
PERSONAGGI E INTERPRETI




progettisti e realizzatori di DBMS
progettisti del database e amministratori del database
progettisti e programmatori di applicazioni
utenti
 utenti finali (terminalisti): eseguono applicazioni predefinite
(transazioni)
 utenti casuali: eseguono operazioni non previste a priori, usando
linguaggi interattivi
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
VANTAGGI E SVANTAGGI DEI DBMS - I
Pro
 dati come risorsa comune, database 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)