Обсуждение:Нормальная форма

Последнее сообщение: 6 лет назад от Евгений Мирошниченко в теме «Иллюстрация примерами»

Отделение статьи Нормализация баз данных править

Кто-нибудь, вставьте, пожалуйстя примеры для нормальных форм. Без примеров, по одному только описанию, не понять. Нужно разделить понятия и статьи: Нормальная форма и Нормализация баз данных217.8.94.61 06:29, 29 января 2008 (UTC)Ответить

Полностью согласен с мыслью о разделении этих статей. Создал стаб для Нормализация баз данных NickSt 16:40, 6 февраля 2009 (UTC)Ответить

Разница между 2NF и 3NF править

Не вижу в данной статье разницы между 2й и 3й формами.

И в другом источнике под 2й формой понималось преобразование, когда в таблице есть несколько однородных атрибутов, например, таблица с полями код_товара, продажи_январь, продажи_февраль, ..., продажи_декабрь - получается 12 по сути одинаковых полей, то нужно перевести таблицу в структуру код_товара, номер_месяца, продажи. То бишь чтоб не горизонтальная "простынь" была, а чтоб таблица росла вертикально. В статье же что-то не так со 2й формой. 88.81.231.110 08:38, 27 мая 2008 (UTC) Не имеет значенияОтветить

Если вы такое определение 2NF действительно прочли в какой-то книге, то немедленно выкидывайте эту книгу на помойку. Читайте что-нибудь приличное, Дейта, например. Без обид. Я тоже в своё время перечитал много книг по теории БД и понял, что среди них встречаются воистину ужасные, особенно среди книг отчественного разлива. Ваша книга случайно не русским автором написана? Евгений Мирошниченко 04:21, 12 октября 2009 (UTC)Ответить

4NF vs. 5NF править

Мне кажется, что 5-я нормальная форма определена неправильно, т.к. "любая многозначная зависимость соединения в ней является тривиальной" означает то же самое, что "не содержит нетривиальных многозначных зависимостей". Т.е. определение 5ой нормальной формы эквивалентно определению 4ой. --141.20.102.126 16:22, 8 июля 2008 (UTC)SilentserОтветить

Таблица находится в пятой нормальной форме (5НФ) тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ.

Четвертая нормальная форма (4НФ) является частным случаем 5НФ, когда полная декомпозиция должна быть соединением ровно двух проекций. Весьма не просто подобрать реальную таблицу, которая находилась бы в 4НФ, но не была бы в 5НФ.

citforum.ru

Неоднозначность. править

Я создал страницу разрешения неоднозначности -- если можно, проверьте, пожалуйста, что формулировка в отношении БД там правильная.

Второе — мне кажется, что основного значения в данной ситуации нет (математических значений много, и что ЖНФ, что КНФ, что ФНФ — часто употребляющиеся значения). Поэтому было бы логично, как предписывает инструкция, сделать страницу неоднозначности основной, а текущую, скажем, переименовать в «Нормальная форма (базы данных)». Формально это, наверное, ВП:КПМ, но уродовать страницу шаблоном очень не хочется… Есть ли какие-нибудь противопоказания против такого переименования? --Burivykh 11:12, 29 декабря 2009 (UTC)Ответить

Не возражаю, раз есть неоднозначность, значит уточнение полезно. Единственные фактор против -- наличие прилично числа ссылок на эту статью из других статей. Евгений Мирошниченко 12:23, 29 декабря 2009 (UTC)Ответить
Ссылки не проблемы - для этого есть боты.--AlexVinS 16:57, 29 декабря 2009 (UTC)Ответить
Против переименования. Пока не будет отдельной статьи "нормальная форма (математика)".--AlexVinS 16:55, 29 декабря 2009 (UTC)Ответить
Создал, даже чуть-чуть дописал туда слов, чтобы оно не просто дублем дезамбига было. По-хорошему, надо бы найти АИ, где написано, что в математике слова "нормальная форма" означают именно это -- я попробую понять, где это может быть прямым текстом написано. --Burivykh 16:33, 30 декабря 2009 (UTC)Ответить
P.S. Не совсем то, но нашлось на MathWorld-e (спасибо Илье!). --Burivykh 20:20, 30 декабря 2009 (UTC)Ответить

