Los programadores de bases de datos hacen muchas cosas. Primero, diseñan la estructura de la base de datos para que funcione correctamente con el número 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 protegidos contra cambios o robos no autorizados. Tienen que entender completamente la normalización y cuándo desnormalizar y por qué. Tienen que entender el rendimiento y cómo garantizar la integridad de los datos. Tienen que entender la seguridad y cómo evitar que los datos sean robados o modificados maliciosamente.
Realizan consultas de sintonía. He cambiado las consultas que tardan minutos en ejecutarse a milésimas de segundo. He cambiado un proceso que tardó más de 24 horas en ejecutarse a 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 las 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 darles soporte. A menudo necesitan escribir procesos para traer datos de otras fuentes y deben averiguar cómo asignar los campos de la base de datos de algunos clientes a la suya, y estos nunca son una coincidencia estrecha en el tipo de datos, tamaño de datos, campos requeridos, valores de búsqueda, etc.
Tienen que 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 el uso de la base de datos. Las grandes bases de datos pueden incluir miles de tablas y procesos almacenados y funciones definidas por el usuario. Comprender una estructura de este tipo requiere tiempo y habilidad, así como 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. Ellos investigan los problemas con los datos para encontrar si el problema se debió a un error en el proceso de importación, a un archivo defectuoso provisto por otros o a una inserción / actualización incorrecta de la aplicación, o al acceso no autorizado. Encuentran maneras de corregir los datos erróneos cuando los programadores de la aplicación dejan un agujero para que los piratas informáticos ataquen.
A menudo participan en conversiones de datos de un sistema a un sistema nuevo. 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 tardar meses en planificarse y ejecutarse y que requieren pruebas exhaustivas. A diferencia de las importaciones, el programador de la base de datos puede no tener control sobre las estructuras de datos dispares.