il modello relazionale. modello relazionale2 cronologia dei modelli per la rappresentazione dei dati...

71
IL MODELLO RELAZIONALE IL MODELLO RELAZIONALE

Upload: teobaldo-boscolo

Post on 03-May-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

IL MODELLO RELAZIONALEIL MODELLO RELAZIONALE

Page 2: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 2

Cronologia dei modelli per la rappresentazione dei dati

Modello gerarchico (anni 60) Modello reticolare (anni 70) Modello relazionale (anni 80-90) Modello a oggetti (2000)

Page 3: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 3

Il modello relazionale

Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati

Disponibile in DBMS reali nel 1981 (non è facile implementare l’indipendenza con efficienza e affidabilità!)

Si basa sul concetto matematico di relazione

Page 4: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 4

Relazione: tre accezioni

relazione matematica: come nella teoria degli insiemi

relazione secondo il modello relazionale dei dati

relazione nel modello Entity-Relationship (chiamata anche associazione)

Page 5: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 5

Relazione matematica

D1, …,Dn (n insiemi anche non distinti) prodotto cartesiano D1×…×Dn:

l’insieme di tutte le n-uple (d1, …, dn) tali che d1D1, …, dn Dn

relazione matematica su D1, …, Dn: un sottoinsieme di D1×…×Dn.

D1, …, Dn sono i domini della relazione n è il grado della relazione

Page 6: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 6

Relazione matematica, esempio

una relazione r D1 × D2

aaab

bb

xyzxyz

aab

xzy

• D1={a,b}

• D2={x,y,z}

• prodotto cartesiano D1 × D2

Page 7: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 7

Relazione matematica, proprietà

Una relazione è un insieme; quindi: non c'è ordinamento fra le n-uple; due tabelle

con le stesse righe rappresentano la stessa tabella

le n-uple sono distinte ciascuna n-upla è ordinata: l’ i-esimo valore

proviene dall’ i-esimo dominio

Page 8: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 8

Relazione matematica, esempio

Ciascuno dei domini ha due ruoli diversi, distinguibili attraverso la posizione: La struttura è posizionale

3200

1021

JuveLazioJuveRoma

LazioMilanRomaMilan

Partite string × string × int × int

Page 9: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 9

Struttura non posizionale

3200

1021

JuveLazioJuveRoma

LazioMilanRomaMilan

• A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo"

RetiCasa RetiFuoriCasa Fuori

Page 10: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 10

Tabelle e relazioni

Una tabella rappresenta una relazione se i valori di ogni colonna sono fra loro omogenei le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro

In una tabella che rappresenta una relazione l’ordinamento tra le righe è irrilevante l’ordinamento tra le colonne è irrilevante

Page 11: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 11

Confronto della terminologia

DEFINIZIONE

FORMALE

DEFINIZIONE

INFORMALE

relazione tabella

attributo colonna

t-upla riga

dominio tipo di dato

cardinalità numero righe

grado numero colonne

unica differenza significativa:

• definizione formale: assenza di duplicati

•definizione informale: possibili duplicati

Page 12: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 12

Relazioni e basi dati

Una relazione può essere usata per rappresentare dati di interesse, ma in genere non è sufficiente

Una base di dati è costituita da più relazioni, le cui n-uple contengono valori comuni;

Il modello relazionale è basato sui valori i riferimenti fra dati in relazioni diverse sono

rappresentati per mezzo di valori dei domini che compaiono nelle ennuple

Page 13: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso3456 30 043456 24 029283 28 01

esami

6554 26 01

Page 14: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso302428

esami

26

Page 15: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 15

Vantaggi della struttura basata su valori

la rappresentazione logica dei dati non fa riferimento a quella fisica: si ha indipendenza dalle strutture fisiche che possono cambiare dinamicamente

si rappresenta solo ciò che è rilevante dal punto di vista dell’utente; i puntatori sono qualcosa di aggiuntivo legato ad aspetti realizzativi

l’utente finale vede gli stessi dati dei programmatori i dati sono portabili piu' facilmente da un sistema ad

un altro perchè l'informazione è tutta contenuta nei dati

Page 16: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 16

Definizioni

Schema di relazione:  un nome R con un insieme di attributi A1, ..., An:

R(A1,..., An)

A ogni attributo Ai è associato un dominio

DOM(Ai)

Es. STUDENTI(Matricola, Cognome, Nome, Data_Nascita)Matricola, Cognome, Nome, Data_Nascita: AttributiDOM(Matricola)= Numeri NaturaliDOM(Cognome)= String