Иллюстрация примерами править

Уважаемый Евгений, я снабдил статью "Нормальная форма" примерами. Вы их убрали, объяснив это "Зачем помещать в обобщающую статью примеры из отдельных статей по НФ? Если вики-ссылки по каждой НФ, кому надо прочитает детали". Я не брал примеры из отдельных статей (они там все разные), я сделал сквозной пример, на котором поясняются все нормальные формы. Это позволяет тому, кто хочет в общем и целом понять смысл нормальных форм, не вникая в детали каждой из них, не тратить время на "врубание" в пример для каждого случая. Без примеров содержание раздела "Нормальные формы" довольно непонятно читателю даже со средней математической подготовкой. Я взялся за эту работу, потому что ко мне обратилась студентка, отчаявшаяся что-либо понять из статьи. Я не думаю, что она особенно тупая. Не понимать фразы типа "нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ" может и довольно умная девушка. Я был бы вам черезвычайно признателен, если бы вы снизошли к простому читателю - не профессиональному математику - и вернули мои примеры. Работа над сквозным примером была мне интересна и доставила удовольствие, но конечно, я выполнял ее не для самоудовлетворения. Weisband 21:23, 23 февраля 2016 (UTC)Ответить

Мой ответ будет касаться трёх разных аспектов данной ситуации.
1. Про девушку. Студентка не может в один щелчок пройти по гиперссылке на статью Нормальная форма Бойса — Кодда и там прочитать во всех деталях и подробностях (и с тщательно разобранным примером), что значит фраза «нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ». Вместо этого простого действия она предпочла обращаться к профессору с нытьём. Что же, я двадцать лет преподаю в университете, на всяких насмотрелся. Она либо тупица, либо лентяйка (впрочем, одно не исключает другое).
2. Про саму идею «все нормальные формы быстренько проиллюстрировать сквозным примером». И зачем? Для понимания самой общей цели нормализации достаточно прочитать преамбулу. А вот для понимания точного смысла каждой нормальной формы следует проделать немалую интеллектуальную работу. Во-первых, вникнуть в тонкости и варианты определения и его различные трактовки. Во-вторых, рассмотреть пример или примеры. Второе без первого есть профанация. Пример является дополнением к теории, но не может и не должен заменить теорию; он не может продемонстрировать все сложности и все тонкие случаи, и даёт лишь иллюзию понимания. А иллюзия понимания вместо понимания присутствует у многих. Я читал множество статей и книг по базам данных, и видел, что их авторы не понимают даже первую и вторую нормальные формы. А после 3NF/BCNF некоторые и вовсе спотыкаются, заявляя что-то вроде «высшие НФ сложны и не нужны», и даже их не рассматривают. Кстати, обратите внимание, что вас с быстрыми примерами точно так же хватило только до 3NF/BCNF.
Короче говоря, качественное понимание нормальных форм требует хотя и не запредельных, но и не малых интеллектуальных усилий. При этом данная теория всё же слишком специфична, чтобы интересовать дилетантов (и быть им полезной). Поэтому нет ни единой причины, по которой кто-либо должен пытаться освоить теорию нормализации по данной обзорной статье, то есть путём проглядывания по диагонали непонятных определений и каких-то скупых примеров. Это просто бессмысленно.
3. Про непосредственно ваши вставки в статью. Они мне, как мне представляется, имеют, уж простите, низкое качество.
Во-первых, неправильная, небрежная, жаргонная терминология: «таблицы», «записи», «ключи». В реляционной теории нет таких терминов, а статья как раз про реляционную теорию, да ещё и про её теоретически самый строгий аспект. Фраза же «для приведения нашей реляционной модели во вторую нормальную форму» приводит меня в недоумение, поскольку термин реляционная модель имеет совсем иной, неподходящий смысл.
Во-вторых, вы ввели некий пример без малейших пояснений: каков предикат отношения, каков смысл атрибутов, где тут потенциальные ключи, каковы бизнес-правила... Читатель должен, видимо, сам покумекать и обо всём догадаться. К примеру, до сих пор загадка, почему значения количества все отрицательные. Регбус-кроксворд, как говорил Райкин. Названия атрибутов даны по английски и с сильными сокращениями; значения дат приведены в английской нотации. Короче, русскоязычный читатель, всё сделано для твоего удобства. И, разумеется, никаких пояснений, почему декомпозиция делается именно так, а не иначе.
То есть даже если и вводить примеры, то нельзя делать это настолько поспешно и небрежно. А если делать это как полагается, то придётся увеличить объём изложения в несколько раз. Ну, и зачем это надо, если всё, что нужно, есть (или хотя бы должно быть) в профильных статьях о нормальных формах. Евгений Мирошниченко 16:19, 24 февраля 2016 (UTC)Ответить
Евгений, (кстати, меня зовут Игорь), следует ли обзывать девушку за то, что она хотела прочитать именно ЭТУ статью. Она же не знала, что статья написана не для того, чтобы ее понимали, а с какой-то другой целью. Идея нормальных форм весьма проста: если чтобы скорректировать одно значение, надо лезть в более, чем одну строку, значит ваша структура базы данных никуда не годится. Вы считаете, что сделать текст статьи понятнее невозможно и не нужно - я с этим категорически не согласен. Природа не храм, а мастерская и человек в ней работник. Что касается критики в мой адрес - я готов устранить отмеченные недостатки, только прикажите. Weisband 22:05, 24 февраля 2016 (UTC)Ответить

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

