Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Migliorare lo sviluppo di database

informatica



Migliorare lo sviluppo di database


Efficienza:    risposta ad un problema in tempi preventivati o più brevi.

Dato un problema, un programma che lo risolve è efficiente in termini di SPAZIO di memoria occupata e di TEMPO di esecuzione (si osserva la velocità del programma in sé tralasciando la dipendenza de 858g66i lla C.P.U. e quindi della velocità del calcolatore)


Operazioni di ricerca:   per costatare l'efficienze del programma bisogna metterlo alla prova su migliaia di dati.


RICERCA INDIVIDUALE: interessata ad un elemento specifico

RICERCA per INTERVALLO: interessata a tutti gli elementi che hanno una particolare caratteristica comune.

ELENCO ORDINATO: interessata nell'ordine di un elenco


Analisi della Complessità Computazionale degli logaritmi

Come e quanto è efficiente un programma nella sua computazione, analizzare l'idea risolutiva nel calcolo necessario per risolvere il problema

(piccolo valore della complessità computazionale = meno tempo di esecuzione)


ricerca di un elemento 'x' in una sequenza di dati (es.128) per un algoritmo di ricerca sequenziale (ad accesso sequenziale):

CASO OTTIMO: lo trovo all'inizio n°confronti = 1



CASO MEDIO:    media statistica delle possibilità n°confronti = 64

CASO PESSIMO: lo trovo alla fine n°confronti = 128


per un algoritmo di ricerca binaria:

CASO OTTIMO: n°confronti = 1

CASO MEDIO:    n°confronti = 7

CASO PESSIMO: n°confronti = 8


Metodi d'accesso


SEQUENZIALE: seleziono uno per volta gli elementi di un certo campo (CAMPO CHIAVE di ricerca) e li confronto con il dato

CON INDICE: accesso tramite un indice. INDICE = struttura ausiliaria memorizzata in modo permanentemente su un file, correlato con il file primario, residente nello stesso disco, contenente tutti i dati.

Posizionamento diretto in Pascal: SEEK

HASH: trasformazione di una chiave di ricerca. Chiave K che può assumere diversi valori.


Ottimizzazione   ottimizzatore = componente del sistema

La query viene tradotta in un codice di più basso livello (linguaggio macchina) comprensibile dal file SYSTEM del sistema operativo (componente che consente l'interrogazione della base di dati fisica)

Procedura di ottimizzazione


Compito dell'ottimizzatore è trovare la query più efficiente con il minor costo (tempo esecuzione).

Il minimo è il numero di tuple del risultato.

Esempio 1: se facciamo un interrogazione su due tabelle nel procedurale bisogna prima fare il prodotto cartesiano delle due.

1°strategia: prima si esegue il prodotto e poi  l'accesso

2°strategia: prima si eliminano le colonne che non sono coinvolte, si svolge il prodotto cartesiano e poi l'accesso

3°strategia: semigiunzione eliminando ciò che non interessa.


Come raggiungere il costo minimo


a)   si deve usare un metodo d'accesso alla lista (es. pittori) che consenta di rispondere alla domanda "chi sono i pittori di un determinato genere?" con un costo di n = 1

b)   si deve usare un metodo d'accesso alla lista (es. Quadri) che consenta di rispondere alla domanda "Quali sono i quadri di un certo pittore?" con un costo di n = N° tuple che formano il risultato

c)   si può ricorrere al un metodo d'accesso con un indice o hash? Perché?







Privacy




Articolo informazione


Hits: 1454
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024