il singleton evita di creare due istanze della stessa classe per errore.
per le classi è chiaro che la classe database va inclusa sempre. però fai attenzione io per classe database intnedo una classe che accede al database, ed effettua le operazioni classiche di insert etc etc.
per tutte le altre operazioni che non siano sul database usi altre classi