Programadores de banco de dados fazem muitas coisas. Primeiro, eles projetam a estrutura do banco de dados para que ele funcione corretamente com o número de registros esperados. As estruturas de design que funcionam bem para alguns milhares de registros podem tornar um banco de dados inutilizável em alguns milhões de registros. Eles também precisam garantir que os dados mantenham sua integridade ao longo do tempo e que estejam protegidos contra alterações não autorizadas ou roubo. Eles precisam entender completamente a normalização e quando desnormalizar e por quê. Eles precisam entender o desempenho e como garantir a integridade dos dados. Eles precisam entender a segurança e como impedir que os dados sejam roubados ou alterados maliciosamente.
Eles ajustam as consultas de desempenho. Alterei as consultas que levam alguns minutos para serem executadas em mil segundos. Alterei um processo que levou mais de 24 horas para ser executado em menos de 30 minutos. Eles projetam e mantêm estruturas de indexação que equilibrarão a velocidade das pastilhas e a velocidade das seleções.
Eles escrevem consultas complexas, especialmente consultas de relatórios. Pessoalmente, escrevi consultas com mais de 1000 linhas devido à complexidade do requisito. Eles ainda precisavam correr rapidamente.
Eles criam armazéns de dados e os processos ETL que os acompanham. Geralmente, eles precisam escrever processos para trazer dados de outras fontes e precisam descobrir como mapear os campos de alguns bancos de dados de clientes para os deles, e isso nunca é uma correspondência aproximada no tipo de dados, tamanho dos dados, campos obrigatórios, valores de pesquisa, etc.
Eles precisam determinar como refatorar à medida que os requisitos do banco de dados mudam sem prejudicar os 100.000.000 de registros que já possuem e sem interromper completamente o uso do banco de dados. Bancos de dados grandes podem envolver milhares de tabelas e procs armazenados e funções definidas pelo usuário. Entender essa estrutura exige tempo e habilidade, assim como entender o que será impactado pelas mudanças e como.
Eles projetam maneiras de auditar os dados por motivos regulatórios e de recuperação. Eles então projetam maneiras de recuperar os dados dessas tabelas de auditoria. Eles pesquisam problemas com os dados para descobrir se o problema foi causado por um erro no processo de importação, por um arquivo incorreto fornecido por outras pessoas ou por uma inserção / atualização incorreta do aplicativo ou por acesso não autorizado. Eles encontram maneiras de corrigir os dados incorretos quando os programadores de aplicativos deixam um buraco para os hackers atacarem.
Muitas vezes, eles estão envolvidos em conversões de dados de um sistema para um novo sistema. Às vezes, isso envolve a transferência de dados de um produto COTS para um novo que a empresa acabou de comprar. Como as importações descritas anteriormente, esses são processos complexos que podem levar meses para serem planejados e executados e que exigem testes extensivos. Diferentemente das importações, o programador de banco de dados pode não ter controle sobre as estruturas de dados díspares.