powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите на конктретном примере
66 сообщений из 66, показаны все 3 страниц
Подскажите на конктретном примере
    #38434659
Nekifrovv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть квартиры. В каждой квартире есть всякие удобства, например

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


Какой вариант будет меньше нагружать базу? Спасибо.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38434662
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekifrovvКакой вариант будет меньше нагружать базу?
Второй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38434803
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый способ однозначно быстрее и проще, плюс по занимаемому месту хранения как миминум не хуже ибо null места почти не занимает, но у него есть существенный недостаток. Опыт показывает что всего таких позиций может быть до 15 это вас обманули. Чем дальше развивается система тем больше становится таких позиций. А каждое добавление поля это DDL, отдельный патч на базу и приложение и прочий гемор. Плюс в СУБД может существовать ограничение на количество таблиц и т.д.
В общем я голосую за второй вариант.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38435319
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekifrovvКакой вариант будет меньше нагружать базу? Спасибо.

Надо проектировать БД не так, чтобы её меньше нагружать, а так, чтобы она была правильной, не было бы аномалий.
Потому что БД должна сначала работать, а потом работать быстро.

Твой первый вариант -- нарушение 1НФ. Второй -- нормальный. Значит, надо делать по второму варианту.

автори т.д. - всего таких позиций может быть до 15.


Вот это тут главная ошибка. В реляционных БД не бывает "до 15". Либо 1, либо много, от 0 до бесконечности.
Второй вариант этому удовлетворяет.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38435323
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Первый способ однозначно быстрее и проще, плюс по занимаемому месту хранения как миминум не хуже ибо null места почти не занимает, но у него есть существенный недостаток. Опыт показывает что всего таких позиций может быть до 15 это вас обманули. Чем дальше развивается система тем больше становится таких позиций. А каждое добавление поля это DDL, отдельный патч на базу и приложение и прочий гемор. Плюс в СУБД может существовать ограничение на количество таблиц и т.д.
В общем я голосую за второй вариант.

Первый способ неприемлим. Это нарушение 1НФ.
Будет очень непросто формировать запросы на такую структуру, она нерегулярна.
Вторая -- наоборот, всё просто и легко.

А производительность будет диктоваться наличием нужных индексов, они тут по построению все есть.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38435338
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivSERG1257Первый способ однозначно быстрее и проще, плюс по занимаемому месту хранения как миминум не хуже ибо null места почти не занимает, но у него есть существенный недостаток. Опыт показывает что всего таких позиций может быть до 15 это вас обманули. Чем дальше развивается система тем больше становится таких позиций. А каждое добавление поля это DDL, отдельный патч на базу и приложение и прочий гемор. Плюс в СУБД может существовать ограничение на количество таблиц и т.д.
В общем я голосую за второй вариант.

Первый способ неприемлим. Это нарушение 1НФ.

Каким боком тут нарушение 1НФ? Какой атрибут в схеме неатомарен?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38435574
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинMasterZivпропущено...


Первый способ неприемлим. Это нарушение 1НФ.

Каким боком тут нарушение 1НФ? Какой атрибут в схеме неатомарен?


автори т.д. - всего таких позиций может быть до 15.

На каждой странице сайта планируется показывать что из этого есть, а чего из этого нету. Например

Вот это и неатомарно. Это массив из свойств квартиры размером до 15.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38435767
Nekifrovv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38435992
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКот Матроскинпропущено...

Каким боком тут нарушение 1НФ? Какой атрибут в схеме неатомарен?


автори т.д. - всего таких позиций может быть до 15.

На каждой странице сайта планируется показывать что из этого есть, а чего из этого нету. Например

Вот это и неатомарно. Это массив из свойств квартиры размером до 15.

Что "это"? Для нарушения 1НФ в отношении должен быть неатомарный атрибут . В варианте же предлагается пачка совершенно атомарных независимых атрибутов.
Обсуждаемый вариант - в общем случае плохой, с этим никто не спорит. Но нормализация тут не при чем, он плох не поэтому.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436612
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВот это и неатомарно. Это массив из свойств квартиры размером до 15.

Никакой это не массив. Вот если бы ТС впихнул все это в одно поле, например, в виде строки "0010011001", или битовой маски, и условился о соответствии "номер позиции<->вид удобства", это было бы нарушение 1НФ в чистом виде. А так это скорее вопрос правильного выделения сущностей. Является ли наличие холодильника атрибутом квартиры, или есть отдельная сущность "Удобства", одним из значений которой является "Холодильник"?

Для ответа можно подумать, например, есть ли у холодильника, стиралки и т.д. свои атрибуты. Если есть - это, конечно, сущности: объем холодильника, вместимость стиралки и т.д, и надо делать отдельную таблицу. А если нет - то, возможно, все же логические атрибуты квартиры.

Второй вопрос - будет ли этих удобств бесконечное множество, или все-таки 15. ТС говорит об ограниченности количества.

