+ All Categories
Home > Documents > Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi...

Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi...

Date post: 02-May-2015
Category:
Upload: erminia-rossa
View: 248 times
Download: 4 times
Share this document with a friend
39
Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi grandi quanto sugli elaboratori personali. Definizione: I meccanismi per definire database con il modello relazionale sono l’ennupla (o record) e la relazione (o tabella): una relazione R è definita da un insieme finito di coppie (campi) della forma T = (A 1 : T 1 , A 2 :T 2 ,…, A k :T k ) dove gli A i sono detti attributi e i T i sono tipi elementari – lo schema di una base di dati è un insieme di relazione Ri(Ti); un’istanza di una relazione R(T) è un insieme finito di ennuple di tipo T, cioe di oggetti della forma (A1:v 1 , A:v 2 , …, A k :v k ) dove i v i sono di tipo T i Modello relazionale
Transcript
Page 1: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Il Modello Relazionale• Il modello relazionale dei dati, proposto nel 1970 ed adottato nei

sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi grandi quanto sugli elaboratori personali.

• Definizione: I meccanismi per definire database con il modello relazionale sono l’ennupla (o record) e la relazione (o tabella):

– una relazione R è definita da un insieme finito di coppie (campi) della forma T = (A1: T1, A2:T2,…, Ak:Tk) dove gli Ai

sono detti attributi e i Ti sono tipi elementari

– lo schema di una base di dati è un insieme di relazione Ri(Ti);

– un’istanza di una relazione R(T) è un insieme finito di ennuple di tipo T, cioe di oggetti della forma (A1:v1, A:v2, …,

Ak:vk) dove i vi sono di tipo Ti

Modello relazionale

Page 2: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempio: relazione StudentiSchema Relazione

Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int)

Istanza di Studenti

1980PI175649Bonini

1078LI179856Bianchi

1975LU167459Rossi

1980PI171523Isaia

AnnoNascitaProvinciaMatricolaNome

Per semplicità una relazione si rappresenta come una tabella le cui colonne rappresentano gli attributi della relazione e le righe le ennupledella relazione.

ennupla

attributo

Valoredi attributo

Modello relazionale

Page 3: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Chiavi• Chiave

Un insieme di campi di una tabella è una chiave se per ogni istanza di tale tabella non esistono due record che coincidano su tutti i valori di tali campi.

• Chiave primaria: una delle chiavi, in genere la più corta– Esempio:

(Matricola) e (Nome,Indirizzo) sono chiavi inStudenti(Matricola: Int, Nome: String, Indirizzo: String)

Modello relazionale

Page 4: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazioni• Associazione tra ennuple

– rappresentata attraverso i valori di un insieme di attributi (chiave esterna), che assume come valori quelli della chiave primaria di un’altra relazione.

• Es.

Nome Matricola Provincia AnnoNascita

Isaia 171523 PI 1980

Materia Candidato Data Voto

BD 171523 12/01/01 29

Studenti

Esami

Modello relazionale

Page 5: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazione: esempioStudenti(Nome: string, Matricola: string, Provincia: string,

AnnoNascita:int)Esami(Materia: string, Candidato*: string, Data: string, Voto: int)

Studenti

Esami

1980PI175649Bonini

1078LI179856Bianchi

1975LU167459Rossi

1980PI171523Isaia

AnnoNascitaProvinciaMatricolaNome

3013/02/01179856FP

1811/02/01171523LMM

2515/01/01175649BD

3015/01/01167459BD

2812/01/01171523BD

VotoDataCandidato*Materia

Studenti

Esami

Modello relazionale

Nome Matricola Provincia AnnoNascita

Materia Data Voto

Page 6: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Schema grafico relazionaleStudenti(Nome: string, Matricola: string, Provincia:

string, AnnoNascita:int)Esami(Materia: string, Candidato*: string, Data: string,

Voto: int)

EsamiStudenti

Nome

Matricola

Provincia

AnnoNascita

Materia

Candidato*

DataVoto

Legenda: A B In B c’è una chiave esterna per A

Modello relazionale

Page 7: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempio: altre soluzioni 1/2

Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int, Esame*:int)

Esami(Codice :int, Materia: string, Data: string, Voto: int)

EsamiStudenti

Nome

Matricola

Provincia

