15.06.2013 Views

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.3.4 Connessioni<br />

Carnielli Efrem: Programmazione a componenti<br />

Applicazioni Client-Server e database<br />

Consiste nell’<strong>in</strong>staurare un canale <strong>di</strong> comunicazione col DB: trovare il DB,<br />

<strong>in</strong>vocarlo passandogli log<strong>in</strong> e password ed <strong>in</strong>staurare una connessione sicura per<br />

fare richieste e ricevere i dati.<br />

Trovare il DB e connettersi ha un costo elevato.<br />

6.4 Sql<br />

Dopo avere effettuato la connessione devo occuparmi <strong>di</strong> confezionare la richiesta<br />

<strong>in</strong> SQL per il DB.<br />

L’<strong>in</strong>terrogazione potrebbe essere del tipo del tipo:<br />

select select select * *<br />

*<br />

from from anagrafe anagrafe<br />

anagrafe<br />

where where where età età > > 20<br />

20<br />

Questa <strong>in</strong>terrogazione viene poi memorizzata <strong>in</strong> una str<strong>in</strong>ga, viene def<strong>in</strong>ito uno<br />

statement <strong>in</strong> cui <strong>in</strong>seriamo la str<strong>in</strong>ga, e questo è <strong>in</strong>viato al DB.<br />

Quando il Database Server riceve la richiesta si verificano i seguenti passi:<br />

1. L’sql-<strong>in</strong>terface esegue un pars<strong>in</strong>g della str<strong>in</strong>ga.<br />

Dal pars<strong>in</strong>g della str<strong>in</strong>ga risultano i seguenti token: giocatori, punti, 20<br />

2. Viene verificata la correttezza dei token ed effettuato un controllo <strong>di</strong><br />

vali<strong>di</strong>tà, cioè se esiste la tabella anagrafe con la colonna età.<br />

3. Viene verificata l’identità <strong>di</strong> chi (programma) esegue l’<strong>in</strong>terrogazione e<br />

i permessi associati. Prima <strong>di</strong> eseguire l’<strong>in</strong>terrogazione si controllano i<br />

permessi <strong>di</strong> chi si è collegato al database server.<br />

4. Viene preparato l’ambiente <strong>in</strong> modo tale che sia <strong>in</strong> grado <strong>di</strong> ultimare il<br />

comando. Si opera un’analisi dei meccanismi necessari e delle<br />

ottimizzazioni per fare sì che il comando che verrà eseguito sia anche<br />

portato a term<strong>in</strong>e.<br />

5. Viene preparato il piano d’accesso, ovvero viene compilata<br />

l’<strong>in</strong>terrogazione ottenendo un l<strong>in</strong>guaggio macch<strong>in</strong>a (sql-mach<strong>in</strong>e) per<br />

eseguirlo successivamente.<br />

6. Collegamento del piano d’accesso ed esecuzione.<br />

7. Restituisco lo “stream” cioè il flusso delle <strong>in</strong>formazioni ottenute<br />

dall’esecuzione del piano d’accesso.<br />

Le <strong>in</strong>formazioni possono cont<strong>in</strong>uare a rimanere nel Db server, alle quali accedo con<br />

139

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!