Короче, в простейшем примере, приведенном ТС, недостаточно аргументов для решающего выбора, так что и первый вариант выглядит приемлемым. Единственный аргумент в пользу второго - "а вдруг": "вдруг удобств станет много", "вдруг у них появятся свои атрибуты", "опыт показывает, что вдруг так и бывает".
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436620
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии.

Добро пожаловать в мир EAV. Для примера, простейший запрос: "Выбрать квартиры, где есть холодильник и стиралка, но нет ни мебели, ни микроволновки". Составьте для первого и второго варианта, сравните.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436630
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинMasterZivпропущено...



пропущено...


Вот это и неатомарно. Это массив из свойств квартиры размером до 15.

Что "это"? Для нарушения 1НФ в отношении должен быть неатомарный атрибут . В варианте же предлагается пачка совершенно атомарных независимых атрибутов.
Обсуждаемый вариант - в общем случае плохой, с этим никто не спорит. Но нормализация тут не при чем, он плох не поэтому.

При чем, при чем. Это именно он и есть.
Неатомарный атрибут. Из 15 полей.

Задай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436634
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher,

Это и есть массив, других массивов в рсубд нет и быть не может.
Это набор полей, служащих одному назначению в предметной области.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436637
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherNekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии.

Добро пожаловать в мир EAV. Для примера, простейший запрос: "Выбрать квартиры, где есть холодильник и стиралка, но нет ни мебели, ни микроволновки". Составьте для первого и второго варианта, сравните.

EAV тут ни при чем, это стандартная классика пока.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436645
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat

Никакой это не массив. Вот если бы ТС впихнул все это в одно поле, например, в виде строки "0010011001", или битовой маски, и условился о соответствии "номер позиции<->вид удобства", это было бы нарушение 1НФ в чистом виде.

Ха, а какая принципиальная разница между этим решением и приведенным автором топика ? Ответь себе на этот вопрос и может ты поймешь, почему ты неправ...
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436671
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Боюсь, Вы не понимаете, что такое нормализация и какие задачи она решает.

MasterZivЗадай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь.
"Получить свойства квартиры в виде списка " - это, грубо говоря, выходная форма. Проектировать БД исходя из выходных форм - плохая практика. Завтра Вас попросят "выдайте нам свойства квартиры одной строкой" - Вы будете переделывать схему данных?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436677
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто и есть массив, других массивов в рсубд нет и быть не может.
Это набор полей, служащих одному назначению в предметной области.

Фамилия, Имя, Отчество в одной таблице - это тоже массив, и нарушение 1НФ ?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436706
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНеатомарный атрибут. Из 15 полей.
Любопытная логика. А в виде 15 записей, этот "атрибут", стало быть, атомарный? :-)

MasterZivЗадай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь.
Такими вопросами можно всю святость свести к все таблицы по вертикали развернуть.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436859
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherMasterZivЭто и есть массив, других массивов в рсубд нет и быть не может.
Это набор полей, служащих одному назначению в предметной области.

Фамилия, Имя, Отчество в одной таблице - это тоже массив, и нарушение 1НФ ?

Нет, это разные атрибуты, у них назначение разное.

Одно -- фамилия, другое -- имя, третье -- отчество.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436883
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинMasterZiv,

Боюсь, Вы не понимаете, что такое нормализация и какие задачи она решает.

MasterZivЗадай вопрос " получить список свойств квартиры, которые она имеет" и ты все поймешь.
"Получить свойства квартиры в виде списка " - это, грубо говоря, выходная форма. Проектировать БД исходя из выходных форм - плохая практика. Завтра Вас попросят "выдайте нам свойства квартиры одной строкой" - Вы будете переделывать схему данных?


Это запрос, который надо написать. Какая выходная форма ?
Кортежи надо получить, где было бы (Квартира, свойство)
Все свойства, что есть.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436947
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто запрос, который надо написать. Какая выходная форма ?
Кортежи надо получить, где было бы (Квартира, свойство)
Все свойства, что есть.
Еще раз - это неправильная логика, аргументировать схему данных "а вот такой [взятый с потолка] запрос писать проще!" (и уж совершенно точно эта логика не имеет отношения к нормализации, на которую Вы напирали).
Если потребуется написать запрос (квартира, свойство1, свойство2,...свойство15) - Вы будете переделывать схему данных?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38436972
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> победил второй вариант. Посмотрим, как он покажет себя в действии.

Обычно сначала тестируют, а потом объявляют о победе.

Видите ли, безобразно кривы оба предложенных вами варианта. Особенность в том, что задача и не предполагает не кривых решений. На вашем месте я бы остановился на первом варианте: просто, дёшево, сердито. При необходимости добавить раз в полгода пару полей - не проблема. Только замените в таблице 1/NULL на true/false.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38437311
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНет, это разные атрибуты, у них назначение разное.

Одно -- фамилия, другое -- имя, третье -- отчество.

Глубина открытия потрясает.

