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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Кто-нибудь, вставьте, пожалуйстя примеры для нормальных форм. Без примеров, по одному только описанию, не понять. Нужно разделить понятия и статьи: Нормальная форма и Нормализация баз данных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)[ответить]

Мне кажется, что 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)[ответить]