Le sessioni sono molto simili ai cookies, la differenza sostanziale è che mentre i cookies hanno una durata che puoi impostare nella dichiarazione del cookie stesso, le sessioni durano fino a che non chiudi il browser. E' un buon metodo per gestire login (io preferisco i cookies per mantenere i dati per più tempo, 1 settimana esempio), carrelli della spesa e molto altro.

Non si tratta però dei metodi più efficienti (anche se efficaci) per il passaggio di dati fra pagine, a tal proposito ti consiglio l'uso degli argomenti via GET o form via POST

Esempio di passaggio di variabili ad una pagina:

pagina.php?nome=Pippo&eta=23&sesso=maschio

pagina.php:

$nome = $_GET['pagina'];
echo $nome; //Pippo

ecc

Per quel che concerne la connessione con il database, puoi utilizzare delle connessioni "standard", che vengono aperte e chiuse ad ogni apertura del sito (io preferisco così) oppure utilizzare delle connessioni permanenti che vengono riutilizzate, però si può facilmente saturare il numero delle connessioni al db permesse dall'hoster