Мне кажется, что между холодильником и стиралкой все же больше разницы. По крайней мере, они не взаимозаменяемы. А ФИО - запросто: в садике всех зовут по именам, в армии - по фамилиям, на пенсии - по отчествам. Чем не "набор полей, служащих одному назначению в предметной области" ?

Просто формальная кривость первого варианта вовсе не в нарушении 1НФ, а в эмпирическом правиле "избегайте индексированных атрибутов". Я не поленился перелистать Дейта, но в формальном виде этого правила не нашел, помню только у обкуренного Джо Селко. Может, кто-то укажет на формальное определение недостатка первого варианта?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38437897
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher,

Я уже указывал, формально это нарушение 1НФ.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38438986
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherNekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии.

Добро пожаловать в мир EAV. Для примера, простейший запрос: "Выбрать квартиры, где есть холодильник и стиралка, но нет ни мебели, ни микроволновки". Составьте для первого и второго варианта, сравните.
А Вы, в свою очередь, составьте этот запрос для совершенно правильного Вашего варианта из
15013211
который Вы ошибочно раскритиковали - 1НФ в нем не нарушается никак. И даже после того, как добавят материальный учет, так сказать (конечно, клиентов будет интересовать объем холодильника), то это (тогда - уже вычисляемое) поле вполне может использоваться.
Второй вариант не имеет вообще никакого отношения к БД.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38438987
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekifrovvВсем большое спасибо за ответы, победил второй вариант. Посмотрим, как он покажет себя в действии.
То есть, Вы решили просто отказаться от БД. И правильно))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38439166
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherНикакой это не массив. Вот если бы ТС впихнул все это в одно поле, например, в виде строки "0010011001", или битовой маски, и условился о соответствии "номер позиции<->вид удобства", это было бы нарушение 1НФ в чистом виде.


Смотри, буду последовательно приводить варианты неправильной структуры, чтобы было яснее.

Начнём с классики нарушения 1HФ.

Квартираflat_iddescr42'есть Холодильник стиральная машина'43'Холодильник мебель'

Ну, работать неудобно.
Код: sql
1.
2.
3.
select * 
from FLAT
where descr like '%Холодильник%'



Для удобства разбиваем на поля, их максимум 15. (давайте для краткости 15 заменим на 4)

Квартираflat_idfeature_1feature_2feature_3feature_442Холодильникстиральная машина43Холодильникмебель

пишем запрос.

Код: sql
1.
2.
3.
select * 
from FLAT
where feature_1 = 'Холодильник' or feature_2 = 'Холодильник' or feature_3 = 'Холодильник' or feature_4 = 'Холодильник'



Неудобно проверять 4 поля на нужное.
О! Идея ! Давай я буду 'Холодильник' всегда писать в первое поле, 'Мебель' во второе, и так далее.

Квартираflat_idfrigefurnwash_mashmicrowave42Холодильникстиральная машинамикроволновка43мебель

А ведь ещё можно и место съэкономить, зачем хранить строки ?

Квартираflat_idfrigefurnwash_mashmicrowave421011430101

Ну и далее -- если мне надо добавить новый атрибут, то придётся добавлять колонку через ALTER TABLE... Да... Плохо !
А давай-ка я солью всё в одно поле из признкаков 0 или 1, а позицией в этом поле буду кодировать тип свойства.
Новое свойство, если что, пойдёт в конец, и искать сразу можно по всем свойствам, LIKE-ом.

Квартираflat_idfeatures421011430101

Запрос:

Код: sql
1.
2.
3.
select * 
from FLAT
where feature like '_1__'



Классно!

Ну и напоследок вопрос: На каком из этапов этих преобразований возникает или уходит нарушение 1НФ ?
Объяснишь ?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38443931
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНа каком из этапов этих преобразований возникает или уходит нарушение 1НФ ?
Объяснишь ?

Легко. Сначала определение:
ДейтОтношение находится в 1НФ тогда и только тогда, когда все используемые домены содержат только скалярные значения.

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

...Не иметь внутренней структуры в реляционной модели - вовсе не значит "не иметь внутренней структуры вообще". Например, название города, конечно же, имеет внутреннюю структуру (оно состоит из последовательности букв); однако, разложив название по буквам, мы потеряем значение. Значение станет понятным, лишь в том случае, если буквы сложены вместе и в правильной последовательности.


Теперь по примерам:

Первый - классика нарушения НФ: значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ.

Второй: Перелистал Дейта, но не нашел такой операции, как "Для удобства разбиваем строку на поля". Это, как говорит Бредятина, "Вообще не база данных", это клетчатая бумага какая-то. Поэтому понятие нормальных форм к ней неприменимо.

Третий и четвертый - 1НФ. Кстати, для теории БД они равнозначны - Дейту с его вершин реляционной алгебры все равно, хранить ли в атрибуте "FRIGE" единичку/нолик, или слово "Холодильник"/пробелы. Булев домен, и всего делов. Для реализации, понятно, хранят единицы.

