|
|
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Подскажите, пожалуйста, в какой нормальной форме находится БД с схемой, изображенной на рисунке? Я думаю, что не менее чем во второй, потому что первичные ключи всех таблиц не являются составными. Но сомневаюсь по поводу таблиц Nabor и Links. В Nabor первичный ключ id создан искусственно, по сути, первичным ключом является совокупность полей (внешних ключей) id_a, id_b, id_c, так как они однозначно определяют поле text. В Links похожая ситуация. Поле text однозначно определяется по id, id_f. К тому же в таблице Links получается некоторая избыточность, вроде как. А именно, поле id_c входит в таблицы Nabor и F, соответственно в таблице Links это поле неявно присутствует дважды, во внешних ключах. Или так правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 08:07 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
sql_user_stdЯ думаю, что не менее чем во второй, потому что первичные ключи всех таблиц не являются составными. Но сомневаюсь по поводу таблиц Nabor и Links. Для нарушения второй формы первичность ключа не имеет значения. sql_user_std В Nabor первичный ключ id создан искусственно, по сути, первичным ключом является совокупность полей (внешних ключей) id_a, id_b, id_c, так как они однозначно определяют поле text. Вот раз id_a, id_b, id_c является ключем, то есть возможность даже нарушения 2НФ. Для этого достаточно, например, чтобы text функционально зависел от любого собственного подмножества {id_a, id_b, id_c} и text не входил ни в один ключ. Если бы, например, зависел от id_a, то text, то text можно было бы переместить в таблицу А. Т.е. нуно тупо выяснять остальные функциональные зависимости, если Вас беспокоят нормальные формы ниже 4-й (обычно 4-й и 5-я рассматриваются только чисто в теоретичексих упражнениях). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 12:21 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
vadiminfoВот раз id_a, id_b, id_c является ключем, то есть возможность даже нарушения 2НФ. Для этого достаточно, например, чтобы text функционально зависел от любого собственного подмножества {id_a, id_b, id_c} и text не входил ни в один ключ. Получается таблица Nabor во второй нормальной форме, так как функциональная зависимость поля text от {id_a, id_b, id_c} полная, а {id_a, id_b, id_c} - один из возможных ключей. Но при этом в таблице Nabor есть транзитивная зависимость n_id - {id_a, id_b, id_c} - text и она точно не в 3НФ? vadiminfoесли Вас беспокоят нормальные формы ниже 4-й (обычно 4-й и 5-я рассматриваются только чисто в теоретичексих упражнениях). Честно говоря, 4-й и 5-я не интересуют. База с этой схемой используется на практике. И я ее пытаюсь привести к 3НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 13:25 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
sql_user_stdНо при этом в таблице Nabor есть транзитивная зависимость n_id - {id_a, id_b, id_c} - text и она точно не в 3НФ? Нет такой транзитивной зависимости, поскольку Вы говорите что и id и {id_a, id_b, id_c} - ключи. и стало быить они функционально зависят друг от друга. Для тразитивной зависимости, нужны зависимости в одну сторону: А -> B, B->C, но не верно B->A. А от ключей все атрибуты функционально зависят, включая другие ключи. Если у Вас нет частичной зависимости text от {id_a, id_b, id_c}, то остается возможность для нарушения 3НФ, что некое собственное подмножество атрибутов {id_a, id_b, id_c} зависит функционально от text. Если и таковой нет, то похоже что в 3НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 13:50 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
Или например от {id_c, text} зависит id_a. Ну типа формально по любасу нуно выявить все зависимости. Если ниче кроме названного Вами ранее нет, то в 3НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 13:56 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
Да там была не точность про транзитивную зависимость: если С->B то тразитивность при отстутвии зависимости А от В есть. Просто в Вашей схеме уже есть B->А. Т.е. не в односторонняя зависимость, и менно независимочть первого множества атрибутов в тразитивной цепи от второго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 14:09 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
vadiminfoнекое собственное подмножество атрибутов {id_a, id_b, id_c} зависит функционально от text. Такой зависимости нет. А почему если так vadiminfoот {id_c, text} зависит id_a то это не 3НФ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 15:09 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
sql_user_std А почему если так vadiminfoот {id_c, text} зависит id_a то это не 3НФ? Ну типа тада может быть транзитивная: id->{id_c, text}, {id_c, text}->id_a И если {id_c, text} не ключ, транзитивная зависмость есть. Есть тада избыток. Например, если {1, 'F'} соответсвует {2}, то как тока еще раз встретится {1, 'F'}, мы уже и так знаем, что id_a = 2 по предушествующему случаю записи, поскоку есть F-зависмость. Т.е. занос его избыточен (и так знаем) - одну и туже инфу заносить приходится много раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2010, 15:26 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
sql_user_stdЗдравствуйте! Подскажите, пожалуйста, в какой нормальной форме находится БД с схемой, изображенной на рисунке? Ваша проблема заключается в использовании крайне не эффективной модели данных, неизвестно по какой причине. В случае классической объектной модели данных, в Вашем примере у каждого объекта была бы ровно одна характеристика, и не было бы никаких ключей, которые нужны не для моделирования данных, а для борьбы с этими самыми данными ради алгебры (SQL):) И Вам не нужно было бы заботиться о "нормальных формах". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2010, 18:50 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
БредятинаВаша проблема заключается в использовании крайне не эффективной модели данных, неизвестно по какой причине. Скорее всего, по причине отсутствия опыта реального проектирования БД. Возможно также от недостатка некоторых теоретических знаний в этой области. Вообщем, учусь... БредятинаВ случае классической объектной модели данных, в Вашем примере у каждого объекта была бы ровно одна характеристика, и не было бы никаких ключей Интересно. Почитаю про это) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 09:01 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
БредятинаВ случае классической объектной модели данных, в Вашем примере у каждого объекта была бы ровно одна характеристика, и не было бы никаких ключей Интересно. Почитаю про это)[/quot] На этом форуме для начала почитайте. Забанеенного ЧАЛа. Поскоку там могут быть другие траблы, значительно более худшие. Но, возможно, и эти тока там нет теории и потому о них не знают. Ну так и в РМД полно народа не знает, и часто сходимт с рук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 11:07 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
sql_user_stdСкорее всего, по причине отсутствия опыта реального проектирования БД. Возможно также от недостатка некоторых теоретических знаний в этой области. Вообщем, учусь... Интересно. Почитаю про это) Очень правильный, хотя и забытый, подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 18:56 |
|
||
|
В какой нормальной форме БД?
|
|||
|---|---|---|---|
|
#18+
vadiminfoНа этом форуме для начала почитайте. Забанеенного ЧАЛа. Поскоку там могут быть другие траблы, значительно более худшие. Но, возможно, и эти тока там нет теории и потому о них не знают. Ну так и в РМД полно народа не знает, и часто сходимт с рук. Оживают иногда трусливые недоучки:) Есть, значит, тяга к знаниям:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 18:58 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=67&tid=1542421]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 383ms |

| 0 / 0 |
