powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нормальные формы высших порядков
7 сообщений из 7, страница 1 из 1
Нормальные формы высших порядков
    #39666769
Dmi_tri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понимаю смысл нормальных форм начиная от НФБК и далее.
НФБК в принципе не понятна, что касается 4НФ и 5НФ, пример их использования, простой для понимания приведен в книге Хомоненко - Базы данных. Однако пример всего один, а для закрепления материала хочется еще прочитать о использовании этих методов. На хабре/ютубе тематика нормальных форм дана достаточно расплывчито, и мне кажется примеры не всегда корректные. Подскажите хорошие примеры на НФ высших порядков
...
Рейтинг: 0 / 0
Нормальные формы высших порядков
    #39667378
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmi_triНе совсем понимаю смысл нормальных форм начиная от НФБК и далее.
НФБК в принципе не понятна, что касается 4НФ и 5НФ, пример их использования, простой для понимания приведен в книге Хомоненко - Базы данных. Однако пример всего один, а для закрепления материала хочется еще прочитать о использовании этих методов. На хабре/ютубе тематика нормальных форм дана достаточно расплывчито, и мне кажется примеры не всегда корректные. Подскажите хорошие примеры на НФ высших порядков
Смысл нормальных форм устранении аномалий БД и снижения избыточности.
Ну вот оказывается, что если схема в НФ3, но не в НФБК, то есть избыточность. Однако, если в этом случае привести к НФБК, то
может не получится навязать схеме все функциональные зависимости. Тогда как навязать все такие зависимости и привести к НФ3 возможно.
При этом сама НФБК проще чем НФ3. В ней не должно быть транзитивной зависимости от ключа. А в НФ3 - не должно быть транзитивной зависимости от ключа для непервичных атрибутов (не входят ни в один ключ).
При этом в основе этих форм лежат функциональные зависимости.
Однако, оказывается, что даже если схема в НФБК, то можно придумать ситуации когда возникает избыточность.
Там вводятся многозначные зависимости НФ4 и по моему соединений НФ5.
Но скорей всего это все же уже больше теоретическое изучения всех возможных случаев избыточности.
Есть книга Мейера Теория реляционных баз данных. Там все формально - нет расплывчатости.
Но все же это именно теория. Аксиомы Армстронга. Т.е. не плохо если у Вас математическое образование какое никакое.
Расплывчатость от попыток упростить как-то определение нормальных форм.
...
Рейтинг: 0 / 0
Нормальные формы высших порядков
    #39667417
Dmi_tri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необычный пример на НФБК дан на ИНТУИТе. И, мне кажется, абсолютно неверный
https://www.intuit.ru/studies/courses/1095/191/lecture/4977?page=5
В определении говорится о зависимости ключа от неключевых полей, а пример зачем-то основывают на аномалии удаления. Как считаете, пример корректен?
...
Рейтинг: 0 / 0
Нормальные формы высших порядков
    #39667426
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmi_triНеобычный пример на НФБК дан на ИНТУИТе. И, мне кажется, абсолютно неверный
https://www.intuit.ru/studies/courses/1095/191/lecture/4977?page=5
В определении говорится о зависимости ключа от неключевых полей, а пример зачем-то основывают на аномалии удаления. Как считаете, пример корректен?

Приведение к НФБК должно устранять избыточность, которую не смогла устранить НФ3. Это как бы означает декомпозицию (разбиение) таблицы как минимум на две. В примере, нет такого разбиения. Но есть добавление еще одной. Это как правило делается для навязывания функциональных зависимостей.

Вот состояние таблицы (пусть она никогда не меняется).
A B C
------
1 1 1
2 3 1
3 1 1
имет ключи A и пару {В,С} - видно что они уникальны. При этом С зависит от В, но В не зависит от С. А не зависит от В

Это значит что есть транзитивная зависимость С от А. - Не находится в НФБК. Но так как С входит в ключ, то на находится в 3НФ.

И действительно. Есть избыток. Если В = 1, то мы знаем, что С = 1. Но приходится это записывать.

Две таблицы получены в ходе композиции с целью приведения к НФБК:

AB
--
1 1
1 3
2 1

И

BC
---
1 1
3 1
Избытка нет.

соединяются без потерь: получается исходная
АВС
---
1 1 1
2 3 1
3 1 1

Однако, нет возможности навязать ФЗ:
BC->A



Поэтому следует, скорее всего, Вам посмотреть и другие примеры.

Хотя действительно иногда НФБК почему-то трактуют по разному.
Когда учился обратил внимание преподавателя на это перед экзаменом.
Он сказал, что про НФБК уберет билеты.
...
Рейтинг: 0 / 0
Нормальные формы высших порядков
    #39667442
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон.

Тупанул ВС - не ключ. Поэтому таблица не в 3НФ .

Пример надо переделать:

A B C
------
1 1 1
2 3 2
1 3 2
2 4 1

Теперь ключи:

АB и AC

Есть В->C, но С не зависит от В, так как Для С= 1 разные В (1 и 4).

С транзитивно зависит от AB: АВ -> B -> C.

Но С входит в ключ AC - отношение в 3НФ. Но не НФБК (виден избыток 3 2)

Декомпозиция

АВ
---
1 1
2 3
1 3
2 4

АС
---
1 1
3 2
4 1

Но зависимость АС->B (а она есть так как AC ключ) в такой не навязать так как A и В в разных таблицах.
...
Рейтинг: 0 / 0
Нормальные формы высших порядков
    #39667492
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там опять опечатка (а ведь проверял)
Вместо

АС
---
1 1
3 2
4 1

надо читать

ВС
---
1 1
3 2
4 1

Как бы альтернатива у проектировщика: подавить избыточность, либо навязать все ФЗ.

Схема подавляющая избыточность:

АВ
---
1 1
2 3
1 3
2 4



---
1 1
3 2
4 1

Схема в 3НФ в которой навязаны все ФЗ предполагает добавление таблицы к исходной (похоже, вроде, на Ваш пример):


A B C
------
1 1 1
2 3 2
1 3 2
2 4 1


---
1 1
3 2
4 1

Действительно, в первой таблице можно объявить ключи

АB и AC


а

во второй

В

и таким образом навязать все ФЗ схеме: от ключа все остальные колонки в таблице находятся в ФЗ.

Теория не может сказать какая схема оптимальнее в общем случае.

Поэтому проектирование РБД - как бы предполагает элемент искусства.
...
Рейтинг: 0 / 0
Нормальные формы высших порядков
    #39667521
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про аномалии удаления, добавления....
Если оставить тем не менее исходный вариант схемы одну таблицу

A B C
------
1 1 1
2 3 2
1 3 2
2 4 1

И, например, потребуется удалить запись
241

то пропадет информация что для В = 4, С = 1. Но так как есть В->C, то часто оказывается, что эту информацию желательно сохранить.
Аналогично добавить инфу про В и С, без записи в ABC.

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


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