Последний - опять пританцевали к первому варианту: теоретически, как я только что сказал, они равнозначны, отличаются только реализацией. Нарушение 1НФ - значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Функция LIKE в каноническом числе реляционных операндов не значится.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38444699
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherТеперь по примерам:
...
Последний - опять пританцевали к первому варианту: теоретически, как я только что сказал, они равнозначны, отличаются только реализацией. Нарушение 1НФ - значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Функция LIKE в каноническом числе реляционных операндов не значится.
Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))
Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38444814
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher
Первый - классика нарушения НФ: значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ.

Последний - опять пританцевали к первому варианту: теоретически, как я только что сказал, они равнозначны, отличаются только реализацией. Нарушение 1НФ - значение поля имеет внутреннюю структуру- информацию, важную для задачи, но недоступную как ОТНОШЕНИЕ.АТРИБУТ. Функция LIKE в каноническом числе реляционных операндов не значится.

Прикол в том, что это всё -- нарушение 1НФ.
Все варианты одинаковы с этой точки зрения.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38444977
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПрикол в том, что это всё -- нарушение 1НФ.
Все варианты одинаковы с этой точки зрения.

Вполне допускаю. Но осталось выяснить, что мы понимаем под "этой точкой зрения". Аргументируйте - приведите определение 1 НФ, которое нарушалось бы всеми этими примерами.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38445301
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров"..
Знатоки подвалили. Чувствуется уровень проетирования за версту. Тока забыли выдумать что значитЬ "етров". (Все таки 1НФ азначент атомарное , а не части атомарного же). Ну это уже детали.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38445715
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoБредятина например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров"..
Знатоки подвалили. Чувствуется уровень проетирования за версту. Тока забыли выдумать что значитЬ "етров". (Все таки 1НФ азначент атомарное , а не части атомарного же). Ну это уже детали.
Подвалили знатоки лжи и подлога))) Вот мой текст:

Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))
Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории.

"етров" - это часть фамилии со второй буквы до последней - это смог бы сформулировать даже первоклассник))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38445864
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина"етров" - это часть фамилии со второй буквы до последней - это смог бы сформулировать даже первоклассник))
Особую любовь ЧАЛа к "частям" отмечалась и в ахинее про "запрос должен возвращать часть БД". Теперь видно что это какие-то задние части (раз позади первой буквы). Ну, судя по всему, и спроектированная БД, будет похожа на заднюю часть (по крайней мере мало их там не покажется), не знаю уже чью. Возможно, мамонта.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38445965
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherMasterZivПрикол в том, что это всё -- нарушение 1НФ.
Все варианты одинаковы с этой точки зрения.

Вполне допускаю. Но осталось выяснить, что мы понимаем под "этой точкой зрения". Аргументируйте - приведите определение 1 НФ, которое нарушалось бы всеми этими примерами.

Ты же сам него приводил... Что можно разложить реляционно.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38446505
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivCane Cat Fisherпропущено...


Вполне допускаю. Но осталось выяснить, что мы понимаем под "этой точкой зрения". Аргументируйте - приведите определение 1 НФ, которое нарушалось бы всеми этими примерами.

Ты же сам него приводил... Что можно разложить реляционно.

Дык, второй и третий вариант прекрасно раскладываются реляционно: Типа, а где здесь холодильник? - А вот он: Квартира.frige.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38446559
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoБредятина"етров" - это часть фамилии со второй буквы до последней - это смог бы сформулировать даже первоклассник))
Особую любовь ЧАЛа к "частям" отмечалась и в ахинее про "запрос должен возвращать часть БД". Теперь видно что это какие-то задние части (раз позади первой буквы). Ну, судя по всему, и спроектированная БД, будет похожа на заднюю часть (по крайней мере мало их там не покажется), не знаю уже чью. Возможно, мамонта.
Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))
Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории.
Что касается того известного факта, что любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД со всей присущей БД семантикой, так это один из ключевых принципов БД. А известный факт, что в "реляционных системах" этот принцип не поддерживается из-за известных непреодолимах ограничений РМД, приводит к неизбежному хамству по отношению ко всем, кто об этом факте напоминает. Это вполне нормальная привычка вести обсуждение по принципу "поквакали - и в болото"))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38446614
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров".
Эта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки.


Бредятина любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД
Заднюю часть надо полагать. ЧАЛ слышал, наверное, звон что в РМД запрос всегда возвращает отношение (что есть следствие алгебры, а не принципов БД), и типа додумал по своему, по деревенски С "частями".
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38446701
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherMasterZivпропущено...


Ты же сам него приводил... Что можно разложить реляционно.

Дык, второй и третий вариант прекрасно раскладываются реляционно: Типа, а где здесь холодильник? - А вот он: Квартира.frige.

Ну, так если они раскладываются реляционно, то что из этого следует ?

