Clustering plurirelazionale - Roma Tre Universityatzeni/didattica/BD/20192020/BDv2... · 2020. 4....

58
Clustering plurirelazionale 02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 1

Transcript of Clustering plurirelazionale - Roma Tre Universityatzeni/didattica/BD/20192020/BDv2... · 2020. 4....

  • Clustering plurirelazionale

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 1

  • Clustering plurirelazionale

    • Vari termini, equivalenti (ma sovraccarichi)– cluster– cluster plurirelazionale– cluster multirelazionale– cluster eterogeneo

    • Le ennuple delle due (o più) relazioni con gli stessi valori su un certo attributo (quello su cui è realizzato il cluster) sono memorizzate insieme

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 2

  • Alcuni DBMS, conferma delle ambiguità

    • Oracle (cluster multirelazionale – ciò di cui parliamo oggi)https://docs.oracle.com/database/121/CNCPT/tablecls.htm#CNCPT88816

    • Postgres (cluster inteso come ordinamento, quindi un concetto diverso)

    https://www.postgresql.org/docs/11/sql-cluster.html

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 3

    https://docs.oracle.com/database/121/CNCPT/tablecls.htmhttps://www.postgresql.org/docs/11/sql-cluster.html

  • To cluster or not to cluster (Shakespeare, Hamlet)

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 4

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    R1

    R1

  • To cluster or not to cluster (Shakespeare, Hamlet)

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 5

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

  • To cluster or not to cluster (Shakespeare, Hamlet)

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 6

    • Memorizzazione in cluster

    R1 e R2A: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: a2 D: … E: … F: …A: a3 D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

  • Discussione

    • Occupazione complessiva:– la stessa (nell'esempio, 5 blocchi e 5 blocchi)

    • Costo delle operazioni– scansione di una relazione– join complessivo– selezione e join (ad esempio, una ennupla del join,

    supponendo che ci siano indici e troviamo subito le ennuple che contribuiscono ad essa)

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 7

  • Scansione di R1

    SELECT *FROM R1

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 8

  • To cluster or not to cluster:scansione

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 9

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster:scansione

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 10

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster:scansione

    • Occupazione complessiva:– la stessa (nell'esempio, 5 blocchi e 5 blocchi)

    • Costo delle operazioni– scansione di una relazione

    • memorizzazione separata: i soli blocchi della relazione– nell'esempio: 2

    • memorizzazione in cluster: i blocchi di entrambe– nell'esempio: 5

    in sintesi• preferibile la memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 11

  • Join complessivo

    SELECT *FROM R1 JOIN R2 ON R1.A = R2.A

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 12

  • To cluster or not to cluster: join complessivo

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 13

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster: join complessivo

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 14

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster: join complessivo

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 15

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster: join complessivo

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 16

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster: join complessivo

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 17

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster:join complessivo

    • Occupazione complessiva:– la stessa

    • Costo delle operazioni– scansione di una relazione:

    • preferibile la memorizzazione separata– join complessivo

    • stesso costo per le due alternative (5 blocchi e 5 blocchi)

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 18

  • To cluster or not to cluster una ennupla del join (o poche)

    SELECT *FROM R1 JOIN R2 ON R1.A = R2.AWHERE R1.A = 'a4'

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 19

  • To cluster or not to cluster una ennupla del join (o poche)

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 20

    • Memorizzazione in clusterA: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: a4 D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

  • To cluster or not to cluster una ennupla del join (o poche)

    • Memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 21

    • Memorizzazione in cluster

    R1 e R2A: a1 C: c1A: a2 C: c2A: a3 C: c3

    A: a4 C: c4

    A: a5 C: c5

    A: a6 C: c6

    A: a1 D: d1 E: e1 F: f1A: … D: … E: … F: …A: … D: … E: … F: …

    A: … D: … E: … F: …A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a1 C: c1 A: a2 C: c2 A: a3 C: c3A: a4 C: c4 A: a5 C: c5 A: a6 C: c6A: a7 C: c7 A: a8 C: c8 A: a9 C: c9

    A: a10 C: c10 A: a11 C: c11 A: a12 C: c12A: … C: … A: a… C: c… A: a… C: c…A: a… C: c… A: a… C: c… A: a… C: c…

    A: a1 D: d1 E: e1 F: f1 A: … D: … E: … F: …A: … D: … E: … F: … A: a4 D: … E: … F: …A: .. D: .. E: … F:… A: … D: … E: … F: …

    R1

    R1

    R2

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R2A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …A: … D: … E: … F: … A: … D: … E: … F: …

    R1 e R2

    R1 e R2

    R1 e R2

    R1 e R2

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

    A: a… C: c…A: a… C: c…

    A: … D: … E: … F: …

    A: a… C: c…A: … D: … E: … F: …A: … D: … E: … F: …

  • To cluster or not to cluster:una ennupla del join (o poche)

    • Occupazione complessiva:– la stessa

    • Costo delle operazioni– scansione di una relazione:

    • preferibile la memorizzazione separata– join complessivo

    • stesso costo per le due alternative – una ennupla del join (o poche)

    • preferibile il cluster– trovo entrambe le componenti in un blocco anziché

    due

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 22

  • To cluster or not to cluster:sintesi

    • Occupazione complessiva:– la stessa

    • Costo delle operazioni– scansione di una relazione:

    • preferibile la memorizzazione separata– join complessivo

    • stesso costo per le due alternative – una ennupla del join (o poche)

    • preferibile il cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 23

  • To cluster or not to cluster:sintesi

    • Occupazione complessiva:– la stessa

    • Costo delle operazioni– scansione di una relazione:

    • preferibile la memorizzazione separata– join complessivo

    • stesso costo per le due alternative – una ennupla del join (o poche)

    • preferibile il cluster• Per valutare, confrontiamo i costi complessivi, tenendo conto del

    "carico applicativo" (frequenze delle operazioni principali)c1 x f1 + c2 x f2

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 24

  • Torniamo all'esercizio

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 25

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 26

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 27

    c1 x f1 + c2 x f2

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 28

    f1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 29

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = f2 = 1

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 30

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 3 + 3 = 6f2 = 1

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 31

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 32

    f1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 33

    numero di blocchif1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 34

    /

    numero di ennuple

    fattore di blocco

    numero di blocchif1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 35

    N /

    numero di ennuple

    fattore di blocco

    numero di blocchif1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 36

    N /

    numero di ennuple

    fattore di blocco

    numero di blocchif1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 = /dimensione blocchidimensione record

    c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 37

    N / ( B / )

    numero di ennupledimensione blocchidimensione recordfattore di blocco

    numero di blocchif1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 38

    N / ( B / 2 x L)

    numero di ennupledimensione blocchidimensione recordfattore di blocco

    numero di blocchif1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 39

    N / ( B / 2 x L)

    f1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 40

    N / ( B / 2 x L) = 2.000.000 / (4.000/4) = 2.000

    f1 = 10.000

    c1 x f1 + c2 x f2

    f2 = 1

    c2 =c1 = 6

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 41

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

  • Scelta (i): memorizzazione separata

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 42

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    = 62.000

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 43

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = f2 = 1

    c2 =

    cTot =scelta (ii)

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 44

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 =f2 = 1

    c2 =

    cTot =scelta (ii)

    o1: tutto in un blocco e un indice solo

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 45

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 =

    cTot =scelta (ii)

    o1: tutto in un blocco e un indice solo

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 46

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 =

    cTot =scelta (ii)

    o2:

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 47

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 =

    cTot =scelta (ii)

    o2: debbo accedere a tutti i blocchi (con le ennuple di entrambe le relazioni)

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 48

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 =

    cTot =scelta (ii)

    o2: debbo accedere a tutti i blocchi (con le ennuple di entrambe le relazioni

    N / ( B / (2 + 4) x L) = 6.000 c2 =

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 49

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    cTot =scelta (ii)

    o2: debbo accedere a tutti i blocchi (con le ennuple di entrambe le relazioni

    N / ( B / (2 + 4) x L) = 6.000 c2 = c2 = 6.000

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 50

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 = 6.000

    cTot =scelta (ii)

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 51

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 = 6.000

    cTot = 36.000scelta (ii)

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 52

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 = 6.000

    cTot = 36.000scelta (ii)

  • Scelta (ii): memorizzazione in cluster

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 53

    f1 = 10.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 1

    c2 = 2.000

    cTot = 62.000scelta (i)

    f1 = 10.000

    c1 = 3f2 = 1

    c2 = 6.000

    cTot = 36.000scelta (ii)

    Conviene il cluster!

  • Seconda domanda

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 54

    f1 = 1.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 10

    c2 = 2.000

    cTot =scelta (i)

    f1 = 1.000

    c1 = 3f2 = 10

    c2 = 6.000

    cTot =scelta (ii)

  • Seconda domanda

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 55

    f1 = 1.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 10

    c2 = 2.000

    cTot = 26.000scelta (i)

    f1 = 1.000

    c1 = 3f2 = 10

    c2 = 6.000

    cTot =scelta (ii)

  • Seconda domanda

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 56

    f1 = 1.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 10

    c2 = 2.000

    cTot = 26.000scelta (i)

    f1 = 1.000

    c1 = 3f2 = 10

    c2 = 6.000

    cTot = 63.000scelta (ii)

  • Seconda domanda

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 57

    f1 = 1.000

    c1 x f1 + c2 x f2

    c1 = 6f2 = 10

    c2 = 2.000

    cTot = 26.000scelta (i)

    f1 = 1.000

    c1 = 3f2 = 10

    c2 = 6.000

    cTot = 63.000scelta (ii)

    Il cluster non conviene!

  • Altro esempio di clustering

    • Relationship uno a molti:Fatture(Numero, Data, Cliente)DettagliFatture(Numero, Riga, Quantità, Importo)

    02/04/2020 Basi di dati, vol.2 cap.1 Organizzazione fisica ... 58

    Fattura 1Fattura 2Fattura 3

    Riga 1,1Riga 1,2Riga 1,3Riga 2,1

    Fattura 4

    Fattura 1

    Riga 1,1Riga 1, 2

    Riga 1, 3

    Riga 2,1

    Fattura 2

    Fattura 3Riga 3,1

    ……