Los programadores de bases de datos hacen muchas cosas. Primero diseñan la estructura de la base de datos para que funcione correctamente con la cantidad de registros esperados. Las estructuras de diseño que funcionan bien para unos pocos miles de registros pueden hacer que una base de datos sea inutilizable en unos pocos millones de registros. También deben asegurarse de que los datos mantendrán su integridad a lo largo del tiempo y que los datos están seguros contra cambios no autorizados o robos. Tienen que comprender completamente la normalización y cuándo desnormalizar y por qué. Deben comprender el rendimiento y cómo garantizar la integridad de los datos. Tienen que comprender la seguridad y cómo evitar que los datos sean robados o cambiados maliciosamente.
Realizan consultas de sintonización. He cambiado las consultas que tardan minutos en ejecutarse en milisegundos. He cambiado un proceso que tardó más de 24 horas en ejecutarse en menos de 30 minutos. Diseñan y mantienen estructuras de indexación que equilibrarán la velocidad de las inserciones con la velocidad de las selecciones.
Escriben consultas complejas, especialmente consultas de informes. Personalmente, he escrito consultas que tienen más de 1000 líneas debido a la complejidad del requisito. Todavía tenían que hacerlo y corrieron rápidamente.
Crean almacenes de datos y los procesos ETL que los acompañan para respaldarlos. A menudo necesitan escribir procesos para traer datos de otras fuentes y tienen que descubrir cómo mapear los campos de la base de datos de algunos clientes a los suyos y estos nunca coinciden estrechamente en tipo de datos, tamaño de datos, campos obligatorios, valores de búsqueda, etc.
Deben determinar cómo refactorizar a medida que cambian los requisitos de la base de datos sin dañar los 100,000,000 registros que ya tienen y sin detener por completo el uso de la base de datos. Grandes bases de datos pueden involucrar miles de tablas y procesos almacenados y funciones definidas por el usuario. Comprender dicha estructura requiere tiempo y habilidad, al igual que comprender qué se verá afectado por los cambios y cómo.
Diseñan formas de auditar los datos por razones regulatorias y de recuperación. Luego diseñan formas de recuperar los datos de esas tablas de auditoría. Investigan problemas con los datos para determinar si el problema fue un error en el proceso de importación, un archivo incorrecto proporcionado por otros o una inserción / actualización incorrecta de la aplicación, o por acceso no autorizado. Encuentran formas de corregir los datos incorrectos cuando los programadores de aplicaciones dejan un hueco para que los hackers ataquen.
A menudo participan en las conversiones de datos de un sistema a otro. A veces, esto implica mover datos de un producto COTS a uno nuevo que la compañía acaba de comprar. Al igual que las importaciones descritas anteriormente, estos son procesos complejos que pueden tomar meses para planificar y ejecutar y que requieren pruebas exhaustivas. A diferencia de las importaciones, el programador de bases de datos puede no tener control sobre las estructuras de datos dispares.