авторОтношение находится в 1НФ тогда и только тогда, когда все используемые домены содержат только скалярные значения.
Скалярные значения представляют собой наименьшую семантическую единицу данных, в том смысле, что у них нет внутренней структуры, то есть они неразложимы в реляционной модели.

Т.е. если они разложимы, то следовательно, это НЕ 1 НФ (там "тогда и только тогда").
Логично ?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38447079
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivCane Cat Fisherпропущено...


Дык, второй и третий вариант прекрасно раскладываются реляционно: Типа, а где здесь холодильник? - А вот он: Квартира.frige.

Ну, так если они раскладываются реляционно, то что из этого следует ?

авторОтношение находится в 1НФ тогда и только тогда, когда все используемые домены содержат только скалярные значения.
Скалярные значения представляют собой наименьшую семантическую единицу данных, в том смысле, что у них нет внутренней структуры, то есть они неразложимы в реляционной модели.

Т.е. если они разложимы, то следовательно, это НЕ 1 НФ (там "тогда и только тогда").
Логично ?

Прекрасно. Осталось выяснить, кто такие "они".

Отношение здесь - это Квартира. Атрибут - наличие холодильника. Домен - логический, то есть наличие/отсутствие. Информация об этом доступна в реляционной модели: Квартира.frige. Но сам атрибут атомарный: внутреней структуры, существенной для задачи, не имеет. 1НФ.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38447424
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoЭта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки.
...
Заднюю часть надо полагать. ЧАЛ слышал, наверное, звон что в РМД запрос всегда возвращает отношение (что есть следствие алгебры, а не принципов БД), и типа додумал по своему, по деревенски С "частями".
Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))
Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории.
Что касается того известного факта, что любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД со всей присущей БД семантикой, так это один из ключевых принципов БД. А известный факт, что в "реляционных системах" этот принцип не поддерживается из-за известных непреодолимах ограничений РМД, приводит к неизбежному хамству по отношению ко всем, кто об этом факте напоминает. Это вполне нормальная привычка вести обсуждение по принципу "поквакали - и в болото"))
13254920
13545785
13577413
13755686
14020991
14026626
--
Лет 5 назад я был убежденным оптимистом - искренне полагал, что местные "знатоки РМД" понимают о чем идет речь, но специально, из чувства самозащиты, скрывают это. Но, теперь я убежденный пессимист - уверен, что искренне не понимают)) Например, сейчас vadiminfo искренне не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно разделить фамилию на число полей, равное числу букв))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38447547
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаЭто не убедительная интерпретация))

Это не интерпретация, просто блестящее подтверждение ранее нами с Вами принципа БД:

БредятинаДо таких идиотов, как я, конечно, не доходит))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38447676
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoБредятина чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров".
Эта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки.Зачем углубляться в такие дебри? :) Можно ведь поступить логичнее - если уж мы выделили первую букву, то дальше надо выделить вторую ("е" в данном случае) и хранить фамилию в трёх полях. Потом выделить третью и хранить в четырёх. Ну и так далее...
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38448191
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirvadiminfoпропущено...

Эта ахинея возможно превосходит все что было от ЧАЛа до сих пор. Наверное, дальнейшая нармолизация по ЧАЛу приведет к разбиениб "П" на три палки.Зачем углубляться в такие дебри? :) Можно ведь поступить логичнее - если уж мы выделили первую букву, то дальше надо выделить вторую ("е" в данном случае) и хранить фамилию в трёх полях. Потом выделить третью и хранить в четырёх. Ну и так далее...
Вам, вероятно, тоже лень читать сообщения))
"Это не убедительная интерпретация)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))"
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38448201
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoБредятинаЭто не убедительная интерпретация))

Это не интерпретация, просто блестящее подтверждение ранее нами с Вами принципа БД:

БредятинаДо таких идиотов, как я, конечно, не доходит))
Хорошо, что Вы конструктивно участвуете в диалоге. Диалог - хорошая форма понимания учебного материала. Но, все-таки, эта Ваша интерпретация не убедительна)) 1НФ нарушают не только дата или, например, номер телефона, но и та же фамилия: например, первая буква имеет особое значение, по ней фамилия относится к разделу каталога. Поэтому, чтобы не нарушать 1НФ фамилию нужно хранить в двух полях: "П" и "етров". Впрочем, со второй та же история))
Другими словами, реляционная теория должна быть как-то доработана, чтобы появился какой-то смысл)) Это, конечно, не поможет создать реляционную СУБД, но, хотя бы в теории.
Что касается того известного факта, что любой запрос к БД (а не последующие вычисления в целях вольных интепретаций результата запроса) представляет собой часть БД со всей присущей БД семантикой, так это один из ключевых принципов БД. А известный факт, что в "реляционных системах" этот принцип не поддерживается из-за известных непреодолимах ограничений РМД, приводит к неизбежному хамству по отношению ко всем, кто об этом факте напоминает. Это вполне нормальная привычка вести обсуждение по принципу "поквакали - и в болото"))
13254920
13545785
13577413
13755686
14020991
14026626
--
Похоже, Вы искренне не понимаете, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно разделить фамилию на число полей, равное числу букв))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38449221
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятинанапример, первая буква имеет особое значение, по ней фамилия относится к разделу каталогаа кто сказал, что каталог должен быть одноуровневым? :)
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38449770
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а кто сказал, что каталог должен соответствовать первой букве? Каталоги с разделами вида"АБА...БУБ", "ВАУ...ГУС" тоже очень практичны, и хорошо выглядят при неоднородном распределении фамилий по алфавиту - позволяют поддерживать разумное число позиций в каждом разделе, что удобно для работы.

