powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Теория и практика нормализации.
25 сообщений из 81, страница 3 из 4
Теория и практика нормализации.
    #33740590
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAПолистайте здесь и Вы сами сможете ответить на свои вопросы.
Нормальные формы и бифуркации векторных полей на плоскости.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740591
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы уверены, что возможно
iscrafm
Я тут за переводчика с нормального языка на книжный. Да, возможно:

То нормализовано - нет ФЗ: Name->ParentID.

Однко я не уверен, что про одну и ту же схему.


Код: plaintext
1.
2.
3.
4.
5.
Zoria 

 3  sql скуль для форума
 4  sql скуль для описания чего бы то ни было  


Имеет отношение к табле
Код: plaintext
1.
ID Name ParentID
В частности не вижу где здесь может быть ParentID. Но вроде должен содержать тип ID.

Я просил ответить именно про ту таблу, про которую был вопрос. А не про какие-то новые схемы, не известно откуда взявшиеся.
Или теперь новую схему нужно оптимизировать? А с первой то разобрались?
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740596
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
Код: plaintext
1.
2.
3.
4.
5.
Zoria 

 3  sql скуль для форума
 4  sql скуль для описания чего бы то ни было  


Имеет отношение к табле
Код: plaintext
1.
ID Name ParentID
В частности не вижу где здесь может быть ParentID.
Вот он: скуль для форума = ParentID. Просмотрите еще раз в хронологическом порядке все уточнения по данной таблице.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740602
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoЯ просил ответить именно про ту таблу, про которую был вопрос. А не про какие-то новые схемы, не известно откуда взявшиеся.
Да я просто нарисовал в квадратах те данные, которые Zoria написала текстом, какие еще новые схемы? Нет, Вы явно не читаете то, на что отвечаете.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740624
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Да я просто нарисовал в квадратах те данные, которые Zoria написала текстом, какие еще новые схемы? Нет, Вы явно не читаете то, на что отвечаете.

На мои вопросы ответа не получил. Квадраты не нужны.
Она задала вопрос про то - находится ли конкретная табла в 3НФ. Я на этот вопрос и отвечаю. Там было только три атрибута. Вот нужно на те два последних вопроса (заданных в не "книжной" форме) ответить именно про эту таблу.

Вы говорили, что именно она не нормализована "если просто посмотреть на таблицу с точки зрения теории нормализации" (с) (да это новое в теории, так как на примере такого состояния ничего нельзя сказать находится она в 3НФ во всех возможных состояниях или нет). И откуда-то привистовали новые атрибуты. Нормализация не предполагает выявления новых свойств объектов, которые должны хранить в БД.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740641
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zoria, ситуация такая.
не нормализованная таблица (в Вашем начальном примере. Значение поля Name не зависит от первичного ключа id и дублируется в записях таблицы. Модификация name требует изменения более одной записи в этой же таблице):
tMenu (id,name,parentid)

1 форум null
2 статьи null
3 sql 1
4 c# 1
5 sql 2
6 mysql 2

----------
Приведем к третьей нормальной форме (уберем данные не зависящие от первичного ключа id, в частности name):
Вынесем имена в отдельную таблицу:
tMenuNames (id,name)
1 форум
2 статьи
3 sql
4 c#
5 mysql

tMenu(id,nameid,parentid)
1 1 null
2 2 null
3 3 1
4 4 1
5 3 2
6 5 2
-----------

Можно дальше к 4НФ (устраним удаление более одной записи из таблицы tMenu)
Сделаем еще одну таблицу для разделов сайта:
tSiteParts (id,name)
1 форум
2 статьи

tMenuNames(id,name)
1 sql
2 c#
3 mysql

tMenu(id,Nameid,partid)
1 1 1
2 2 1
3 1 2
4 3 2

p.s.
2 vadiminfo. Это надеюсь и на Ваш вопрос ответ тоже.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740691
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
2 vadiminfo. Это надеюсь и на Ваш вопрос ответ тоже.


Если это

iscrafm
1 форум null
2 статьи null
3 sql 1
4 c# 1
5 sql 2
6 mysql 2

допустимое состояние, то таблица находится в 3НФ.

А Ваше утверждение
автор
не нормализованная таблица


Не верно. Потому что для id 3 и 5 значение поля Name = sql, а ParentID разные - 1 и 2: ФЗ Name->ParentID. Нет. Аналогично благодаря записям с id 3 и 4 нет ФЗ ParentID->Name. Стало быть о транзитивных зависямостях вообще не может быть речи, потому что есть зависмости только от одного атрибута ID.

Если Zoria подтвердит, что такие состояния допустимы, но ответ - таблица находится в 3НФ и остальные рассуждения iscrafm в его ответе не имеют смысла по отношению к 3НФ.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740736
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторvadiminfo
Ну вот и славненько. Когда столкнетесь с необходимостью заменить sql на ms sql расскажите как это у Вас получится в такой нормальной форме :)
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740753
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Ну вот и славненько. Когда столкнетесь с необходимостью заменить sql на ms sql расскажите как это у Вас получится в такой нормальной форме :)

