+ All Categories
Home > Business > 02 Modello, Algebra E Calcolo Relazionale

02 Modello, Algebra E Calcolo Relazionale

Date post: 26-May-2015
Category:
Upload: guestbe916c
View: 1,607 times
Download: 0 times
Share this document with a friend
62
Il modello relazionale 1 Il Modello Relazionale 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 Oggi e` il modello logico piu` diffuso ed e` adottato dalla larga maggioranza dei DBMS disponibili a livello commerciale
Transcript
Page 1: 02  Modello, Algebra E Calcolo Relazionale

1

Il modello relazionale 1

Il Modello Relazionale

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 Oggi e` il modello logico piu` diffuso ed e` adottato dalla larga maggioranza dei DBMS disponibili a livello commerciale

Page 2: 02  Modello, Algebra E Calcolo Relazionale

2

3

Il modello relazionaleCaratteristiche:

E` basato su una semplice struttura dati – la relazioneE` caratterizzato da precise basi matematiche (teoria degliinsiemi + logica dei predicati del primo ordine)

VantaggiSemplice rappresentazione dei dati linguaggidichiarativiFacilita` con cui possono essere espresse interrogazionianche complesse

4

Il modello relazionaleDue linguaggi di interrogazione:

algebra relazionale, in cui le interrogazioni sono espresseapplicando operatori specializzati alle relazionicalcolo relazionale, in cui le interrogazioni sono espresseper mezzo di formule logiche che devono essere verificatedalle tuple ottenute come risposta all’interrogazione

I due linguaggi, sotto opportune ipotesi, hanno lo stesso potere espressivoSono la base a partire dalla quale e` statosviluppato il linguaggio standard per l’accesso e la manipolazione di dati relazionali SQL

Page 3: 02  Modello, Algebra E Calcolo Relazionale

3

5

Prima di introdurre le relazioni …

DominioProdotto Cartesiano

6

DominioUn dominio è un insieme (anche infinito) di valori

Esempi:l'insieme dei numeri interil'insieme delle stringhe di caratteril'insieme {0,1}

Nel seguito:D insieme di tutti i dominiint: numeri interireal: numeri realistring: stringhedate: date

Page 4: 02  Modello, Algebra E Calcolo Relazionale

4

7

Relazione – prodotto cartesiano

D1, D2, …, Dk ∈ D (k insiemi anche non distinti)

il prodotto cartesiano D1×D2×…×Dk è definito come:{(v1, v2, . . . , vk) | v1 ∈ D1, . . . , vk ∈ Dk}

Il prodotto cartesiano D1×D2×…×Dk ha grado kOgni elemento del prodotto cartesiano e` detto tupla

8

RelazioneSiano D1, D2, …, Dk ∈ D domini

Una relazione su D1, D2, …, Dk e` un sottoinsieme finitodel prodotto cartesiano D1×D2×…×Dk

Una relazione, sottoinsieme del prodotto cartesiano dik domini, ha grado kOgni tupla di una relazione di grado k ha k componenti, una per ogni dominio su cui e` definita la relazione cui la tupla appartieneLa cardinalita` di una relazione e` il numero di tupleappartenenti alla relazione

Page 5: 02  Modello, Algebra E Calcolo Relazionale

5

9

Notazioni

Sia R una relazione di grado kSia t una tupla di RSia i ∈ {1,...,k}

t[i] denota la i-esima componente di t

10

Esempio D1={0,1,2} D2={d,v}prodotto cartesiano D1 × D2 = {(0,d),(0,v),(1,d),(1,v),(2,d),(2,v)}

una relazione di cardinalita` 3 r1 ⊆ D1 × D2 r1 = {(0,d),(0,v),(1,d)}

una relazione di cardinalita` 2 r2 ⊆ D1 × D2 r2 = {(0,d),(2,d)}

t = (0,d) t[1] = 0 t[2] = d

Page 6: 02  Modello, Algebra E Calcolo Relazionale

6

11

Relazione - proprietà

Una relazione è un insieme di tuple, in quanto tali ordinate al loro interno:

(d1, d2, …, dk)

D1 D2 Dk

∈ ∈ ∈

12

Relazione - proprieta`

Una relazione è un insieme, quindi: non è definito alcun ordinamento fra le tuplele tuple di una relazione sono distinte l’una dall’altra

E` un insieme finitoCiascun dominio puo` invece essere infinito

Page 7: 02  Modello, Algebra E Calcolo Relazionale

7

13

Relazione – notazioneposizionale

La formulazione introdotta permette di riferireogni componente di una tupla per posizione

t = (d1, d2, …, dk )

t[1] t[2] … t[k]

14

Relazioni – notazione per nome

Viene associato un nome, detto nome di attributo, ad ogni componente delle tuple in una relazione

La coppia (nome di attributo, dominio) e` detta attributo

L’uso degli attributi permette didenotare le componenti di ogni tupla per nomepiuttosto che per posizionefornire maggiori informazioni semantiche sulleproprieta` che ogni componente delle tuple in unarelazione modella

Useremo questa notazione

