1 corso di informatica (basi di dati) lezione 4 (9 gennaio 2009) modello relazionale: concetto di...

40
1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza a: tzeni, Ceri, Paraboschi, Torlone - Basi di Dati ucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica AA 2007-2008

Upload: roberta-marras

Post on 01-May-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

1

Corso di Informatica

(Basi di Dati)Lezione 4 (9 gennaio 2009)

Modello Relazionale: concetto di relazione,schema e istanza

Da:Atzeni, Ceri, Paraboschi, Torlone - Basi di DatiLucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica,

AA 2007-2008

Page 2: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

2

Un modello logico dei dati...… è un insieme di strutture utilizzabili per descrivere un insieme di dati che a loro volta descrivono una realtà di interesse.Il modello logico attualmente più diffuso per i DBMS è il Modello Relazionale proposto nel 1970 da E. F. Codd.

Page 3: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

3

Un modello logico dei dati...… A questo punto si vedrà come i dati relativi ad una realtà di interesse, che è stata descritta concettualmente tramite il modello E-R, possano essere organizzati secondo il modello (logico) relazionale.

Page 4: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

4

Relazione e tabellaIl modello relazionale si basa sui due concetti fondamentali di: relazione, inteso come concetto proveniente dalla teoria degli insiemi tabella, concetto semplice e intuitivoche sono però facilmente riconducibili l’uno all’altro in quanto una relazione è rappresentabile in forma tabellare.

Page 5: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

5

Una precisazioneIl termine relazione viene usato in questo corso secondo tre accezioni differenti: relazione intesa come legame logico tra entità (modello E-R) relazione matematica (teoria degli insiemi) relazione nel modello relazionale (proveniente dalla teoria degli insiemi)

Page 6: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

6

Relazione matematicaIniziamo con la definizione di prodotto cartesiano di due insiemi D1 e D2:

dati due insiemi D1 e D2, il prodotto cartesiano D1xD2 è l’insieme di tutte le coppie (v1,v2) tali che v1 è un elemento di D1 e v2 è un elemento di D2.

Page 7: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

7

Relazione matematicaAd esempio se D1={1,2,4} e D2={a,b},il prodotto cartesiano D1xD2 è l’insieme delle 3x2=6 coppie:

{(1,a), (1,b), (2,a), (2,b), (4,a), (4,b)}

Page 8: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

8

Relazione matematicaUna relazione matematica su due insiemi D1 e D2 (chiamati domini della relazione) è un sottoinsieme r del prodotto cartesiano D1xD2.

Ad esempio dati i due insiemi D1={1,2,4} e D2={a,b}, una possibile relazione matematica sui domini D1 e D2 è r={(1,a), (1,b), (4,b)}, in cui si specifica il legame tra 1 e a, tra 1 e b, tra 4 e b.

Page 9: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

9

Relazione matematicaIl prodotto cartesiano e la relazione matematica degli esempi precedenti possono anche essere rappresentati in forma tabellare:

1 a

1 b

2 a

2 b

4 a

4 b

D1xD2

1 a

1 b

4 b

r

Page 10: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

10

Relazione matematicaIn generale, dati n insiemi D1, D2, …, Dn

(anche non distinti) il prodotto cartesiano D1xD2x…xDn è l’insieme di tutte le n-ple (o ennuple) (v1,v2,…,vn) tali che vi è un elemento di Di per ogni i da 1 a n.Una relazione matematica sui domini D1, D2, …, Dn è un sottoinsieme r del prodotto cartesiano D1xD2x…xDn. Il numero n è chiamato grado della relazione (e del prodotto cartesiano), il numero di n-ple che compongono la relazione r è chiamato cardinalità della relazione.

Page 11: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

11

Relazione matematicaQuindi: una relazione matematica è un insieme di n-ple al loro interno ordinate (v1 appartiene a D1, v2 appartiene a D2, …, vn appartiene a Dn) una relazione matematica è un insieme e pertanto:

non esiste ordinamento tra le diverse n-ple le n-ple sono tutte distinte

Page 12: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

12

Relazione matematicaEsempio di relazione matematica rappresentata in forma tabellare:

Juve Lazio

Lazio Milan

Juve Roma

Roma Milan

3 1

0 2

0 2

0 1

I domini sono 4 (grado della relazione):D1: insieme di tutte le stringhe (lo chiamiamo

STRING)D2: insieme di tutte le stringhe (lo chiamiamo

STRING)D3: insieme degli interi >= 0 (lo chiamiamo INT)D4: insieme degli interi >= 0 (lo chiamiamo INT)

Page 13: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

13

Relazione matematica… Nell’esempio precedente si ha una relazione matematica con 4 n-ple (cardinalità della relazione). Si noti però che ciascuno dei due domini STRING ha un ruolo diverso che dipende dalla sua posizione nella relazione. Il primo fa riferimento alla squadra che gioca in casa e il secondo fa riferimento alla squadra che gioca fuori casa. Allo stesso modo per i due domini INT. Il primo è il punteggio realizzato dalla squadra che gioca in casa, mentre il…

