powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Кто-нибудь может перечислить три NF просто и лаконично?
23 сообщений из 23, страница 1 из 1
Кто-нибудь может перечислить три NF просто и лаконично?
    #33156048
Понятно, кратко, локонично.

Заранее спасибо.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33156071
Paul Sacks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объяснение 1. Говорят, что отношение находится в 1НФ, если оно удовлетворяет определению 2.

Объяснение 2. Говорят, что отношение находится в 1НФ, если его атрибуты содержат только скалярные (атомарные) значения.

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

Третья нормальная форма схемы отношения это либо данная схема, если она находится во второй нормальной форме; и не содержит транзитивной зависимости непервичных атрибутов от ключей, либо декомпозиция исходной схемы, каждая подсхема которой удовлетворяет этим же требованиям и обладает свойством соединения без потерь.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33156095
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Paul SacksОбъяснение 1. Говорят, что отношение находится в 1НФ, если оно удовлетворяет определению 2.

Объяснение 2. Говорят, что отношение находится в 1НФ, если его атрибуты содержат только скалярные (атомарные) значения.

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

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

Я не понял. А по-простому никак?

1) мои представления о скалярном и атомарном различаются.
2) непервичные атрибута - это что?
3) свойство соединения без потерь - это что?
4) транзитивная зависимость - это что?
-----------------------------
и это при том, что я еще чего-то слышал обо всем этом...
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33156466
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Все атрибуты сущности:
(1 НФ) должны зависеть от ключа*,

(2 НФ) только от ключа

(3 НФ) и ни от чего, кроме ключа
(и да поможет мне Кодд)"
-----------------------------
* Я так понимаю, что тут на самом деле надо про атомарность атрибутов говорить, но в пословице этого нет, к сожалению ;-)
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33156501
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urri"Все атрибуты сущности:
(1 НФ) должны зависеть от ключа*,

(2 НФ) только от ключа

(3 НФ) и ни от чего, кроме ключа
(и да поможет мне Кодд)"
-----------------------------
* Я так понимаю, что тут на самом деле надо про атомарность атрибутов говорить, но в пословице этого нет, к сожалению ;-)

С другой стороны, если атрибут соответствует этой пословице, но не является при этом атомарным, то атомарность ему может быть и не нужна ;-)
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33156726
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Каждый атребут должен содержать только атомарные значения, т.е. атрибут не должен содержать значения "Петров Иван Иванович", вместо этого должно быть 3 атрибута.
2. Каждый неключевой атрибут (это тот атрибут, кот не входит в состав PK), должен однозначно зависеть от ключевого(ых) атрибута(ов). Т.е. кол-во товара на складе в магазине долно зависеть от свзяки (магазин, товар), а не просто от Товара или Магазина. Можно еще сказать по другому - каждая запись должна быть уникальной.
3. Не одно из ее неключевых атрибутов не зависит функционально от любого другого неключевого атрибута. Т.е. имя таблицу Собака(ИД, Имя, Порода), Мы должны разбить на две Собака(ИД, Имя) и ПородаСобаки(ИД, Порода). Это не всегда удобно для этого введа НФБК.
НФБК. Если любая функциональную зависимость между его атрибутами сводится к полной функциональной зависимости от возможного ключа. Т.е. в пред. примере мы имеем два возможных ключа: ИД и Имя, и зависимость Порода->Имя сводится к зависимости неключ. атрибута от возможного ключа.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33157742
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Иван Абрамов
Не парьтесь. Нуно сразу в пятую форму переходить.
Любое значение в базе не vожет быть получено более чем одним способом и
каждая запись ПО ВСЕ ПОЛЯМ в ЛЮБОЙ таблице является потенциальным
уникальным ключом.
Потенциалный - это важно. В справочнике может быть суррогатный ключ, но
видимые юзеру значения должны быть в отношении к суррогатным 1-1

(с) Cat2

=========
Кажется, это спорное заявление. Но работает. Очень бы хотелось услышать опровержения.

===========

На мой взгляд - все пять этапов нормализации - подсказки новичкам. Как НЕ ДЕЛАТЬ. А результат - то , что я написал.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33157825
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2На мой взгляд - все пять этапов нормализации - подсказки новичкам. Как НЕ ДЕЛАТЬ. А результат - то , что я написал.Ну, положим, про те этапы, которые выше НФБК (это теоретически, ну а практически иногда даже и 2НФ :-)))) - согласен. А вот насчет первых этапов - не согласен. Все же они должны применяться, как правило. И лишь в виде исключения - не соблюдаться. И уж никак не наоборот.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33157844
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Paul Sacks
В определениях второй и третьей нормальных форм фразы "либо декомпозиция схемы, обладающая теми же свойствами и свойством соединения без потерь" выглядят как лишние. А первыя части, действительно, определения этих форм.
Нет транзитивных зависимостей непервичных атрибутов от ключа и удовлетворяет первой нормальной форме схема отношения, то она удовлетворяет третьей нормальной форме - никаких либо. А вся схема БД удовлетворяет 3НФ, если схема каждого отношения находится в 3НФ. Никаких "либо" там, вроде, не надо.
Если не в 3НФ, то с помощью декомпозиции, которая обладает свойством соединения без потерь можно привести к 3НФ. Но это уже не определение.