Page 8: 02  Modello, Algebra E Calcolo Relazionale

8

15

Relazione - schemaR nome di relazione{A1,A2,. . . , An} un insieme di nomi di attributi

dom : {A1,A2, . . . ,An} → D una funzione totale cheassocia ad ogni nome di attributo in {A1,A2, . . . ,An} ilcorrispondente dominio

La coppia (R(A1,A2, . . . ,An), dom) e` unoschema di relazione

UR denota l’insieme dei nomi di attributi di R UR = {A1,A2, . . . ,An}

16

Schema di base di dati

Siano S1, S2, . . . , Sn schemi di relazioni, con nomi di relazione distinti

S = {S1, S2, . . . , Sn} e` dettoschema di base di dati

Page 9: 02  Modello, Algebra E Calcolo Relazionale

9

17

Tupla e relazioneSia (R(A1,A2, . . . ,An), dom) uno schema di relazione

Una tupla t definita su R e` un insieme di funzioni totali f1, f2, . . . , fn, dove

fi : Ai → dom(Ai), i = 1, ..., n, associa all’attributo dinome Ai un valore del dominio di tale attributo

Una relazione definita su uno schema di relazione e` un insieme finito di tuple definite su tale schema

tale relazione e` anche detta istanza dello schema

18

NotazioneSchema di relazione (R(A1,A2, . . . , An), dom), Una tupla t su tale schema puo` essererappresentata come

[A1 : v1,A2 : v2, . . . ,An : vn]vi, i = 1, . . . , n, e` un valore appartenente a dom(Ai)t[Ai] = vi, i =1,…,nA = {Ai1,…,Aik} ⊆ {A1,…,An}t[A] = (vi1,…,vik)

Page 10: 02  Modello, Algebra E Calcolo Relazionale

10

19

Esempio

Schema: Film(titolo,regista,anno,genere,valutaz)dom(titolo) = dom(regista) = dom(genere) = stringdom(anno) = intdom(valutaz) = real

Relazione (= istanza dello schema) ⊆ string × string × int × string × real

Tupla: [titolo:‘ed wood’,regista:‘tim burton’,anno:1994,genere:’drammatico’,valutaz:4.00]

20

Valori nulli

Non sempre sono disponibili informazioni sulle entità del dominio applicativo rappresentato nella base di dati

alcune tuple possono non avere un valore per unqualche attributo

Si introduce un valore speciale (valore nullo) che denota la mancanza di valore

Page 11: 02  Modello, Algebra E Calcolo Relazionale

11

21

Valori nulli – quale valore?Usare un valore legale per almeno un dominio non e` una buonasoluzione

Se scegliamo 0, 0 e` un valore legale per i domini numericiil suo uso non permetterebbe di distinguere il caso in cui 0 siaeffettivamente il valore dell’attributo dal caso in cui 0 indichi il valorenullo

Assumiamo di denotare il valore nullo con il simbolo ‘?’Il valore nullo e` un valore ammissibile per ogni dominioI linguaggi come SQL permettono di specificare nella definizionedi una relazione quali attributi non possono mai assumere valorenullNotazione

negli schemi evidenziamo con un circoletto gli attributi che possonoassumere valori nulli

22

Esempio

Noleggio(colloc,dataNol,codCli,dataResto)

dom(codCli) = dom(colloc) = intdom(dataNol)= dom(dataRest)= date

Page 12: 02  Modello, Algebra E Calcolo Relazionale

12

23

ChiaviUna chiave di una relazione e` un insieme diattributi che distingue fra loro le tuple dellarelazioneSia R(A1, ...,An) uno schema di relazioneUn insieme X ⊆ UR di attributi di R e` chiave di R se verifica entrambe le seguenti proprieta`:

1. qualsiasi sia lo stato di R, non esistono due tuple distintedi R che abbiano lo stesso valore per tutti gli attributi in X

2. nessun sottoinsieme proprio di X verifica la proprieta` (1)Un insieme di attributi che verifica la proprieta` (1) ma non la proprieta` (2), e` detto super-chiave diR

24

Chiavi candidateUna relazione puo` avere piu` di un insieme S di attributi cheverificano le proprieta` (1) e (2)

chiavi candidate Le chiavi delle relazioni vengono individuate mediante esamedel dominio applicativo e dei relativi vincoliUna relazione ha sicuramente almeno una chiave

UR soddisfa sempre la proprieta` (1)

Chiavi candidate

Chiave primaria

Chiavi alternative

Page 13: 02  Modello, Algebra E Calcolo Relazionale

13

25

ChiaviUna tupla e’ identificata dal valore di una qualunquechiave candidataSi preferisce pero’ usare la chiave primaria

Usata dal DBMS per ottimizzare le operazioniCriteri di scelta della chiave primaria

Chiave candidata contenente il minor numero di attributiChiave candidata piu` frequentemente utilizzata nelleinterrogazioni

Le chiavi primarie non possono assumere valorinulliLe chiavi alternative possono assumere valori nulli

26

EsempioCliente(codCli,nome,cognome,telefono,dataN,residenza)