Сотрудник Должность Зарплата Наличие компьютера
Гришин Кладовщик 20000 Нет
Васильев Программист 40000 Есть

Задача: нужно скорректировать должность Васильева с «программист» на «дворник». Нужно ли для этого «лезть в более, чем одну строку»? Нет. Значит, согласно вашей формулировке, всё нормально. Однако переменная отношения не находится даже в 2НФ. Евгений Мирошниченко 03:27, 25 февраля 2016 (UTC)Ответить

Женя, вас невозможно ни в чем убедить. Считаете ли вы это своим положительным качеством? Weisband 08:46, 27 февраля 2016 (UTC)Ответить
Игорь, хотите поговорить об этом? Евгений Мирошниченко 13:52, 27 февраля 2016 (UTC)Ответить
Евгений напоминает классического преподавателя с докторской степенью, который считает недостойным себя объяснять что-то тем, кто не имеет такой же степени. Это похоже на какую-то защитную реакцию типа "Вот я мучился, страдал, когда всё это изучал, пусть остальные тоже через это проходят, нечего им упрощать жизнь" или "Если всё просто и доступно объяснять, мои знания перестанут быть сакральными". Такие люди приносят Википедии больше вреда, чем пользы, формируя замкнутую систему знания (тот самый пример с сепульками), тогда как изначально цель энциклопедии именно помощь во вхождении в какую бы то ни было область знания 91.103.66.203 10:52, 30 августа 2017 (UTC)Ответить
Классический (а бывают неклассические?) преподаватель, со степенью или без неё, постоянно занимается объяснением «чего-то» тем, кто этого «чего-то» не знает. Это знаете ли, просто-таки определение преподавателя. Посему все ваши высокомудрые рассуждения высосаны из пальца. Далее, целью энциклопедии не является «помощь во вхождении в какую бы то ни было область знания». Это функция учебника, а энциклопедия не замена учебнику. По энциклопедии вы не изучите ни химию, ни биологию, ни проектирование баз данных. Евгений Мирошниченко 16:25, 30 августа 2017 (UTC)Ответить