|
|
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Есть квартиры. В каждой квартире есть всякие удобства, например 1. Холодильник 2. Стиральная машина 3. Мебель 4. Микроволновка и т.д. - всего таких позиций может быть до 15. На каждой странице сайта планируется показывать что из этого есть, а чего из этого нету. Например 1. Холодильник - да 2. Стиральная машина - нет 3. Мебель - да 4. Микроволновка - нет Вопрос, как хранить эти значения в базе? Я так понимаю есть два варианта 1. Создается таблица с полями под каждый атрибут и имеет либо Null либо 1 Apartments id, holodilnik, stirmashina, mebel, mikrovolnovka 1 1 null 1 null 2 null 1 null 1 2. Создаются 2 таблицы. Atributi id, nazvanie_atributa 1. Холодильник 2. Стиральная машина 3. Мебель 4. Микроволновка Atributi_v_Kvartirah id_kvartiri, id_atrubuta 1 1 1 2 1 3 2 1 Какой вариант будет меньше нагружать базу? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 17:45 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
NekifrovvКакой вариант будет меньше нагружать базу? Второй. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 17:51 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Первый способ однозначно быстрее и проще, плюс по занимаемому месту хранения как миминум не хуже ибо null места почти не занимает, но у него есть существенный недостаток. Опыт показывает что всего таких позиций может быть до 15 это вас обманули. Чем дальше развивается система тем больше становится таких позиций. А каждое добавление поля это DDL, отдельный патч на базу и приложение и прочий гемор. Плюс в СУБД может существовать ограничение на количество таблиц и т.д. В общем я голосую за второй вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 21:40 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
NekifrovvКакой вариант будет меньше нагружать базу? Спасибо. Надо проектировать БД не так, чтобы её меньше нагружать, а так, чтобы она была правильной, не было бы аномалий. Потому что БД должна сначала работать, а потом работать быстро. Твой первый вариант -- нарушение 1НФ. Второй -- нормальный. Значит, надо делать по второму варианту. автори т.д. - всего таких позиций может быть до 15. Вот это тут главная ошибка. В реляционных БД не бывает "до 15". Либо 1, либо много, от 0 до бесконечности. Второй вариант этому удовлетворяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 12:32 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
SERG1257Первый способ однозначно быстрее и проще, плюс по занимаемому месту хранения как миминум не хуже ибо null места почти не занимает, но у него есть существенный недостаток. Опыт показывает что всего таких позиций может быть до 15 это вас обманули. Чем дальше развивается система тем больше становится таких позиций. А каждое добавление поля это DDL, отдельный патч на базу и приложение и прочий гемор. Плюс в СУБД может существовать ограничение на количество таблиц и т.д. В общем я голосую за второй вариант. Первый способ неприемлим. Это нарушение 1НФ. Будет очень непросто формировать запросы на такую структуру, она нерегулярна. Вторая -- наоборот, всё просто и легко. А производительность будет диктоваться наличием нужных индексов, они тут по построению все есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 12:34 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivSERG1257Первый способ однозначно быстрее и проще, плюс по занимаемому месту хранения как миминум не хуже ибо null места почти не занимает, но у него есть существенный недостаток. Опыт показывает что всего таких позиций может быть до 15 это вас обманули. Чем дальше развивается система тем больше становится таких позиций. А каждое добавление поля это DDL, отдельный патч на базу и приложение и прочий гемор. Плюс в СУБД может существовать ограничение на количество таблиц и т.д. В общем я голосую за второй вариант. Первый способ неприемлим. Это нарушение 1НФ. Каким боком тут нарушение 1НФ? Какой атрибут в схеме неатомарен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 12:43 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинMasterZivпропущено... Первый способ неприемлим. Это нарушение 1НФ. Каким боком тут нарушение 1НФ? Какой атрибут в схеме неатомарен? автори т.д. - всего таких позиций может быть до 15. На каждой странице сайта планируется показывать что из этого есть, а чего из этого нету. Например Вот это и неатомарно. Это массив из свойств квартиры размером до 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 14:39 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 16:15 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivКот Матроскинпропущено... Каким боком тут нарушение 1НФ? Какой атрибут в схеме неатомарен? автори т.д. - всего таких позиций может быть до 15. На каждой странице сайта планируется показывать что из этого есть, а чего из этого нету. Например Вот это и неатомарно. Это массив из свойств квартиры размером до 15. Что "это"? Для нарушения 1НФ в отношении должен быть неатомарный атрибут . В варианте же предлагается пачка совершенно атомарных независимых атрибутов. Обсуждаемый вариант - в общем случае плохой, с этим никто не спорит. Но нормализация тут не при чем, он плох не поэтому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 18:08 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivВот это и неатомарно. Это массив из свойств квартиры размером до 15. Никакой это не массив. Вот если бы ТС впихнул все это в одно поле, например, в виде строки "0010011001", или битовой маски, и условился о соответствии "номер позиции<->вид удобства", это было бы нарушение 1НФ в чистом виде. А так это скорее вопрос правильного выделения сущностей. Является ли наличие холодильника атрибутом квартиры, или есть отдельная сущность "Удобства", одним из значений которой является "Холодильник"? Для ответа можно подумать, например, есть ли у холодильника, стиралки и т.д. свои атрибуты. Если есть - это, конечно, сущности: объем холодильника, вместимость стиралки и т.д, и надо делать отдельную таблицу. А если нет - то, возможно, все же логические атрибуты квартиры. Второй вопрос - будет ли этих удобств бесконечное множество, или все-таки 15. ТС говорит об ограниченности количества. Короче, в простейшем примере, приведенном ТС, недостаточно аргументов для решающего выбора, так что и первый вариант выглядит приемлемым. Единственный аргумент в пользу второго - "а вдруг": "вдруг удобств станет много", "вдруг у них появятся свои атрибуты", "опыт показывает, что вдруг так и бывает". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 11:50 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
NekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии. Добро пожаловать в мир EAV. Для примера, простейший запрос: "Выбрать квартиры, где есть холодильник и стиралка, но нет ни мебели, ни микроволновки". Составьте для первого и второго варианта, сравните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 11:54 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинMasterZivпропущено... пропущено... Вот это и неатомарно. Это массив из свойств квартиры размером до 15. Что "это"? Для нарушения 1НФ в отношении должен быть неатомарный атрибут . В варианте же предлагается пачка совершенно атомарных независимых атрибутов. Обсуждаемый вариант - в общем случае плохой, с этим никто не спорит. Но нормализация тут не при чем, он плох не поэтому. При чем, при чем. Это именно он и есть. Неатомарный атрибут. Из 15 полей. Задай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 11:59 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher, Это и есть массив, других массивов в рсубд нет и быть не может. Это набор полей, служащих одному назначению в предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:02 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherNekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии. Добро пожаловать в мир EAV. Для примера, простейший запрос: "Выбрать квартиры, где есть холодильник и стиралка, но нет ни мебели, ни микроволновки". Составьте для первого и второго варианта, сравните. EAV тут ни при чем, это стандартная классика пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:03 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat Никакой это не массив. Вот если бы ТС впихнул все это в одно поле, например, в виде строки "0010011001", или битовой маски, и условился о соответствии "номер позиции<->вид удобства", это было бы нарушение 1НФ в чистом виде. Ха, а какая принципиальная разница между этим решением и приведенным автором топика ? Ответь себе на этот вопрос и может ты поймешь, почему ты неправ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:07 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Боюсь, Вы не понимаете, что такое нормализация и какие задачи она решает. MasterZivЗадай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь. "Получить свойства квартиры в виде списка " - это, грубо говоря, выходная форма. Проектировать БД исходя из выходных форм - плохая практика. Завтра Вас попросят "выдайте нам свойства квартиры одной строкой" - Вы будете переделывать схему данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:22 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто и есть массив, других массивов в рсубд нет и быть не может. Это набор полей, служащих одному назначению в предметной области. Фамилия, Имя, Отчество в одной таблице - это тоже массив, и нарушение 1НФ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:25 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivНеатомарный атрибут. Из 15 полей. Любопытная логика. А в виде 15 записей, этот "атрибут", стало быть, атомарный? :-) MasterZivЗадай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь. Такими вопросами можно всю святость свести к все таблицы по вертикали развернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:34 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherMasterZivЭто и есть массив, других массивов в рсубд нет и быть не может. Это набор полей, служащих одному назначению в предметной области. Фамилия, Имя, Отчество в одной таблице - это тоже массив, и нарушение 1НФ ? Нет, это разные атрибуты, у них назначение разное. Одно -- фамилия, другое -- имя, третье -- отчество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 13:39 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинMasterZiv, Боюсь, Вы не понимаете, что такое нормализация и какие задачи она решает. MasterZivЗадай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь. "Получить свойства квартиры в виде списка " - это, грубо говоря, выходная форма. Проектировать БД исходя из выходных форм - плохая практика. Завтра Вас попросят "выдайте нам свойства квартиры одной строкой" - Вы будете переделывать схему данных? Это запрос, который надо написать. Какая выходная форма ? Кортежи надо получить, где было бы (Квартира, свойство) Все свойства, что есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 13:52 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто запрос, который надо написать. Какая выходная форма ? Кортежи надо получить, где было бы (Квартира, свойство) Все свойства, что есть. Еще раз - это неправильная логика, аргументировать схему данных "а вот такой [взятый с потолка] запрос писать проще!" (и уж совершенно точно эта логика не имеет отношения к нормализации, на которую Вы напирали). Если потребуется написать запрос (квартира, свойство1, свойство2,...свойство15) - Вы будете переделывать схему данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:19 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
> победил второй вариант. Посмотрим, как он покажет себя в действии. Обычно сначала тестируют, а потом объявляют о победе. Видите ли, безобразно кривы оба предложенных вами варианта. Особенность в том, что задача и не предполагает не кривых решений. На вашем месте я бы остановился на первом варианте: просто, дёшево, сердито. При необходимости добавить раз в полгода пару полей - не проблема. Только замените в таблице 1/NULL на true/false. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:32 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivНет, это разные атрибуты, у них назначение разное. Одно -- фамилия, другое -- имя, третье -- отчество. Глубина открытия потрясает. Мне кажется, что между холодильником и стиралкой все же больше разницы. По крайней мере, они не взаимозаменяемы. А ФИО - запросто: в садике всех зовут по именам, в армии - по фамилиям, на пенсии - по отчествам. Чем не "набор полей, служащих одному назначению в предметной области" ? Просто формальная кривость первого варианта вовсе не в нарушении 1НФ, а в эмпирическом правиле "избегайте индексированных атрибутов". Я не поленился перелистать Дейта, но в формальном виде этого правила не нашел, помню только у обкуренного Джо Селко. Может, кто-то укажет на формальное определение недостатка первого варианта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 17:17 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher, Я уже указывал, формально это нарушение 1НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 09:56 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherNekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии. Добро пожаловать в мир EAV. Для примера, простейший запрос: "Выбрать квартиры, где есть холодильник и стиралка, но нет ни мебели, ни микроволновки". Составьте для первого и второго варианта, сравните. А Вы, в свою очередь, составьте этот запрос для совершенно правильного Вашего варианта из 15013211 который Вы ошибочно раскритиковали - 1НФ в нем не нарушается никак. И даже после того, как добавят материальный учет, так сказать (конечно, клиентов будет интересовать объем холодильника), то это (тогда - уже вычисляемое) поле вполне может использоваться. Второй вариант не имеет вообще никакого отношения к БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 20:19 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
NekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии. То есть, Вы решили просто отказаться от БД. И правильно)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 20:19 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНикакой это не массив. Вот если бы ТС впихнул все это в одно поле, например, в виде строки "0010011001", или битовой маски, и условился о соответствии "номер позиции<->вид удобства", это было бы нарушение 1НФ в чистом виде. Смотри, буду последовательно приводить варианты неправильной структуры, чтобы было яснее. Начнём с классики нарушения 1HФ. Квартираflat_iddescr42'есть Холодильник стиральная машина'43'Холодильник мебель' Ну, работать неудобно. Код: sql 1. 2. 3. Для удобства разбиваем на поля, их максимум 15. (давайте для краткости 15 заменим на 4) Квартираflat_idfeature_1feature_2feature_3feature_442Холодильникстиральная машина43Холодильникмебель пишем запрос. Код: sql 1. 2. 3. Неудобно проверять 4 поля на нужное. О! Идея ! Давай я буду 'Холодильник' всегда писать в первое поле, 'Мебель' во второе, и так далее. Квартираflat_idfrigefurnwash_mashmicrowave42Холодильникстиральная машинамикроволновка43мебель А ведь ещё можно и место съэкономить, зачем хранить строки ? Квартираflat_idfrigefurnwash_mashmicrowave421011430101 Ну и далее -- если мне надо добавить новый атрибут, то придётся добавлять колонку через ALTER TABLE... Да... Плохо ! А давай-ка я солью всё в одно поле из признкаков 0 или 1, а позицией в этом поле буду кодировать тип свойства. Новое свойство, если что, пойдёт в конец, и искать сразу можно по всем свойствам, LIKE-ом. Квартираflat_idfeatures421011430101 Запрос: Код: sql 1. 2. 3. Классно! Ну и напоследок вопрос: На каком из этапов этих преобразований возникает или уходит нарушение 1НФ ? Объяснишь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 00:34 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivНа каком из этапов этих преобразований возникает или уходит нарушение 1НФ ? Объяснишь ? Легко. Сначала определение: ДейтОтношение находится в 1НФ тогда и только тогда, когда все используемые домены содержат только скалярные значения. Скалярные значения представляют собой наименьшую семантическую единицу данных, в том смысле, что у них нет внутренней структуры, то есть они неразложимы в реляционной модели. ...Не иметь внутренней структуры в реляционной модели - вовсе не значит "не иметь внутренней структуры вообще". Например, название города, конечно же, имеет внутреннюю структуру (оно состоит из последовательности букв); однако, разложив название по буквам, мы потеряем значение. Значение станет понятным, лишь в том случае, если буквы сложены вместе и в правильной последовательности. Теперь по примерам: Первый - классика нарушения НФ: значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Второй: Перелистал Дейта, но не нашел такой операции, как "Для удобства разбиваем строку на поля". Это, как говорит Бредятина, "Вообще не база данных", это клетчатая бумага какая-то. Поэтому понятие нормальных форм к ней неприменимо. Третий и четвертый - 1НФ. Кстати, для теории БД они равнозначны - Дейту с его вершин реляционной алгебры все равно, хранить ли в атрибуте "FRIGE" единичку/нолик, или слово "Холодильник"/пробелы. Булев домен, и всего делов. Для реализации, понятно, хранят единицы. Последний - опять пританцевали к первому варианту: теоретически, как я только что сказал, они равнозначны, отличаются только реализацией. Нарушение 1НФ - значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Функция LIKE в каноническом числе реляционных операндов не значится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 17:32 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherТеперь по примерам: ... Последний - опять пританцевали к первому варианту: теоретически, как я только что сказал, они равнозначны, отличаются только реализацией. Нарушение 1НФ - значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Функция LIKE в каноническом числе реляционных операндов не значится. Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история)) Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 11:59 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher Первый - классика нарушения НФ: значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Последний - опять пританцевали к первому варианту: теоретически, как я только что сказал, они равнозначны, отличаются только реализацией. Нарушение 1НФ - значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Функция LIKE в каноническом числе реляционных операндов не значится. Прикол в том, что это всё -- нарушение 1НФ. Все варианты одинаковы с этой точки зрения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 12:52 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivПрикол в том, что это всё -- нарушение 1НФ. Все варианты одинаковы с этой точки зрения. Вполне допускаю. Но осталось выяснить, что мы понимаем под "этой точкой зрения". Аргументируйте - приведите определение 1 НФ, которое нарушалось бы всеми этими примерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 13:54 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Бредятина например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров".. Знатоки подвалили. Чувствуется уровень проетирования за версту. Тока забыли выдумать что значитЬ "етров". (Все таки 1НФ азначент атомарное , а не части атомарного же). Ну это уже детали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 15:47 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров".. Знатоки подвалили. Чувствуется уровень проетирования за версту. Тока забыли выдумать что значитЬ "етров". (Все таки 1НФ азначент атомарное , а не части атомарного же). Ну это уже детали. Подвалили знатоки лжи и подлога))) Вот мой текст: Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история)) Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории. "етров" - это часть фамилии со второй буквы до последней - это смог бы сформулировать даже первоклассник)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 18:49 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Бредятина"етров" - это часть фамилии со второй буквы до последней - это смог бы сформулировать даже первоклассник)) Особую любовь ЧАЛа к "частям" отмечалась и в ахинее про "запрос должен возвращать часть БД". Теперь видно что это какие-то задние части (раз позади первой буквы). Ну, судя по всему, и спроектированная БД, будет похожа на заднюю часть (по крайней мере мало их там не покажется), не знаю уже чью. Возможно, мамонта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2013, 21:42 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherMasterZivПрикол в том, что это всё -- нарушение 1НФ. Все варианты одинаковы с этой точки зрения. Вполне допускаю. Но осталось выяснить, что мы понимаем под "этой точкой зрения". Аргументируйте - приведите определение 1 НФ, которое нарушалось бы всеми этими примерами. Ты же сам него приводил... Что можно разложить реляционно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 00:26 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivCane Cat Fisherпропущено... Вполне допускаю. Но осталось выяснить, что мы понимаем под "этой точкой зрения". Аргументируйте - приведите определение 1 НФ, которое нарушалось бы всеми этими примерами. Ты же сам него приводил... Что можно разложить реляционно. Дык, второй и третий вариант прекрасно раскладываются реляционно: Типа, а где здесь холодильник? - А вот он: Квартира.frige. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 13:06 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина"етров" - это часть фамилии со второй буквы до последней - это смог бы сформулировать даже первоклассник)) Особую любовь ЧАЛа к "частям" отмечалась и в ахинее про "запрос должен возвращать часть БД". Теперь видно что это какие-то задние части (раз позади первой буквы). Ну, судя по всему, и спроектированная БД, будет похожа на заднюю часть (по крайней мере мало их там не покажется), не знаю уже чью. Возможно, мамонта. Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история)) Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории. Что касается того известного факта, что любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД со всей присущей БД семантикой, так это один из ключевых принципов БД. А известный факт, что в "реляционных системах" этот принцип не поддерживается из-за известных непреодолимах ограничений РМД, приводит к неизбежному хамству по отношению ко всем, кто об этом факте напоминает. Это вполне нормальная привычка вести обсуждение по принципу "поквакали - и в болото")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 13:26 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Бредятина чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Эта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки. Бредятина любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД Заднюю часть надо полагать. ЧАЛ слышал, наверное, звон что в РМД запрос всегда возвращает отношение (что есть следствие алгебры, а не принципов БД), и типа додумал по своему, по деревенски С "частями". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 13:48 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherMasterZivпропущено... Ты же сам него приводил... Что можно разложить реляционно. Дык, второй и третий вариант прекрасно раскладываются реляционно: Типа, а где здесь холодильник? - А вот он: Квартира.frige. Ну, так если они раскладываются реляционно, то что из этого следует ? авторОтношение находится в 1НФ тогда и только тогда, когда все используемые домены содержат только скалярные значения. Скалярные значения представляют собой наименьшую семантическую единицу данных, в том смысле, что у них нет внутренней структуры, то есть они неразложимы в реляционной модели. Т.е. если они разложимы, то следовательно, это НЕ 1 НФ (там "тогда и только тогда"). Логично ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 14:32 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
MasterZivCane Cat Fisherпропущено... Дык, второй и третий вариант прекрасно раскладываются реляционно: Типа, а где здесь холодильник? - А вот он: Квартира.frige. Ну, так если они раскладываются реляционно, то что из этого следует ? авторОтношение находится в 1НФ тогда и только тогда, когда все используемые домены содержат только скалярные значения. Скалярные значения представляют собой наименьшую семантическую единицу данных, в том смысле, что у них нет внутренней структуры, то есть они неразложимы в реляционной модели. Т.е. если они разложимы, то следовательно, это НЕ 1 НФ (там "тогда и только тогда"). Логично ? Прекрасно. Осталось выяснить, кто такие "они". Отношение здесь - это Квартира. Атрибут - наличие холодильника. Домен - логический, то есть наличие/отсутствие. Информация об этом доступна в реляционной модели: Квартира.frige. Но сам атрибут атомарный: внутреней структуры, существенной для задачи, не имеет. 1НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 16:58 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
vadiminfoЭта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки. ... Заднюю часть надо полагать. ЧАЛ слышал, наверное, звон что в РМД запрос всегда возвращает отношение (что есть следствие алгебры, а не принципов БД), и типа додумал по своему, по деревенски С "частями". Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история)) Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории. Что касается того известного факта, что любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД со всей присущей БД семантикой, так это один из ключевых принципов БД. А известный факт, что в "реляционных системах" этот принцип не поддерживается из-за известных непреодолимах ограничений РМД, приводит к неизбежному хамству по отношению ко всем, кто об этом факте напоминает. Это вполне нормальная привычка вести обсуждение по принципу "поквакали - и в болото")) 13254920 13545785 13577413 13755686 14020991 14026626 -- Лет 5 назад я был убежденным оптимистом - искренне полагал, что местные "знатоки РМД" понимают о чем идет речь, но специально, из чувства самозащиты, скрывают это. Но, теперь я убежденный пессимист - уверен, что искренне не понимают)) Например, сейчас vadiminfo искренне не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно разделить фамилию на число полей, равное числу букв)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 20:25 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
БредятинаЭто не убедительная интерпретация)) Это не интерпретация, просто блестящее подтверждение ранее нами с Вами принципа БД: БредятинаДо таких идиотов, как я, конечно, не доходит)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 23:13 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Эта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки.Зачем углубляться в такие дебри? :) Можно ведь поступить логичнее - если уж мы выделили первую букву, то дальше надо выделить вторую ("е" в данном случае) и хранить фамилию в трёх полях. Потом выделить третью и хранить в четырёх. Ну и так далее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 06:33 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
tanglirvadiminfoпропущено... Эта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки.Зачем углубляться в такие дебри? :) Можно ведь поступить логичнее - если уж мы выделили первую букву, то дальше надо выделить вторую ("е" в данном случае) и хранить фамилию в трёх полях. Потом выделить третью и хранить в четырёх. Ну и так далее... Вам, вероятно, тоже лень читать сообщения)) "Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 12:51 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаЭто не убедительная интерпретация)) Это не интерпретация, просто блестящее подтверждение ранее нами с Вами принципа БД: БредятинаДо таких идиотов, как я, конечно, не доходит)) Хорошо, что Вы конструктивно участвуете в диалоге. Диалог - хорошая форма понимания учебного материала. Но, все-таки, эта Ваша интерпретация не убедительна)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история)) Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории. Что касается того известного факта, что любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД со всей присущей БД семантикой, так это один из ключевых принципов БД. А известный факт, что в "реляционных системах" этот принцип не поддерживается из-за известных непреодолимах ограничений РМД, приводит к неизбежному хамству по отношению ко всем, кто об этом факте напоминает. Это вполне нормальная привычка вести обсуждение по принципу "поквакали - и в болото")) 13254920 13545785 13577413 13755686 14020991 14026626 -- Похоже, Вы искренне не понимаете, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно разделить фамилию на число полей, равное числу букв)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 12:56 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Бредятинанапример, первая буква имеет особое значение, по ней фамилия относится к разделу каталогаа кто сказал, что каталог должен быть одноуровневым? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 07:16 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Кстати, а кто сказал, что каталог должен соответствовать первой букве? Каталоги с разделами вида"АБА...БУБ", "ВАУ...ГУС" тоже очень практичны, и хорошо выглядят при неоднородном распределении фамилий по алфавиту - позволяют поддерживать разумное число позиций в каждом разделе, что удобно для работы. Так что первая буква - это одно, а соответствие каталогу - совсем другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 13:01 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
То есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно каким-либо образом разделить фамилию)) Или "проблема фамилии" действительно так важна?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 14:02 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherТак что первая буква - это одно, а соответствие каталогу - совсем другое. А Фамилия - третье, никак не нарушаеющее 1НФ, так атомарна в плане юзания приложения, не приводящая ни каким аномалиям к которым может привести нарушение 1НФ, чтобы ни значили ея буквы. Ну а "етров" совсем ахинея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 14:11 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
БредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно каким-либо образом разделить фамилию)) Ну, я уловил. Предположим, что я DBD от сохи, руководствуюсь своим здравым смыслом, в дебри реляционной теории углубляться не хочу. Вот что нашлось в википедии: Первая нормальная формаВопрос об атомарности атрибутов решается на основе семантики данных, то есть их смыслового значения. Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. Следовательно, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен. Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется) неатомарным, если его смысл — «набор цифр» (при разбиении на части или переупорядочивании смысл не теряется) То, что здесь написано, правильно? Если да, то согласно какой семантике "110101" является атомарным атрибутом? Согласно какой семантике разбиение "110101" на части лишит этот атрибут смысла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 15:18 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Гость333БредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно каким-либо образом разделить фамилию)) Ну, я уловил. Предположим, что я DBD от сохи, руководствуюсь своим здравым смыслом, в дебри реляционной теории углубляться не хочу. Вот что нашлось в википедии: Первая нормальная формаВопрос об атомарности атрибутов решается на основе семантики данных, то есть их смыслового значения. Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. Следовательно, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен. Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется) неатомарным, если его смысл — «набор цифр» (при разбиении на части или переупорядочивании смысл не теряется) То, что здесь написано, правильно? Если да, то согласно какой семантике "110101" является атомарным атрибутом? Согласно какой семантике разбиение "110101" на части лишит этот атрибут смысла? Совокупность бытовых устройств в квартире. Справочник значений (код и описание): А (или 1000, что имеет тот же смысл, что и А) - есть холодильник, нет стиральной машины, телевизора и радио. Б (или 1100, что имеет тот же смысл, что и Б) - есть холодильник и стиральная машина, но нет телевизора и радио. .... "при разбиении на части или переупорядочивании смысл теряется")) Разумеется, кажется, что 1000 можно разбить на части, в отличие от А, а на самом деле нельзя, потому что 1000 имеет тот же смысл , что и А, но другое , более наглядное, представление этого смысла . Сравните с представлениями телефонного номера (+74951000000 и +7 (495) 100-00-00) или даты (20131101 или 01-11-2013). Второй пример показывает, что при определенном переупорядочивании смысл не теряется)) Следовательно, тип поля "дата" сам по себе нарушает 1НФ)) Если не развивать и детализировать теорию, которую Вы частично привели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 17:17 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
БредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ Да как же тебя понять, коли ты ничего не говоришь? (с) Иван Васильевич. Аки-паки иже херувимы... Аргументируйте. Запостите пламенную речь, чтобы все присутствующие убедились в Вашей правоте, и устыдились своей временной некомпетентности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 18:48 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
БредятинаСовокупность бытовых устройств в квартире. В печь! (с) профессор Преображенский. Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 18:52 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherБредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ Да как же тебя понять, коли ты ничего не говоришь? (с) Иван Васильевич. Аки-паки иже херувимы... Аргументируйте. Запостите пламенную речь, чтобы все присутствующие убедились в Вашей правоте, и устыдились своей временной некомпетентности. Итак, во-первых, Вы принципиально не читаете сообщения, то есть, Вас эта тема не интересует. Отсюда, ложь, пусть и с помощью литературных персонажей)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 19:59 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherБредятинаСовокупность бытовых устройств в квартире. В печь! (с) профессор Преображенский. Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ. А во-вторых, не только ложь, но и прямой подлог)) Вот мое сообщение: Совокупность бытовых устройств в квартире. Справочник значений (код и описание): А (или 1000, что имеет тот же смысл, что и А) - есть холодильник, нет стиральной машины, телевизора и радио. Б (или 1100, что имеет тот же смысл, что и Б) - есть холодильник и стиральная машина, но нет телевизора и радио. .... "при разбиении на части или переупорядочивании смысл теряется")) Разумеется, кажется, что 1000 можно разбить на части, в отличие от А, а на самом деле нельзя, потому что 1000 имеет тот же смысл, что и А, но другое, более наглядное, представление этого смысла. Сравните с представлениями телефонного номера (+74951000000 и +7 (495) 100-00-00) или даты (20131101 или 01-11-2013). Второй пример показывает, что при определенном переупорядочивании смысл не теряется)) Следовательно, тип поля "дата" сам по себе нарушает 1НФ)) Если не развивать и детализировать теорию, которую Вы частично привели. Это, если оставаться на оптимистических позициях. Но, как я уже говорил, я давно стал пессимистом. И уверен, что Вы просто ничего не понимаете в предмете. Искренне не понимаете)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 20:02 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
БредятинаCane Cat FisherВ печь! (с) профессор Преображенский. Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ. А во-вторых, не только ложь, но и прямой подлог)) Вот мое сообщение: Совокупность бытовых устройств в квартире. Справочник значений (код и описание): А (или 1000, что имеет тот же смысл, что и А) - есть холодильник, нет стиральной машины, телевизора и радио. Б (или 1100, что имеет тот же смысл, что и Б) - есть холодильник и стиральная машина, но нет телевизора и радио. Прелестно. Ну и как сформулировать условие выборки для наличия холодильника, кроме как глазами прочитать описание и вбить "А or B or C...."? Или, может быть, извлечь оттуда слово "%холодильник%" любимой многими функцией LIKE ? Это Вы называете реляционным доступом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 20:22 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherПрелестно. Ну и как сформулировать условие выборки для наличия холодильника, кроме как глазами прочитать описание и вбить "А or B or C...."? Или, может быть, извлечь оттуда слово "%холодильник%" любимой многими функцией LIKE ? Это Вы называете реляционным доступом? Элементарно. Пожалуйста, если Вас интересует другая тема, то так ясно и напишите)) Прочитайте, пожалуйста, постановку задачи: 15004809 При чем здесь "Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ."??? При чем здесь "реляционный доступ"??? Я уже раз десять предлагал переименовать раздел в "Проектирование реляционных баз данных". Но это же не сделано... Тем не менее, я ясно показал, что значение А и аналогичное по смыслу значение 1000 в поле Код приведенного справочника не противоречит 1НФ. Вы это понимаете?: не противоречит 1НФ. Если текст про "атомарность", приведенный Гость 333, не правильный, уточните его, на что и намекнул Гость 333 в своем сообщении)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 20:33 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 20:37 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНу и как сформулировать условие выборки для наличия холодильника, кроме как глазами прочитать описание и вбить "А or B or C...."? Или, может быть, извлечь оттуда слово "%холодильник%" любимой многими функцией LIKE ? Это Вы называете реляционным доступом? Ваша проблема в том, что Вы никогда не использовали СУБД, а использовали только реляционные СХОД... Просто нажать на сенсорном экране на большой квадратик))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 20:50 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Бредятиная ясно показал, что значение А и аналогичное по смыслу значение 1000 в поле Код приведенного справочника не противоречит 1НФ. Нет, не ясно показали. Продолжаю указывать, что значение 1000 имеет внутреннюю структуру - в ней спрятан холодильник, и я даже знаю, в какой позиции. "А" тоже имеет внутреннюю структуру, расшифрованную - еще "лучше" - в текстовом поле справочника, белым стихом! Без прочтения которого ни один запрос не составить. И это 1НФ? Не хочу спорить с Википедией, она что-то там толкует по-своему, но в данной ситуации мне больше нравится определение Дейта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 21:04 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherБредятиная ясно показал, что значение А и аналогичное по смыслу значение 1000 в поле Код приведенного справочника не противоречит 1НФ. Нет, не ясно показали. Продолжаю указывать, что значение 1000 имеет внутреннюю структуру - в ней спрятан холодильник, и я даже знаю, в какой позиции. "А" тоже имеет внутреннюю структуру, расшифрованную - еще "лучше" - в текстовом поле справочника, белым стихом! Без прочтения которого ни один запрос не составить. И это 1НФ? Не хочу спорить с Википедией, она что-то там толкует по-своему, но в данной ситуации мне больше нравится определение Дейта. Не просто не понимаете, а даже не хотите сделать усилие))) Что значит "еще лучше". Поле с описанием элемента есть в любом случае))) Я же ясно написал: Код и Наименование. Я именно ясно показал, отвечая Гость333, с доводами которого, взятыми в Википедии, я не стал (и даже не собирался) спорить, что 1000 не противоречит 1НФ. Вероятно, Вы расчитываете на то, что мое объяснение не "сработает" против формулировок "атомарности" от Дейта? Приведите их, пожалуйста)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 21:16 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
"Введение в системы баз данных", 8-е издание, стр. 468: "Первая нормальная форма. Переменная отношения находится в 1НФ тогда и только тогда, когда в любом допустимом значении этой переменной отношения каждый ее кортеж содержит только одно значение для каждого из атрибутов." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 21:21 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Разве кто-либо здесь говорил, что в какой-то записи в данном поле хранится более одного значения? 1000 и 1010, например?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 21:27 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
БредятинаCane Cat Fisherпропущено... Нет, не ясно показали. Продолжаю указывать, что значение 1000 имеет внутреннюю структуру - в ней спрятан холодильник, и я даже знаю, в какой позиции. "А" тоже имеет внутреннюю структуру, расшифрованную - еще "лучше" - в текстовом поле справочника, белым стихом! Без прочтения которого ни один запрос не составить. И это 1НФ? Не хочу спорить с Википедией, она что-то там толкует по-своему, но в данной ситуации мне больше нравится определение Дейта. Не просто не понимаете, а даже не хотите сделать усилие))) Что значит "еще лучше". Поле с описанием элемента есть в любом случае))) Я же ясно написал: Код и Наименование. Я именно ясно показал, отвечая Гость333, с доводами которого, взятыми в Википедии, я не стал (и даже не собирался) спорить, что 1000 не противоречит 1НФ. Вероятно, Вы расчитываете на то, что мое объяснение не "сработает" против формулировок "атомарности" от Дейта? Приведите их, пожалуйста)) 15042470 Шестое издание, несмотря на внешнюю формализованность и занудство, мне кажется, все же яснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 19:23 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherБредятинапропущено... Не просто не понимаете, а даже не хотите сделать усилие))) Что значит "еще лучше". Поле с описанием элемента есть в любом случае))) Я же ясно написал: Код и Наименование. Я именно ясно показал, отвечая Гость333, с доводами которого, взятыми в Википедии, я не стал (и даже не собирался) спорить, что 1000 не противоречит 1НФ. Вероятно, Вы расчитываете на то, что мое объяснение не "сработает" против формулировок "атомарности" от Дейта? Приведите их, пожалуйста)) 15042470 Шестое издание, несмотря на внешнюю формализованность и занудство, мне кажется, все же яснее. ))) Но о том же самом, что и в цитате Гость333. 1) Если Вы считаете, что новые издания хуже старых, советую Вам найти первое издание. 2) Дейт не случайно отказался от этих бесполезных рассуждений (см. определение 1НФ из восьмого издания, которое я Вам привел). 3) Эти рассуждения не дают ничего нового по сравнению с цитатой Гость333. Совершенно очевидно, что 1000 не нарушает 1НФ. Нельзя разложить или переставить местами, потому что смысл этого атрибута будет утерян. Этого атрибута. Именно этого атрибута. 4) Если же считать, что смысл будет тот же, например, у совокупности четырех атрибутов (после разложения), тогда тип дата нарушает 1НФ. Номер телефона тоже нарушает. 5) А если в БД один из стандартных типов нарушает 1НФ, то какой смысл вообще упоминать 1НФ. 6) Другие примеры типов, которые были реализованы в период популярности пользовательских типов: габаритный размер; числовой диапазон. 7) Именно по этим причинам Дейт и отказался от рассуждений об атомарности. А вместо этого утверждает, что отношение может быть типом атрибута ! И это, заметьте, не нарушает 1НФ. 8) Дейт: "... Основная причина, по которой мы здесь подчеркиваем возможность применения атрибутов со значениями в виде отношений, состоит в том, что в свое время такая возможность обычно считалась недопустимой. В действительности она рассматривалась как таковая и в предыдущих изданиях этой книги. ... в свое время сам автор не понимал истинного характера типов (доменов). ... автор считает своим долгом принести извинения всем, кого он ввел в заблуждение." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 20:48 |
|
||
|
Подскажите на конктретном примере
|
|||
|---|---|---|---|
|
#18+
Nekifrovv, ИМХО, если количество атрибутов точно ограничено (пусть оно в процессе вырастет хоть до 100, но ограничено), то вариант 1 предпочтительнее. Во-первых проще поиск хаток по комбинациям атрибутов. Даже когда их будет многа - всё равно останется проще и шустрее. , во-вторых если "вдруг" понадобится добавлять атрибуты к этим атрибутам (а какой холодильник?) то в первом варианте легко можно заменить булево значение на ссылку в справочник холодильников и существенно расширить возможности поиска (хочу хатку с двухкамерным голодильником). Все варианты хранения "по вдоль" (EAV) - проигрывают по скорости выборки 2-3 раза, это "как правило". А кроме того, относительная сложность запросов также повышена в 2-3 раза. Полезно только в случае быстрого динамического изменения количества атрибутов. Если набор ваших холодильников, мебели и чего ещё фиксирован, в т.ч. и длительное время - вариант 1 предпочтителен. Всё остальное - теория. Часто - бесполезная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 14:44 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541071]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 415ms |

| 0 / 0 |

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