aleks2

Я не понял. А по-простому никак?

1) мои представления о скалярном и атомарном различаются.
2) непервичные атрибута - это что?
3) свойство соединения без потерь - это что?
4) транзитивная зависимость - это что?


1) оставьте тока атомарность.
2) непервичный атрибут - атрибут, которые не входит ни в один ключ.
Если убрать требование непервичности, получится нормальная форма Бойса-Кодда. Более сильная, но имеющая свои проблемы.
3)если выполните декомпозицию - разобьете таблу, к примеру, на две а потом соедените чтобы получить опять исходное отношение, и получится больше кортежей, чем было до декомпозиции, то это и есть отсутствие свойства соединения без потерь. Если же во всех возможных состояниях БД это соединение будет давать точно те же кортежи, которое былы бы в этом отношении, если бы декомпозиция не проводилась, то декомпозиция обладает свойством соединение без потерь.
Понятное дело, было плохое отношение, но с правильными данными, разбили на два хороших, а када соединили, получили плохие данные, и теперь не ясно что там должно быть на самом деле. Кому это понравится? Но к определениям это отношения не имеет, но имеет отношение к приведению схемы, находящейся в соотвующих нормальных формах.
4)B транзитивно зависит от A: А->C, C!->A (нет функциональной зависмости С от А), C->B.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33158382
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Кажется, это спорное заявление. Но работает. Очень бы хотелось услышать опровержения.

Структура БД должна быть КРАСИВА! Если ER удалась и тебе нравится полученная картина то БД будет хорошей. Потом с НФ сверяешься и убеждаешься что всё классно:)
А если не получилось сразу и начинаешь подгонять под НФ выйдет ацтой.

Вот: http://www.realcoding.net/article/view/2603

Особенно внушает фраза: автор
каждый факт появляется лишь в одном месте

Это и есть главная цель проектирования. Имхо, конечно.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33158384
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне в этом плане больше иерархическая структура нравится. А вообще как одни и теже сведения в двух местах появятся? Ну UID не в счёт. Но ведь каждое свойство каждой сущности уникально. А зачем один и тот же обект сущности в БД два раза вносить?
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33158418
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Это и есть главная цель проектирования.

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

Sarin
А зачем один и тот же обект сущности в БД два раза вносить?

Не объект сущности, а факты одни и те же. Есть, например, проблема с тем, что в результате нормализации могут появиться отношения, которые в принципе не соответсвуют никаким сущностям "реального мира" - предметная область (ПО). Это иногда считают неадекватным моделированием.
Иными словами проектирование БД имеет трудности, и потому его иногда считают искусством.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33158450
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проектирование Бд это - творчество:)
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33158452
Рекомендую Вам, Иван Абрамов, забыть про нормализацию с помощью функциональных зависимостей, так при этом приходится использовать ключи, а это весьма проблемные понятия...
Лаконично: по каждой характеристике (свойству) объекта (сущности) спросите себя - а не является ли эта характеристика характеристикой какого-то ДРУГОГО объекта ?
Вот и все, для начала...
Пример. Предположим у Вас "есть" объект Человек, а у него характеристика "Фамилия". А может быть следует использовать объект Фамилия, и ссылку (связь) из объекта Человек на объект Фамилия ? И т.д.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33158658
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinМне в этом плане больше иерархическая структура нравится. А вообще как одни и теже сведения в двух местах появятся? Ну UID не в счёт. Но ведь каждое свойство каждой сущности уникально. А зачем один и тот же обект сущности в БД два раза вносить?
Лучше показать на примере, что бы получить платежние реквизиты лица нужно соединить несколько таблиц
Код: plaintext
Клиент-Расчетный счет-Банк-Город
Так вот для ускорения выдачи отчетности данные банка и название города продублированы в расчетных счетах партнеров и написан механизм по обновлению при изменении наименования банка. Это и есть типичный пример нарушения НФ. Информация о наименовании банка хранится в 2-х местах. И типичный пример для чего НФ может быть нарушена.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33159001
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ЛеонидовичЛаконично: по каждой характеристике (свойству) объекта (сущности) спросите себя - а не является ли эта характеристика характеристикой какого-то ДРУГОГО объекта ?
Вот и все, для начала...