Так что первая буква - это одно, а соответствие каталогу - совсем другое.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38449928
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно каким-либо образом разделить фамилию)) Или "проблема фамилии" действительно так важна?))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38449948
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherТак что первая буква - это одно, а соответствие каталогу - совсем другое. А Фамилия - третье, никак не нарушаеющее 1НФ, так атомарна в плане юзания приложения, не приводящая ни каким аномалиям к которым может привести нарушение 1НФ, чтобы ни значили ея буквы. Ну а "етров" совсем ахинея.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450088
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно каким-либо образом разделить фамилию))
Ну, я уловил.
Предположим, что я DBD от сохи, руководствуюсь своим здравым смыслом, в дебри реляционной теории углубляться не хочу.
Вот что нашлось в википедии:
Первая нормальная формаВопрос об атомарности атрибутов решается на основе семантики данных, то есть их смыслового значения. Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. Следовательно, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен.

Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является
атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется)
неатомарным, если его смысл — «набор цифр» (при разбиении на части или переупорядочивании смысл не теряется)
То, что здесь написано, правильно? Если да, то согласно какой семантике "110101" является атомарным атрибутом? Согласно какой семантике разбиение "110101" на части лишит этот атрибут смысла?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450325
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость333БредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ, а не о том, что нужно каким-либо образом разделить фамилию))
Ну, я уловил.
Предположим, что я DBD от сохи, руководствуюсь своим здравым смыслом, в дебри реляционной теории углубляться не хочу.
Вот что нашлось в википедии:
Первая нормальная формаВопрос об атомарности атрибутов решается на основе семантики данных, то есть их смыслового значения. Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. Следовательно, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен.

Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является
атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется)
неатомарным, если его смысл — «набор цифр» (при разбиении на части или переупорядочивании смысл не теряется)
То, что здесь написано, правильно? Если да, то согласно какой семантике "110101" является атомарным атрибутом? Согласно какой семантике разбиение "110101" на части лишит этот атрибут смысла?
Совокупность бытовых устройств в квартире.
Справочник значений (код и описание):
А (или 1000, что имеет тот же смысл, что и А) - есть холодильник, нет стиральной машины, телевизора и радио.
Б (или 1100, что имеет тот же смысл, что и Б) - есть холодильник и стиральная машина, но нет телевизора и радио.
....
"при разбиении на части или переупорядочивании смысл теряется")) Разумеется, кажется, что 1000 можно разбить на части, в отличие от А, а на самом деле нельзя, потому что 1000 имеет тот же смысл , что и А, но другое , более наглядное, представление этого смысла . Сравните с представлениями телефонного номера (+74951000000 и +7 (495) 100-00-00) или даты (20131101 или 01-11-2013). Второй пример показывает, что при определенном переупорядочивании смысл не теряется)) Следовательно, тип поля "дата" сам по себе нарушает 1НФ)) Если не развивать и детализировать теорию, которую Вы частично привели.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450431
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ

Да как же тебя понять, коли ты ничего не говоришь? (с) Иван Васильевич. Аки-паки иже херувимы...

Аргументируйте. Запостите пламенную речь, чтобы все присутствующие убедились в Вашей правоте, и устыдились своей временной некомпетентности.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450436
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаСовокупность бытовых устройств в квартире.


В печь! (с) профессор Преображенский. Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450494
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherБредятинаТо есть, никто не понимает, что мое сообщение - о том что 110101 не нарушает 1НФ

Да как же тебя понять, коли ты ничего не говоришь? (с) Иван Васильевич. Аки-паки иже херувимы...

Аргументируйте. Запостите пламенную речь, чтобы все присутствующие убедились в Вашей правоте, и устыдились своей временной некомпетентности.
Итак, во-первых, Вы принципиально не читаете сообщения, то есть, Вас эта тема не интересует. Отсюда, ложь, пусть и с помощью литературных персонажей))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450496
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherБредятинаСовокупность бытовых устройств в квартире.


В печь! (с) профессор Преображенский. Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ.
А во-вторых, не только ложь, но и прямой подлог)) Вот мое сообщение:

