Basi di Dati

Click here to load reader

  • date post

    08-Jan-2016
  • Category

    Documents

  • view

    43
  • download

    0

Embed Size (px)

description

Basi di Dati. Sistemi per BD Relazionali: Modello Fisico Concetti Avanzati. versione 2.0. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina). DBMS Relazionali – Modello Fisico >> Sommario. Concetti Avanzati. Obiettivo - PowerPoint PPT Presentation

Transcript of Basi di Dati

  • Basi di DatiSistemi per BD Relazionali: Modello FisicoConcetti Avanzativersione 2.0Questo lavoro concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

    G. Mecca - [email protected] - Basi di Dati

  • Concetti AvanzatiObiettivoIndici multilivelloIndici e tabelle ISAMB+ Tree (cenni)Indici HashFile hashIndice hashIn PraticaDBMS Relazionali Modello Fisico >> Sommario

    G. Mecca - [email protected] - Basi di Dati

  • ObiettivoStrategia di accesso idealeinserimenti e cancellazioni efficienti (t. cost ?)ricerca binariaevitare ordinamenti del fileGli indici rappresentano un passo avantiProblemila ricerca si pu miglioraregli inserimenti nei file ordinati sono un pb.DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Obiettivo

    G. Mecca - [email protected] - Basi di Dati

  • Indici MultilivelloPossono migliorare i tempi di ricercaIntuizioneun indice un file ordinato di record (chiave, puntatore)se i valori della chiave sono distinti, posso costruire un indice primario per lindiceposso proseguire costruendo vari livelli di indiceDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Indici multiliv.

    G. Mecca - [email protected] - Basi di Dati

  • Indici MultilivelloDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Indici Multiliv.NB blocchiNB/bfr blocchi(NB/bfr)/bfr blocchi1 blocco

    G. Mecca - [email protected] - Basi di Dati

  • Indici MultilivelloDinamica logaritmica: logbfr(NB) livelli di indicericerca logaritmica con base bfr>2Esempiodimblocco=2048, dimrecord=58, dimfile=2GNB=1M, bfr=204 (fattore di blocco dellindice)I livello = ceil(1M/204) = 5141 (ceil: p.te intera sup.)II livello = ceil (29960/204) = 26ricerca in ceil(log204(1M)) + 1 accessi = 4Attenzione: tutti i valori devono essere distintiDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Indici multiliv.

    G. Mecca - [email protected] - Basi di Dati

  • Indici Secondari Multiliv.DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Indici multiliv.blocco di puntatorivalori distinti

    G. Mecca - [email protected] - Basi di Dati

  • Il Problema degli InserimentiTutti i livelli sono file ordinaticosto degli inserimenti Due possibili soluzionistrutture ordinate staticheISAMstrutture ordinate dinamicheB Tree e B+ TreeDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Indici multiliv.

    G. Mecca - [email protected] - Basi di Dati

  • Strutture Ordinate StaticheStrutture multilivello in cuispazio per i blocchi allocato staticamentefile ordinato con blocchi contiguiinserimenti effettuati ordinatamente finch ce spaziofile disordinato di trabocco (overflow)periodiche riorganizzazioni globali con fusione del file primario e del file di traboccoISAM: Indexed Sequential Access MethodDBMS Relazionali Modello Fisico >> Concetti Avanzati >> ISAM

    G. Mecca - [email protected] - Basi di Dati

  • Struttura ISAMDBMS Relazionali Modello Fisico >> Concetti Avanzati >> ISAM3333 Stop John Sci3Blocchi di overflowBlocchi contigui del disco

    G. Mecca - [email protected] - Basi di Dati

  • Struttura ISAMPrincipali vantaggiallocazione contigua dei blocchi (localit)la struttura non viene toccataSvantaggipossono essere necessarie ristrutturazioniAdatta a tabelle con dinamica limitatapochi inserimentiDBMS Relazionali Modello Fisico >> Concetti Avanzati >> ISAM

    G. Mecca - [email protected] - Basi di Dati

  • Strutture Ordinate DinamicheStrutture multilivello in cuifile ordinato con rappresentazione collegataallocazione dinamica dei blocchii blocchi sono sempre parzialmente pienialgoritmi di inserimento opportuniriorganizzazioni locali (fusioni e divisioni dei blocchi)B Tree, B+ TreeDBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree

    G. Mecca - [email protected] - Basi di Dati

  • B+ TreeIn sintesi, albero di ricerca di apertura n>2Nodial pi n-1 val. della chiave ed n punt. a sottoal., m Concetti Avanzati >> B+ Tree

    G. Mecca - [email protected] - Basi di Dati

  • B+ TreeDBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree124031213121 Verdi Luigi Sci31241 Birillo Giulio Let23599 Caio Tizio Ing23122 Neri Paolo Sci24128 Rossi Maria Let 23600 Busti Lina Let 27400 Pinco Palla Ing 24129 Mous Michi Agr11240 RossiMario Ing11100 QueloPaolo Sci2412874007800890035997552Esempio:Ricerca di 4400

    G. Mecca - [email protected] - Basi di Dati

  • B+ TreeVincoli aggiuntivilalbero deve essere bilanciatoloccupazione dei blocchi deve essere almeno il 50%Algoritmi di inserimento e cancellazionerispettare i vincolifusioni e divisioni (possono coinvolgere vari livelli)A regimeblocchi pieni per i 2/3 (67% circa)DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree

    G. Mecca - [email protected] - Basi di Dati

  • B+ TreeDBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ TreeRadice17243023513141619202425273033343839132*3*Nuova Radice17243014*16*19*20*24*25*27*30*33*34*38*39*13413*5*inserimento del valore 4174*

    G. Mecca - [email protected] - Basi di Dati

  • B+ Tree in PraticaOrdine tipico: 200 numero medio di puntatori 133 (molto alto)Capacit di Indicizzazione:profondit 4: 1334 = 312.900.700 blocchiprofondit 3: 1333 = 2.352.637 blocchiI livelli pi alti possono essere tenuti nel buffer:Livello 1:1 blocco = al pi 8 KbyteLivello 2: 133 blocchi = al pi 1 MbyteLivello 3: 17.689 blocchi = al pi 133 MBytesDBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree

    G. Mecca - [email protected] - Basi di Dati

  • B+ TreeVantaggiinserimenti logaritmici meno costosi che in un file ordinatoricerche rapideaccesso ordinato secondo la chiave di ordinamento possibile aggiungere indici secondari In generaleha prestazioni migliori della struttura ISAM utilizzata dalla maggior parte dei DBMS (VSAM)DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree

    G. Mecca - [email protected] - Basi di Dati

  • HashingE possibile otteneretempo di inserimento costante ?tempo di ricerca costante ? es: matricola=1234 in tempo costanteHashingricerche in tempo lineare nella lunghezza della chiaveFile HashIndice HashDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing

    G. Mecca - [email protected] - Basi di Dati

  • File HashIdea possibile utilizzare una funzione di hash per inserire i record nel filee poterli recuperarli in tempo praticamente costante successivamenteorganizzazione alternativa ai file heap e ai file ordinatiHashing statico (simile a ISAM)Hashing dinamico (simile a B+ Tree)DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing

    G. Mecca - [email protected] - Basi di Dati

  • File HashDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashingpuntatoriad N blocchies: (a+k*b) mod N

    G. Mecca - [email protected] - Basi di Dati

  • File HashOrganizzazione alternativa a file heap e file ordinatiFile hash staticiNumero di bucket = NN Blocchi iniziali per il file allocati staticamenteBlocchi di overflowDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing

    G. Mecca - [email protected] - Basi di Dati

  • File Hash StaticoDBMS Relazionali Modello Fisico >> Concetti Avanzati >> HashingPuntatori agliN blocchitipicamente in RAM0123N-1hValoredellachiavekh(k)5442 RossiMario Ing13425 NeriPaolo Sci29876 RossiMaria null3 ..2112 BirilloGiulio Let23122 QueloPaolo Sci27771 VerdiLuigi Sci34775 MousMichi Agr1 ..6779 CaioTizio Ing21234 BustiLina Let2 ..

    G. Mecca - [email protected] - Basi di Dati

  • File Hash Dinamico (Cenni)Il numero di blocco pu crescere dinamicamenteN Blocchi iniziali per il fileQuando un blocco si riempie, il numero di blocchi viene raddoppiatoServono funzioni di hash appropriateDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing

    G. Mecca - [email protected] - Basi di Dati

  • Indice HashIndice per un file primarioFile primario tipicamente heapIndice memorizzato con organizzazione hash su una chiave di ricercaVantaggiinserimenti e ricerche molto efficientiutile per correlazioni tra tabelle diverse es: nome degli studenti che hanno sostenuto lesame di analisiDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing

    G. Mecca - [email protected] - Basi di Dati

  • Indice HashDBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing

    G. Mecca - [email protected] - Basi di Dati

  • In PraticaFile ordinati + Indici Multilivelloricerche logaritmiche (con base molto alta)ordinamento inserimenti logaritmici (con ristrutturazioni nel caso di B+ tree)File heap + Indici Hashinserimenti efficienti ricerche efficientinon supporta lordinamentoDBMS Relazionali Modello Fisico >> Concetti Avanzati >> In praticaIn sintesi: non esiste lorganizzazione ideale

    G. Mecca - [email protected] - Basi di Dati

  • In PraticaMySQLtabelle ISAM, MyISAM, Heap (+ InnoDB, BDB)indici B+ Tree, HashPostgreSQLtabelle in file ordinatiindici B+ Tree, Hash (+ R Tree)operatore CLUSTERDBMS Relazionali Modello Fisico >> Concetti Avanzati >> In pratica

    G. Mecca - [email protected] - Basi di Dati

  • Concetti AvanzatiObiettivoIndici MultilivelloIndici e tabelle ISAMB+ TreeIndici HashFile hashIndice hashIn PraticaDBMS Relazionali Modello Fisico >> Sommario

    G. Mecca - [email protected] - Basi di Dati

  • Termini della LicenzaThis work is licensed under the Creative Commons Attribution-ShareAlike Licens