сеньорчикОткрыть в Telegram
← все вопросывопросы для собеседований · Модель данных

Модель данных на собеседовании аналитика

Обычно дают предметную область словами и просят набросать модель прямо на встрече. Смотрят не на красоту схемы, а на вопросы, которые ты задаёшь по ходу: может ли договор быть без клиента, меняется ли тип клиента со временем, что делать с накопленными данными при изменении структуры.

62 вопросов в банке·5 подтем·ниже разбор 9

Что спрашивают

Из чего состоит тема

Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.

Разборы подтем

Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.

Примеры вопросов с разбором

  1. #ana_dm_er1 / 9
    Как отличить сущность от атрибута?
    A)У сущности есть собственные свойства и жизнь
    B)Атрибут содержит только числовые значения
    C)Сущность пишут с заглавной буквы
    D)Сущность обязательно связана с тремя другими
    показать ответ и разбор
    +A)У сущности есть собственные свойства и жизнь

    // разбор: Если у понятия появляются собственные свойства, история и правила изменения, это сущность. «Город» как строка в адресе — атрибут; «Город» со справочником, кодом региона и признаком активности — уже сущность. Решение принимают по тому, что с этим понятием нужно делать, а не по его размеру.

  2. #ana_dm_keys2 / 9
    Что обеспечивает внешний ключ?
    A)Уникальность значений в столбце
    B)Автоматическое заполнение поля
    C)Ссылочную целостность между таблицами
    D)Шифрование связанных данных
    показать ответ и разбор
    +C)Ссылочную целостность между таблицами

    // разбор: Внешний ключ не даёт сослаться на несуществующую запись и определяет, что произойдёт при удалении родителя: запретить, обнулить ссылку или удалить каскадом. Для аналитика это прямой вопрос к бизнесу: что должно случиться с заказами, если клиента удаляют.

  3. #ana_dm_migrations3 / 9
    Почему новую колонку обычно добавляют необязательной?
    A)Так требует синтаксис большинства СУБД
    B)Так колонка занимает меньше места
    C)Обязательные колонки индексируются медленнее
    D)Иначе старые строки нечем заполнить
    показать ответ и разбор
    +D)Иначе старые строки нечем заполнить

    // разбор: Обязательная колонка требует значения для каждой уже существующей строки, а осмысленного значения для прошлых записей обычно нет. Стандартный путь в три шага: добавить необязательной, заполнить историю по согласованному правилу, затем сделать обязательной. Каждый шаг едет отдельным релизом.

  4. #ana_dm_normalization4 / 9
    Что нарушает первую нормальную форму?
    A)Список телефонов в одном поле через запятую
    B)Отсутствие внешнего ключа у таблицы
    C)Хранение вычисляемого итога заказа
    D)Использование составного первичного ключа
    показать ответ и разбор
    +A)Список телефонов в одном поле через запятую

    // разбор: Первая нормальная форма требует атомарности значений: в ячейке одно значение, а не список. Строка «+7900…, +7901…» ломает поиск, проверку формата и связи, потому что база видит текст, а не два телефона. Лечится отдельной сущностью контактов.

  5. #ana_dm_types5 / 9
    В каком типе хранят денежные суммы?
    A)В числе с плавающей точкой двойной точности
    B)В десятичном типе с фиксированной точкой
    C)В строке произвольной длины
    D)В целом числе без указания валюты
    показать ответ и разбор
    +B)В десятичном типе с фиксированной точкой

    // разбор: Десятичный тип хранит значение точно, поэтому суммирование не накапливает погрешность. Плавающая точка даёт расхождения на копейки, которые бухгалтерия замечает первой. Отдельно фиксируют валюту: сумма без валюты — неполный факт, особенно если система однажды выйдет за пределы одной страны.

  6. #ana_dm_er6 / 9
    Что такое связующая (ассоциативная) сущность?
    A)Сущность без единого атрибута
    B)Сущность, раскрывающая связь многие-ко-многим
    C)Копия сущности для целей отчётности
    D)Сущность, хранящая только исторические данные
    показать ответ и разбор
    +B)Сущность, раскрывающая связь многие-ко-многим

    // разбор: Связь многие-ко-многим в реляционной модели разворачивается в отдельную сущность с ключами обеих сторон. Почти всегда у неё обнаруживаются собственные атрибуты: позиция заказа хранит количество и цену на момент покупки, участие сотрудника в проекте — роль и период.

  7. #ana_dm_keys7 / 9
    Чем естественный ключ отличается от суррогатного?
    A)Естественный несёт смысл предметной области
    B)Суррогатный обязательно составной
    C)Естественный не может быть уникальным
    D)Суррогатный виден пользователю в интерфейсе
    показать ответ и разбор
    +A)Естественный несёт смысл предметной области

    // разбор: Естественный ключ — значение из жизни: ИНН, номер паспорта, артикул. Суррогатный придуман системой и смысла не несёт. Проблема естественных ключей в том, что жизнь меняется: номер паспорта заменяют, артикул переназначают, а ключ должен быть вечным.

  8. #ana_dm_migrations8 / 9
    Что означает обратно совместимая миграция?
    A)Её можно откатить одной командой
    B)Она выполняется без остановки базы
    C)Предыдущая версия кода работает
    D)Она не меняет объём занятого места
    показать ответ и разбор
    +C)Предыдущая версия кода работает

    // разбор: Совместимость определяется по работающему коду: при постепенном обновлении старые и новые экземпляры приложения живут одновременно. Добавление необязательной колонки безопасно, а удаление или переименование — нет, потому что старая версия обратится к исчезнувшему полю и упадёт.

  9. #ana_dm_normalization9 / 9
    В таблице заказов хранятся название и адрес клиента. Чем это грозит?
    A)Адрес разъедется между заказами
    B)Замедлится добавление новых заказов
    C)Заказы будут дольше сохраняться
    D)Сломается сортировка по дате заказа
    показать ответ и разбор
    +A)Адрес разъедется между заказами

    // разбор: Дублирование атрибутов клиента в каждом заказе означает, что при переезде придётся править все строки. Часть обновится, часть нет, и на вопрос «какой адрес у клиента» появится несколько ответов. Правильный ход — ссылка на клиента; отдельный вопрос, надо ли фиксировать адрес доставки на момент заказа.

это 9 из 62

Ещё 53 вопросов по теме — в тренажёре, с движком повторения

Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.

Частые вопросы