Совокупность бытовых устройств в квартире.
Справочник значений (код и описание):
А (или 1000, что имеет тот же смысл, что и А) - есть холодильник, нет стиральной машины, телевизора и радио.
Б (или 1100, что имеет тот же смысл, что и Б) - есть холодильник и стиральная машина, но нет телевизора и радио.
....
"при разбиении на части или переупорядочивании смысл теряется")) Разумеется, кажется, что 1000 можно разбить на части, в отличие от А, а на самом деле нельзя, потому что 1000 имеет тот же смысл, что и А, но другое, более наглядное, представление этого смысла. Сравните с представлениями телефонного номера (+74951000000 и +7 (495) 100-00-00) или даты (20131101 или 01-11-2013). Второй пример показывает, что при определенном переупорядочивании смысл не теряется)) Следовательно, тип поля "дата" сам по себе нарушает 1НФ)) Если не развивать и детализировать теорию, которую Вы частично привели.

Это, если оставаться на оптимистических позициях. Но, как я уже говорил, я давно стал пессимистом. И уверен, что Вы просто ничего не понимаете в предмете. Искренне не понимаете))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450511
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаCane Cat FisherВ печь! (с) профессор Преображенский. Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ.
А во-вторых, не только ложь, но и прямой подлог)) Вот мое сообщение:

Совокупность бытовых устройств в квартире.
Справочник значений (код и описание):
А (или 1000, что имеет тот же смысл, что и А) - есть холодильник, нет стиральной машины, телевизора и радио.
Б (или 1100, что имеет тот же смысл, что и Б) - есть холодильник и стиральная машина, но нет телевизора и радио.

Прелестно. Ну и как сформулировать условие выборки для наличия холодильника, кроме как глазами прочитать описание и вбить "А or B or C...."? Или, может быть, извлечь оттуда слово "%холодильник%" любимой многими функцией LIKE ? Это Вы называете реляционным доступом?
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450531
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherПрелестно. Ну и как сформулировать условие выборки для наличия холодильника, кроме как глазами прочитать описание и вбить "А or B or C...."? Или, может быть, извлечь оттуда слово "%холодильник%" любимой многими функцией LIKE ? Это Вы называете реляционным доступом?
Элементарно.
Пожалуйста, если Вас интересует другая тема, то так ясно и напишите))
Прочитайте, пожалуйста, постановку задачи:
15004809
При чем здесь "Наличие холодильника недоступно в реляционной нотации, ОТНОШЕНИЕ.АТРИБУТ."??? При чем здесь "реляционный доступ"??? Я уже раз десять предлагал переименовать раздел в "Проектирование реляционных баз данных". Но это же не сделано... Тем не менее, я ясно показал, что значение А и аналогичное по смыслу значение 1000 в поле Код приведенного справочника не противоречит 1НФ. Вы это понимаете?: не противоречит 1НФ. Если текст про "атомарность", приведенный Гость 333, не правильный, уточните его, на что и намекнул Гость 333 в своем сообщении))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450541
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450553
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherНу и как сформулировать условие выборки для наличия холодильника, кроме как глазами прочитать описание и вбить "А or B or C...."? Или, может быть, извлечь оттуда слово "%холодильник%" любимой многими функцией LIKE ? Это Вы называете реляционным доступом?
Ваша проблема в том, что Вы никогда не использовали СУБД, а использовали только реляционные СХОД...
Просто нажать на сенсорном экране на большой квадратик)))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450561
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятиная ясно показал, что значение А и аналогичное по смыслу значение 1000 в поле Код приведенного справочника не противоречит 1НФ.

Нет, не ясно показали. Продолжаю указывать, что значение 1000 имеет внутреннюю структуру - в ней спрятан холодильник, и я даже знаю, в какой позиции. "А" тоже имеет внутреннюю структуру, расшифрованную - еще "лучше" - в текстовом поле справочника, белым стихом! Без прочтения которого ни один запрос не составить. И это 1НФ?

Не хочу спорить с Википедией, она что-то там толкует по-своему, но в данной ситуации мне больше нравится определение Дейта.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450569
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherБредятиная ясно показал, что значение А и аналогичное по смыслу значение 1000 в поле Код приведенного справочника не противоречит 1НФ.

Нет, не ясно показали. Продолжаю указывать, что значение 1000 имеет внутреннюю структуру - в ней спрятан холодильник, и я даже знаю, в какой позиции. "А" тоже имеет внутреннюю структуру, расшифрованную - еще "лучше" - в текстовом поле справочника, белым стихом! Без прочтения которого ни один запрос не составить. И это 1НФ?

Не хочу спорить с Википедией, она что-то там толкует по-своему, но в данной ситуации мне больше нравится определение Дейта.
Не просто не понимаете, а даже не хотите сделать усилие))) Что значит "еще лучше". Поле с описанием элемента есть в любом случае))) Я же ясно написал: Код и Наименование. Я именно ясно показал, отвечая Гость333, с доводами которого, взятыми в Википедии, я не стал (и даже не собирался) спорить, что 1000 не противоречит 1НФ. Вероятно, Вы расчитываете на то, что мое объяснение не "сработает" против формулировок "атомарности" от Дейта? Приведите их, пожалуйста))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450575
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Введение в системы баз данных", 8-е издание, стр. 468:
"Первая нормальная форма. Переменная отношения находится в 1НФ тогда и только тогда, когда в любом допустимом значении этой переменной отношения каждый ее кортеж содержит только одно значение для каждого из атрибутов."
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38450583
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разве кто-либо здесь говорил, что в какой-то записи в данном поле хранится более одного значения? 1000 и 1010, например?))
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38452195
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаCane Cat Fisherпропущено...


