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 ...
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