Page 17: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 17

Definizioni (2)

Schema di base di dati:  insieme di schemi di relazione:

R = {R1(X1), ..., Rk(Xk)}

Es.

UNIVERSITA (STUDENTI, ESAMI, CORSI)

Page 18: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 18

Definizioni, (3)

Una ennupla t su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore di DOM (A)

t[A] denota il valore della ennupla t sull'attributo A

t[A] DOM (A)

Page 19: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

t: (6554, Rossi, Mario, 05/12/1978) : n-upla

t[Matricola ]= 6554, t[Cognome, Data di nascita ]= (Rossi, 05/12/1978)

Page 20: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 20

Definizioni, (4)

(Istanza di) relazione su uno schema R(X):insieme r di ennuple su X

(Istanza di) base di dati su uno schema

R= {R1(X1), ..., Rn(Xn)

insieme di relazioni r = {r1,..., rn} (con ri

relazione su Ri)

Page 21: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 21

Relazioni su singoli attributi

Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Matricola65543456

studenti lavoratori

Page 22: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Strutture nidificate

Da FilippoVia Roma 2, Roma

Ricevuta Fiscale1235 del 12/10/2000

3 Coperti

3,00

2 Bistecche 18,00

3 Primi 12,00

2 Antipasti 6,20

Totale 39,20

Da FilippoVia Roma 2, Roma

Ricevuta Fiscale1240 del 13/10/2000

2 Coperti 2,00

2 Orate 20,00

2 Primi 8,00

2 Antipasti 7,00

2 Caffè 2,00

Totale 39,00

2,00

Page 23: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 23

Relazioni che rappresentano strutture nidificate

1235

3 Coperti 3,00

2 Bistecche 18,00

3 Primi 12,00

2 Antipasti 6,20

39,2012/10/2000

Numero TotaleData

1240 39,0013/10/2000

Ricevute

Dettaglio Qtà Descr. Importo

1235

Numero

1240

1235

1235

1235

2 Coperti 2,00… … … …

Page 24: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 24

Strutture nidifcate, riflessione

Le tabelle rappresentano correttamente le ricevute solo se: Non ci interessa mantenere l'ordine delle righe in

ciascuna ricevuta Non possono esistere linee ripetute in una

ricevuta (potrebbe accadere in presenza di ordinazioni diverse relative alle stesse pietanze)

Sono possibili rappresentazioni diverse

Page 25: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 25

Rappresentazione alternativa per strutture nidificate

1235

3 Coperti 3,00

2 Bistecche 18,00

3 Primi 12,00

2 Antipasti 6,20

39,2012/10/2000

Numero TotaleData

1240 39,0013/10/2000

Ricevute

Dettaglio Qtà Descrizione Importo

1235

Numero

1240

1235

1235

1235

2 Coperti 2,00… … … …

1

4

3

2

Riga

1…

Page 26: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 26

Informazione incompleta

ll modello relazionale impone ai dati una struttura rigida: le informazioni sono rappresentate per mezzo di

ennuple omogenee solo alcuni formati di ennuple sono ammessi:

quelli che corrispondono agli schemi di relazione I dati disponibili possono non corrispondere

al formato previsto

Page 27: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 27

Informazione incompleta: motivazioni

Roma Via IV novembre

Città Prefettura

Firenze

Tivoli

Prato

•Firenze è provincia ma non conosciamo la sede della prefettura

•Tivoli non è una provincia: non ha prefettura

•Prato è nuova provincia: avrà la prefettura?

Page 28: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 28

Valori nulli

In alcuni casi può essere necessario rappresentare in modo semplice la non disponibilità di valori:

1. valore sconosciuto;

2. valore inesistente;

3. valore senza informazione;

Page 29: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 29

Informazione incompleta: soluzioni?

non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...): potrebbero non esistere valori “non utilizzati” valori “non utilizzati” potrebbero diventare

significativi in un momento successivo potrebbe creare confusione: i programmi che accedono

alla base di dati devono distinguere tra valori ''veri'' e fittizi, e dunque sarebbe necessario ogni volta tener conto del “significato” di questi valori

Page 30: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 30

Informazione incompleta nel modello relazionale

Si adotta una tecnica rudimentale ma efficace per esprimere la non disponibilità di valori: valore nullo:  denota l’assenza di un valore del

dominio (e non è un valore del dominio) I DBMS non distinguono i tipi di valore nullo

