I programmatori di database fanno molte cose. Innanzitutto progettano la struttura del database in modo che funzioni correttamente con il numero di record previsti. Le strutture di progettazione che funzionano correttamente per alcune migliaia di record possono rendere inutilizzabile un database in pochi milioni di record. Devono inoltre assicurarsi che i dati mantengano la loro integrità nel tempo e che i dati siano protetti da modifiche o furti non autorizzati. Devono comprendere a fondo la normalizzazione e quando denormalizzare e perché. Devono comprendere le prestazioni e come garantire l'integrità dei dati. Devono comprendere la sicurezza e come impedire che i dati vengano rubati o modificati in modo dannoso.
Ottimizzano le query. Ho modificato le query che richiedono minuti per l'esecuzione in millsecondi. Ho modificato un processo che ha richiesto più di 24 ore per funzionare in meno di 30 minuti. Progettano e mantengono strutture di indicizzazione in grado di bilanciare la velocità degli inserti con la velocità delle selezioni.
Scrivono query complesse, in particolare quelle di reportistica. Personalmente ho scritto query lunghe oltre 1000 righe a causa della complessità del requisito. Dovevano ancora e correvano in fretta.
Creano data warehouse e i relativi processi ETL per supportarli. Spesso hanno bisogno di scrivere processi per portare i dati da altre fonti e devono capire come mappare i campi da alcuni database dei loro clienti ai loro e questi non sono mai una corrispondenza ravvicinata nel tipo di dati, dimensione dei dati, campi obbligatori, valori di ricerca, eccetera.
Devono determinare come refactoring quando cambiano i requisiti del database senza danneggiare i 100.000.000 di record che già possiedono e senza interrompere completamente l'uso del database. I database di grandi dimensioni possono coinvolgere migliaia di tabelle, processi memorizzati e funzioni definite dall'utente. Comprendere una tale struttura richiede tempo e abilità, così come capire cosa sarà influenzato dai cambiamenti e come.
Progettano modi per controllare i dati per motivi normativi e di recupero. Quindi progettano modi per recuperare i dati da tali tabelle di controllo. Esse ricercano problemi con i dati per scoprire se il problema derivava da un bug nel processo di importazione, da un file errato fornito da altri o da un inserimento / aggiornamento errato dall'applicazione o da un accesso non autorizzato. Trovano il modo di correggere i dati errati quando i programmatori delle applicazioni lasciavano un buco aperto agli attacchi degli hacker.
Spesso sono coinvolti nelle conversioni di dati da un sistema a un nuovo sistema. A volte ciò comporta il trasferimento di dati da un prodotto COTS a uno nuovo che l'azienda ha appena acquistato. Come le importazioni descritte in precedenza, si tratta di processi complessi che possono richiedere mesi per pianificare ed eseguire e che richiedono test approfonditi. A differenza delle importazioni, il programmatore del database potrebbe non avere alcun controllo sulle diverse strutture di dati.