Page 14: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

14

Relazione matematica… secondo è il punteggio realizzato dalla squadra che gioca fuori casa. La struttura di una relazione matematica è dunque posizionale. Nelle Basi di Dati relazionali si vogliono organizzare i dati in relazioni che però non abbiano una struttura posizionale.Cosa si può fare?Si può associare a ciascun dominio della relazione matematica un attributo (un nome) che specifica il ruolo che il dominio ricopre.

Page 15: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

15

Relazione matematica… Ad esempio nella relazione matematica dell’esempio sulle squadre si può associare: SquadraCasa al primo dominio STRING SquadraOspite al secondo dominio STRING RetiCasa al primo dominio INT RetiOspite al secondo dominio INT

e nella rappresentazione tabellare si aggiungono gli attributi come intestazione delle colonne.

Page 16: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

16

Relazione matematicaEsempio di relazione matematica rappresentata in forma tabellare con attributi dei domini:

Juve Lazio

Lazio Milan

Juve Roma

Roma Milan

3

0

0

0

1

2

2

1

SquadraCasaSquadraOspiteRetiCasaRetiOspite

Page 17: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

17

Relazione matematicaSi ottiene dunque una struttura relazionale non posizionale. Modificando quindi l’ordine delle colonne il significato dell’informazione contenuta non cambia

Lazio Juve

Milan Lazio

Roma Juve

Milan Roma

1

2

2

1

3

0

0

0

SquadraOspiteSquadraCasaRetiOspiteRetiCasa

Page 18: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

18

Relazione del modello relazionaleUna relazione (o tabella) nel modello relazionale è una relazione matematica in cui: i valori di ogni colonna (corrispondente a un attributo) sono fra loro omogenei (appartengono allo stesso dominio) le righe (n-ple o tuple) sono diverse tra loro le intestazioni delle colonne (attributi) sono diverse tra loro

Page 19: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

19

Relazione del modello relazionale... l’ordinamento tra le righe è irrilevante l’ordinamento tra le colonne è irrilevanteUna Base di Dati relazionale è costituita da più relazioni (tabelle) le cui tuple (n-ple o righe) contengono valori comuni al fine di stabilire corrispondenze.

Page 20: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

20

Esempio di Base di Dati relazionaleSi consideri ad esempio una Base di Dati che organizza i dati relativi ad un’università descritta dal seguente semplice modello E-R:

EsameStudente Corso(0,N) (0,N)

MatricolaCognome

Nome Data di nascita

Codice Titolo

Docente

Voto

Page 21: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

21

Esempio di Base di Dati relazionale…Essa prevede: una relazione (o tabella) che organizza i dati relativi all’entità Studente avente attributi Matricola, Cognome, Nome, DataNascita una relazione (o tabella) che organizza i dati relativi all’entità Corso avente attributi Codice, Titolo, Docente una relazione (o tabella) che organizza i dati relativi alla relationship Esame...

Page 22: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

22

Esempio di Base di Dati relazionale…avente attributi CodiceCorso, Voto, MatricolaStudente

Si noti che nella relazione (o tabella) che si riferisce alla relationship Esame, gli attributi CodiceCorso e MatricolaStudente permettono di tradurre il legame logico esistente tra le due entità Studente e Corso.

Page 23: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

23

Esempio di Base di Dati relazionaleEsempio di tabella relativa all’entità Studente.

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascita

Studenti

Page 24: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

24

Esempio di Base di Dati relazionaleEsempio di tabella relativa all’entità Corso

01 Analisi

03 Chimica

04 Chimica

Giani

Melli

Belli

Codice Titolo Docente

Corsi

Page 25: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

25

Esempio di Base di Dati relazionaleEsempio di tabella relativa alla relationship Esame

276545 28

276545 27

200768 24

01

04

04

MatricolaStudente Voto CodiceCorso

Esami

Page 26: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

26

Esempio di Base di Dati relazionale

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascita

01 Analisi03 Chimica04 Chimica

GianiMelliBelli

Codice Titolo Docente

276545 28276545 27200768 24

010404

MatricolaStudente Voto CodiceCorso

Studenti

Esami

Corsi

Page 27: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

27

Definizioni relative al modello relazionaleUno schema di relazione è un nome R con un insieme di attributi X={A1,A2, …,An}:

R(X)=R(A1,A2,…,An)

Ad esempio lo schema della relazione (o tabella) che organizza i dati degli studenti nell’esempio precedente è:Studenti(Matricola,Cognome,Nome,DataNascita)

se si decide di nominare tale tabella Studenti. A ciascun attributo Ai è associato un dominio.

Page 28: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

28

