powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Никак не могу однозначно разобраться с нормальными формами.
25 сообщений из 51, страница 1 из 3
Никак не могу однозначно разобраться с нормальными формами.
    #40049542
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Подскажите пожалуйста! Как правильно определять 2NF и 3NF? Совсем запутался.

Например есть таблица "Изготовители" с атрибутами: ID, Название, Страна, Сайт. Я думаю, что эта таблица в 3NF т.к. здесь нет транзитивной зависимости между атрибутами. Я прав? Или нет?
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049545
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тривиальные определения:

Первая нормальная форма запрещает пихать два значения в одно поле.
Вторая нормальная форма запрещает пихать в поле записи значение, которое однозначно
вычисляется из других полей записи.
Третья нормальная форма запрещает пихать одно и то же значение в поле нескольких записей.

Поэтому если в твоей таблице "Страна" - название страны, то она нарушает третью НФ (в
нескольких записях одно и то же значение). Если это поле ссылка на справочник стран -
третья НФ удовлетворена, поскольку ссылки на внешние данные не в счёт.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049548
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, благодарю за ответ! Я в принципе так и представлял себе, когда первый раз изучил нормальные формы. Но когда начал общаться с другими людьми, которые с этим работают, то начал путаться. Подскажите еще, пожалуйста, а в какой нормальной форме на Ваш взгляд находится данная таблица?
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049553
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124Но когда начал общаться с другими людьми, которые с этим работают, то начал путаться.

Обычно путаться начинаешь когда общаешься с людьми, которые с этим НЕ работают. В
академической среде принято использовать зубодробительные формулировки чтобы выбивать
гранты. Для практического применения таки нужна морда попроще.

Нарушение (или не нарушение) нормальных форм зависит от задачи, поэтому в отрыве от неё
определить нормальность таблицы можно не всегда.

Для некоторых задач осознанно применяется денормализация (обычно как средство улучшения
производительности системы).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049554
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Дмитрий, ты где таким сивым бредом кормишься?
Тебя еще и за ответы благодарят...


2)Pavel_124
во обоих случаях не выше, чем во второй - в первом случае страна тразитивно зависит от названия через id изготовителя,
во втором случае транзитивна должность.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049555
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby, Подскажите еще, пожалуйста, а вот такая таблица "Преподаватели" в какой NF ?: ID, фио, категория (где категория фактически заполнена в таблице названием)
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049563
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124,

BCNF
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049566
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
Pavel_124,

BCNF

зачеркнуть, тоже во второй
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049578
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby, благодарю! Я в принципе так и понимал( как уже писал), когда первоначально изучил. Но потом меня, видимо, запутали.

И еще вопрос тогда напоследок :) А если эта таблица, на прикрепленной картинке, будет состоять только из трех строк с теми значениями, которые там сейчас представлены. Она будет оставаться 2NF ?
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049579
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Первая нормальная форма запрещает пихать два значения в одно поле.

Да.

Dimitry Sibiryakov
Вторая нормальная форма запрещает пихать в поле записи значение, которое однозначно вычисляется из других полей записи.

Нет.

Dimitry Sibiryakov
Третья нормальная форма запрещает пихать одно и то же значение в поле нескольких записей.

Нет.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049582
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, у меня мозги вскипели)
Пойду искать дальше инф. т.к. хочу разбираться однозначно.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049584
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
booby, благодарю! Я в принципе так и понимал( как уже писал), когда первоначально изучил. Но потом меня, видимо, запутали.

И еще вопрос тогда напоследок :) А если эта таблица, на прикрепленной картинке, будет состоять только из трех строк с теми значениями, которые там сейчас представлены. Она будет оставаться 2NF ?

как-то я даже затрудняюсь понять, что именно вы спрашиваете...

сейчас, с тремя строками, она в 2NF в любом смысле слова.

Про "будет оставаться" - вероятно речь идет об изменении ее состава строк.
При любом добавлении/удалении строк значение отношения становится другим.

При удалении строк она сначала продолжит оставаться, а затем о том, в какой форме она находится, окажется невозможно судить, если суждение основывается только на основе разглядывания состава данных.

С другой стороны, если, например, при добавлении, какая-то из строк таблицы физически задвоится, то представляемое таблицей отношение автоматически перестанет находится в 1 НФ.
"реляционная" таблица этого просто не позволит, поскольку существование второго экземпляра строки противоречит понятию множества и, если таблица не в 1й нормальной форме - она автотически нереляционная, то есть, не представляет реляционного отношения.
А sql-таблица, в зависимости от использованных способов поддержки поддержки целостности данных, может позволить или не позволить все что угодно - в том числе и не представлять реляционного отношения.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049585
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
хочу разбираться однозначно.

Надо просто выучить что такое функциональные зависимости и основные определения и правила связанные с ними (тривиальность, приводимость, транзитивность и т.п.)
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049586
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Dimitry Sibiryakov
Первая нормальная форма запрещает пихать два значения в одно поле.

Да.

Нет

В первоначальной формулировке 1я нормальная форма это такая,
в которой отношение не содержит полных дублирующихся кортежей и каждый атрибут кортежа атомарен .

На последнем настаивал Кодд в целях запрета вложенных отношений.

сейчас взгляд на этот вопрос сместился так:
атомарен с точки зрения типа данных , связанных с атрибутом.

Это, по сути, разрешает произвольные варианты на тему "пихания двух значений в одно поле".
Если тип данных - коллекция, то сама коллекция всегда атомарна, независимо от количества "запихнутых в нее значений".