Film(titolo,regista,anno,genere,valutaz◦)

Video(colloc,titolo,regista,tipo)

Noleggio(colloc,dataNol,codCli,dataRest◦)

Page 14: 02  Modello, Algebra E Calcolo Relazionale

14

27

Chiavi esternePermettono di modellare le associazioniSiano

R ed R′ due relazioniY ⊆ UR’ una chiave per R′ X ⊆ UR un insieme di attributi di R tale che Y e X contengano lo stesso numero di attributi e di dominio compatibile

X e` una chiave esterna di R su R′ se, qualsiasi siano gli stati di R ed R′, per ogni tupla t di R esiste una tupla t′ di R′ tale che

t[X] = t′[Y ]

R viene detta relazione referenteR′ viene detta relazione riferita

28

Chiavi esterne - schema

R(A,B,C,D,E)

R’(F,G,H,I)

Y

X

(D,E) e (F,G) domini compatibili(D,E) puo` essere definita comechiave esterna di R su R’

Page 15: 02  Modello, Algebra E Calcolo Relazionale

15

29

Chiavi esterne - istanza

A B C D E

a1 b1 c1 d1 e1a2 b1 c2 d2 e1a3 b2 c3 d1 e1a4 b2 c3 d2 e3

F G H I

d1 e1 h1 i1d1 e2 h2 i2d2 e1 h1 i3d2 e4 h3 i4d2 e2 h1 i1d2 e3 h2 i1

R R’

30

Chiavi esterneLe chiavi esterne permettono di collegare tra lorotuple di relazioni diverse

meccanismo per realizzare le associazioniper valore

Page 16: 02  Modello, Algebra E Calcolo Relazionale

16

31

Integrita` referenziale

Qualsiasi siano gli stati di R ed R′, per ogni tupla t di R esiste una tupla t′ di R′ tale che t[X] = t′[Y ]

Vincolo di integrita’ referenziale

32

EsempioCliente(codCli,nome,cognome,telefono,dataN,residenza)

Film(titolo,regista,anno,genere,valutaz◦)

Video(colloc,titoloFilm,registaFilm,tipo)

Noleggio(collocVideo,dataNol,codCliCliente,dataRest◦)

Page 17: 02  Modello, Algebra E Calcolo Relazionale

17

33

Esempio

Vincolo diintegrita` referenzialesoddisfatto

34

EsempioVincolo diintegrita` referenzialesoddisfatto

Page 18: 02  Modello, Algebra E Calcolo Relazionale

18

35

Esempio

1126 22-Mar-2006 6655 ?

Vincolo diintegrita` referenzialeNON soddisfatto

36

Violazioni integrita` referenziale

L’integrita` referenziale puo` essere violata dainserimenti e modifiche (del valore della chiave esterna) nella relazione referenteda cancellazioni e modifiche (del valore della chiave) nellarelazione riferita

I linguaggi per basi di dati quali SQL permettonoall’utente, nella definizione di chiavi esterne, dispecificare quali azioni eseguire nel caso in cui operazioni di modifica violino l’integrita` referenziale

Page 19: 02  Modello, Algebra E Calcolo Relazionale

19

37

Violazioni

1126 22-Mar-2006 6655 ?

Vincolo diintegrita` referenzialeviolato da inserimentoin tabella referente

38

Violazioni

Vincolo diintegrita` referenzialeviolato da modificain tabella referente 6610

6660

6660 non appare

Page 20: 02  Modello, Algebra E Calcolo Relazionale

20

39

Violazioni

Vincolo diintegrita` referenzialeviolato da cancellazionein tabella riferita

40

Violazioni

Vincolo diintegrita` referenzialeviolato da modificain tabella riferita

6630

Page 21: 02  Modello, Algebra E Calcolo Relazionale

21

41

Osservazione 1I nomi degli attributi nella chiave e nella chiave esterna non devononecessariamente essere gli stessi

Se lo sono, semplificano alcune operazioni (join naturale)Esempio

Cliente(codCli,nome,cognome,telefono,dataN,residenza)Noleggio(collocVideo,dataNol,clienteCliente,dataResto)

Gli attributi avranno sicuramente nomi diversi tutte le volte che la relazione referente e la relazione riferita coincidono, cioe` la chiaveesterna contiene un riferimento alla relazione stessaEsempio

Film(titolo,regista,anno,genere,valutazo,titoloPreoFilm,registaPreo

Film)(titoloPre,registaPre) contengono titolo e regista del film di cui il film e` eventualmente il seguito

42

Osservazione 2Una relazione puo` contenere piu` chiavi esterne, eventualmente anche sulla stessa relazioneLe chiavi esterne, come del resto le chiavi, devonoessere esplicitamente specificate in uno schema direlazione

Il fatto di avere attributi con lo stesso nome e dominicompatibili in relazioni diverse non offre alcuna garanziarelativamente al mantenimento dell’integrita` referenziale

Se non esplicitamente impedito mediante la specifica di un apposito vincolo, le chiavi esternepossono assumere valore nullo

Page 22: 02  Modello, Algebra E Calcolo Relazionale

22

43

Vincoli di integrita`Abbiamo visto