AnnoNascita

Materia

Codice

DataVoto

Esame*

Modello relazionale

Page 8: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempio: altre soluzioni 2/2

Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int)

Esami(Codice :int, Materia: string, Data: string, Voto: int)

StudentiEsami(Esame*: int, Candidato*: string)

Esami

Materia

Codice

DataVoto

Studenti

Nome

Matricola

Provincia

AnnoNascita

StudentiEsami

Candidato* Esame*

Modello relazionale

Page 9: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Trasf. di schemi ER in relazionali

• Il modello relazionale non si presta alla modellazione concettuale per la sua povertà espressiva– Attributi con tipi elementari– Associazioni con chiavi esterne, (1:1) o

(0:n)?

• Quindi:– Si modella con diagrammi ER– Regole di trasformazione da ER a

formalismo grafico relazionale

Conversione ER-relazionale

Page 10: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Passi di trasformazione

Passi di trasformazione:– Trasf. associazioni 1:1 e 0:n– Trasf. associazioni n:n– Trasf. Gerarchie di inclusione– Identificazione chiavi primarie– Trasf. attributi multivalore– Appiattimento attributi composti

Scopo:– Rappresentare le stesse informazioni– Minimizzare la ridondanza– Schema comprensibile– Evitare sprechi di memoria

Conversione ER-relazionale

Page 11: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazioni 0:n

StudentiEsami

Esami Studenti

RegolaChiave esterna aggiunta alla tabella con associazione univoca

Conversione ER-relazionale

Materia

DataVoto

Nome

Matricola

Provincia

AnnoNascita

Nome

Matricola

Provincia

AnnoNascita

Materia

Candidato*

DataVoto

Page 12: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazioni 1:1

ProfessoriFacolta

ProfessoriFacolta

Conversione ER-relazionale

RegolaChiave esterna aggiunta a una qualsiasi delle due tabelle coinvolte (precedenza al vincolo di totalità)

DirettaDa DirettoreDiNome

idFacoltaIndirizzo

Nome

idProfessore

Provincia

AnnoNascita

NomeidFacoltaDirettore*

Indirizzo

Page 13: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazioni unarie

Persone

Persone

compagnoDi

Conversione ER-relazionale

Nome

idPersona

Provincia

AnnoNascita

NomeidPersona

Provincia

AnnoNascita

Compagno*

RegolaSi aggiunge una chiave esterna alla tabella stessa

Page 14: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazioni n:n

CCorrentiPersone

Persone Persone-CC CCorrenti

Conversione ER-relazionale

Nome

idPersona

idConto

Saldo

Nome

idPersona

idConto

Saldo

idPersona* idConto*

RegolaSi aggiunge una terza tabella che contiene le chiavi esterne relative alle due tabelle coinvolte.

Page 15: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Associazione con proprietà

UtentiLibri

Libri Utenti

Data

Conversione ER-relazionale

RegolaAttributi aggiunti alla tabella con chiave esterna, oppure ad una terza tabella con due chiavi esterne

Titolo

idLibro

AutoreprestatoA libriInPrestito

TitoloUtente*

Data

idLibro

Autore

Nome

idUtente

Nome

idUtente

Libri Utenti

Titolo

idLibro

AutoreNomeidUtentePrestiti

Libro* Data Utente*

Page 16: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempio di conversione

Autori-Libri

Autori

Prestiti

Utenti

Editori Libri

Editori

Autori Utenti

Libri Prestiti

Conversione ER-relazionale

Page 17: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Attributi multivalore

Persone LingueParlate

Persone LingueParlate Lingua

Persone LingueParlate Lingue

Conversione ER-relazionale

Persone LingueParlate Lingua

Page 18: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Le sottoclassi

Studenti

Persone [ nome: string età: int codice: int ]

[ corsoDiLaurea: string matricola: int ]

Diventa:

Studenti

Persone ( Nome: string età: int codice: int )

( codice*: int corsoDiLaurea: string matricola: int )

Persone( nome: string età: int codice: int corsoDiLaurea: optional string matricola: optional int )

Oppure:

Studenti

Persone

( Nome: string età: int codice: int )

( codice: int Nome: string età: int corsoDiLaurea: string matricola: int )

Oppure:

Conversione ER-relazionale

