|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov zeon11будет так: А почему это "Фамилия" не ссылка на справочник фамилий?.. Да, упустил, вместо Фамилия читать Код_Фамилии (ссылка на справочник фамилий) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 16:39 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
booby выражается только через состав данных. Нет. СотрудникОтделДолжностьВасяОтдел ИТЭникейщикМаняБухгалтерияГлавбухГошаОхранаСтоит у входа Допустим, что каждый работник может работать только в одном отделе и занимать только одну должность, но в каждом отделе только свои уникальные для него должности. Тогда текущие данные этого отношения не нарушают 3НФ, но само отношение её нарушает (есть ФЗ Должность -> Отдел, поэтому ФЗ Сотрудник -> Отдел будет транзитивной). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 16:51 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А все начальники - в подразделении начальников началивают друг друга. Идиллия. А где-то существует такая должность как "просто начальник"? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 16:54 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
zeon11 Да, упустил, вместо Фамилия читать Код_Фамилии (ссылка на справочник фамилий) Жесть какая. Увидев такое (справочник имен, фамилий и отчеств) в информационной системе - я бы тут же заявление об увольнении написал бы. Только нужно не забыть, что бывают еще и двойные фамилии, а так же титулы и звания ))) например: Кузьма (Козьма) Сергеевич Петров-Водкин, Ольга Людвиговна Делла-Вос-Кардовская Анри Луи Огюст Рикар де Монферран и так далее..... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:00 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat booby выражается только через состав данных. Нет. СотрудникОтделДолжностьВасяОтдел ИТЭникейщикМаняБухгалтерияГлавбухГошаОхранаСтоит у входа Допустим, что каждый работник может работать только в одном отделе и занимать только одну должность, но в каждом отделе только свои уникальные для него должности. Тогда текущие данные этого отношения не нарушают 3НФ, но само отношение её нарушает (есть ФЗ Должность -> Отдел, поэтому ФЗ Сотрудник -> Отдел будет транзитивной). вот, наверное, мне и пытались это раньше объяснит те самые мои знакомые люди :) дело, если я правильно понял, в предмете области, для которой составляем БД и допущения о возможных изменениях данных. Или я неправ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:00 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
zeon11 Код_Имени (ссылка на таблицу имен) Код_Отчества (ссылка на таблицу Отчеств) Это-то на кой леший? И не имеет это никакого отношения к нормализации и НФ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:03 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat Допустим, что каждый работник может работать только в одном отделе и занимать только одну должность, но в каждом отделе только свои уникальные для него должности. Тогда текущие данные этого отношения не нарушают 3НФ, но само отношение её нарушает (есть ФЗ Должность -> Отдел, поэтому ФЗ Сотрудник -> Отдел будет транзитивной). Может по правильному оно и так, но должность скорее всего для краткости будут просто называть "начальник отдела", "начальник департамента", "инженер-программист", "уборщица". А вот в каком отделе, эта уборщица работает, из ее должности уже "не так очевидно" Но тут конечно на вкус и цвет все фломастеры разные. От задачи и ситуации зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:06 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Pavel_124 если я правильно понял, в предмете области, для которой составляем БД и допущения о возможных изменениях данных. Или я неправ? Ты понял абсолютно правильно. Главная цель нормализации - избежать аномалий при изменении данных. Т.е. нормализация она не про текущие данные отношения, а про данные которые допустимы в нем вообще, что определить можно только из предметной области. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:07 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat, подскажите, пжлста, так а мои примеры с БД для олимпиады могут являться 3NF в описанных мною случаях? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:07 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat zeon11 Код_Имени (ссылка на таблицу имен) Код_Отчества (ссылка на таблицу Отчеств) Это-то на кой леший? И не имеет это никакого отношения к нормализации и НФ. Хе-хе. Это-то и есть нормализация. На полном серьёзе. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:08 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Может по правильному оно и так, но должность скорее всего для краткости будут просто называть "начальник отдела", "начальник департамента", "инженер-программист", "уборщица". Ну, во первых, я написал "допустим". Во вторых, у себя в отделе мы можем друг друга называть хоть "чувак", "старик", или "братан", но в ОК есть официальный утвержденный список должностей, где, например, моя должность называется как-то типа "ведущий программист отдела разработки " (совсем точно не помню - можно в договоре посмотреть). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:17 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat есть официальный утвержденный список должностей, где, например, моя должность называется как-то типа "ведущий программист отдела разработки " как-то само написание наводит на мысль, что там должность + отдел Не специалист по системам для отдела кадров, могу ошибаться. Но если на каждое структурное подразделение свои должности/профессии выдумывать, это офигеешь. IMHO. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:28 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Pavel_124 подскажите, пжлста, так а мои примеры с БД для олимпиады могут являться 3NF в описанных мною случаях? 3НФ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:32 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat, благодарю! теперь мне, думаю, понятно! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:55 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat booby выражается только через состав данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 18:04 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Pavel_124 ... Также как пример с таблицей "Преподаватели" - по этому примеру мне один человек, который достаточно давно работает с БД, однозначно сказал, что это 3NF и точка! ... Вероятно, тот человек прав. у меня нормализация в целом - на задворках сознания, зачетов я по ней никогда не сдавал и оставляю за собой право ошибаться. Вы попросили выразить мнение - я выразил его два раза: "сразу сказал", что это BCNF (3.5), а потом понизил до 2. В данном случае ответ зависит от того, подразумевается ли годность фио как самостоятельного ключа. Если не подразумевается, то и 3НФ и 3.5 сразу. 2fnkat да, только по отношению к составу. Когда вы привлекаете знания предметной области, вы всегда делаете вот что: "на основании знаний о предметной области и устройства констрейтов в конкретной реализации субд, я утверждаю, что смогу или буду должен дописать вот такую строку, а вот сякой никогда не появится". И физически демонстрируете строку, нарушающую или нет подразмеваемую форму. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 18:14 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
MasterZiv Pavel_124 Dimitry Sibiryakov, благодарю за ответ! Я в принципе так и представлял себе, когда первый раз изучил нормальные формы. Но когда начал общаться с другими людьми, которые с этим работают, то начал путаться. Подскажите еще, пожалуйста, а в какой нормальной форме на Ваш взгляд находится данная таблица? Павел, вообще, это -- сложный вопрос. Все НФ строятся на понятии фунциональной зависимости, которая тобой НЕ описывается. Она должна быть описана в твоём техзадании, а мы его не видим. Поэтому такие вопросы часто бессмысленны. Мы не можем на них ответить. Иногда исходя из общих знаний предметной области можно что-то подсказать, но формально это некорректно. +1 Самое правильное замечание! Реляционная модель - один из способов упрощенного описания сложного реального мира. Всё зависит от семантики описываемой ситуации. Глядя на таблички ничего нельзя сказать без знания этой ситуации. В какой нормальной форме находится вот это отношение (из классической книги Криса Дэйта)? S# SNAME STATUS CITYS1 СМИТ 20 ЛОНДОНS2 ДЖОНС 10 ПАРИЖS3 БЛЭЙК 10 ПАРИЖS4 КЛАРК 20 ЛОНДОНS5 АДАМС 30 АФИНЫ Этого сказать нельзя, если неизвестен смысл (семантика) описываемой данной моделью ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 18:37 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
booby да, только по отношению к составу. Посмотрел совсем точное определение, и, да, формально я был неправ. Но с т.з. нормализации имеет смысл говорить только о ФЗ которые выполняются всегда , а не только для определенного набора данных (как я уже на примере показывал). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 18:43 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat booby да, только по отношению к составу. Посмотрел совсем точное определение, и, да, формально я был неправ. Но с т.з. нормализации имеет смысл говорить только о ФЗ которые выполняются всегда , а не только для определенного набора данных (как я уже на примере показывал). Да. В переводе на обычный русский язык, если исключить рассуждения о предметной области - получится вот что: вы приняли свои решения на основе рассмотрения достаточного объема даных, чтобы быть уверенным в универсальном ненарушении обсуждаемой формы. Пусть мысленных, пусть привлеченных из знания предметной области, но образующих состав данных для анализа. 2SQL*Plus можно указать форму, выше которой показанное отношение уже не находится. Это решение может оказаться потом ошибочным (когда предъявят расширенный состав), и форму придется понизить, но выше той, что обнаружится сейчас, ей уже вряд ли суждено оказаться. По нижней границе - 1я форма, вопрос упирается в решение о равенстве значений атрибутов. Если, к примеру, кто-то хочет сделать "известным системе" тип, для которого не определено сравнение на равенство, то даже про первую форму возможность судить исчезает, за исчезновением основы для проверки - представляют ли кортежи собой множество или супермножество. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 19:00 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat booby да, только по отношению к составу. Посмотрел совсем точное определение, и, да, формально я был неправ. Но с т.з. нормализации имеет смысл говорить только о ФЗ которые выполняются всегда , а не только для определенного набора данных (как я уже на примере показывал). Да, поскольку функциональная зависимость - это ограничение (свойство) описываемой ситуации, а не набора данных. Несколько определений (по К.Дейту) Функциональная зависимостьЕсли задано отношение R, то мы говорим, что атрибут Y отношения R функционально зависит от атрибута X отношения R тогда и только тогда, когда каждое значение X в отношении R в каждый момент времени связано точно с одним значением Y "Инженерно" это можно изобразить так: Y=F(X) Полная функциональная зависимостьАтрибут Y находится в полной функциональной зависимости от атрибута X, если он функционально зависит от X и не зависит функционально от любого подмножества атрибута X (X должен быть составным). "Инженерно" это можно изобразить так: Y=F(X) Здесь X => (A, B) - составной атрибут. Состоит из атрибутов A и B. 1НФОтношение R находится в первой нормальной форме (1НФ) тогда и только тогда, когда все входящие в него домены содержат только атомарные (неделимые) значения. То есть: любое нормализованное отношение находится в первой нормальной форме 2НФОтношение R находится во второй нормальной форме (2НФ), если оно находится в 1НФ, и каждый неключевой атрибут функционально полно зависят от первичного ключа. Атрибут называется неключевым, если он не является составной частью первичного ключа 3НФОтношение R находится в третьей нормальной форме (3НФ), если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 19:18 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
Pavel_124, В общем, аффтар, никуда тебе не деться от строгих математических определений (ты же сам употребил слово "однозначно"). А иначе получится, как в диалоге: - Что такое непрерывная функция ? - А это такая функция, график которой можно начертить не отрывая карандаша от бумаги. P.S. Вроде как бы интуитивно понятно, но математики сильно не одобряют подобный подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 19:28 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
SQL*Plus Да, поскольку функциональная зависимость - это ограничение (свойство) описываемой ситуации , а не набора данных. SQL*Plus Функциональная зависимостьЕсли задано отношение R, то мы говорим, что атрибут Y отношения R функционально зависит от атрибута X отношения R тогда и только тогда, когда каждое значение X в отношении R в каждый момент времени связано точно с одним значением Y к отдельным значениям переменных отношения. Однако при рассмотрении самих пере- менных отношения, в частности базовых переменных отношения, интерес представляют не столько функциональные зависимости в их существующих на некоторый момент кон- кретных значениях, сколько функциональные зависимости, выполняющиеся для всех возможных значений данной переменной отношения. Впредь термин функциональная зависимость будет использоваться в последнем толко- вании, более ограничительном и безотносительном ко времени. Впрочем, мне сейчас кажется, что в более старом (по-моему #6) он писал как раз наоборот (точнее, изначально говорил только о втором варианте) - я сейчас проверить точно не могу, оно у меня только в бумажном виде на другой квартире лежит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 19:56 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat SQL*Plus Да, поскольку функциональная зависимость - это ограничение (свойство) описываемой ситуации , а не набора данных. SQL*Plus пропущено... к отдельным значениям переменных отношения. Однако при рассмотрении самих пере- менных отношения, в частности базовых переменных отношения, интерес представляют не столько функциональные зависимости в их существующих на некоторый момент кон- кретных значениях, сколько функциональные зависимости, выполняющиеся для всех возможных значений данной переменной отношения. Впредь термин функциональная зависимость будет использоваться в последнем толко- вании, более ограничительном и безотносительном ко времени. Впрочем, мне сейчас кажется, что в более старом (по-моему #6) он писал как раз наоборот (точнее, изначально говорил только о втором варианте) - я сейчас проверить точно не могу, оно у меня только в бумажном виде на другой квартире лежит. Я приводил определения по изданию 1980 г. Это был отличный профессиональный перевод. http://padabum.com/d.php?id=35210 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 20:46 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
SQL*Plus Я приводил определения по изданию 1980 г. Это был отличный профессиональный перевод. http://padabum.com/d.php?id=35210 У меня более позднее (зеленое в мягкой обложке, как я писал, по-моему, шестое). И, надо сказать, что оно мне нравилось больше, чем самое крайнее восьмое. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 21:13 |
|
Никак не могу однозначно разобраться с нормальными формами.
|
|||
---|---|---|---|
#18+
fkthat SQL*Plus Я приводил определения по изданию 1980 г. Это был отличный профессиональный перевод. http://padabum.com/d.php?id=35210 У меня более позднее (зеленое в мягкой обложке, как я писал, по-моему, шестое). И, надо сказать, что оно мне нравилось больше, чем самое крайнее восьмое. По-моему, как раз в нём я встретил понятие "Картезианский продукт". Очень сильно хохотался с него. :-) Ну вы же сразу поняли, что это такое? После перевода 1980 г. этот перевод был ужасен. Сравните сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 21:16 |
|
|
start [/forum/topic.php?fid=32&msg=40049668&tid=1539810]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 402ms |
0 / 0 |