А что мне рассказывать? Отношение находится в 3НФ. Избытка в нем нет - нельзя по значению одного атрибута вычислить значение другого в кортеже, зная что содержится в других. Т.е. если бы зная что раз в кортеже 3 для sql родитель = 1, то и 5 для sql родитель обязательно равен 1. То да избыточность информации на лицо.
Если Вы добавите справочник имен, с сурогратом, который в силу его суррогатности (иначе и его может пришлось бы менять) менять не надо - это не нормализация. Это вообще не вопрос теории РБД. Вместо имен можно сразу было поставить значения суррогатов. И тем ни менее, до того как Вы привели то состояние, вопрос о том находится ли отношение в 3НФ или нет оставался открытым. А как только привели - сразу ясно, что оно в 3НФ.
Примеры приводил.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740775
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
А что мне рассказывать? Отношение находится в 3НФ. Избытка в нем нет ..
Вы на одном условии остановились, по фз я и так вижу. А как же аномалии, в расчет не беруться? Именно к ним я и пытаюсь Вас подтолкнуть
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740786
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
Если Вы добавите справочник имен, с сурогратом, который в силу его суррогатности (иначе и его может пришлось бы менять) менять не надо - это не нормализация. Это вообще не вопрос теории РБД.
Надо же. Неожиданно ч.г. Вообще-то вопросы возникновения аномалий (в данном примере обновления) и нормализации всегда рассматриватся в одном контексте. Да, Вы можете назвать это 3НФ, но только для того, чтобы себя потешить. А если для работы, то нужно делать декомпозицию на две проекции, исключать аномалии обновления и потом уже называть это нормальной формой.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740790
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Вы на одном условии остановились, по фз я и так вижу. А как же аномалии, в расчет не беруться? Именно к ним я и пытаюсь Вас подтолкнуть

Вопрос был про что? Про нормализацию по 3НФ? 3НФ строится на ФЗ.
Все остальные "аномалии" к нормализации отношения не имеют. Например, можно вообще создать таблу с одним полем Name и организовать каскадное обновление. Менять в этой табле sql на ms sql, в исходной все везде заменится. Я так делал на Аксцессе.
Можно суррогаты в справочнике - так на Оракле. Это уже вопросы работы приложения в целом влияют на логичесую схему БД. А та табла принципе останется той же. Все с тем же в принципе тремя полями.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740798
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoА та табла принципе останется той же. Все с тем же в принципе тремя полями.
Да не останется она такой же, как только Вам потребуется добавить помимо заголовка меню еще хотя бы один атрибут, например цвет. Будете искать несогласованности и переделывать структуру каждый раз? А старина Кодд об этом упоминал. Вы сделали моментальный снимок структуры и на этом остановились. Это мертвая структура.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740804
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Вообще-то вопросы возникновения аномалий (в данном примере обновления) и нормализации всегда рассматриватся в одном контексте.

Аномалии разные бывают. Нормальные формы, действительно, связанны со стремлением избавиться от аномалий. Но они имеют свои определения.
И в связи с 3Нф рассматривают аномалии обновления более тяжелые, которые могут привести, например, к нарушеню ФЗ. И в общем случае уже никакими справочниками помоч нельзя.


iscrafm
Да, Вы можете назвать это 3НФ, но только для того, чтобы себя потешить.
Не я придумывал нормальные формы, не мне называть ими что вздумается. По моему, это максимум 4 курс. Или что 3НФ не на ФЗ строится? Вы же признали про ФЗ.

iscrafm
А если для работы, то нужно делать декомпозицию на две проекции, исключать аномалии обновления и потом уже называть это нормальной формой.
Для работы не нужно делать декомпозицию в общем случае. Я писал выше. Добавление еще одной таблы - не есть декмпозиция.
А что нужно называть нормальной формой не нам с Вами решать. Как-то без нас решили.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740809
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
Да не останется она такой же, как только Вам потребуется добавить помимо заголовка меню еще хотя бы один атрибут, например цвет. Будете искать несогласованности и переделывать структуру каждый раз? А старина Кодд об этом упоминал. Вы сделали моментальный снимок структуры и на этом остановились. Это мертвая структура.

Мне не потребуется. В вопросе было про нормализацию той таблы. Мертвая она или нет - это вопрос из другой серии. Надо было спрашивать про не мертвую. Я не собирался исследовать всю задачу. Куда она том может развиваться. Када появится нарушение ФЗ тока тада и надо будет проводить декомпозицию. А цвет попадет в ту дополнительную справочную таблу. А эта так и останется.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740878
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНе я придумывал нормальные формы, не мне называть ими что вздумается. По моему, это максимум 4 курс. Или что 3НФ не на ФЗ строится? Вы же признали про ФЗ.
Вы очень сильно налегаете на теорию, имхо. Тема топика в заголовке. Но даже в теории задача нормализации - устранение возможных аномалий. Нужно же хотя бы на шаг вперед смотреть.

vadiminfo
Для работы не нужно делать декомпозицию в общем случае . Я писал выше.
Я тоже.

vadiminfo
Када появится нарушение ФЗ тока тада и надо будет проводить декомпозицию. А цвет попадет в ту дополнительную справочную таблу. А эта так и останется.

