|
|
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
Я не уверен, что я правильно понял нормальные формы. Поэтому хотел бы задать несколько вопросов, на простом своем примере. Кажое утверждение ниже, это вопрос, в чем я не прав? Имеется таблица: имя пользователя, дата регистрации, количество комментариев . Первичный ключ - имя пользователя. Как я понял, он находится как минимум в 3нф. Так как поля, не входящие в первичный ключ не связаны функциональной зависимостью, а также есть полная функциональная зависимость от первичного ключа ( имя пользователя => дата регистрации , имя пользователя => количество комментариев ). Если добавить ее одно поле ( идентификатор, имя пользователя, дата регистрации, количество комментариев ) и ключевым идентификатором сделать идентификатор (значения в "имя пользователя" по прежнему уникальные), то таблица будет находится во 2нф, так как есть функциональные зависимости между неключевыми полями (об этом я написал выше). Разбить ее нужно так, для получения 3нф: идентификатор, имя пользователя . идентификатор, дата регистрации, количество комментариев . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 08:04 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
<<ключевым идентификатором сделать идентификатор>> - опечатался, ключевым полем сделать "идентификатор". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 08:07 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
ridenРазбить ее нужно так, для получения 3нф: идентификатор, имя пользователя . идентификатор, дата регистрации, количество комментариев . Т.е. предполагается, что один пользователь никогда не меняет "имя" но может регистрироваться несколько раз для написания коментариев? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 11:15 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
riden, Вторая сентенция неверна. Второй вариант также находиться в 3 нф, и никаких декомпозиций не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 11:31 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
krvsa, я даже не знаю важно это или нет. Хосты, ип-адреса пользователей не учитываются при регистрации. Главное чтобы ники были разные. MasterZiv, а разве функциональная зависимость между именем пользователя и датой регистрации не осталась? Разве в первой таблице ее нет? И что, в таком случае, для второй нормальной формы не нужна функциональная зависимость от первичного ключа (в первой таблице - это имя пользователя")? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 12:11 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
MasterZivriden, Вторая сентенция неверна. Второй вариант также находиться в 3 нф, и никаких декомпозиций не нужно. Объясняю, почему. Когда ты вводишь новый сурогатный ключ, то ты им заменяешь естественный ключ (в данном случае -- имя пользователя), и все зависимости от старого ключа становятся зависимостями от нового ключа. Также сам старый ключ становится зависимым от нового ключа. При этом о старых ФЗ от старого ключа можно вообще забыть (напомню, что ФЗ находится целиком в ведении предметной области, поэтому ты имеещь право так делать, главное это делать обдуманно и аккуратно). Но если даже о них вспомнить, то ни к каким проблемам (аномалиям), с которыми борется нормализация, это не приведёт -- ни к дублированию данных, ни к аномалиям при изменениях. Поэтому тут всё нормально с точки зрения НФ и ФЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 14:21 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
ridenkrvsa, я даже не знаю важно это или нет. Хосты, ип-адреса пользователей не учитываются при регистрации. Главное чтобы ники были разные. Отталкнемся от термина "ник"... Сделаем его неизменным... Тогда, что есть "дата регистрации"? Это дата, когда этот ник зарегистрировали первый раз? Или это дата очередной регистрации/захода на некий ресурс для написания тех же коментарий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 15:15 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
krvsa, авторТогда, что есть "дата регистрации"? Это дата, когда этот ник зарегистрировали первый раз? Или это дата очередной регистрации/захода на некий ресурс для написания тех же коментарий? Это дата, когда ник зарегистрирован первый раз. Это дата создания пользователя в базе данных сервера. Но повторные ники не регистрируются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 17:48 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
ridenЯ не уверен, что я правильно понял нормальные формы. Поэтому хотел бы задать несколько вопросов, на простом своем примере. Кажое утверждение ниже, это вопрос, в чем я не прав? Имеется таблица: имя пользователя, дата регистрации, количество комментариев . Первичный ключ - имя пользователя. Как я понял, он находится как минимум в 3нф. Так как поля, не входящие в первичный ключ не связаны функциональной зависимостью, а также есть полная функциональная зависимость от первичного ключа ( имя пользователя => дата регистрации , имя пользователя => количество комментариев ). Если добавить ее одно поле ( идентификатор, имя пользователя, дата регистрации, количество комментариев ) и ключевым идентификатором сделать идентификатор (значения в "имя пользователя" по прежнему уникальные), то таблица будет находится во 2нф, так как есть функциональные зависимости между неключевыми полями (об этом я написал выше). Разбить ее нужно так, для получения 3нф: идентификатор, имя пользователя . идентификатор, дата регистрации, количество комментариев . Раз в исходной есть ФЗ: ( имя пользователя => дата регистрации , имя пользователя => количество комментариев , то имя пользователя уникально, т.е. ключ . Добавление еще одного уникального: идентификатор , не отменяет уникальность имя пользователя . Стало быть появится не только идентификатор => имя пользователя , но и имя пользователя => идентификатор . Из-за этого не может появится транзитивных зависимостей. А без них отношение находится в 3НФ. Ваше декомпозиция могла нормализовать, если бы не было ФЗ: идентификатор => имя пользователя , Но были бы: имя пользователя => идентификатор , идентификатор => дата регистрации , идентификатор => количество комментариев ) и кроме того дата регистрации и количество комментариев не входили бы ни в какой ключ. Тогда бы были транзитивные зависимости, нарушающие 3НФ, устранить коея можно было бы Вашей декомпозицией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 18:50 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
ridenЭто дата, когда ник зарегистрирован первый раз. Это дата создания пользователя в базе данных сервера. Но повторные ники не регистрируются. Тогда все уже сказано выше... Я только присоединюсь к MasterZiv и vadiminfo . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2013, 18:58 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
vadiminfo, не понял. Таблица: id, name, date, count. Первичный ключ - id . name - не является ни первичным ключем ни частью первичного ключа, это поле перестало быть ключем. Оно по прежнему уникально. Есть зависимости id--> name, id-->date, id-->count, name-->id, name-->date, name-->count. Не должно быть транзитивных зависимостей полей не относящихся к первичному ключу, от первичного ключа для 3нф. Мы имеем. id-->date id-->name, name-->date. Зависимость транзитивна. id-->count id-->name, name-->count. Зависимость транзитивна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 20:39 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
ridenvadiminfo, не понял. Таблица: id, name, date, count. Первичный ключ - id . name - не является ни первичным ключем ни частью первичного ключа, это поле перестало быть ключем. Оно по прежнему уникально. Есть зависимости id--> name, id-->date, id-->count, name-->id, name-->date, name-->count. Не должно быть транзитивных зависимостей полей не относящихся к первичному ключу, от первичного ключа для 3нф. Мы имеем. id-->date id-->name, name-->date. Зависимость транзитивна. id-->count id-->name, name-->count. Зависимость транзитивна. Для того, чтобы было "id-->name, name-->date. Зависимость транзитивна" не должно быть "name-->id". Действительно, в этом случае избыточности нет. У Вас просто нет возможности несколько разных date присвоить одному name, так как оное уникально. Кроме того, уникальное поле - ключ, по определеню ключа. Понятие "Первичный ключ" не имеет значения в плане нормальных форм. Имеет значение просто ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 08:23 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
vadiminfo, Непонятно как тогда такое можно писать: Из книги Дейта: <<Переменная отношения находится в 3нф тогда, когда ее неключевые атрибуты являются: -взаимно-независимыми; ... Неключевой атрибут - атрибут, который не входит в состав первичного ключа>> <<Неключевой атрибут — любой атрибут отношения, не входящий в состав первичного ключа.>> http://gos-asu.narod.ru/peis/4.html http://do.gendocs.ru/docs/index-12372.html?page=6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 10:39 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
... и еще, я иногда видел в определении 3нф, вместо "потенциальный ключ", - "первичный ключ". Все это конечно сбивает столку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 10:42 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
ridenvadiminfo, Непонятно как тогда такое можно писать: Из книги Дейта: <<Переменная отношения находится в 3нф тогда, когда ее неключевые атрибуты являются: -взаимно-независимыми; ... Неключевой атрибут - атрибут, который не входит в состав первичного ключа>> <<Неключевой атрибут — любой атрибут отношения, не входящий в состав первичного ключа.>> http://gos-asu.narod.ru/peis/4.html http://do.gendocs.ru/docs/index-12372.html?page=6 Выбросте прилагательное "Первичный": и получится "Неключевой атрибут - атрибут, который не входит в состав никакого ключа". Транзитвные зависмости в любом случае приводят к избыточности. Но если речь идет о "неключивых атрибутах", то нарушается 3НФ. Если любых, то нарушается НФБК. Это имеет значение в плане того, что в 3НФ с помощью объявления ключей всегда можно навязать схеме все ФЗ, а в случае НФБК нет. Ведь в последнем случае после декомпозиции ключевые атрибуты окажутся в разных отношениях (таблицах). riden... и еще, я иногда видел в определении 3нф, вместо "потенциальный ключ", - "первичный ключ". Все это конечно сбивает столку. Если Вы оставите только понятие ключа, без прилагательных, то все упрастится. Ключей может быть много в одной таблице. Ну можно считать их потенциальными, если хотите. Первичный это просто выделение одного из этого множества ключей, в обще для целей не связанных нормализацией. Потенциальный - это не объявленный. Т.е. мы занем про уникальность, но схеме не навязалм ОЦ. Для нормальных форм имеют значение только ФЗ. А от ключа в ФЗ находятся все атрибуты отношения, собственно только поэтому он и имеет значение для нормализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 11:24 |
|
||
|
Вопросы о нормальных формах.
|
|||
|---|---|---|---|
|
#18+
Опечатка vadiminfo... нет возможности несколько разных date присвоить одному name, так как оное уникально. Следует читать несколько раз date (разумеется, одно и тоже так как есть ФЗ) присвоить одному name. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:19 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1541057]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 181ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...