Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Плюсы нормализации: 1)Относительно меньший объем данных (соответственно БД) 2)Проще прояснить моменты с целостностью данных 3)Модель более близка к реляционной теории 4)Более логически -понятная БД (хотя могут написать такое что даже в нормализованной БД без 05 литры не разберешьси) 5)Возможно при репликациях будет нужно пересылать меньшие объемы данных - если например сидите на трафике... (возможно денормализованные участки не будут нуждаться в реплицировании конечно) 6)Возможно удастся избежать некоторых JOINов Плюсы денормализации Трудно сказать = тобишь на вскидку особо не вспомню моментов когда это было необходимо... Но был случай, относился к CD дискам исполнителей, для какойто выборки надо было производить конкатенацию строк - было предложено сделать дополнительно столбец который будет собержать результат конкатенации этих двух строк - соответственно скорость выборок была увеличена.... В учебниках грится что к денормализации надо прибегать только тогда когда это необходимо - а это значит на Ваше усмотрение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 12:09 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
SanyLПлюсы нормализации: 1)Относительно меньший объем данных (соответственно БД) Не факт. Если поля из "detail" таблицы сложить в одно поле "master" таблицы, то объем может быть меньше (на размер FK detail таблицы). SanyL2)Проще прояснить моменты с целостностью данных Что понимается под этим термином: "целостность данных"? SanyL3)Модель более близка к реляционной теории Ничуть... Остальное не более убедительно. Единственное (но несомненное!) преимущество нормализации состоит в исключении АНОМАЛИЙ (об этом написано в любом приличном учебнике). Нормализация - это набор правил, основанных не на какой-то строгой математической теории, а на... здравом смысле. Соответственно, призывы к денормализации - это призыву к отходу от здравого смысла (не более, но и не менее, того). И опасность денормализации состоит только в возможности появления аномалий при "сборке" данных (что, как правило, проявляется не в момент разработки базы данных, а в момент ее эксплуатации). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 12:45 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
SemaphoreЕдинственное (но несомненное!) преимущество нормализации состоит в исключении АНОМАЛИЙ Не такая уж и плохая формулировка. SemaphoreНормализация - это набор правил, основанных не на какой-то строгой математической теории, а на... здравом смысле. Факт. SemaphoreСоответственно, призывы к денормализации - это призыву к отходу от здравого смысла Бред. Денормализация - это набор правил, основанных на том же самом здравом смысле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 13:25 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
softwarer SemaphoreЕдинственное (но несомненное!) преимущество нормализации состоит в исключении АНОМАЛИЙ Не такая уж и плохая формулировка. SemaphoreНормализация - это набор правил, основанных не на какой-то строгой математической теории, а на... здравом смысле. Факт. SemaphoreСоответственно, призывы к денормализации - это призыву к отходу от здравого смысла Бред. Денормализация - это набор правил, основанных на том же самом здравом смысле. 5! вообще-то любопытно, по такой теме и уже вторая страница... все вроде как ясно, но споры не стихают... пытка апельсинами продолжалась уже два часа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 13:31 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
softwarerДенормализация - это набор правил, основанных на том же самом здравом смысле. И нормализация тоже. P.S. платон мне друг, но истина дороже. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 13:35 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Спасибо, народ, вы спасли мое душевное здоровье :), когда долго варишься в собственном соку, начинаются странные вещи... В результате была проломлена нормализованная структура именно этого участка на основании того, что если одни запросы писать проще, то другие сложнее... Хотя, местные автоматизаторы мне это еще припомнят :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 15:57 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Заранее прошу прощения у всех за резкость - Пятница. Хрен. А JScript не пользовали? Уверяю, гораздо проще, чем на Перле. Не вижу связи. Или у Вас любой новый запрос вызывает икоту? gardenman. Никто не будет разбиратся в Вашем примере. Решение о денормализации принимается не на основе структуры, а на основе реальной скорости обработки, которая является функцией от общего объема информации. SanyL. Вы бы матчасть поучили, что ли. Особенно меня убили сведения, что нормализованые данные близки к реляционной теории. Реляционной теории это пофиг. Нормализация - это способ без дополнительных затрат получить целостность и непротиворечивость данных. Денормализация предполагает, что для этого нужно задействовать дополнительные механизмы поддержки целостности и непротиворечивости. Реализовать их можно по разному: тригерами, хранимыми процедурами, тразакциями с клиента (хотя я и ярый пртивник этого метода) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 20:08 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
SanyL 3)Модель более близка к реляционной теории Это как? Неормализованная далека от теории? В каком смысле? Она (теория) их всех как бы рассматривает, и грит о последствиях не нормализованных. Она же (теория) говорит и проблемах нормализации выше третьей нормальной формы. Semaphore Что понимается под этим термином: "целостность данных"? Удовлетворение данных некоторым логическим правила во всех состояниях БД. Вот пример, про сложности нормализации по 3НФБК: Пусть есть Договоры (Д), отделения (О) и подразделения (П) этих отделений. И пусть есть логическое правило: Только одно подразделение отдела может участвовать в конкретном договоре (Назовем правило S1). Очевидно есть фукциональная зависимость П->O, поскольку подразделение может принадлежать только одному подразделению (тоже логическое правило). Тогда есть функциональная зависмость ДП->О => ДП - ключ (потенциальный). Если нет правила S1, то отношение R(Д,О,П) - не удовлетворяет 3НФ, и схема может быть нормализована декомпозицией на отношения Q(Д,П), T(П,О). Но поскольку есть S1, и означает по сути ДО->П => атрибут О - первичный (входит в ключ). Отношение R(Д,О,П) - удовлетворяет 3НФ, но не удовлетворяет 3НФБК. Очевидно, там есть избыток: если подр п1 отделения о1 уже участвоало хоть в одном договре, то любое его участие в другом приведет к повторной записи о том что п1 принадлежит о1, хотя эта информация уже есть в БД п1. Однако, если нормализовать по 3НФБК декомпозицей как и раньше, то навязать схеме зависмосить ДО->П с помощью выделения ключей не удастся. Как следствие могут занести данные так, что в одном договоре будет участвовать несколько подразделений одного отделения - нарушение ограничения целостности S1. Чтобы схема находилась в 3НФ, и в схеме были прописаны ограничения целостности с помощью выделения ключей, ее придется привести к виду: R(Д,О,П), T(П,О) (и, например, объявить ключами в первом отношении пары {Д,О}, {Д,П}, а во втором {П}). Вот проектировщик стоит перед выбором: 1) схема R(Д,О,П), T(П,О) - ограничения целостности навязаны с помощью выделение ключей, но она не удовлетворяет 3НФБК и есть соответсвующая этому избыточность 2) схема R(Д,П), T(П,О) в 3НФБК - избытка нет, но нельзя с помощью выделения (обяъвления) ключей навязать правило одного подразденления отделения в договоре. Но могут разные подразделения разных отделений, т.е. с помощью внешних ключей тоже нельзя. Что лучше? Правда, в некоторых случаях на помощь 2 могут прийти триггера. Но в общем случае есть проблема выбора. Т.е. теория не может дать точных критериев оптимальной схемы во всех случаях, и потому пректирование может представлять из себя тскусство, наверное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 23:35 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Приветствую, vadiminfo! Проблема проектирования, описанная в Вашем примере, вызвана тем, что существует бизнес-правило, накладывающее ограничения на связь Д-П, вытекающие из связи П-О. И в жизни таких, а то и похуже, ограничений полным-полно. Проблема нормализации в этом примере может быть решена вводом идентифицирующего отношения П-О, когда O становится частью первичного ключа П и, далее, появляется в Д как часть FK. Рассмотренный случай демонстрирует, что ключом к каждой табличке проектируемой БД не всегда стоит делать суррогатный автоинкремент. Иногда нужно использовать составные ключи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 00:31 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
2 Urri Как раз я пытался сказать, что она не может быть решена в схеме 2 никак кроме, может быть, триггеров. Но мы их не рассматриваем. Т.е. ни превичными, ни альтернативными, ни внешними. То что Вы сказали про решение не совсем понял. Вы пишите когда O становится частью первичного ключа П и, далее, появляется в Д как часть FK. В этой фразе не понял в каком смысле О является частью первичного ключа П? П - это атрибут. Я выделенные ключи обозначал взятием в фигурные скобки. Т.е. {O,П} - это выделенный ключ (не важно первичный или альтернативный) - декларативно объявляется уникальность и запрет на пустые значения. Если П это ключ, в который входит О, то под ним вы понимаете, то что я под {O,П}? Или что? Просто П - использовано под обозначение атрибута, и ключи лучше по другому обозначать, чтобы не запутаться. И в какм смысле О появляется в Д? Д - пока обозначет единичный атрибут, а не множество атрибутов. Уточните Вы про первую схему или вторую говорите. В схеме 1 ограничения навязать можно - избыток остается (ненорамлизованность по НФБК). Во второй может быть только один FK, состоящий из единственного атрибута П. Т.е. О в FK никак не войдет. Суррогатный ключ ничего не меняет в это раскладе: не мешает и не помогает. Ключей то может быть много в схеме. Т.е. можно суррогаты добавить никак не повляияв на проблему. Я хотел продемонстрировать, что ограничения целостности могут вызывать проблемы при нормализации выше третьей нормальной формы. Есть выбор - либо то потеряем, либо это. Я там опечатку дал не 3НФБК, НФБК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 01:08 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
DarkBoatmanКурсор не причем. Выборка из таблицы с фильтрацией, которая заставляет сервер прочесть ее всю подряд иногда называется scanning. Индекс по фильтруемому полю создать не судьба? Насколько я вник, это такая типичная база, в которой количество селектов во мнорго раз превышает количество апдейтов. Для таких случаев чем больше индексированных полей - тем лучше. Соответственно, джойны по индексированным полям будут достаточно быстрыми. Соответственно, базу можно и нужно нормализовать до третьей формы. О чем тут неделю спорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 11:39 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
softwarer SemaphoreСоответственно, призывы к денормализации - это призыву к отходу от здравого смысла Бред. Денормализация - это набор правил, основанных на том же самом здравом смысле. Таким образом, Вы хотите сказать, что здравый смысл лежит в основе и нормализации, и ее отрицании. Вот это действительно бред! Денормализация - удел тех, кто не понимает очень простого правила: то как задумывалась БД, и то как она (в конечном счете) используется, разные вещи. Любая более или менее серьезная система имеет свою логику развития, которая может быть отличной от логики, заложенной разработчиком. (Дюма-отец говорил: "Не я управляю свими героями, но они водят кончик моего пера"). А, следовательно, велика вероятность того, что в денормализованной БД проявятся аномалии, и пользователи увидят информацию, которой... не существовало и не существует в реальности. Денормализация основана не на здравом смысле, а на благих пожеланиях, которыми, как известно, "вымощена дорога в ад". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 11:47 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
vadiminfo Semaphore Что понимается под этим термином: "целостность данных"? Удовлетворение данных некоторым логическим правила во всех состояниях БД. Вот пример, про сложности нормализации по 3НФБК: Пусть есть Договоры (Д), отделения (О) и подразделения (П) этих отделений. И пусть есть логическое правило: Только одно подразделение отдела может участвовать в конкретном договоре (Назовем правило S1). Очевидно есть фукциональная зависимость П->O, поскольку подразделение может принадлежать только одному подразделению (тоже логическое правило). Тогда есть функциональная зависмость ДП->О => ДП - ключ (потенциальный). Если нет правила S1, то отношение R(Д,О,П) - не удовлетворяет 3НФ, и схема может быть нормализована декомпозицией на отношения Q(Д,П), T(П,О). Но поскольку есть S1, и означает по сути ДО->П => атрибут О - первичный (входит в ключ). Отношение R(Д,О,П) - удовлетворяет 3НФ, но не удовлетворяет 3НФБК. Очевидно, там есть избыток: если подр п1 отделения о1 уже участвоало хоть в одном договре, то любое его участие в другом приведет к повторной записи о том что п1 принадлежит о1, хотя эта информация уже есть в БД п1. Однако, если нормализовать по 3НФБК декомпозицей как и раньше, то навязать схеме зависмосить ДО->П с помощью выделения ключей не удастся. Как следствие могут занести данные так, что в одном договоре будет участвовать несколько подразделений одного отделения - нарушение ограничения целостности S1. Чтобы схема находилась в 3НФ, и в схеме были прописаны ограничения целостности с помощью выделения ключей, ее придется привести к виду: R(Д,О,П), T(П,О) (и, например, объявить ключами в первом отношении пары {Д,О}, {Д,П}, а во втором {П}). Вот проектировщик стоит перед выбором: 1) схема R(Д,О,П), T(П,О) - ограничения целостности навязаны с помощью выделение ключей, но она не удовлетворяет 3НФБК и есть соответсвующая этому избыточность 2) схема R(Д,П), T(П,О) в 3НФБК - избытка нет, но нельзя с помощью выделения (обяъвления) ключей навязать правило одного подразденления отделения в договоре. Но могут разные подразделения разных отделений, т.е. с помощью внешних ключей тоже нельзя. Что лучше? Правда, в некоторых случаях на помощь 2 могут прийти триггера. Но в общем случае есть проблема выбора. Т.е. теория не может дать точных критериев оптимальной схемы во всех случаях, и потому пректирование может представлять из себя тскусство, наверное. Что лучше? Давайте разберемся. Итак, подразделение однозначно определяет отделение, которому принадлежит. То есть, П -> О - первая ФЗ. Вторая ФЗ: договор определяет подразделение (правило S1), то есть, Д -> П. В результате приходим к двум отношениям: R1(#П, О) и R2(#Д, П). Отношение R2 не позволит нам иметь более более одного подразделения для данного договора, а отношение R1 поставит однозначное соответствие между подразделением и отделением, которому оно принадлежит. Ваша ошибка вот здесь: "Тогда есть функциональная зависмость ДП->О => ДП - ключ (потенциальный)". Вы (напрасно) используете superkey, удалите из ключа договор (подразделение само однозначно определяет отделение). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 12:21 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Cat2Денормализация предполагает, что для этого нужно задействовать дополнительные механизмы поддержки целостности и непротиворечивости. Реализовать их можно по разному: тригерами, хранимыми процедурами, тразакциями с клиента (хотя я и ярый пртивник этого метода) Этот ответ стоит чуть дополнить. Ряд возможностей денормализации сегодня поддерживаются серверами БД, то есть "без дополнительных усилий". Это materialized view, это calculated fields, это nested tables и varrays, это, наконец, классический вариант включения дополнительного поля в уникальный ключ (приводящий к поддержанию целостности в дочерней таблице FK-constraint'ом). Можно назвать пару вещей, которые хоть формально не денормализация, но очень на нее похожи - на первом месте, безусловно, bitmap join indexes (это индекс который строится для таблицы A по значениям из таблицы B, взятых по внешнему ключу A->B). Это, собственно, умение "брать значения из индекса" - в MSSQL, как мне говорили, появляется специально заточенная под это фича "класть значения некоторых полей только в листья индекса, но не в промежуточные узлы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 12:32 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
softwarerРяд возможностей денормализации сегодня поддерживаются серверами БД, то есть "без дополнительных усилий". Это materialized view, это calculated fields, это nested tables и varrays, это, наконец, классический вариант включения дополнительного поля в уникальный ключ (приводящий к поддержанию целостности в дочерней таблице FK-constraint'ом). Можно назвать пару вещей, которые хоть формально не денормализация, но очень на нее похожи - на первом месте, безусловно, bitmap join indexes (это индекс который строится для таблицы A по значениям из таблицы B, взятых по внешнему ключу A->B). Это, собственно, умение "брать значения из индекса" - в MSSQL, как мне говорили, появляется специально заточенная под это фича "класть значения некоторых полей только в листья индекса, но не в промежуточные узлы". Во-первых, хотелось бы заметить, что создатели СУБД стремятся удовлетворить пожелания разработчиков программного обеспечения, далеко не всегда задумываясь о теоретических основах и последствиях своих решений. Об этом много говорилось на разных конференциях, например, посвященных вопросам стандартизации SQL (в частности, Joe Celko техническим редактором комитета стандартизации ANSI X3H2). Поэтому ссылаться на те или иные механизмы какой-то СУБД, надо с большой осторожностью, не забывая при этом, что большинство СУБД - коммерческие продукты и предназначены (в том числе) для получения прибыли (иногда потворствуя популизму). Во-вторых, опасно и то, что создатели СУБД порой весьма агрессивно пытаются "протащить" через стандарт те решения, которые приняты в данных СУБД, то есть, использовать стандарты, как средство конкурентной борьбы. 1. "materialized view" и "calculated fields" - эти два механизма не имеют никакого отношения к нормализации. Есть понятие таблицы и есть понятие представления (View) в полном соответствии со стандартом ANSI SPARC. Нормализация распространяется только на отношения (на концептуальном уровне), структуру таблиц (на физическом уровне), но не на view и не на вычисляемые поля, которые относятся к представительскому уровню. Никто и никогда не рассматривал вопросы нормализации на уровне представления информации. 2. "nested tables и varrays". Рассматривая вопрос о нарушении 1НФ посредством "сложных" структур, необходимо определиться с понятием атомарности атрибута. Например, является ли дата или строка атомарной величиной? Это относится и к вложенным структурам (таблицам) и массивам и BLOb полям. Почему строка, состоящая из символов, атомарна, а массив состоящий из элементов, неатомарен? То, что атомарно на одном уровне, может быть нетомарно на другом (более низком) уровне. Эта простая истина давно известна. Например, удобно хранить рабочий календарь на каждый месяц в массиве из 31 элемента. И если задача, стоящая перед разработчиком, не предусматривает рассмотрения отдельного элемента этого массива, то почему разработчик не может принять атомарность рабочего календаря? Какое же в этом нарушение 1НФ? 3. "классический вариант включения дополнительного поля в уникальный ключ (приводящий к поддержанию целостности в дочерней таблице FK-constraint'ом)". Что-то есть в этой "классике" от лукавого... Нет ни описания примера, ни рассмотрения альтернатив. Можно подробнее рассмотреть эту ситуацию "с поддержанием целостности"? 4. "Можно назвать пару вещей, которые хоть формально не денормализация"... Конечно, можно. Можно поговорить о погоде, например. Это тоже не имеет отношения к денормализации, но зато всегда злободневно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 14:31 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Semaphore. Не согласен с Вами. Денормализация - это обычный прием проектирования. Другое дело, что для ее применения нужно сто раз отмерить. И, необходимо, что бы проектировщик в полном объеме продумал и реализовал поддержку целостности и непротивороречивости. Немного перефразируя Вас () - денормализация - удел тех, кто четко и ясно понимает, к чему приведут ее последствия и знает как с этим боротся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 14:36 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Semaphore Ваша ошибка вот здесь: "Тогда есть функциональная зависмость ДП->О => ДП - ключ (потенциальный)". Вы (напрасно) используете superkey, удалите из ключа договор (подразделение само однозначно определяет отделение). К сожелению, Вы не совсем поняли смысл примера (о какой пробле речь идет). В отношении R(Д,О,П) Д не является ключем. И потому ДП - это не суперключ в этом отношении а просто ключ. Т.е. возможно Код: plaintext 1. 2. 3. 4. 5. Т.е. пользователь может ввести на один договор два подразделения одного отделения. Т.е. проблема осталась, тем более, что я такую схему описывал. Вот в схему 1 можно навязать, но она избыточна. Тема примера выбор между нормализацией по НФБК и ограничением целостности. Точнее навязыванием схеме функциональных зависимостей ПО. Плиз. Будьте внимательнее - решайте поставленную проблему, а не какую-то другую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 15:15 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Cat2Semaphore. Не согласен с Вами. Денормализация - это обычный прием проектирования Добавлю от себя. Денормализация - это обычный прием проектирования основанный на отсутствии здравого смысла... :) Cat2Другое дело, что для ее применения нужно сто раз отмерить. Что отмерять-то будете? Аномалии? Тут есть один "пунктик": бороться с аномалиями придется вне физической схемы БД с помощью триггеров, хранимых процедур, приложений и т.п. Но появится новый разработчик, который не знает об этих "обходных" решениях, и... тогда пользователи, администраторы БД и это самый разработчик скажут Вам большое "спасибо"... на нашем выразительном русском языке. Разработчики редко задумываются о том, что информация в БД может дорогого стоить! И забота о достоверности информации не бывает избыточной. Вырастут мощности "железа", улучшаться алгоритмы обработки информации, но достоверность информации при этом улучшиться не сможет! Cat2И, необходимо, что бы проектировщик в полном объеме продумал и реализовал поддержку целостности и непротивороречивости Не сочтите за труд и объясните, как обеспечить поддержку "целостности" и непротиворечивости. Есть у Вас в "кармане" набор более простых и ясных правил, чем правила нормализации? Можете их сформулировать? Премия Тьюринга Вам гарантирована! Ну, а мое внимание будет самым пристальным :) Итак, что необходимо сделать для повышения "целостности" и "непротиворечивости" при несоблюдении нормализации? Жду! Cat2Немного перефразируя Вас () - денормализация - удел тех, кто четко и ясно понимает, к чему приведут ее последствия и знает как с этим боротся. Ну, вот и раскройте существо этого "четкого и ясного понимания". А мы посмотрим, надо ли выбирать этот удел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 15:28 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Т.е. Ваша схема не допускает состояние БД Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Не может быть двух из одного отделения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 15:34 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Т.е. S1 это не Д -> П, а именно ДO -> П. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 15:38 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Т.е. суть проблемы, что как вы не объявляйте ключи в схеме R1(П, О) и R2(Д, П) Вы не навяжете функциональную зависмость ДO -> П. Но схема в НФБК. Это схема 1 (в смысле структуры - ключи объявлять можно любыми). В схеме R1(П, О) и R2(Д, П, О) можно навязать, например, объявив составной ключ {Д,О} среди прочих. Но такая схема не удовлетворяет НФБК из-за транзитивной зависимости {Д,П}->П->О, хотя и удовлетворяет 3НФ, поскольку О входит в состав ключа {Д,О}. Т.е. НФБК имеет проблемы с навязанностью функциональных зависмостей - не все ф зависимости ПО ей можно навязать. И стал быть с ограничениями целостности у нее проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 15:53 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Разумеется речь идет о том, что нельзя навязать 1 схеме ДO -> П без навязывания зависимостей, которых нет в ПО. Типа Д -> П. Потому что такое лекарство хуже болезни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 16:20 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Semaphore Добавлю от себя. Денормализация - это обычный прием проектирования основанный на отсутствии здравого смысла... :) Наоборот. Здравый смысл подсказывает, что в некоторых случаях можно поступится выгодами нормализации, ради выгод в скорости выбоорок. что отмерять-то будете? Аномалии?... Но появится новый разработчик, который не знает об этих "обходных" решениях Это вопрос о том, нужна ли для БД документация? К нормализации/денормализации никакого отношения не имеет Не сочтите за труд и объясните, как обеспечить поддержку "целостности" и непротиворечивости. Есть у Вас в "кармане" набор Ну есть такой набор. Если в какой-то таблице есть поле, значение которого может быть однозначно получено из других данных, занесенных в базу, то при обновлении таблиц от которых это значение зависит, должен быть сделан пересчет этого поля в единой транзакции с изменением данных в соответсвующих таблицах. Кажется написал путано, но понятно. Ну, вот и раскройте существо этого "четкого и ясного понимания". А мы посмотрим, надо ли выбирать этот удел. А вот этого не могу . Но эмпирический критерий есть. Если новая база у Вас на автомате получается сразу по 3NF, то "четкое и ясного понимание" у Вас есть. Отметьте, пожалуйста, что не ВО ВСЕХ базах имется данные, когорые надо нормализовать по 4 и 5 формах. +++++ Автоподпись - Близкий друг королевы Задолбало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 16:30 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
Cat2 Денормализация - это обычный прием проектирования. Такая постановка вопроса означет необходимость нормализации. Поскольку для того, чтобы денормализовать, нужно как минимум сначало нормализовать. Т.е. как бы на основной вопрос темы ответ - нормализация достаточно полезна. Cat2 Отметьте, пожалуйста, что не ВО ВСЕХ базах имется данные, когорые надо нормализовать по 4 и 5 формах Субя по всему уже у НФБК есть проблемы с ограничениями целостности. И если проетировщик выбрал их, то чего уж думать о 4 и 5 формах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 16:46 |
|
||
|
Насколько действительно полезна нормализация?
|
|||
|---|---|---|---|
|
#18+
SemaphoreВо-первых, хотелось бы заметить, что создатели СУБД стремятся удовлетворить пожелания разработчиков программного обеспечения,.....предназначены (в том числе) для получения прибыли (иногда потворствуя популизму) В-последних, хотелось бы ответить, что лично мне малоинтересен вопрос, какой бы красивой была сферическая СУБД в вакууме, если бы ей не требовалось решать прикладные задачи. Лет десять назад я как и Вы полагал, что serializable - единственный нормальный режим работы БД. Потом я смягчил свою позицию - и не вижу причин возвращаться в те времена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 19:06 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33043885&tid=1545900]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 372ms |

| 0 / 0 |