Vincoli di dominioVincoli di obbligatorieta`Vincolo di chiave (primaria, alternativa)Vincolo di integrita` referenziale (chiave esterna)

Questi vincoli non sono sufficienti a garantire che ilcontenuto della base di dati rispecchi in modo fedelele informazioni del dominio applicativo darappresentare

Come faccio a garantire che la valutazione di un film sia un numero decimale compreso tra 0 e 5?

Discuteremo nel seguito altre categorie di vincoli

Il modello relazionale 44

Algebra Relazionale

Page 23: 02  Modello, Algebra E Calcolo Relazionale

23

45

Operazioni nel Modello Relazionale

Le operazioni sulle relazioni possono essere espresse in due formalismi di base:

Algebra relazionale: le interrogazioni (query) sono espresse applicando operatori specializzati alle relazioni Calcolo relazionale: le interrogazioni (query) sono espresse per mezzo di formule logiche che devono essere verificate dalle tuple ottenute come risposta all'interrogazione

I due formalismi (sotto opportune ipotesi) sono equivalenti

46

Algebra Relazionale

Esistono cinque operazioni di base:Proiezione SelezioneProdotto cartesianoUnioneDifferenza

Queste operazioni definiscono completamente l’algebra relazionale

Page 24: 02  Modello, Algebra E Calcolo Relazionale

24

47

Algebra RelazionaleOgni operazione restituisce come risultato una relazione

è pertanto possibile applicare una operazione al risultato di un'altra operazione (proprietà di chiusura)

Esistono operazioni addizionali, che possono essere espresse in termini delle cinque operazioni di base

Non aumentano il potere espressivo dell’agebra ma sono comode a fini praticiOperazione fondamentale: join

48

Algebra RelazionaleLa definizione delle varie operazioni e` leggermente diversa a seconda che si consideri la definizione del modello relazionale per posizione o la definizione per nomeConsidereremo la definizione per nomeOperazione addizionale

RidenominazionePermette di modificare il nome degli attributi

Page 25: 02  Modello, Algebra E Calcolo Relazionale

25

49

RidenominazioneLa ridenominazione di una relazione R rispetto ad una lista

di coppie di nomi di attributi (A1,B1),…, (Am,Bm) tale che Ai è un nome di attributo di R, denotata con

ridenomina l’attributo di nome Ai con il nome Bi

La ridenominazione è corretta se il nuovo schema della relazione R ha attributi con nomi tutti distintiLa relazione ottenuta ha lo stesso grado della relazione R ed ha lo stesso contenutoGli attributi della relazione risultato sono UR \ {A1,A2, . . . ,Am} ∪ {B1,B2, . . . ,Bm}

( )Rmm BBAA ,,, 11 KK ←ρ

50

Ridenominazione - esempio

La ridenominazione:

cambia lo schema di Noleggio daNoleggio(colloc,dataNol,codCli,dataRest)

aNoleggio(video,dataIn,cliente,dataFine)

( )NoleggiodataFinecliente,dataIn, video,dataRest codCli,dataNol,colloc, ←ρ

Page 26: 02  Modello, Algebra E Calcolo Relazionale

26

51

ProiezioneLa proiezione di una relazione R su un insieme di attributi A={A1,…Am},

A ⊆ UR, indicata con

è una relazione di grado m le cui tuple hanno come attributi solo quelli specificati in A

La proiezione genera un insieme T di tuple con m attributi (grado m)Se t=[A1:v1,…Am:vm] è in T allora esiste una tupla t’ in R tale che per ogni Ai in A, t[Ai]=t’[Ai]Nella relazione risultato gli attributi hanno l’ordine specificato in ALa cardinalita` di T puo` essere diversa dalla cardinalita` di R