1НФ - это аналог 1го закона Ньютона, в данном случае она определяет что может разглядываться как реляционное отношение, а что нет.
Уникальность представленных в отношении кортежей - безусловно, а вопрос о том, "атомарно" значение, или нет - отдается на интерпретацию (известного системе) типа данных атрибута в кортеже.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049587
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby,

понимаете, я просто эту таблицу на картинке взял с другого сайта из учебной статьи. И там она представлена в качестве примера 3NF (после приведения из 2NF).

Также как пример с таблицей "Преподаватели" - по этому примеру мне один человек, который достаточно давно работает с БД, однозначно сказал, что это 3NF и точка!

Я же, в свою очередь, больше склоняюсь к Вашей версии, тогда мне становится понятно.


Но,как я вижу, есть разные мнения относительно четкого определения что может являться 3NF.

И мне еще не до конца понятно ((
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049588
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
Dimitry Sibiryakov, благодарю за ответ! Я в принципе так и представлял себе, когда первый раз изучил нормальные формы. Но когда начал общаться с другими людьми, которые с этим работают, то начал путаться. Подскажите еще, пожалуйста, а в какой нормальной форме на Ваш взгляд находится данная таблица?


Павел, вообще, это -- сложный вопрос. Все НФ строятся на понятии фунциональной зависимости, которая тобой НЕ описывается.
Она должна быть описана в твоём техзадании, а мы его не видим. Поэтому такие вопросы часто бессмысленны.
Мы не можем на них ответить. Иногда исходя из общих знаний предметной области можно что-то подсказать, но формально это некорректно.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049589
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
сейчас взгляд на этот вопрос сместился так:
атомарен с точки зрения типа данных , связанных с атрибутом.

Ну это конечно. В одной БД может не быть нужды детализировать телефон на код страны, оператора и сам номер (т.е. полный телефон атомарен), а в другой БД такая необходимость может быть.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049590
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
Dimitry Sibiryakov, благодарю за ответ! Я в принципе так и представлял себе, когда первый раз изучил нормальные формы. Но когда начал общаться с другими людьми, которые с этим работают, то начал путаться. Подскажите еще, пожалуйста, а в какой нормальной форме на Ваш взгляд находится данная таблица?


Вот гляди. У тебя есть у каждого человека в таблице должность и подразделение.
Вроде бы всё ок, должность и подразделение зависят от человека (PK этой таблицы).

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

Пример немного натянутый, но я натянул специально, чтобы ты понял.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049593
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
по этому примеру мне один человек, который достаточно давно работает с БД, однозначно сказал, что это 3NF и точка!

Этот человек баран не блещет разумом. Как уже выше сказали НФ отношения полностью зависит от его ФЗ. А ФЗ является не свойством самого отношения, а определяется только предметной областью, поэтому по одному только отношению определить его НФ вообще нельзя.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049597
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
НО в фирме могут дела быть организованы так, что в каждом подразделении работают люди одной специальности,

А еще, например, может быть, что один человек может работать в нескольких подразделениях, или занимать несколько должностей в одном и том же.
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049604
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivв бухгалтерии - бухгалтеры, в отделе программирования -- программисты, в отделе продаж -
продавцы.

А все начальники - в подразделении начальников началивают друг друга. Идиллия.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049605
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
Dimitry Sibiryakov, благодарю за ответ! Я в принципе так и представлял себе, когда первый раз изучил нормальные формы. Но когда начал общаться с другими людьми, которые с этим работают, то начал путаться. Подскажите еще, пожалуйста, а в какой нормальной форме на Ваш взгляд находится данная таблица?


Если нормализовать эту таблицу, то будет так:
Основная таблица:
Табельный номер
Фамилия
Код_Имени (ссылка на таблицу имен)
Код_Отчества (ссылка на таблицу Отчеств)
Код_Подразделения (ссылка на таблицу Подразделений)
Код_Должности (ссылка на таблицу Должностей)
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049606
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Pavel_124
по этому примеру мне один человек, который достаточно давно работает с БД, однозначно сказал, что это 3NF и точка!

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


попробуйте принять в расчёт следующее - само понятие функциональной зависимости
определяется по отношению и выражается только через состав данных.

"предметная область", любые знания о ней, такому определению - до лампады.
Оно ничего , совсем ничего, не знает ни о каких предметных областях.

"предметная область" может что-то навязывать своими знаниями о том, какие, и могут ли быть в её области функциональные зависимости.
Но проверяющее факт наличия ФЗ в конкретном составе данных определение не имеет никакого способа опереться на те знания.
Оно имеет дело только с тем, что ему фактически дали - и работает как простое логическое выражение с тремя значениями ( ) (вижу - есть ФЗ, вижу - нет ФЗ, не вижу - нет данных).
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049607
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11будет так:

А почему это "Фамилия" не ссылка на справочник фамилий?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Никак не могу однозначно разобраться с нормальными формами.
    #40049610
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если рассмотреть такой пример с таблицей преподаватели (исключительно для понимания):

Проводится олимпиада в школе, которая продлится 2 дня и в состав комиссии входят преподаватели.

Необходимо составить базу данных о членах комиссии (преподавателях): ID, ФИО, категория. И мы знаем, что за эти два дня олимпиады категория преподавателя 100% не изменится. То в какой NF будет данная таблица в данном конкретном случае?


Или тогда уже еще один пример. Есть база данных людей: ID, имя, цвет глаз. То это какая NF?
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Никак не могу однозначно разобраться с нормальными формами.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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