Программисты баз данных делают много вещей. Сначала они проектируют структуру базы данных так, чтобы она правильно работала с количеством ожидаемых записей. Структуры проектирования, которые работают нормально для нескольких тысяч записей, могут сделать базу данных непригодной для использования на нескольких миллионах записей. Они также должны убедиться, что данные будут сохранять свою целостность с течением времени и что данные защищены от несанкционированных изменений или кражи. Они должны полностью понимать нормализацию и когда денормализовать и почему. Они должны понимать производительность и как обеспечить целостность данных. Они должны понимать безопасность и способы предотвращения кражи или злонамеренного изменения данных.
Они производят настройку запросов. Я изменил запросы, которые занимают минуты, чтобы работать в миллисекундах. Я изменил процесс, который занял более 24 часов и стал менее 30 минут. Они проектируют и поддерживают структуры индексации, которые будут уравновешивать скорость вставок и скорость выбора.
Они пишут сложные запросы, особенно отчеты. Лично я написал запросы длиной более 1000 строк из-за сложности требования. Они все еще должны были бежать и быстро.
Они создают хранилища данных и сопровождают процессы ETL для их поддержки. Часто им нужно писать процессы для получения данных из других источников и выяснять, как сопоставить поля из базы данных некоторых клиентов с их, и они никогда не бывают близки по типу данных, размеру данных, обязательным полям, значениям поиска, и т.п.
Они должны определить, как проводить рефакторинг при изменении требований к базе данных, не нанося вреда уже имеющимся 100 000 000 записей и без полной остановки использования базы данных. Большие базы данных могут включать тысячи таблиц и хранимых процедур и пользовательских функций. Понимание такой структуры требует времени и навыков, равно как и понимания того, на что повлияют изменения и как.
Они разрабатывают способы аудита данных для целей регулирования и восстановления. Затем они разрабатывают способы восстановления данных из этих таблиц аудита. Они исследуют проблемы с данными, чтобы выяснить, была ли проблема связана с ошибкой в процессе импорта, плохим файлом, предоставленным другими пользователями, с ошибкой вставки / обновления из приложения или с несанкционированным доступом. Они находят способы исправить неверные данные, когда разработчики приложений оставляют дыру для атак хакеров.
Часто они участвуют в преобразовании данных из одной системы в новую. Иногда это включает перемещение данных из одного продукта COTS в новый продукт, который компания только что купила. Как и импорт, описанный ранее, это сложные процессы, для планирования и выполнения которых могут потребоваться месяцы, и которые требуют тщательного тестирования. В отличие от импорта, программист базы данных может не иметь никакого контроля над разнородными структурами данных.