Definizione estesa: per ogni t-upla t , e per ogni attributo A, t[A], è un valore del dominio dom(A) oppure il valore nullo NULL

Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli: solo alcune configurazioni debbono essere ammesse

Page 31: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 31

Matricola Cognome Nome Data di nascita6554 Rossi Mario NULL

NULL Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Mario02 Chimica NULL

NULL Chimica Verdi

corsi

Studente Voto CorsoNULL 30 NULLNULL 24 029283 28 01

esami

Troppi valori nulli !

Page 32: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 32

Vincoli di integrità

Non è vero che ogni insieme di ennuple sullo schema rappresenta informazioni corrette per l'applicazione

Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse

Page 33: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 33

Una base di dati "scorretta"

Studente Voto Lode Corso32 01276545

276545 30 e lode 02787643 27 e lode 03739430 24 04

Esami

Matricola276545787643787643

CognomeRossiNeri

Bianchi

NomeMarioPieroLuca

Studenti

787643787643

32

27 e lode739430

Page 34: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 34

Vincolo di integrità

Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione

Un vincolo è una funzione booleana che associa ad ogni istanza il valore vero (in tal caso l'istanza soddisfa il vincolo) o falsoOgni schema di base dati ha associato un insieme di vincoliUna istanza della base di dati è corretta se soddisfa tutti i

vincoli

Page 35: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 35

descrizione più accurata della realtà contributo alla “qualità dei dati” utili nella progettazione della base di dati usati dai DBMS nell‘esecuzione delle interrogazioni

Osservazione: non tutte le proprietà di interesse sono rappresentabili per mezzo di vincoli formulabili in modo esplicito

Vincoli di integrità, perché?

Page 36: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 36

Tipi di vincoli

vincoli intrarelazionalivincoli su valori (o di dominio) vincoli di ennupla

vincoli interrelazionali (vincoli di integrità referenziale)

Page 37: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 37

Studente Voto Lode Corso32 01276545

276545 30 e lode 02787643 27 e lode 03739430 24 04

Esami

Matricola276545787643787643

CognomeRossiNeri

Bianchi

NomeMarioPieroLuca

Studenti

32

27 e lode

Vincolo di colonna

Vincolo di n-upla

Page 38: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 38

Vincoli di ennupla

Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple

Caso particolare:Vincoli di colonna (o dominio): coinvolgono

un solo attributo

Page 39: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 39

Sintassi ed esempi

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")

Page 40: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 40

Vincoli di ennupla, esempio

ImpiegatoRossiNeri

Bruni

Stipendi Lordo55.00045.00047.000

Netto42.50035.00036.000

Ritenute12.50010.00011.000

Lordo = (Ritenute + Netto)

Page 41: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 41

Identificazione delle ennuple

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 Nascita

Matricola276557876365432

NomeMario

PieroMario87654

67653

Mario

CognomeRossi

NeriNeri

Rossi

Rossi Piero

CorsoIng Inf

Ing MeccIng Inf

Ing Inf

Ing Mecc

Nascita5/12/78

10/7/793/11/76

3/11/76

5/12/78

Page 42: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 42

Chiave

Una chiave è un insieme di attributi che identificano univocamente 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 propriamente un’altra superchiave)

Page 43: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 43

Una chiave

Matricola è una chiave: è superchiave contiene un solo attributo e quindi è minimale

Matricola276557876365432

NomeMario

PieroMario87654

67653

Mario

CognomeRossi

NeriNeri

Rossi

Rossi Piero

CorsoIng Inf

Ing MeccIng Inf

Ing Inf

Ing Mecc

Nascita5/12/78

10/7/793/11/76

3/11/76

5/12/78

Page 44: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 44

Cognome, Nome, Nascita è un’altra chiave: è superchiave minimale

Matricola276557876365432

Nome

PieroMario87654

67653

Cognome

NeriNeri

MarioMario

RossiRossi

Rossi Piero

CorsoIng Inf

Ing MeccIng Inf

Ing Inf

Ing Mecc

Nascita5/12/78

10/7/793/11/76

3/11/76

5/12/78

MarioMario

RossiRossi

Rossi

5/12/78

5/12/78

Rossi

Mario 3/11/76

3/11/76Mario

Un'altra chiave

Page 45: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 45

Non ci sono ennuple uguali su Cognome e Corso: Cognome e Corso formano una chiave?

Ma è sempre vero?

Matricola276557876365432

