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