Что приведет к вопросу, а от чего она зависит? Например, плановый выпуск продукции на дату зависит от Продукции и даты. Как назвать соответствующий объект кроме как "Плановый выпуск на дату"? В базе наиболее информативные таблицы соответствуют собственно характеристикам типа "Остаткок продукции на складе". Т.е. при анализе нормативной базы (организации, договора, банки) этот подход эффективен, а далее опять приходим к более фундаментальному вопросу - зависимостям.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33160249
Нет, ModelR, не "приведет это к вопросу, а от чего она зависит". Характеристика "плановое количество продукции на дату" не является характеристикой объекта Продукция, и не является характеристикой объекта День. Она является либо характеристикой связи этих двух объектов (что можно непосредственно поддерживать на логическом уровне в ОСУБД), либо характеристикой составного объекта "Плановый выпуск на дату". Нет здесь никакого "более фундаментального вопроса - зависимостей"...
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33160306
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык просто всёж:
Есть сущность "продукция" и сущность "дата". Между ними связь: "планируется выпустить".
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33160628
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если пытаться все структуры вывести исключительно из собственных представлений .... Но мы должны анализировать реальные данные. Смотрим на пример некоего плана и видим в определенной графе значение 100. В заголовке написано план цеха Ц. Достаточно ли этого чтобы определиться с сущностями? Видимо все-таки нужно поинтересоваться а чего 100 -
килограммов, литров? Всего таких изделий или по конкретной партии, запуску?
И т.д. - определить все существенные признаки, которые однозначно дают 100. Вместе со значением они и составят нужный объект (сущность). Вполне может оказаться, что таких сущностей с разным набором признаков гораздо больше чем План и Строка плана.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33161716
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bas1. Каждый атребут должен содержать только атомарные значения, т.е. атрибут не должен содержать значения "Петров Иван Иванович", вместо этого должно быть 3 атрибута.
2. Каждый неключевой атрибут (это тот атрибут, кот не входит в состав PK), должен однозначно зависеть от ключевого(ых) атрибута(ов). Т.е. кол-во товара на складе в магазине долно зависеть от свзяки (магазин, товар), а не просто от Товара или Магазина. Можно еще сказать по другому - каждая запись должна быть уникальной.
3. Не одно из ее неключевых атрибутов не зависит функционально от любого другого неключевого атрибута. Т.е. имя таблицу Собака(ИД, Имя, Порода), Мы должны разбить на две Собака(ИД, Имя) и ПородаСобаки(ИД, Порода). Это не всегда удобно для этого введа НФБК.
НФБК. Если любая функциональную зависимость между его атрибутами сводится к полной функциональной зависимости от возможного ключа. Т.е. в пред. примере мы имеем два возможных ключа: ИД и Имя, и зависимость Порода->Имя сводится к зависимости неключ. атрибута от возможного ключа.Многовато ошибок. Мне-то все равно, а вот кто-нибудь начинающий прочтет и поверит. Итак:
1. Атомарность характеристики есть понятие не абсолютное, а относительное. То есть для одной задачи и, скажем, атрибут ФИО пойдет, а для другой надо атрибуты Ф, И, О заводить. Критерий простой: если для предполагаемых запросов не требуется оперировать *частью* значения атрибута, его атомарность верна. Если есть предполагаемые запросы, для которых нужна часть значения атрибута, проект (скорее всего) неверен.
2. «каждая запись должна быть уникальной» вообще не имеет к нормализации никакого отношения. Это имманентное свойство реляционной модели данных.
3.Пример неверен. Отношение Собака(ИД, Имя, Порода) уже находится в 3НФ, т.к. в нем все неключевые атрибуты нетранзитивно зависят от потенциальных ключей. Ничего разюивать не надо.
4. НФБК можно сформулировать и короче (это не ошибка, просто подсказка). Итак, отношение находится в НФБК, если каждый детерминант является потенциальным ключом.
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33161768
Конечно нужно "определить все существенные признаки" !
И выявить все сущности !
Но ни ключи, ни функциональные зависимости в этом не помогут. Это другой, концептуальный, уровень, и другой вопрос.
Мы же говорим о нормализации того, что уже "выявлено". И мое "лаконичное предложение" вполне справляется с такой нормализацией...
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33162145
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль что вопрошающий не участвует в полемике, а то было бы интересно узнать для чего ему надо "кратко и лаконично"?

--
Dik76

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Кто-нибудь может перечислить три NF просто и лаконично?
    #33162388
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dik76
Жаль что вопрошающий не участвует в полемике, а то было бы интересно узнать для чего ему надо "кратко и лаконично"?

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


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