NomeMario

PieroMario87654

67653

Mario

CognomeRossi

NeriNeri

Rossi

Rossi Piero

CorsoIng Inf

Ing MeccIng Inf

Ing Civile

Ing Mecc

Nascita5/12/78

10/7/793/11/76

3/11/76

5/12/78

Un'altra chiave??

Page 46: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 46

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 lecite)

ad uno schema associamo un insieme di vincoli e consideriamo corrette le istanze che soddisfano tutti i vincoli

un'istanza può soddisfare altri vincoli (“per caso”)

Page 47: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 47

chiavi:

Matricola

Cognome, Nome, Nascita

Matricola NomeCognome Corso Nascita

Studenti

Page 48: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 48

È corretta: soddisfa i vincoli Ne soddisfa anche altri ("per caso"):

Cognome, Corso è chiave

Matricola276557876365432

NomeMario

PieroMario87654

67653

Mario

CognomeRossi

NeriNeri

Rossi

Rossi Piero

CorsoIng Inf

Ing MeccIng Inf

Ing Civile

Ing Mecc

Nascita5/12/78

10/7/793/11/76

3/11/76

5/12/78

Page 49: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 49

Esistenza delle chiavi

Una relazione non può contenere ennuple distinte ma uguali

Ogni relazione R(X) ha come superchiave l’insieme degli attributi X su cui è definita

e quindi ha (almeno) una chiave

Page 50: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 50

Importanza delle chiavi

l’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati e la loro univoca identificabilità

le chiavi permettono di correlare i dati in relazioni diverse: il modello relazionale è basato su valori

Page 51: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 51

Chiavi e valori nulli

In presenza di valori nulli, i valori della chiave non permettono di identificare le ennuple di realizzare facilmente i riferimenti da altre

relazioni

Page 52: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 52

Matricola

78763

65432

Nome

Piero

Mario87654

NULL

Mario

Cognome

Neri

Neri

Rossi

Neri Mario

Corso

Ing Mecc

Ing Inf

Ing Civile

NULL

Nascita

NULL MarioNULL Ing Inf 5/12/78

10/7/79

NULL

3/11/76

5/12/78Mario87654

NULL

Neri

Neri Mario

Ing Inf

NULL

NULL

5/12/78

NULL MarioNULL Ing Inf 5/12/78

Troppi valori nulli

Page 53: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 53

Chiave primaria

Chiave su cui non sono ammessi nulli Notazione: sottolineatura

Matricola

78763

65432

Nome

Piero

Mario87654

43289

Mario

Cognome

Neri

Neri

Rossi

Neri Mario

Corso

Ing Mecc

Ing Inf

Ing Civile

NULL

Nascita

86765 MarioNULL Ing Inf 5/12/78

10/7/79

NULL

3/11/76

5/12/78

Page 54: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 54

informazioni in relazioni diverse sono correlate attraverso valori comuni

in particolare, valori delle chiavi (primarie) le correlazioni debbono essere "coerenti"

Vincoli di integrità referenziale

Page 55: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Matricola

3987

3295

9345

Vigili Cognome

Rossi

Neri

Neri

Nome

Luca

Piero

Mario

Mori Gino7543

InfrazioniCodice

34321

73321

64521

53524

Data

1/2/95

4/3/95

5/4/96

5/2/98

Vigile

3987

3295

3295

9345

Prov Numero

MI

TO

PR

PR

39548K

E39548

839548

839548

3295

3295

3987

3987

9345

3987

9345

9345

3295

3295

3295

Page 56: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Auto Prov Numero

MI

TO

PR

39548K

E39548

839548

Cognome

Rossi

Rossi

Neri

Nome

Mario

Mario

Luca

InfrazioniCodice

34321

73321

64521

53524

Data

1/2/95

4/3/95

5/4/96

5/2/98

Vigile

3987

3295

3295

9345

Prov Numero

MI

TO

PR

PR

39548K

E39548

839548

839548

MI

TO

PR

PR

39548K

E39548

839548

839548

MI

TO

PR

39548K

E39548

839548

Page 57: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 57

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

Vincolo di integrità referenziale

Page 58: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 58

vincoli di integrità referenziale fra: l’attributo Vigile della relazione

INFRAZIONI e la relazione VIGILI gli attributi Prov e Numero di

INFRAZIONI e la relazione AUTO

Page 59: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 59

InfrazioniCodice34321

733216452153524

Data1/2/954/3/955/4/965/2/98

