Вопрос про нормализацию звучит как теоретический, но интервьюер почти всегда проверяет практическое понимание: знаешь ли ты, зачем раскладывать данные по таблицам и когда от этого отступают. Теорию ты прошёл в уроках про нормальные формы и BCNF и денормализацию. Здесь мы собираем из неё ответ, который укладывается в минуту и выдерживает уточняющие вопросы.
Как спрашивают
Что такое нормализация? Назови нормальные формы. Когда стоит денормализовать?
Варианты: «Почему бы не хранить всё в одной таблице?», «Ты бы стал денормализовать эту схему?»
Короткий ответ
Нормализация это раскладка данных по таблицам так, чтобы каждый факт хранился в одном месте. Это убирает аномалии: при обновлении не нужно править одно и то же в сотне строк, при удалении не теряются посторонние факты, а при вставке не нужны лишние данные. Первая нормальная форма требует атомарных значений, вторая запрещает зависимость от части составного ключа, третья запрещает зависимость неключевой колонки от другой неключевой. Короткая формула: каждая колонка зависит от ключа, от всего ключа и ни от чего, кроме ключа. Денормализация это сознательное дублирование ради скорости чтения. Её делают после нормализации, под конкретный измеренный медленный запрос, и обязательно решают, кто поддерживает копию в согласии с источником.
дальше после входа
Урок целиком открыт всем, кто вошёл. Войди по своему email, чтобы читать дальше.
Вход пока по приглашению. Если хочешь учиться, напиши Vassiliy.