Page 19: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Le sottoclassi (cont.)Persone

FemmineMaschi

Persone

AttrP con chiave ChP

AttrFAttrM

AttrP con chiave ChPAttrM optionalAttrF optional

Persone

Maschi

Femmine

AttrM con chiave esterna ChP

AttrF con chiave esterna ChP

AttrP con chiave ChP

Maschi

Femmine

AttrP con chiave ChP

e AttrM

AttrP con chiave ChP

e AttrF

Conversione ER-relazionale

Page 20: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Criteri di scelta

• Numero di attributi delle sottoclassi

• Tipo di operazioni– Riguardano tutte le informazioni di

elementi di una sottoclasse?– Riguardano la visita di tutti gli elementi

della superclasse?

Conversione ER-relazionale

Page 21: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Linguaggi relazionali

Per il modello relazionale sono stati definiti due principali linguaggi che sono stati poi usati per definire e implementare il linguaggio SQL dei DBMS.

Algebra relazionaleinsieme di operatori su relazioni che danno come risultato relazioni. Non si usa come linguaggio di interrogazione dei DBMS ma come rappresentazione interna delle interrogazioni.

Calcolo relazionalelinguaggio dichiarativo di tipo logico dal quale è stato derivato l'SQL.

Linguaggi relazionali

Page 22: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Algebra relazionaleNotazione

R e S relazionit, s ennupleA,B,C attributiX,Y,Z insiemi di attributi

Operatori di base• Proiezione• Restrizione• Ridenominazione• Prodotto• Giunzione

Linguaggi relazionali

Page 23: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

ProiezioneProiezione (): elimina gli attributi che non sono nella lista di proiezione

A1...An (R)

Qual è il tipo del risultato? Se R ha n elementi quanti ne ha il risultato?

Linguaggi relazionali

Page 24: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempi di proiezione

Nome, Matricola (Studenti)

1980PI175649Bonini

1078LI179856Bianchi

1975LU167459Rossi

1980PI171523Isaia

AnnoNascitaProvinciaMatricolaNome

Studenti

Nome Matricola

Isaia 171523

Rossi 167459

Bianchi 179856

Bonini 175649

Nome (Studenti)

Nome

Isaia

Rossi

Bianchi

Bonini

Linguaggi relazionali

Page 25: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