Eliminazione duplicati

)(,,1 RAmA KΠ

52

Proiezione - esempio

dbcfadcbaCBA

R ( )RCA,Π ( )RAB,Π

dcfdcaCA

cbdaabAB

abB

( )RBΠ

Page 27: 02  Modello, Algebra E Calcolo Relazionale

27

53

Proiezione - esempio

54

SelezioneLa selezione su una relazione R, dato un predicato F

su R, indicata con σF (R)

genera una relazione che contiene tutte le tuple di R che verificano F

Il grado della relazione risultato è uguale al grado della relazione operandoI nomi degli attributi della relazione risultato sono gli stessi della relazione operandoLa cardinalita` del risultato e` minore o uguale alla cardinalita` della relazione di partenza

Page 28: 02  Modello, Algebra E Calcolo Relazionale

28

55

Selezione - predicati

Un predicato F su una relazione R ha una delle seguenti forme:

predicato semplicecombinazione booleana di predicati semplici, ottenuta con i connettivi ∧ (AND), ∨ (OR), ¬(NOT)

56

Selezione - predicati

Un predicato semplice ha una delle seguenti forme:

A op vA op A’

dove:A e A’ sono attributi di Rop è un operatore relazionale di confronto >,<,>=,<=,=, ≠v è una costante compatibile con il dominio di A

Page 29: 02  Modello, Algebra E Calcolo Relazionale

29

57

Selezione – esempi di predicati

codCli=6635 predicato semplicedataNol=dataRest predicato semplice

codCli=6635 ∧ dataNol=dataRestcombinazione booleana

58

SelezioneSia t=[A1:v1,…Ak:vk] una tupla in T = σF (R) t è tale che:

F(A1/t[A1],…,Ak/t[Ak]) è veraLa notazione Ai/t[Ai] indica la sostituzione in F del nome di attributo Ai (se tale nome compare in F) con il valore t[Ai] dell’attributo di nome Ai in tSe nessuna tupla di R verifica il predicato F, allora il risultato è una relazione vuota

Page 30: 02  Modello, Algebra E Calcolo Relazionale

30

59

Selezione - esempio

dbcfadcbaCBA

R dbccbaCBA

fadCBA

dbccbaCBA

( )RbB=σ ( )RbNOTB=σ

( )RCAbB == ORσ ( )RCAbB == ANDσ

CBA

60

Selezione - esempio

Page 31: 02  Modello, Algebra E Calcolo Relazionale

31

61

Prodotto cartesianoIl prodotto cartesiano di due relazioni R ed S, di grado

k1, k2, indicato con:R X S

è una relazione di grado k1+k2 le cui tuple sono tutte le tuple che hanno:

come prime k1 componenti le tuple di Rcome seconde k2 componenti le tuple di S

62

Prodotto cartesianoSi applica solo se R e S hanno schemi disgiuntiSe le due relazioni hanno attributi con lo stesso nome, è necessario ridenominare gli attributi in una delle due relazioniNella relazione risultato:

i primi k1 attributi sono gli attributi della relazione Rgli ultimi k2 attributi sono gli attributi della relazione S

La cardinalita` del risultato e` il prodotto delle cardinalita` degli argomenti

Page 32: 02  Modello, Algebra E Calcolo Relazionale

32

63

Prodotto cartesiano - esempio

dbcfadcbaCBA

fadagbFED

R

S

faddbcagbdbcfadfadagbfadfadcbaagbcbaFEDCBA

R X S

64

Prodotto cartesiano – esempio

Page 33: 02  Modello, Algebra E Calcolo Relazionale

33

65

UnioneL’unione di due relazioni R, S, indicata con

R∪S è l’insieme delle tuple in R, S o in entrambe

L’unione di due relazione può essere fatta solo se hanno lo stesso schemaLa relazione risultato ha lo stesso schema delle relazioni argomentoLe tuple duplicate vengono eliminate Il grado della relazione risultato è uguale al grado delle relazioni operandi

66

Unione - esempio

dbcfadcbaCBA

fadagbCBA

agbdbcfadcbaCBA

R

S

R∪S

Page 34: 02  Modello, Algebra E Calcolo Relazionale

34

67

Unione - esempio

68

DifferenzaLa differenza di due relazioni R ed S, indicata con

R-S è l’insieme delle tuple che sono in R ma non in S

La differenza (come l’unione) può essere eseguita solo se le relazioni hanno lo stesso schemaLa relazione risultato ha lo stesso schema delle relazioni argomentoIl grado della relazione risultato è uguale al grado delle relazioni operandi

Page 35: 02  Modello, Algebra E Calcolo Relazionale

35

69

Differenza - esempio

dbcfadcbaCBA

fadagbCBA

dbccbaCBAR

S

R-S

70

Differenza - esempio

Page 36: 02  Modello, Algebra E Calcolo Relazionale

36

71

Operazioni derivate -intersezione

L’intersezione di due relazioni R, S, indicata con R∩S

è l’insieme delle tuple contenute in R e in S

L’intersezione di due relazione può essere fatta solo se hanno lo stesso schemaLa relazione risultato ha lo stesso schema delle relazioni argomentoIl grado della relazione risultato è uguale al grado delle relazioni operandi

72

Operazioni derivate -intersezione

L’intersezione è un’operazione derivataPuò infatti essere definita come segue

R∩S = R - (R - S)

Page 37: 02  Modello, Algebra E Calcolo Relazionale

37

73

Operazioni derivate –intersezione - esempio

dbcfadcbaCBA

fadagbCBA

fadCBA

R S R ∩ S

dbccbaCBA

fadCBA

R - SR - (R-S)

74

Operazioni derivate –intersezione - esempio

Page 38: 02  Modello, Algebra E Calcolo Relazionale

38

75

Operazioni derivate –intersezione - esempio

76

Operazioni derivate - joinIl join (detto anche theta-join) di due relazioni R ed S

sugli attributi A di R ed A’ di S, indicato con

è definito come

Il join è quindi un prodotto cartesiano seguito da una selezioneIl predicato AθA’ è detto predicato di join

SR AA 'θ><

( )SRAA ×'θσ

Page 39: 02  Modello, Algebra E Calcolo Relazionale

39

77

Operazioni derivate - join

Come per il prodotto cartesiano, gli schemi delle due relazioni argomento devono essere disgiunti e lo schema della relazione risultato e` dato dalla loro unioneIl grado della relazione risultato è uguale alla somma dei gradi delle relazioni operandi

78

Operazioni derivate – join -esempio

987

654

321

CBA

2613ED

13321EDCBA

2632113321

26654

EDCBA

R

S

SR DB<><

SR EA=><

Page 40: 02  Modello, Algebra E Calcolo Relazionale

40

79

Operazioni derivate – join -esempio

80

Operazioi derivate - join

Il join e` un’operazione estremamente importante in quanto permette di collegare tuple di relazioni diverse e di attraversare le associazioni rappresentate nelle relazioni della base di dati mediante il meccanismo delle chiavi esterneIl join prende il nome di equi-join quando l’operatore usato nel predicato di join e` l’operatore di uguaglianza (=)

Page 41: 02  Modello, Algebra E Calcolo Relazionale

41

81

Operazioni derivate – join -esempio

Determinare il titolo ed il regista dei film noleggiatiil 15 Marzo 2006 dal cliente di codice 6635

82

Operazioni derivate – joinnaturale

L’operazione di join naturale è una ‘semplificazione’ del joinHa senso solo nella notazione con nome del modello relazionaleE’ un tipo di join molto frequenteL’operazione di join naturale indica un tipo di join basato sull’eguaglianza degli attributi comuni a due relazioni

Page 42: 02  Modello, Algebra E Calcolo Relazionale

42

83

Operazioni derivate – joinnaturale

Il join naturale di due relazioni R ed S e` indicatocon

Sia{A1,…,Ak} = UR∩US

{I1,…,Im} = UR∪US

{B1,…,Bk} nomi di attributi che non compaiono ne’ in R ne’ in S

l’espressione che definisce il join naturale è

( )( )( )( )SRc BkB1,...,AkA1,...,Im,...,1I ←×Π ρσ

SR ><

84

Operazioni derivate – joinnaturale

Nella formula precedente c indica la formula

Pertanto il join naturale esegue un join eguagliando gli attributi con lo stesso nome delle due relazioni argomento dell’operazione e poi elimina gli attributi duplicati dalla relazione risultatoAffinche’ l’operazione di join sia ben definita, gli attributi con nomi uguali nelle relazioni argomento dell’operazione devono avere domini compatibili

A1=B1 AND A2 = B2 AND … AND Ak = Bk

Page 43: 02  Modello, Algebra E Calcolo Relazionale

43

85

Operazioni derivate – joinnaturale

UR = US

Join naturale = intersezione

UR ∩ US = ∅Join naturale = prodotto cartesiano

Il join naturale permette di navigare in modo molto piu` agevole, rispetto al join, le associazioni rappresentate tramite il meccanismo delle chiavi esterne, nel caso in cui per chiave e chiave esterna sia stato utilizzato lo stesso nome

86

Operazioni derivate – joinnaturale - esempio

dacfbbcbdcbaCBA

bdaecbdcbDCB

bdac

ecbd

dcbd

ecba

dcba

DCBA

RS

SR ><

Page 44: 02  Modello, Algebra E Calcolo Relazionale

44

87

Operazioni derivate – joinnaturale - esempio

Supponiamo di voler abbinare codice e nome del clienteal titolo e all’anno dei film di Quentin Tarantino solo se ilcliente ha noleggiato almeno un video di quel film

88

Operazioni derivate - divisione

Date due relazioni R ed S con insiemi di attributi URed US, rispettivamente, e tali che UR ⊃ US, l'operazione di divisione di R per S è denotata da

R ÷ Spermette di determinare le tuple t di schema D = UR – US tali che in R appaiono tutte le tuple che si ottengono combinando t con ogni tupla di S

Page 45: 02  Modello, Algebra E Calcolo Relazionale

45

89

Operazioni derivate - divisioneUna tupla t viene cioe` restituita se, per ogni tupla s in S, in R e` presente una tupla r tale che

r[D] = t[D] e r[US] = s[US]Formulazione alternativa, che giustifica il suo nomecome operazione “inversa” del prodotto:

t ∈ R÷S se e solo se {t}×S ⊆ R l’operazione di divisione determina le tuple per cui in una relazione c’e` una corrispondenza con tutte le tuple di un’altra relazione

90

Operazioni derivate – divisione- esempio

daadbbdbacbaCBA

dadbcbCB

RS

aA

R ÷ S

Page 46: 02  Modello, Algebra E Calcolo Relazionale

46

91

Operazioni derivate – divisione- esempio

daadbbdbacbaCBA

dadbcbCB

RS

aA

R ÷ S

92

Operazioni derivate – divisione- esempio

Determinare i codici dei clienti che hanno noleggiato tutti i film di Tim Burton

1. Film di Tim Burton

Page 47: 02  Modello, Algebra E Calcolo Relazionale

47

93

Operazioni derivate – divisione- esempio

2. Film noleggiati dai clienti

94

Operazioni derivate – divisione- esempio

NC ÷ TB

Page 48: 02  Modello, Algebra E Calcolo Relazionale

48

95

Operazioni derivate – divisione

La divisione si puo` esprimere nel modo seguente:

ΠD (R) - Π D((ΠD (R) x S) - R)

dove D = (UR - US)

96

Operazioni derivate – divisione- esempio

Page 49: 02  Modello, Algebra E Calcolo Relazionale

49

97

Operazioni derivate – divisione- esempio

98

Operazioni derivate – divisione- esempio

663566426610

Page 50: 02  Modello, Algebra E Calcolo Relazionale

50

99

Algebra relazionale - esempioSelezionare i codici dei clienti che hanno noleggiato sia film drammatici che film horror

1. Codici clienti che hanno noleggiato almeno un film drammatico

R =

2. Codici clienti che hanno noleggiato almeno un film horror

S =

3. Risultato: R ∩ S

100

Algebra relazionale - esempio

Selezionare i codici dei clienti che non hanno mainoleggiato film horror

1. Codici clienti R =

2. Codici clienti che hanno noleggiato almeno un film horror

S =

3. Risultato: R - S

Page 51: 02  Modello, Algebra E Calcolo Relazionale

51

101

Algebra relazionale - esempioSelezionare i codici dei clienti che hanno noleggiato film dialmeno due generi diversi

1. Coppie cliente/genere film noleggiatiR =

2. Associazione binaria tra coppie cliente/genere film noleggiatoS = R X

3. Risultato: Selezione delle associazioni relative allo stessocliente, ma generi diversi e proiezione sul codiceT =

Si poteva anche risolvere con un join naturale, cosa sarebbecambiato?

102

Algebra relazionale - esempioSelezionare titolo e regista del film con la valutazione piu` alta

1. Titolo e regista di tutti i film

R =

2. Titolo e regista dei film con valutazione non massima (film per cui esiste un altro film con valutazione maggiore della loro)

S =

3. Risultato: R - S

Page 52: 02  Modello, Algebra E Calcolo Relazionale

52

103

Algebra relazionale – sintesi

Il modello relazionale 104

Calcolo Relazionale

Page 53: 02  Modello, Algebra E Calcolo Relazionale

53

105

Algebra vs. calcoloL’algebra relazionale è un linguaggio procedurale

dobbiamo indicare le operazioni da eseguire per ottenere il risultato di una data interrogazione

Il calcolo relazionale e` un linguaggio dichiarativo

viene data una descrizione formale del risultato, senza specificare come ottenerlo

106

Calcolo relazionale - VariantiDue varianti del calcolo relazionale:

Tuple relational calculus (TRC)le variabili rappresentano tuple

Domain relational calculus (DRC)le variabili rappresentano valori di dominiogni espressione richiede un numero molto elevato di variabiliusate in interfaccie grafiche

Page 54: 02  Modello, Algebra E Calcolo Relazionale

54

107

Calcolo relazionale - atomis∈R (R è un nome di relazione ed s è una variabile)

la tupla s appartiene alla relazione R

s[A] θ u[A’] (s ed u sono variabili, θ è un operatore relazionale di confronto, A ed A’ sono nomi di attributi)

il valore di A nella tupla s è in relazione θ con il valore di A’nella tupla u

s[A] θ a (s è una variabile, θ è un operatore relazionale di confronto, A è un nome di attributo, a è una costante)

il valore di A nella tupla s è in relazione θ con il valore a

108

Calcolo relazionale - formuleVariabili libere e legate

data una formula F ed una variabile x, x è liberain F se e solo se x non compare

in un quantificatore ∀x (quantificazione universale) In un quantificatore ∃x (quantificazione esistenziale)

Page 55: 02  Modello, Algebra E Calcolo Relazionale

55

109

Calcolo relazionale - formuleogni atomo è una formula

tutte le occorrenze delle variabili dell’atomo sono libere

se φ1 e φ2 sono formule, allora φ1∧φ2, φ1∨φ2, ¬φ1 sono formule

le occorrenze delle variabili sono libere o legate a seconda di come sono in φ1 e φ2

se φ è una formula allora ∃s(φ), ∀s(φ) sono formuletutte le occorrenze di s in φ sono legate al quantificatore ∃(oppure ∀)

se φ è una formula allora (φ) è una formulale occorrenze delle variabili sono libere o legate a seconda di come sono in φ

110

Calcolo relazionale – verita` delle formule

Presentiamo una formulazione intuitivadati

una formula f(x1, x2,…, xn), con x1, x2,…, xnvariabili libereuna tupla di valori (a1, a2,…, an )

f(x1, x2,…, xn) e` vera su (a1, a2,…, an ) se sostituendo xi con ai si ottiene il valore True

Page 56: 02  Modello, Algebra E Calcolo Relazionale

56

111

Calcolo relazionale – formule -esempio

cc formula legaletutte le occorrenze sono legatela formula e` vera se esiste una tupla appartenente alla relazioneFilm avente il valore dell’attributo valutaz maggiore di 3.50

formula legatetutte le occorrenze di x sono legatetutte le occorrenze di y sono liberela formula e` vera sulla tupla (‘big fish’) con schema (Titolo) se esiste una tupla appartenente alla relazione Film avente il valoredell’attributo valutaz maggiore di 3.5 e titolo uguale a ‘big fish’

112

Calcolo relazionale -espressioni

In TRC un’espressione o interrogazione ha la forma {x:U|f(x)}

doveU e` un insieme di attributif e` una formula legale del calcolox e` la sola variabile libera in f

un’espressione è quindi definita come l’insieme di tutte le tuple x su un insieme di attributi U tali che il la formula f è vera per x

Page 57: 02  Modello, Algebra E Calcolo Relazionale

57

113

cc

espressione correttaritrova i registi di cui almeno un film ha valutazionesuperiore a 3.50

espressione errata poiche’ x non e` libera

Calcolo relazionale –espressioni - esempio

114

Calcolo relazionale - esempiRitrovare titolo ed anno di uscita dei film presenti nellavideoteca

Ritrovare i noleggi effettuati dal cliente con codice 6635

Ritrovare l’anno ed il genere dei film il cui regista e` Tim Burton o Gabriele Salvatores

Page 58: 02  Modello, Algebra E Calcolo Relazionale

58

115

Calcolo relazionale - esempiRitrovare per i noleggi di film di Quentin Tarantino il codice ed il nome del cliente che ha effettuato il noleggio insieme al titolo ed all’anno del film noleggiato

116

Calcolo relazionale - esempiRitrovare i codici dei clienti che hanno noleggiato sia film drammatici sia film horror

Page 59: 02  Modello, Algebra E Calcolo Relazionale

59

117

Calcolo relazionale –esprimere l’algebra con il TRC

Proiezione: ΠA1,…Ak (R){t:{A1,…,Ak}|∃x(x∈R∧x[A1]=t[A1]∧…∧x[Ak]=t[Ak]}

Selezione: σF(R) {t:UR|t ∈R ∧F’}

dove F’ è la formula F con ogni attributo A sostituito da t[A]

118

Calcolo relazionale –esprimere l’algebra con il TRC

Prodotto cartesiano: RxS siano UR ={A1,…,An} e US ={A’1,…,A’m} gli insiemi degli attributi di R ed S

{t: UR ∪ US |∃x(∃y(x∈R∧y∈S∧x[A1]=t[A1]∧…∧x[An]=t[An] ∧y[A’1]=t[A’1]∧…∧ y[A’m]=t[A’m]))}

Unione: R∪S {t : UR | t ∈ R ∨ t∈S}Differenza: R-S {t : UR | t ∈ R ∧ ¬t∈S}

Page 60: 02  Modello, Algebra E Calcolo Relazionale

60

119

Calcolo relazionale – potere espressivo

L’algebra relazionale e il calcolo relazionale hanno lo stesso potere espressivo?Cioè

tutte le operazioni esprimibili mediante espressioni dell’algebra relazionale possono essere espresse mediante espressioni del calcolo relazionale e viceversa?

120

Calcolo relazionale – potere espressivo

La semantica di un’interrogazione (in algebra o in calcolo) è una funzione che trasforma una base di dati relazionale (insieme di relazioni) in una nuova base di dati relazionalealgebra e calcolo hanno lo stesso potere espressivo se per ogni interrogazione Q1 in uno dei due formalismi esiste un’interrogazione Q2 nell’altro la cui semantica è la stessa funzione

Page 61: 02  Modello, Algebra E Calcolo Relazionale

61

121

Calcolo relazionale – potere espressivo

Non tutte le espressioni del calcolo possono essere tradotte in equivalenti espressioni dell’algebraEsempio:

l’espressione{t:UFilm| ¬t∈Film}

è sintatticamente correttapoiche’ alcuni attributi di Film hanno dominio infinito (ad esempio Titolo, con dominio string) questa espressione è soddisfatta da un numero infinito di tuple

il risultato non sarebbe una relazione!

122

Calcolo relazionale – potere espressivo

Si introduce quindi una condizione sintattica (safety) sufficiente ad evitare situazioni come quella precedenteL’espressione

{t:UFilm| ¬t∈Film}non è safeil calcolo relazionale safe e l’algebra relazionale hanno lo stesso potere espressivola traduzione da un formalismo all’altro può essere effettuata in tempo polinomiale nella dimensione dell’espressione

Page 62: 02  Modello, Algebra E Calcolo Relazionale

62

123

Perché due linguaggi?Algebra relazionale

linguaggio proceduraleutile per il sistema

Calcolo relazionale (safe)linguaggio dichiarativoutile per l’utente

i linguaggi di interrogazione nei sistemi reali si basano sul calcolol’algebra relazionale viene utilizzata come linguaggio interno

l’interrogazione utente viene compilata in un’espressione dell’algebra relazionaleil sistema utilizza le proprietà dell’algebra per stabilire quale espressione permette di risolvere l’interrogazione iniziale nel modo più efficiente


Recommended