Database: migliorarne lo sviluppo

Materie:Appunti
Categoria:Informatica
Download:126
Data:03.11.2000
Numero di pagine:2
Formato di file:.doc (Microsoft Word)
Download   Anteprima
database-migliorarne-sviluppo_1.zip (Dimensione: 4.87 Kb)
trucheck.it_database:-migliorarne-lo-sviluppo.doc     25 Kb
readme.txt     59 Bytes


Testo

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 della 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é?

Esempio