Vigile3987329532959345

Prov NumeroMITOPRPR

39548KE39548839548839548

Auto Prov NumeroMITOPR

E39548F34268839548

CognomeRossiRossiNeri

NomeMarioMarioLuca

TO E39548

TOE39548

Violazione di vincolo di integrità referenziale

Page 60: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 60

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

• Attenzione ai vincoli su più attributi

Page 61: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 61

Integrità referenziale e valori nulli

Impiegati Matricola34321

6452153524

CognomeRossiNeriVerdi

ProgettoIDEAXYZNULL

Progetti

CodiceIDEA

BOHXYZ

Inizio01/200007/200109/2001

Durata362424

Costo200120150

73032 Bianchi IDEA

Page 62: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 62

Auto Prov Numero

MI

TO

PR

39548K

E39548

839548

Cognome

Rossi

Rossi

Neri

Nome

Mario

Mario

Luca

IncidentiCodice

34321

64521

Data

1/2/95

5/4/96

ProvB NumeroB

MI

TO

39548K

E39548

ProvA NumeroA

TO

PR

E39548

839548

Vincoli multipli su più attributi

Page 63: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 63

vincoli di integrità referenziale fra: gli attributi ProvA e NumeroA di

INCIDENTI e la relazione AUTO gli attributi ProvB e NumeroB di

INCIDENTI e la relazione AUTO L'ordine degli attributi è significativo

Page 64: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 64

Operazioni del modello relazionale

Operazioni di recupero Operazioni di aggiornamento

Inserimento Cancellazione Modifica

Ogni operazione di aggiornamento può violare dei vincoli specificati sullo schema

Page 65: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 65

Inserimento

L’operazione di inserimento fornisce un elenco di valori di attributi per una nuova t-upla da inserire in una relazione R.

Può violare i vincoli: di n-upla assegnazione di valore nullo o già esistente a una chiave integrità referenziale

Generalmente il DBMS rifiuta inserimenti che violano i vincoli

Page 66: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 66

Cancellazione

Può violare l’integrità referenziale, se la t-upla cancellata è riferita dalle chiavi esterne di altre t-uple della base di dati

Azioni compensative: Rifiutare la cancellazione Far ricadere in cascata la cancellazione Modifcare gli attributi riferenti che causano la

violazione (es. porre NULL questi attributi)

Page 67: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 67

Eliminazione in cascata

Impiegati Matricola34321

6452153524

CognomeRossiNeriVerdi

ProgettoIDEAXYZNULL

73032 Bianchi IDEA

Progetti CodiceIDEA

BOHXYZ

Inizio01/200007/200109/2001

Durata362424

Costo200120150

XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120

53524 Neri XYZ

Page 68: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 68

Introduzione di valori nulli

Impiegati Matricola34321

6452153524

CognomeRossiNeriVerdi

ProgettoIDEAXYZNULL

73032 Bianchi IDEA

CodiceIDEA

BOHXYZ

Inizio01/200007/200109/2001

Durata362424

Costo200120150

XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120

NULL

Progetti

Page 69: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 69

Modifica

E’ usata per cambiare i valori di uno o più attributi di t-uple presenti in una qualche relazione

Se l’attributo non è chiave primaria o chiave esterna non ci sono problemi

Altrimenti l’operazione si può ricondurre a una combinazione di operazioni di cancellazione e inserimento con le conseguenti azioni compensative in caso di violazione

Page 70: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 70

Base di dati per la gestione dell’attività dell’ufficio biciclette

Obiettivo (del progetto) è la realizzazione di un sistema informatico in grado di gestire le attività dell’ufficio biciclette. Tale ufficio fornisce ai cittadini una gamma completa di servizi che comprende l’installazione/rimozione di rastrelliere, la gestione di parcheggi custoditi, la marcatura delle biciclette per disincentivare i furti e la rimozione delle biciclette in divieto di sosta o abbandonate.Il sistema informatico permetterà di:• reperire le informazioni sulle installazioni delle rastrelliere e sulle rimozioni delle biciclette;• registrare ordini e pagamenti verso le ditte esterne; • fornire diversi diritti sulle operazioni del sistema in base al tipo di utente; • fornire ai cittadini la visualizzazione di tre tipi di mappe: una relativa ai furti, una alla locazione delle rastrelliere e una ai parcheggi;• immagazzinare le informazioni relative alle biciclette marcate.

Page 71: IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare

Modello Relazionale 71

Base di dati