I programmatori di database fanno molte cose. Per prima cosa progettano la struttura del database in modo che funzioni correttamente con il numero di record attesi. Le strutture di progettazione che funzionano correttamente per poche migliaia di record possono rendere inutilizzabile un database a pochi milioni di record.
Devono anche assicurarsi che i dati mantengano la loro integrità nel tempo e che i dati siano al sicuro da modifiche o furti non autorizzati. Devono capire chiaramente la normalizzazione e quando denormalizzare e perché. Devono capire le prestazioni e come garantire l'integrità dei dati. Devono capire la sicurezza e come impedire che i dati vengano rubati o modificati in modo pericoloso.
Eseguono le query di ottimizzazione. Ho cambiato le query che richiedono alcuni minuti per essere eseguiti fino a millsecondi. Ho cambiato un processo che ha impiegato oltre 24 ore per funzionare a meno di 30 minuti. Progettano e mantengono strutture di indicizzazione che bilanciano la velocità degli inserti rispetto alla velocità di selezione.
Scrivono query complesse che segnalano in particolare le query. Personalmente ho scritto query lunghe oltre 1000 righe a causa della complessità del requisito. Loro dovevano ancora e correvano rapidamente.
Creano data warehouse e i processi ETL che li accompagnano per supportarli. Spesso hanno bisogno di scrivere processi per portare dati da altre fonti e devono capire come mappare i campi da alcuni database dei clienti ai loro e questi non sono mai una stretta corrispondenza nel tipo di dati, nella dimensione dei dati, nei campi obbligatori, nei valori di ricerca, ecc.
Devono determinare come refactoring come cambiano i requisiti del database senza danneggiare i 100.000.000 di record che hanno già e senza interrompere completamente l'utilizzo del database. I databs di grandi dimensioni possono coinvolgere migliaia di tabelle e 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 i modi per controllare i dati per ragioni normative e di recupero. Quindi progettano modi per recuperare i dati da quelle tabelle di controllo. Esaminano i problemi con i dati per scoprire se il problema proveniva da un errore nel processo di importazione, un file non valido fornito da altri o un cattivo inserimento / aggiornamento dall'applicazione o da accessi non autorizzati. Trovano il modo di correggere i dati errati quando i programmatori dell'applicazione lasciano un buco agli attacchi degli hacker.
Spesso sono coinvolti nelle conversioni di dati da un sistema a un nuovo sistema. A volte ciò comporta lo spostamento 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 di database potrebbe non avere alcun controllo sulle diverse strutture di dati.