Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Query informatica della scuola superiore, Appunti di Informatica

Elabora queryper capire come funziona il linguaggio

Tipologia: Appunti

2017/2018

Caricato il 11/03/2018

trap-pop-anto993x
trap-pop-anto993x 🇮🇹

3

(1)

6 documenti

1 / 86

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Elaborazione delle Query
Leggere le sezioni 8.1 e 8.2 di Riguzzi
et al. Sistemi Infomativi
Lucidi derivati da quelli di Hector Garcia-Molina
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56

Anteprima parziale del testo

Scarica Query informatica della scuola superiore e più Appunti in PDF di Informatica solo su Docsity!

Elaborazione delle Query

Leggere le sezioni 8.1 e 8.2 di Riguzzi et al. Sistemi Infomativi Lucidi derivati da quelli di Hector Garcia-Molina

Query Processing

Come passare da una query ad un piano

per eseguirla?

R A B C S C D E

a 1 10 10 x 2

b 1 20 20 y 2

c 2 10 30 z 2

d 2 35 40 x 1

e 3 45 50 y 3

Risposta B D

2 x

  • Come eseguire la query?
    • Esegui prodotto cartesiano
    • Seleziona le tuple
    • Fai una proiezione

Un’idea

Algebra relazionale- puo’ essere

usata per descrivere i piani.

Es: Piano I

B,D

s

R.A=“c” S.E=2  R.C=S.C

X

R S

Oppure: 

B,D

[ s

R.A=“c” S.E=2  R.C = S.C

(RXS)]

Un’altra idea:

B,D

s

R.A = “c”

s

S.E = 2 R S

Piano II

Join naturale

Piano III

Usa indici su R.A e S.C

(1) Usa l’indice su R.A per selezionare le

tuple di R con R.A = “c”

(2) Per ciascun valore R.C trovato, usa

l’ndice su S.C per trovare le tuple corr.

(3) Elimina le tuple di S con S.E  2

(4) Esegui il join tra le tuple

corrispodenti di R,S, proietta sugli

attributi B,D e metti nel risultato

R S
A B C C D E

a 1 10 10 x 2 b 1 20 20 y 2 c 2 10 30 z 2 d 2 35 40 x 1 e 3 45 50 y 3

A C
I 1 I 2

=“c” <c,2,10> <10,x,2> verifica=2? output: <2,x> prossima tupla: <c,7,15>

parse converti applica leggi stima la dimensione del risultato considera i piani fisici stima i costi scegli il migliore esegui physical query plans {P1,P2,…..} {(P1,C1),(P2,C2)...} Pi risposta SQL query parse tree logical query plan l.q.p. “migliorato” l.q.p. +dimensioni statistiche

Esempio: SQL query

StarsIn(movieTitle,movieYear,starName) MovieStar(name,address,gender,birthdate) SELECT movieTitle FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthdate LIKE ‘%1960’ ); (Trova i film con star nate nel 1960)

Esempio: Generazione dell’algebra

relazionale

movieTitle

s

StarsIn

IN name

sbirthdate LIKE ‘%1960’

starName MovieStar Il s in questo caso si chiama “selezione a due argomenti” ed e’ a mezza via tra il parse tree e l’algebra relazionale

Esempio: Piano logico della query

movieTitle

sstarName=name

StarsIn name

sbirthdate LIKE ‘%1960’

MovieStar Trasformando la condizione IN

Esempio: Stima la dimensione del

risultato

Abbiamo bisogno della dimensione StarsIn MovieStar

s

Esempio: Un piano fisico

Parametri: ordine del join, dimensione della memoria,... Hash join Index scan Parametri: Condizione della select,... StarsIn MovieStar