RestrizioneRestrizione (selezione) (: seleziona le ennuple della

relazione che soddisfano la condizione.

Condizione (R)

Qual è il tipo del risultato?

Se R ha n elementi quanti ne ha il risultato?

Linguaggi relazionali

Page 26: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempio di restrizione

AnnoNascita<1979 (Studenti)

Linguaggi relazionali

1980PI175649Bonini

1078LI179856Bianchi

1975LU167459Rossi

1980PI171523Isaia

AnnoNascitaProvinciaMatricolaNome

Studenti

1078LI179856Bianchi

1975LU167459Rossi

AnnoNascitaProvinciaMatricolaNome

Page 27: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Es. di composizione di operatori

Il numero di matricola degli studenti nati prima del 1979

Matricola( AnnoNascita<1979 (Studenti) )

Linguaggi relazionali

1980PI175649Bonini

1078LI179856Bianchi

1975LU167459Rossi

1980PI171523Isaia

AnnoNascitaProvinciaMatricolaNome

Studenti

179856

167459

Matricola

Page 28: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Prodotto e ridenominazioneProdotto (): l'operatore ha due argomenti R e S con attributi distinti e

il risultato è una relazione con elementi ottenuti concatenando ogni

ennupla di R con tutte quelle di S.

a A

a1 A1

a2 A2

a A b Ba1 A1 b1 B1

a1 A1 b2 B2

a1 A1 b3 B3

a2 A2 b1 B1

a2 A2 b2 B2

a2 A2 b3 B3

b B

b1 B1

b2 B2

b3 B3

Ridenominazione (): cambia il nome di un attributo di una relazione

A B (R)

Linguaggi relazionali

Page 29: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

GiunzioneGiunzione naturale ( )

R(ZX) e S(YX)

R S = { t | t[XY]R e t[ZX]S }

a A

a1 A1

a2 A2

a A Ba1 A1 B1

a1 A1 B3

a2 A2 B3

A B

A1 B1

A3 B2

A1 B3

A2 B3

Giunzione esplicitaR.A = S.B

R S

Linguaggi relazionali

Page 30: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempi di giunzione 1/4Trovare i nomi degli studenti che hanno passato un esame con voto inferiore a 28

Studenti

Esami

1980PI175649Bonini

1978LI179856Bianchi

1975LU167459Rossi

1980PI171523Isaia

AnnoNascitaProvinciaMatricolaNome

3013/02/01179856FP

1811/02/01171523LMM

2515/01/01175649BD

3015/01/01167459BD

2812/01/01171523BD

VotoDataCandidato*Materia

Linguaggi relazionali

Page 31: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempi di giunzione 2/4

Linguaggi relazionali

Matricola = Candidato Nome( Voto<28 (Studenti Esami))

2515/01/01175649BD1980PI175649Bonini

3013/02/01179856FP1978LI179856Bianchi

3015/01/01167459BD1975LU167459Rossi

1811/02/01171523LMM1980PI171523Isaia

2812/01/01171523BD1980PI171523Isaia

VotoDataCandidatoMateriaAnnoNascitaProvinciaMatricolaNome

Page 32: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempi di giunzione 3/4

Linguaggi relazionali

Matricola = Candidato Nome( Voto<28 (Studenti Esami))

2515/01/01175649BD1980PI175649Bonini

1811/02/01171523LMM1980PI171523Isaia

VotoDataCandidatoMateriaAnnoNascitaProvinciaMatricolaNome

Page 33: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Esempi di giunzione 4/4

Linguaggi relazionali

Matricola = Candidato Nome( Voto<28 (Studenti Esami))

Bonini

Isaia

Nome

Page 34: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Trasformazioni algebriche• Basate su regole di equivalenza fra espressione algebriche• Consentono di scegliere diversi ordini di join e di anticipare proiezioni e

restrizioni. • Consideriamo la relazione R(A, B, C, D):

C1 C2(E1 E2) C1 (E1) C2 (E2)

C1(C2(C3(R) C1 C2 C3(R)

A (AB (ABC (R))) A(R)

R (S T) (R S) T

(R S) (S R)

• Ottimizzazione algebrica: anticipazione delle proiezioni e delle restrizioni rispetto al prodotto per ridurre la dimensione dei risultati intermedi

Linguaggi relazionali

Page 35: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Alberi logici e trasformazioni algebricheConsideriamo le relazioni R(A, B, C, D) e S(E, F, G) e l'espressione:

A,F(A=100 and F > 5 and A = E (R x S))

R S

A=100 F > 5R S

A=100 F > 5

A,F

A = E

A,F

A = E

A E, F

Linguaggi relazionali

Page 36: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Extra su Algebra Relazionale

Page 37: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Algebra relazionale: (cont.)

Unione (): l'operatore ha due argomenti R e S dello stesso tipo e il risultato è una relazione ottenuta facendo l'unione delle ennuple di R con quelle di S.

R SDifferenza (-): l'operatore ha due argomenti R e S dello stesso tipo

e il risultato è una relazione contenente le ennuple di R non presenti in S.

R S = { t | tR e tS }

Qual è il tipo del risultato? Se R e S hanno n elementi quanti ne ha il risultato?

Se t1 è un'ennupla non in R , allora

R = (R {t1}) {t1})

Linguaggi relazionali

Page 38: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Algebra relazionale: (cont.)Semi-giunzione ( )

R(ZX) e S(YX)

R S = { t R | t[X] X(S) }

a A

a1 A1

a2 A2

A B

A1 B1

A3 B2

A1 B3

A2 B3a2 A4

A B

A1 B1

A1 B3

A2 B3

Linguaggi relazionali

Page 39: Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente.

Algebra relazionale: (cont.)Operatori derivati

Intersezione ()

R S = { t | t R e t S }Divisione ( \ )

R \ S = { t | {t} S R} vale che (R S)\S = R

a A

a1 A1

a2 A2

a A b Ba1 A1 b1 B1

a1 A1 b2 B2

a1 A1 b3 B3

a2 A2 b1 B1

a2 A2 b2 B2

a2 A2 b3 B3

b B

b1 B1

b2 B2

b3 B3

Linguaggi relazionali


Recommended