Definizioni relative al modello relazionaleLo schema della tabella Studenti è evidenziato in rosso

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascitaStudenti

Page 29: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

29

Definizioni relative al modello relazionaleUno schema di base di dati è un insieme di schemi di relazione:

{R(X1),R(X2),…,R(Xm)}

Ad esempio lo schema della base di dati nell’esempio precedente è:{Studenti(Matricola,Cognome,Nome,DataNascita),Corsi(Codice,Titolo,Docente),Esami(MatricolaStudente,Voto,CodiceCorso)}

se si decide di nominare le tabelle con i nomi Studenti, Corsi ed Esami.

Page 30: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

30

Definizioni relative al modello relazionale

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascita

01 Analisi03 Chimica04 Chimica

GianiMelliBelli

Codice Titolo Docente

276545 28276545 27200768 24

010404

MatricolaStudente Voto CodiceCorso

Lo schema della Base di Dati precedente è evidenziato in rosso

Page 31: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

31

Definizioni relative al modello relazionaleUna ennupla (o n-pla, o tupla) su un insieme X di n attributi è una funzione t che associa a ciascun attributo A in X un valore appartenente al dominio di A.

Data una ennupla t sull’insieme X di attributi e un attributo A di X, si indichi con t[A] il valore che l’attributo A assume in t.

Data una ennupla t sull’insieme X di attributi e un sottoinsieme Y di X, si indichi con t[Y] l’insieme che gli attributi di Y assumono in t.

Page 32: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

32

Definizioni relative al modello relazionaleAd esempio se X={Codice,Titolo,Docente} è l’insieme degli attributi della tabella Corsi, indicando con t la ennupla (01,Analisi,Giani) su X, si ha t[Codice] è 01 e t[Codice,Docente] è (01, Giani).

Page 33: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

33

Definizioni relative al modello relazionale

Esempio di ennupla per la tabella Corsi

01 Analisi

03 Chimica

04 Chimica

Giani

Melli

Belli

Codice Titolo Docente

ennupla

Corsi

Page 34: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

34

Definizioni relative al modello relazionaleUn’istanza di relazione su di uno schema R(X) è un insieme di ennuple su XAd esempio un’istanza della relazione Studenti che organizza i dati degli studenti nell’esempio precedente è evidenziata in rosso

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascitaStudenti

Page 35: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

35

Definizioni relative al modello relazionaleUn’istanza di Base di Dati su di uno schema {R(X1),R(X2),…,R(Xm)} è un insieme di istanze di relazione r1, r2, …, rm, dove ri (per i da 1 a m) è un’istanza di relazione sullo schema R(Xi)

Page 36: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

36

Definizioni relative al modello relazionale

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascita

01 Analisi03 Chimica04 Chimica

GianiMelliBelli

Codice Titolo Docente

276545 28276545 27200768 24

010404

MatricolaStudente Voto CodiceCorso

L’istanza della Base di Dati precedente è evidenziato in rosso

Page 37: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

37

Definizioni relative al modello relazionaleIn sintesi: lo schema (di una relazione o di una Base di Dati) è la parte che non varia nel tempo (a meno che lo schema stesso non venga ridefinito…) l’istanza (di una relazione o di una Base di Dati) è la parte che varia nel tempo in quanto le Basi di Dati vengono aggiornate costantemente

Page 38: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

38

Nota Bene!La stessa realtà può essere rappresentata mediante schemi relazionali differenti. Ad esempio i dati relativi all’entità Studente e alla relationship Esame dell’esempio precedente possono essere organizzati in un’unica tabella Studenti2 avente schema:

Studenti2(Matricola,Cognome,Nome,DataNascita,CodiceCorso,Voto)

eliminando quindi la tabella Esami dello schema precedente

Page 39: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

39

Nota Bene!La nuova Base di Dati diventa quindi:

276545 Rossi

485745 Neri

200768 Verdi

587614 Rossi

Maria

Anna

Fabio

Luca

25/11/1971

23/04/1972

12/02/1972

10/10/1971

Matricola Cognome Nome DataNascita

01 Analisi03 Chimica04 Chimica

GianiMelliBelli

Codice Titolo Docente

01

04

28

24

CodiceCorso Voto

276545 Rossi Maria 25/11/1971 04 27

Studenti2

Corsi

Page 40: 1 Corso di Informatica (Basi di Dati) Lezione 4 (9 gennaio 2009) Modello Relazionale: concetto di relazione, schema e istanza Da: Atzeni, Ceri, Paraboschi,

40

Nota Bene!Quali sono però gli svantaggi di questo secondo schema? ci possono essere dati ripetuti (si vedano le ennuple riguardanti la studentessa Maria Rossi che ha sostenuto due esami) ci possono essere ennuple in cui i valori per alcuni attributi sono nulli (si vedano le ennuple relative a studenti che non hanno sostenuto esami)