Проектирование схемы
Таблицы, связи и ограничения, смоделированные под то, как приложение на самом деле читает и записывает данные, а не по общей учебной схеме.
Данные
Проектирование схем, запросы и хранимые процедуры, построенные под приложение, которое работает поверх них, в формате выделенного разработчика, проекта с фиксированным объёмом, поддержки в подборе персонала или консалтинга.
Дубайский бизнес обычно решает нанять разработчика баз данных, когда слою данных приложения нужно настоящее проектное внимание: новый продукт, который создаётся с нуля, существующая схема, ставшая запутанной по мере добавления функций, или отчёты, начавшие обрываться по времени, потому что запросы изначально писались без оглядки на производительность. Эта работа находится рядом с самим приложением, а не с поддержанием сервера в рабочем состоянии, и именно эту путаницу чаще всего допускают, когда формулируют бриф на эту роль.
Разработчик баз данных проектирует таблицы, связи и ограничения, которые хранят данные приложения, пишет запросы, которые их читают и меняют, и часто строит хранимые процедуры или функции, чтобы общая логика жила в одном месте, а не дублировалась в каждом приложении, обращающемся к базе. Хороший дизайн схемы на раннем этапе требует намного меньше усилий, чем его исправление позже, когда от неё уже зависят реальные данные и реальный трафик.
Прежде чем нанять разработчика баз данных в Дубае, определите, идёт ли речь о новой схеме с чистого листа или об исправлении и расширении той, что уже хранит живые данные, ведь второй вариант заметно деликатнее первого.
Что строит разработчик баз данных
Структура и логика, от которых зависит приложение, когда вы нанимаете разработчика баз данных в Дубае именно для этой работы, а не для администрирования сервера.
Таблицы, связи и ограничения, смоделированные под то, как приложение на самом деле читает и записывает данные, а не по общей учебной схеме.
Эффективные запросы под реальную нагрузку приложения и представления, упрощающие сложное соединение для кода, который его вызывает.
Общая бизнес-логика, хранящаяся внутри базы данных, чтобы несколько приложений или отчётов могли полагаться на одно и то же проверенное поведение.
Индексы, выбранные для ускорения запросов, которые реально выполняются, а не добавленные повсюду из предположения, что больше индексов всегда лучше.
Версионированные, повторяемые скрипты, которые безопасно меняют схему в разных окружениях, вместо ручных правок, нигде не записанных.
Ограничения и проверки, которые не пускают плохие данные внутрь с самого начала, а не полагаются целиком на уровень приложения, чтобы их отловить.
Важные навыки
Проектное чутьё и мастерство работы с запросами, а не просто знакомство с названием продукта базы данных.
| Навык или инструмент | Как выглядит хороший уровень | Почему это важно |
|---|---|---|
| Проектирование схемы | Объясняет, почему таблица устроена определённым образом, исходя из того, как её использует приложение | Плохо смоделированная схема становится медленнее и сложнее в изменении по мере роста приложения |
| Свободное владение SQL | Пишет читаемые, эффективные запросы и умеет читать план выполнения, а не просто получает правильный результат методом проб | Неэффективный запрос, который работает на тестовых данных, может серьёзно упасть под реальным трафиком |
| Хранимые процедуры | Знает, когда логика должна жить в базе данных, а когда в приложении, а не выбирает одно и то же по умолчанию | Логика, непоследовательно разбросанная между слоями, тяжело поддерживается и отлаживается |
| Индексирование | Может обосновать каждый индекс реальным характером запросов и знает, что индексы не бесплатны | Лишние индексы замедляют запись, не ускоряя ничего важного |
| Контроль версий для изменений схемы | Относится к изменениям схемы как к версионированным, проверяемым миграциям, а не ручным правкам прямо на продакшене | Незафиксированное изменение схемы, одна из самых сложных проблем для отладки позже |
Какую бы платформу ни использовало ваше приложение, официальная документация имеет значение: для приложения на Microsoft SQL Server или Azure SQL справочник по Transact-SQL служит основным источником точного синтаксиса, и разработчик баз данных, которого стоит нанять в Дубае, должен уверенно ориентироваться в нём напрямую, а не полагаться только на память. Попросите показать это на собеседовании, если вы нанимаете разработчика баз данных в Дубае под стек Microsoft.
Форматы работы с нами
Проект с фиксированным объёмом подходит под определённую задачу, например проектирование новой схемы или исправление набора медленных запросов в существующей, с чёткой передачей после завершения. Выделенный разработчик подходит продукту с постоянной работой над функциями, которая раз за разом затрагивает слой данных. Поддержка в подборе персонала подходит бизнесу, который хочет держать разработчика баз данных в собственном штате на постоянной основе, где мы составляем описание роли, отбираем кандидатов и проводим техническую оценку, а нанимаете человека напрямую вы. Консалтинг подходит команде, у которой схема уже есть, и которая хочет получить опытный взгляд со стороны перед крупной функцией или миграцией.
Оценка кандидата
Проверки, раскрывающие проектное чутьё, а не просто правильный синтаксис.
Используйте их сами или попросите нас встроить в техническую оценку, если вы решили нанять разработчика баз данных в Дубае через поддержку в подборе персонала.
Попросите пройтись по спроектированной им схеме, объяснить, почему таблицы устроены именно так, и что бы он изменил задним числом.
Реалистичный, умеренно сложный запрос к схеме, близкой к вашей, показывает, как он думает о планах выполнения и индексировании, а не только о синтаксисе.
Опишите сценарий и спросите, должна ли логика находиться в хранимой процедуре или в приложении. У сильного кандидата есть обоснованный ответ в любом случае, а не жёсткое правило.
Спросите, как он безопасно менял живую схему в прошлом и что происходило, когда миграцию нужно было откатить.
Спросите, что не пускает плохие данные в одну из прошлых схем. Ограничения и проверки на уровне базы данных, более сильный ответ, чем “это проверяет приложение”.
Сертификации
Платформы баз данных действительно проводят именные экзамены, поэтому это одна из ролей, где сертификат может значить что-то конкретное.
Microsoft проводит сертификации, связанные с SQL Server и Azure SQL, а другие вендоры проводят собственные под свои платформы. Единого сертификата, покрывающего разработку баз данных в целом, не существует, поэтому спросите, какую именно платформу покрывает сертификат, прежде чем нанять разработчика баз данных в Дубае, опираясь на него.
Реальная схема, которую можно изучить, вместе с запросами, показывающими ясные рассуждения о производительности, говорит о разработчике баз данных больше, чем название сертификата само по себе, особенно на платформе с открытым исходным кодом вроде PostgreSQL, у которой нет собственного сертифицирующего органа.
Особенности ОАЭ
Актуально всегда, когда схема будет хранить данные клиентов или сотрудников.
Федеральный декрет-закон № 45 от 2021 года, подтверждённый на портале правительства ОАЭ, регулирует обработку персональных данных, поэтому на этапе проектирования схемы решите, какие поля считаются персональными данными и как они будут защищены, а не оставляйте это на потом, когда приложение уже запущено.
Там, где приложение принимает арабский контент, убедитесь, что схема использует кодировку и правила сортировки, которые хранят и упорядочивают его правильно, ведь это деталь, которую намного проще задать на этапе проектирования, чем исправлять потом. Поднимите этот вопрос, когда будете нанимать разработчика баз данных в Дубае для приложения, работающего с клиентами.
Изучите остальную часть категории данные, части раздела найма разработчиков в Дубае, если эта роль подходит не совсем точно. Если работа на самом деле про поддержание здоровья существующей продакшн-базы, а не про её проектирование, наша страница инженера баз данных закрывает эту задачу, а универсальная работа с SQL в отчётности и приложениях относится к роли SQL-разработчика. Более широкое решение о платформах, моделях и управлении данными сразу для нескольких систем относится к странице архитектора данных, а если само приложение ещё нужно построить, наша услуга разработки сайтов станет более широкой отправной точкой.
Прямые ответы
Разработчик баз данных проектирует схемы, пишет запросы и хранимые процедуры для конкретного приложения, работая рядом с кодом, который обращается к базе. Инженер баз данных следит, чтобы база хорошо работала в продакшене: производительность, резервные копии, репликация и доступность. Во многих небольших командах один человек закрывает обе роли, а в крупной команде их обычно разделяют.
Backend-разработчик, собирающий несложное приложение, часто может спроектировать его схему вполне достойно. Выделенный разработчик баз данных окупает себя, когда запросы начинают тормозить, схема должна поддерживать несколько приложений, или хранимые процедуры и сложная отчётная логика становятся реальной частью работы.
Это зависит от данных и характера обращений к ним, а не от общих предпочтений. Реляционная база вроде PostgreSQL или продукт Microsoft SQL Server подходит большинству транзакционных приложений, а специфическая отчётная или документо-ориентированная нагрузка может тяготеть к другой модели. Расскажите нам о форме приложения, и мы поможем правильно оценить объём работы.
Да, это распространённая задача. Компетентный разработчик баз данных читает план выполнения, находит отсутствующие индексы или неэффективный запрос и переписывает или перестраивает его, обычно без необходимости трогать код приложения, который его вызывает.
Да, и для других распространённых реляционных платформ. Скажите, какую платформу уже использует или планирует использовать ваше приложение, и мы подберём разработчика с реальным, рабочим опытом именно на этой платформе, а не только общими знаниями баз данных.
Источники
Фиксированная цена в письменном виде
Получили. Мы уже готовим ваше предложение.
В рабочее время вы получите его в течение 45 минут. Проверьте почту, там письмо с подтверждением.