Pull to refresh

Comments 23

Название статьи хорошая. Почему-то первой мыслью было про личные, человеческие отношения.
«Нормализация имеет своей целью избавиться от избыточности в отношениях и модифицировать их структуру таким образом, чтобы процесс работы с ними не был обременён различными посторонними сложностями.»
Спасибо, как раз в моем учебном заведении начался курс баз данных. Ваша статья как нельзя кстати :)
Спасибо, как раз в моем учебном заведении через 8 часов сдавать ГОСы, среди вопросов к которым есть и НФ. Жаль, до утра автор, видимо, не опубликует про 3НФ, 4НФ, 5НФ, НФБК )
А где же 3-я, 4-я формы? Продолжение будет?
>> И этим постом хотелось бы начать небольшую серию публикаций, посвящённых нормальным формам…
Забавно, что в университетах нас учат всем этим нормальным формам, а жизнь впоследствии учит денормализации.
Я всегда чисто интуитивно проектировал базу и в первый раз читаю о этих формах. Кажется я почти сразу стал делать правильно… Возможно это потому, что знакомился с базами данных уже на готовом проекте. Практика?
Когда проектируешь для реального проекта, сразу думаешь какие запросы будешь делать. Таким образом проблемы выявляются интуитивнее.
У меня так-же, про нормальные формы узнал уже после того как проектировал базы не один раз, и успешно.
Теория — инструмент помогающий проектировать и выявлять проблемы не только интуитивно.
Мне одному показалось, что материал и по стилю, и по содержанию имеет больше отношения к реляционной алгебре, чем к классическим (SQL) РСУБД? А, главное, явно не для начинающих?
Показалось. В основе работы классических Реляционных СУБД лежит фундамент той самой алгебры. Не знаю насколько это для начинающих, но это базовые основы, самое вкусное дальше (но и сложнее).
Так я про то же. В основе работы кассового аппарата лежит фундамент алгебры, матанализа, операционного и дискретного исчисления. Вот только нужно ли термины типа «интеграл», «производная», «шаг дискретизации» объяснять кассиру, а тем боле покупателю?
Понимаете, при работе с кассовым аппаратом тоже применяется некая стандартная терминология. Кнопки обычно не называют «вот эти штучки», хотя, возможно, кому-то так называть и проще :)

Я это к тому, что использование некорректных терминов может и добавит кому-то понимания, но по сути лишь внесёт путаницу и покажет некомпетентность автора. Тем более, я постарался предупредить возможные вопросы, добавив мини-словарь.
Теорию функциональных зависимостей и нормальных форм знать надо для более глубокого понимания вопроса. Конечно на практике можно проектировать базы данных, забывая о НФ и ФЗ, однако, например та же теория ФЗ говорит о том, что всегда существует минимальный набор ФЗ для предметной области, из которого можно вывести все остальные ФЗ. Более того, есть формальные правила вывода этого минимального набора. Отсюда следует, что правильно сформулировав функциональные зависимости можно автоматически получить правильно спроектированную базу данных.

Ситуация с нормальными формами является одним из воплощений закона дырявых абстракций. Абстракция есть, но ее как бы нет. И большинство начинающих разработчиков думает «а зачем оно мне?». Но понимание более низкоуровневых процессов позволяет посмотреть на вопрос с другой точки зрения и понять некие скрытые взаимосвязи (например, множественные join'ы возможны потому что декартово произведение отношений в свою очередь тоже является отношением).
Собравших писать о нормальных формах, я посчитал, что будет неверным просто пропустить вторую, мотивируя тем, что про неё уже говорили тут. К тому же, мы с тем автором подошли немного с разных сторон к этой теме.
А мне эта понравилась. Очень доходчиво написано.
И вопрос: А в последней таблице разве не 4 строчки должно быть?
да, должно быть, так как одинаковых кортежей в отношении не может быть
Спасибо. Не обратил внимание. Исправил.
Когда будете писать продолжение, опишите максимально подробно 4НФ и 5НФ. Это, по крайней мере для меня, крайне непонятные вещи.
Sign up to leave a comment.

Articles