Нет, не ясно показали. Продолжаю указывать, что значение 1000 имеет внутреннюю структуру - в ней спрятан холодильник, и я даже знаю, в какой позиции. "А" тоже имеет внутреннюю структуру, расшифрованную - еще "лучше" - в текстовом поле справочника, белым стихом! Без прочтения которого ни один запрос не составить. И это 1НФ?

Не хочу спорить с Википедией, она что-то там толкует по-своему, но в данной ситуации мне больше нравится определение Дейта.
Не просто не понимаете, а даже не хотите сделать усилие))) Что значит "еще лучше". Поле с описанием элемента есть в любом случае))) Я же ясно написал: Код и Наименование. Я именно ясно показал, отвечая Гость333, с доводами которого, взятыми в Википедии, я не стал (и даже не собирался) спорить, что 1000 не противоречит 1НФ. Вероятно, Вы расчитываете на то, что мое объяснение не "сработает" против формулировок "атомарности" от Дейта? Приведите их, пожалуйста))

15042470

Шестое издание, несмотря на внешнюю формализованность и занудство, мне кажется, все же яснее.
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38452277
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherБредятинапропущено...

Не просто не понимаете, а даже не хотите сделать усилие))) Что значит "еще лучше". Поле с описанием элемента есть в любом случае))) Я же ясно написал: Код и Наименование. Я именно ясно показал, отвечая Гость333, с доводами которого, взятыми в Википедии, я не стал (и даже не собирался) спорить, что 1000 не противоречит 1НФ. Вероятно, Вы расчитываете на то, что мое объяснение не "сработает" против формулировок "атомарности" от Дейта? Приведите их, пожалуйста))

15042470

Шестое издание, несмотря на внешнюю формализованность и занудство, мне кажется, все же яснее.
))) Но о том же самом, что и в цитате Гость333.
1) Если Вы считаете, что новые издания хуже старых, советую Вам найти первое издание.
2) Дейт не случайно отказался от этих бесполезных рассуждений (см. определение 1НФ из восьмого издания, которое я Вам привел).
3) Эти рассуждения не дают ничего нового по сравнению с цитатой Гость333. Совершенно очевидно, что 1000 не нарушает 1НФ. Нельзя разложить или переставить местами, потому что смысл этого атрибута будет утерян. Этого атрибута. Именно этого атрибута.
4) Если же считать, что смысл будет тот же, например, у совокупности четырех атрибутов (после разложения), тогда тип дата нарушает 1НФ. Номер телефона тоже нарушает.
5) А если в БД один из стандартных типов нарушает 1НФ, то какой смысл вообще упоминать 1НФ.
6) Другие примеры типов, которые были реализованы в период популярности пользовательских типов:
габаритный размер;
числовой диапазон.
7) Именно по этим причинам Дейт и отказался от рассуждений об атомарности. А вместо этого утверждает, что отношение может быть типом атрибута ! И это, заметьте, не нарушает 1НФ.
8) Дейт:
"... Основная причина, по которой мы здесь подчеркиваем возможность применения атрибутов со значениями в виде отношений, состоит в том, что в свое время такая возможность обычно считалась недопустимой. В действительности она рассматривалась как таковая и в предыдущих изданиях этой книги. ... в свое время сам автор не понимал истинного характера типов (доменов). ... автор считает своим долгом принести извинения всем, кого он ввел в заблуждение."
...
Рейтинг: 0 / 0
Подскажите на конктретном примере
    #38460448
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekifrovv,

ИМХО, если количество атрибутов точно ограничено (пусть оно в процессе вырастет хоть до 100, но ограничено), то вариант 1 предпочтительнее.

Во-первых проще поиск хаток по комбинациям атрибутов. Даже когда их будет многа - всё равно останется проще и шустрее.
, во-вторых если "вдруг" понадобится добавлять атрибуты к этим атрибутам (а какой холодильник?) то в первом варианте легко можно заменить булево значение на ссылку в справочник холодильников и существенно расширить возможности поиска (хочу хатку с двухкамерным голодильником).

Все варианты хранения "по вдоль" (EAV) - проигрывают по скорости выборки 2-3 раза, это "как правило". А кроме того, относительная сложность запросов также повышена в 2-3 раза. Полезно только в случае быстрого динамического изменения количества атрибутов. Если набор ваших холодильников, мебели и чего ещё фиксирован, в т.ч. и длительное время - вариант 1 предпочтителен.

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


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