Я обычно просто заранее такие варианты прорабатываю, чтобы потом не выполнять конветацию данных. На живых системах это не есть хорошо.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740902
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Вы очень сильно налегаете на теорию, имхо. Тема топика в заголовке. Но даже в теории задача нормализации - устранение возможных аномалий. Нужно же хотя бы на шаг вперед смотреть.

И что с того? Если Вы придумаете свою нормальную форму в теории, устраняющую те или иные аномалии и ее признают стоящей, тогда про нее можно говорить. 3НФ к Вашей аномалии не имеет отношение. Имеет к другим, более тяжелым, которых в силу того, что таблица в 3НФ, возникнуть не может.
Надо же прежде чем вперед смотреть еще и с настоящим разобраться.

iscrafm
Я тоже.

Вы писали что надо. Либо Вы не совсем в курсах в каком смысле употребляется этот термин: Вынос имен в отдельную таблицу - не декомпозиция, а добавление новой таблы и изменение структуры исходной. Вы добавили новое поле суррогоат. Это что угодно, но только не декомпозиция нормализации 3НФ. Еще раз напомню, что можно, например, добавить таблу из одного поля и объявить ограничение ссылочной с каскадным обновлением. Т.е. без добавления новых атрибутов в схему для устранения той Вашей аномалии.
К нормализации это не имеет никакого отношения.
Зато я писал пример именно с нарушением 3НФ. И Ваш метод никак не устраняет ту аномалию.

iscrafm
Я обычно просто заранее такие варианты прорабатываю, чтобы потом не выполнять конветацию данных. На живых системах это не есть хорошо.

В общем случае для того чтобы нормализовать нужно исследовать ПО и выявлять зависмости между атрибутами. Однако ПО может быть динамичным. И в общем случае заранее все будующие атрибуты и зависмости выявить нельзя. Но нормальные формы типа 3НФ - не динамичны. Они описаны в литературе, нас им учили профессора, мы сдавали экзамены. И нет никаго смысла называть ими что придет в голову. Иначе те кто получали двойки потребуют пересмотра результатов экзаменов.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740948
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более что Вашу аномалию, Ваша "нормализация" и не устраняет на все 100%
Вы исходите из того, что устранили ее введением атрибута, который менять не понадобится, по крайней мере, в нескольких местах первой таблы. А так ли это? Возможно понадобится. И придется менять в нескольких местах заменять 20 на 30. Тада вернулись к тому что было? Конечно, вероятность кажется меньше. Что бум в нормализации вероятности считать?
Каскадное обновление? Ну так оно декларативно даже не любой СУБД поддерживается. Т.е. прогу писать по массовой замене? Так я и запросом могу сразу это сделать. Да и где поддерживается декларативно - ну там тоже прога, тока производителем написанная по массовому обновлению при такой аномалии. Тогда как нормальные формы при устраненнии, например, аномалии обновления стремятся исключить необходимость просмотра записей в принципе: хоть программно, хоть "в ручную".
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740956
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoТем более что Вашу аномалию, Ваша "нормализация" и не устраняет на все 100%
Вы исходите из того, что устранили ее введением атрибута, который менять не понадобится, по крайней мере, в нескольких местах первой таблы. А так ли это? Возможно понадобится.
А что менять придется, если в таблице FK. А наименование меняйте хоть сто раз. Таблицу отношений пунктов меню при этом трогать не нужно. Зачем какие-то проги и каскадное обновление?
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740958
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более и ссылочная целостность не избавит в общем случае от просмотра всех записей в первой табле в общем случае.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740965
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoТем более и ссылочная целостность не избавит в общем случае от просмотра всех записей в первой табле в общем случае.
не понял немного что Вы имеете ввиду
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740966
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
А что менять придется, если в таблице FK. А наименование меняйте хоть сто раз. Таблицу отношений пунктов меню при этом трогать не нужно. Зачем какие-то проги и каскадное обновление?

Сам суррогат. Например, во второй табле

1 sql
2 ms sql

в первой сотни 1 и 2 уже насобиралося. Решили что это не правильно. Нужно оставить только
2 ms sql
Что теперь? Просматирвать не придется в первой табле чтобы заменить 1 на 2?
Каскадное не поможет - во второй табле суррогат первичный ключь - не позволит заменить 2 на 1. Впрочем это детали. Программно я могу и запрос написать.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740967
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка не нозволит заменить 2 на 1.
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33740969
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин 1 на 2
...
Рейтинг: 0 / 0
Теория и практика нормализации.
    #33741317
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, понятно. Только описанная проблема конечно же таковой является, только к аномалиям, которые устраняются нормализацией, не относится, раз уж согласно Вашему настрою придерживаться академических формулировок. Аномалия (в нашем случае, обновления) - это когда править приходится более одной записи в одной таблице. И которая исключается декомпозицией на две таблицы. Проблемы реорганизации справочника - не то. В целом же думаю три страницы для обсуждения таблицы из трех полей уже перебор. Смотреть шире не хотите, а мусолить три поля думаю достаточно. Всяческих успехов!
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 3 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Теория и практика нормализации.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]