DATA BASE RELAZIONALI
Un Data Base dove tutti dati visibili all’utente sono
organizzati strettamente in tabelle di valori, e
dove tutte le operazioni vengono eseguite su
tabelle e danno come risultato tabelle.
I modelli logici dei dati
Tradizionalmente, esistono tre modelli logici:
gerarchico
reticolare
relazionale
I modelli gerarchico e reticolare sono più vicini alle
strutture fisiche di memorizzazione, mentre il modello
relazionale è più astratto:
nel modello relazionale si rappresentano solo valori — anche i
riferimenti fra dati in strutture (relazioni) diverse sono rappresentati
per mezzo dei valori stessi;
nei modelli gerarchico e reticolare si utilizzano riferimenti espliciti
(puntatori) fra record.
Più recentemente, è stato introdotto il modello a oggetti
Basi di Dati teledidattico
21 December 2015 - slide 2
Il modello relazionale
Proposto da E. F. Codd nel 1970 per favorire
l’indipendenza dei dati e reso disponibile come modello
logico in DBMS reali nel 1981 (non è facile implementare
l’indipendenza con efficienza e affidabilità!).
Si basa sul concetto matematico di relazione (con una
variante).
Le relazioni hanno una rappresentazione naturale per
mezzo di tabelle.
Basi di Dati teledidattico
21 December 2015 - slide 3
LE DODICI REGOLE DI CODD
1. INFORMAZIONI: tutte le informazioni in un DBR sono
rappresentate esplicitamente da vaolri in tabelle;
(DEFINZIONE)
2. ACCESSO GARANTITO: Ciascun valore deve essere
raggiunto univocamente da un nome di tabella, chiave
primaria e nome di colonna; (CHIAVI PRIMARIE)
3. VALORI NULL: sono supportati per rappresentare
informazioni mancanti indipendentemente dal tipo di
dato;
4. SYSTEM TABLE: un data base relazionale deve essere
strutturato logicamente come i dati e gestibile con lo
tesso linguaggio;
Basi di Dati teledidattico
21 December 2015 - slide 5
LE DODICI REGOLE DI CODD …
5. LINGUAGGIO DI INTERROGAZIONE STANDARD: un DBR
può supportare diversi linguaggi, ma deve supportare un
linguaggio ‘English like’ dove sia possibile: (DEFINIZIONE
DI SQL)
Definizioni di dati
Definizione di viste
Manipolazione di dati
Gestione dell’integrità
Gestione della Security
Gestire Transazioni
6. VISTE MODIFICABILI: le viste che sono modificabili
teoricamente dall’utente lo devono essere anche dal
sistema (Cruciale per campi calcolati);
Basi di Dati teledidattico
21 December 2015 - slide 6
Update di viste e ANSI ISO Standard
Una vista può essere modificata se
DISTINCT non viene specificato
LA clausola FROM deve specificare SOLO una tabella oppure una
vista. E l’utente deve evere i privilegi di modifica.
Ciascun elemento della SELECT DEVE contentere un campo (no
espressioni, campi calcolati,…)
La clausola WHERE non deve contenere SubQuery
LA query NON deve contenrer GROUP BY ed HAVING.
Una vista per essere modificabile, il DBMS deve essere in
grado di tracciare ciascuna colonna e ciascuna riga
UNIVOCAMENTE
fino alle tabelle origine
Basi di Dati teledidattico
21 December 2015 - slide 7
LE DODICI REGOLE DI CODD …
7. INSERIMENTO E UPDATE DA LINGUAGGIO: tali
operazioni devono avere la stessa logica ‘a righe’
dell’estrazione; (SET ORIENTED)
8. INDIPENDENZA FISICA DEI DATI: I programmi
applicativi non devono sentire alcuna modifica fatta sul
metodo e la locazione fisica dei dati;
9. INDIPENDENZA LOGICA DEI DATI: lo stesso per la
ristrutturazione delle tabelle (VISTE)
10. INTEGRITA’: vincoli di integrità devono essere
implementabili sul motore (cruciale);
11. TRATTARE DATI DISTRIBUITI: uno dei problemi
12. DEVE PREVENIRE ACCESSI NON DESIDERATI: garantisce
l’impossibilità di bypassare le regole di integrità.
Basi di Dati teledidattico
21 December 2015 - slide 8
Relazione: tre accezioni
relazione matematica: come nella teoria degli insiemi
relazione (dall’inglese relationship) che rappresenta una
classe di fatti, nel modello Entity-Relationship; tradotto
anche con associazione o correlazione
relazione secondo il modello relazionale dei dati
Basi di Dati teledidattico
21 December 2015 - slide 9
Il modello è basato su valori
i riferimenti fra dati in relazioni diverse sono
rappresentati per mezzo di valori dei domini che
compaiono nelle ennuple
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
Basi di Dati teledidattico
esami
Studente
3456
3456
9283
6554
corsi
Codice
01
02
04
Nome
Mario
Paolo
Luisa
Maria
Voto
30
24
28
26
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Corso
04
02
01
01
Titolo Docente
Analisi
Mario
Chimica Bruni
Chimica
Verdi
21 December 2015 - slide 11
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
Basi di Dati teledidattico
esami
Studente
corsi
Codice
01
02
04
Nome
Mario
Paolo
Luisa
Maria
Voto
30
24
28
26
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Corso
Titolo Docente
Analisi
Mario
Chimica Bruni
Chimica
Verdi
21 December 2015 - slide 12
Struttura basata su valori: vantaggi
indipendenza dalle strutture fisiche (si potrebbe avere
anche con puntatori di alto livello) che possono cambiare
dinamicamente
si rappresenta solo ciò che è rilevante dal punto di vista
dell’applicazione
l’utente finale vede gli stessi dati dei programmatori
i dati sono portabili piu' facilmente da un sistema ad un
altro
i puntatori sono direzionali
Basi di Dati teledidattico
21 December 2015 - slide 13
Vincoli di integrità
Esistono istanze di basi di dati che,
pur sintatticamente corrette, non
rappresentano informazioni possibili
per l’applicazione di interesse
Una base di dati "scorretta"
Esami Studente Voto Lode Corso
276545
32
01
276545
30 e lode 02
787643
27 e lode 03
739430
24
04
Studenti Matricola Cognome Nome
276545
Rossi
Mario
Neri
Piero
787643
787643
Bianchi
Luca
Basi di Dati teledidattico
21 December 2015 - slide 15
Tipi di vincoli
vincoli intrarelazionali
vincoli su valori (o di dominio)
vincoli di ennupla
vincoli interrelazionali
Basi di Dati teledidattico
21 December 2015 - slide 16
Vincoli di ennupla
Esprimono condizioni sui valori di ciascuna ennupla,
indipendentemente dalle altre ennuple
Caso particolare:
Vincoli di dominio: coinvolgono un solo attributo
Sintassi ed esempi
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")
Basi di Dati teledidattico
21 December 2015 - slide 17
Identificazione delle ennuple
Matricola Cognome Nome
27655
Rossi
Mario
Rossi
Mario
78763
Neri
Piero
65432
87654
Neri
Mario
67653
Rossi
Piero
Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
Nascita
5/12/78
3/11/76
10/7/79
3/11/76
5/12/78
non ci sono due ennuple con lo stesso valore sull’attributo
Matricola
non ci sono due ennuple uguali su tutti e tre gli attributi
Cognome, Nome e Data di Nascita
Basi di Dati teledidattico
21 December 2015 - slide 18
Chiave
insieme di attributi che identificano le ennuple di una
relazione
Formalmente:
un insieme K di attributi è superchiave per r se r non
contiene due ennuple distinte t1 e t2 con t1[K] = t2[K]
K è chiave per r se è una superchiave minimale per r
(cioè non contiene un’altra superchiave)
Basi di Dati teledidattico
21 December 2015 - slide 19
Una chiave
Matricola Cognome Nome
27655
Rossi
Mario
Rossi
Mario
78763
Neri
Piero
65432
87654
Neri
Mario
67653
Rossi
Piero
Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
Nascita
5/12/78
3/11/76
10/7/79
3/11/76
5/12/78
Matricola è una chiave:
è superchiave
contiene un solo attributo e quindi è minimale
Basi di Dati teledidattico
21 December 2015 - slide 20
Un'altra chiave
Matricola Cognome Nome
27655
Rossi
Mario
Rossi
Mario
Rossi
Mario
Mario
78763
Rossi
Neri
Piero
65432
87654
Neri
Mario
Mario
67653
Rossi
Piero
Rossi
Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
Nascita
5/12/78
5/12/78
3/11/76
3/11/76
10/7/79
3/11/76
3/11/76
5/12/78
5/12/78
Cognome, Nome, Nascita è un’altra chiave:
è superchiave
minimale
Basi di Dati teledidattico
21 December 2015 - slide 21
Chiave primaria
Chiave su cui non sono ammessi nulli
Notazione: sottolineatura
Matricola Cognome Nome
Nascita
Ing Inf
86765
NULL
78763
Rossi
5/12/78
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
Basi di Dati teledidattico
Mario
Corso
21 December 2015 - slide 22
Integrità referenziale
informazioni in relazioni diverse sono correlate attraverso
valori comuni
in particolare, valori delle chiavi (primarie)
le correlazioni debbono essere "coerenti"
Basi di Dati teledidattico
21 December 2015 - slide 23
Infrazioni
Codice
Data
Vigile
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
Basi di Dati teledidattico
Prov Numero
Matricola Cognome
Nome
3987
Rossi
Luca
3295
Neri
Piero
9345
Neri
Mario
7543
Mori
Gino
21 December 2015 - slide 24
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
Basi di Dati teledidattico
Nome
MI
39548K
Rossi
Mario
TO
E39548
Rossi
Mario
PR
839548
Neri
Luca
21 December 2015 - slide 25
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
vincoli di integrità referenziale fra:
Basi di Dati teledidattico
l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI
gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO
21 December 2015 - slide 26
Violazione di vincolo di integrità
referenziale
Infrazioni
Codice
34321
53524
64521
73321
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov
MI
TO
PR
PR
Auto Prov Numero Cognome
MI
TO
PR
Basi di Dati teledidattico
E39548
F34268
839548
Rossi
Rossi
Neri
Numero
39548K
E39548
839548
839548
Nome
Mario
Mario
Luca
21 December 2015 - slide 27
Vincoli di integrità referenziale:
commenti
Giocano un ruolo fondamentale nel concetto di “modello
basato su valori”
• In presenza di valori nulli i vincoli possono
essere resi meno restrittivi
• Sono possibili meccanismi per il supporto
alla loro gestione ("azioni" compensative a
seguito di violazioni)
• Attenzione ai vincoli su più attributi
Basi di Dati teledidattico
21 December 2015 - slide 28
Integrità referenziale e valori nulli
Impiegati
Progetti
Basi di Dati teledidattico
Matricola Cognome Progetto
34321
Rossi
IDEA
53524
Neri
XYZ
NULL
64521
Verdi
73032
Bianchi
IDEA
Codice
IDEA
XYZ
BOH
Inizio
01/2000
07/2001
09/2001
Durata
36
24
24
Costo
200
120
150
21 December 2015 - slide 29
Azioni compensative
Esempio:
Viene eliminata una ennupla causando una violazione
Comportamento “standard”:
Rifiuto dell'operazione
Azioni compensative:
Basi di Dati teledidattico
Eliminazione in cascata
Introduzione di valori nulli
21 December 2015 - slide 30
Eliminazione in cascata
Impiegati
Progetti
Basi di Dati teledidattico
Matricola Cognome Progetto
34321
Rossi
IDEA
53524
Neri
XYZ
NULL
64521
Verdi
73032
Bianchi
IDEA
Codice
IDEA
XYZ
BOH
Inizio
01/2000
07/2001
09/2001
Durata
36
24
24
Costo
200
120
150
21 December 2015 - slide 31
Introduzione di valori nulli
Impiegati
Progetti
Basi di Dati teledidattico
Matricola Cognome Progetto
34321
Rossi
IDEA
NULL
53524
Neri
XYZ
NULL
64521
Verdi
73032
Bianchi
IDEA
Codice
IDEA
XYZ
BOH
Inizio
01/2000
07/2001
09/2001
Durata
36
24
24
Costo
200
120
150
21 December 2015 - slide 32
Vincoli multipli su più attributi
Incidenti
Codice Data ProvA NumeroA ProvB NumeroB
34321 1/2/95
TO
E39548
MI
39548K
64521 5/4/96
PR
839548
TO
E39548
Auto Prov Numero Cognome
Basi di Dati teledidattico
Nome
MI
39548K
Rossi
Mario
TO
E39548
Rossi
Mario
PR
839548
Neri
Luca
21 December 2015 - slide 33