Примечание
Эта тема обсуждается, и на эту тему ссылаются в других темах, поэтому я отнесся к ней разумно, пожалуйста, потерпите меня.Мое намерение состоит в том, чтобы обеспечить понимание, чтобы вы могли принимать обоснованные решения, а не упрощенные, основанные только на ярлыках.Если вы находите это интенсивным, читайте его кусками на досуге;возвращайтесь, когда вы голодны, а не раньше.
Что, собственно, о EAV, "плохо"?
1 Введение
Существует разница между EAV, выполненным правильно и плохо, так же, как есть разница между 3NF, сделанным правильно и сделанным плохо.В нашей технической работе мы должны быть точными о том, что именно работает, а что нет;о том, что хорошо, а что нет.Общие заявления опасны, вводят людей в заблуждение и, таким образом, мешают прогрессу и всеобщему пониманию соответствующих вопросов.
Я не за или против чего-либо, кроме плохой реализации неквалифицированными работниками и искажения уровня соответствия стандартам.И там, где я вижу недопонимание, как здесь, я попытаюсь устранить его.
Нормализация также часто неправильно понимается, так что об этом.Вики и другие бесплатные источники фактически публикуют совершенно бессмысленные «определения», которые не имеют академической основы, которые имеют пристрастия вендоров для проверки своих нестандартных продуктов.Там Кодд опубликовал свои Двенадцать Правил.Я применяю минимум 5NF, что более чем достаточно для большинства требований, поэтому я буду использовать это в качестве основы.Проще говоря, предполагая, что третья нормальная форма понята читателю (по крайней мере, это определение не перепутано) ...
2 Пятая нормальная форма
2.1Определение
Пятая нормальная форма определяется как:
- каждый столбец имеет отношение 1 :: 1 с первичным ключом, только
- и не имеетдругой столбец, в таблице или в любой другой таблице
- результат - нет дублированных столбцов, нигде;Нет аномалий обновления (нет необходимости в триггерах или сложном коде, чтобы гарантировать, что при обновлении столбца его дубликаты обновляются правильно).
- это повышает производительность, поскольку (а) влияет на меньшее количество строк и (б) улучшаетпараллелизм из-за уменьшенной блокировки
Я делаю различие, это не то, что база данных Нормализована к определенной NF или нет;база данных просто нормализована.Дело в том, что каждая таблица нормализована к определенной NF: для некоторых таблиц может потребоваться только 1NF, для других - 3NF, а для других - 5NF.
2.2 Производительность
Было время, когда люди думали, что нормализация не обеспечивает производительность, и им приходилось «денормализовать производительность».Слава Богу, что этот миф развенчан, и большинство ИТ-специалистов сегодня понимают, что нормализованные базы данных работают лучше.Поставщики баз данных оптимизируют работу с нормализованными базами данных, а не с денормализованными файловыми системами.Истина «денормализована» заключается в том, что база данных НЕ была нормализована во-первых (и она работала плохо), она была ненормализована, и они предприняли некоторые дополнительные меры для повышения производительности.Для того, чтобы быть денормализованным, он должен быть сначала точно нормализован, а этого никогда не было.Я переписал множество таких «денормализованных для производительности» баз данных, обеспечивающих точную нормализацию и ничего более, и они работали как минимум в десять, а также в сто, раз быстрее.Кроме того, им требуется только часть дискового пространства.Это настолько пешеход, что я гарантирую выполнение упражнения в письменном виде.
2.3 Ограничение
Ограничения, или, скорее, полная степень 5NF:
- он не обрабатывает необязательные значения, и необходимо использовать пустые значения (многие разработчики не допускают пустые значения и используют заменители, но это имеет ограничения, если оно не реализовано должным образом и непротиворечиво)
- вам все еще нужно изменить DDL, чтобы добавить или изменить столбцы (и появляется все больше и больше требований для добавления столбцов, которые не были первоначально определены после реализации; управление изменениями обременительно)
- , хотя обеспечивает наивысший уровень производительности благодаря нормализации (читай: устранение дубликатов и запутанных отношений), сложным запросам, таким как поворот (создание отчета по строкам или сводок по строкам, выраженным в виде столбцов) и «доступ к столбцам» как требуется для операций с хранилищем данных, сложны, и только эти операции неэффективны. Не потому, что это связано только с доступным уровнем навыков SQL, а не с движком.
3 Шестая нормальная форма
3.1 Определение
Шестая нормальная форма определяется как:
- Отношение (строка) - это первичный ключ плюс максимум один атрибут (столбец)
Он известен как Неуменьшаемая Нормальная форма, предельная НФ, потому что больше нет Нормализации, которая может быть выполнена . Хотя это обсуждалось в научных кругах в середине девяностых, оно было официально объявлено только в 2003 году. Для тех, кто любит клеветать на формальность реляционной модели, путая отношения, релевары, «отношения» и тому подобное: все, что может вздор укладываться в постель, потому что формально вышеприведенное определение идентифицирует неприводимое отношение , иногда называемое атомным отношением.
3.2 Прогрессия
Приращение, которое обеспечивает 6NF (а 5NF - нет):
- формальная поддержка необязательных значений и, следовательно, устранение нулевой проблемы
- побочным эффектом является то, что столбцы могут быть добавлены без изменений DDL (более позднее)
- поворот без усилий
- простой и прямой столбчатый доступ
- это позволяет (не в виде ванили) еще более высокий уровень производительности в этом отделе
Позвольте мне сказать, что я (и другие) поставлял улучшенные таблицы 5NF 20 лет назад, явно для поворота, без каких-либо проблем, и таким образом позволил (а) использовать простой SQL и (б) обеспечить очень высокую производительность ; было приятно узнать, что академические гиганты отрасли формально определили, что мы делаем. Ночью мои 5NF столы были переименованы в 6NF, и я не поднял палец. Во-вторых, мы делали это только там, где это было нужно; опять же, это была таблица, а не база данных, которая была нормализована до 6NF.
3.3 Ограничение SQL
Это громоздкий язык, особенно повторное соединение, и выполнение чего-либо достаточно сложного делает его очень громоздким. (Это отдельная проблема, которую большинство кодеров не понимают или не используют подзапросы.) Он поддерживает структуры, необходимые для 5NF, но только справедливо. Для надежных и стабильных реализаций необходимо реализовать дополнительные стандарты, которые могут частично состоять из дополнительных каталожных таблиц. Дата «использования» для SQL хорошо и действительно прошла в начале девяностых; он полностью лишен какой-либо поддержки таблиц 6NF и отчаянно нуждается в замене. Но это все, что у нас есть, поэтому нам нужно просто справиться с этим .
Для тех из нас, кто внедрял стандарты и дополнительные таблицы каталогов, не было серьезных усилий расширить наши каталоги, чтобы обеспечить возможность, необходимую для поддержки структур 6NF до стандарта : какие столбцы принадлежат каким таблицы и в каком порядке; обязательное / факультативное; формат отображения; и т. д. По сути, полный каталог метаданных, объединенный с каталогом SQL.
Обратите внимание, что каждая NF содержит в себе каждую предыдущую NF, поэтому 6NF содержит 5NF.Мы не сломали 5NF, чтобы обеспечить 6NF, мы обеспечили прогрессию от 5NF;и там, где не хватало SQL, мы предоставили каталог.Что это означает, основные ограничения, такие как для внешних ключей;и домены значений, которые были предоставлены посредством декларативной ссылочной целостности SQL;Типы данных;ПРОВЕРКИ;и ПРАВИЛА на уровне 5NF остались нетронутыми, и эти ограничения не были подорваны.Высокое качество и высокая производительность стандартных 5NF-баз данных никоим образом не были снижены благодаря внедрению 6NF.
3.4 Каталог
Важно защитить пользователей (любойинструмент отчета) и разработчикам, от необходимости иметь дело с переходом от 5NF к 6NF (это их работа, чтобы быть фанатами кодирования приложений, моя работа, чтобы быть фанатом базы данных).Даже в 5NF это всегда было целью для меня: правильно нормализованная база данных с минимальным каталогом данных на самом деле довольно проста в использовании, и я не собирался отказываться от этого.Имейте в виду, что из-за нормального обслуживания и расширения структуры 6NF со временем меняются, новые версии базы данных публикуются через равные промежутки времени.Без сомнения, SQL (уже громоздкий в 5NF), необходимый для построения строки 5NF из таблиц 6NF, еще более громоздок.С благодарностью, это совершенно не нужно.
Поскольку у нас уже был наш каталог, в котором был указан полный 6NF-DDL-что-SQL-не-предоставить-если хотите, я написал небольшую утилиту для чтения каталога и:
- сгенерировать таблицу 6NF DDL.
- генерирует 5NF VIEWS из 6NF таблиц.Это позволило пользователям оставаться в блаженном неведении о них и дать им те же возможности и производительность, что и при 5NF
- , чтобы генерировать полный SQL (не шаблон, у нас он есть отдельно), необходимый для работы с 6NFструктуры, которые затем используют кодеры.Они освобождаются от скуки и повторения, которые требуются в противном случае, и могут свободно концентрироваться на логике приложения.
Я не написал утилиту для Pivoting, поскольку сложность, существующая в 5NF, устранена, и онитеперь просто написать, как с 5NF-расширенным для поворота.Кроме того, большинство инструментов отчетов предоставляют возможность поворота, поэтому мне нужно только предоставить функции, которые включают в себя большое количество статистики, которую необходимо выполнить на сервере перед отправкой клиенту.
3.5 Производительность
У каждого есть своя «болезнь» страдать, свой крест нести;Я был одержим Производительностью.Мои базы данных 5NF работали хорошо, поэтому позвольте мне заверить вас, что я запустил гораздо больше тестов, чем было необходимо, прежде чем что-то запускать в производство.База данных 6NF работает точно так же, как база данных 5NF, не лучше и не хуже.Это неудивительно, потому что единственное, что делает «сложный» 6NF SQL, а 5NF SQL не выполняет, - это выполняет гораздо больше соединений и подзапросов.
Вы должны изучить мифы.
- Любой, кто оценил проблему (т.е. изучил планы выполнения запросов), будет знать, что Объединение ничего не стоит , это разрешение во время компиляции, они не влияют на время выполнения.
- Да, конечно, количество соединяемых таблиц, размер объединяемых таблиц, можно ли использовать индексы, распределение соединяемых ключей и т. Д., Все стоит что-то.
- Но само соединение ничего не стоит.
- Запрос к пяти (большим) таблицам в ненормализованной базе данных намного медленнее, чем эквивалентный запрос к десяти (меньшим) таблицам в той же базе данных, если он был нормализован.ни четыре, ни девять объединений ничего не стоят, они не фигурируют в проблеме производительности, выбранный набор в каждом объединении имеет значение.
3,6 Пособие
Неограниченный столбчатый доступ. Это то, где 6NF действительно выделяется. Прямой столбчатый доступ был настолько быстрым, что не было необходимости экспортировать данные в хранилище данных для получения скорости из специализированных структур DW.
Мои исследования нескольких DW, отнюдь не завершенные, показывают, что они последовательно хранят данные по столбцам, а не по строкам, что в точности и делает 6NF. Я консервативный, поэтому я не собираюсь делать никаких заявлений о том, что 6NF заменит DW, но в моем случае это исключило необходимость в них.
Было бы несправедливо сравнивать функции, доступные в 6NF, которые были недоступны в 5NF (например, Pivoting), который, очевидно, работал намного быстрее.
Это была наша первая настоящая база данных 6NF (с полным каталогом и т. Д .; в отличие от всегда 5NF с улучшениями только по мере необходимости; позже выяснилось, что это 6NF), и клиент очень доволен. Конечно, я следил за производительностью в течение некоторого времени после доставки, и я определил еще более быстрый метод колонного доступа для моего следующего проекта 6NF. Это, когда я это сделаю, может создать конкуренцию на рынке DW. Заказчик не готов, и мы не исправляем то, что не сломано.
3.7 Что, собственно, о 6NF, "плохо"?
Обратите внимание, что не все будут подходить к работе с такой формальностью, структурой и соблюдением стандартов. Поэтому было бы глупо сделать вывод из нашего проекта, что все базы данных 6NF работают хорошо и просты в обслуживании. Было бы также глупо заключать (глядя на реализации других), что все базы данных 6NF работают плохо, их сложно поддерживать; бедствий. Как всегда, при любых технических усилиях результирующая производительность и простота обслуживания строго зависят от формальности, структуры и соблюдения стандартов в дополнение к соответствующему набору навыков.
3,8 Доступность
Пожалуйста, не подвергайте себя и не просите ничего, выходящего за рамки стандартной коммерческой практики, например, «опубликованные ссылки», клиент - австралийский банк, вся реализация является конфиденциальной; но я свободен брать перспективы на посещения. Вы также можете просматривать (но не копировать) документацию в наших офисах в Сиднее. Методология (структуры и стандарты, выходящие за рамки общедоступного образования 6NF) и коммунальные услуги являются нашей интеллектуальной собственностью и доступны для выполнения заданий. На данном этапе я продаю его только как часть задания, потому что (а) мне нужно разумно обеспечить успех проекта (чтобы не подорвать нашу репутацию), и (б) одного успешного проекта под нашими поясами недостаточно зрелость, чтобы классифицировать его как «готовый к продаже».
Я с удовольствием продолжу отвечать на вопросы и предоставлять полезную информацию о каталоге 6NF, советы о том, что работает, а что нет и т. Д., Без фактической публикации нашего IP (документации). Я также рад провести квалифицированные тесты для вас.
4 Значение атрибута сущности
Раскрытие: опыт. Я проверил некоторые из них, в основном больничные и медицинские системы. Я выполнил корректирующие задания по двум из них. Первоначальная поставка зарубежным провайдером была вполне адекватной, хотя и незначительной, но расширения, реализованные местным провайдером, были беспорядочными. Но совсем не беда, которую люди разместили на сайте. Интенсивная работа за несколько месяцев привела их в порядок.
4,1 Что это такое
Для меня было очевидно, что реализации EAV, над которыми я работал, являются лишь подмножествами Шестой Нормальной Формы.Те, кто внедряет EAV, делают это, потому что они хотят некоторые функций 6NF (например, возможность добавлять столбцы без изменений DDL), но у них нет академических знаний для реализации настоящего 6NF или стандартов иструктуры для его реализации и администрирования безопасно .Даже первоначальный поставщик не знал о 6NF или о том, что EAV был подмножеством 6NF, но они с готовностью согласились, когда я указал им на это.Поскольку структуры, требуемые для обеспечения EAV и, действительно, 6NF, эффективно и действенно (каталог; Представления; автоматическая генерация кода) формально не определены в сообществе EAV и отсутствуют в большинстве реализаций, я классифицирую EAV как ублюдочный сынШестая нормальная форма .
4.2 Что, собственно, о EAV, является "плохим"?
По комментариям в этой и других темах, да,EAV сделано плохо, это катастрофа.Более важно (а) они настолько плохи, что производительность, обеспечиваемая в 5NF (забыть 6NF), теряется и (б) обычная изоляция от сложности не была реализована (кодеры и пользователи «вынуждены» использовать громоздкую навигацию).И если бы они не внедрили каталог, все виды предотвратимых ошибок не были бы предотвращены.Все это может быть справедливо для плохих (EAV или других) реализаций, но это не имеет ничего общего с 6NF или EAV.Два проекта, над которыми я работал, имели вполне адекватную производительность (конечно, ее можно было улучшить; но не было плохой производительности из-за EAV ) и хорошую изоляцию сложности.Конечно, они не были близки к качеству или производительности моих баз данных 5NF или моей настоящей базы данных 6NF, но они были достаточно справедливыми, учитывая уровень понимания опубликованных проблем в сообществе EAV.Это были , а не бедствия и нестандартная ерунда, которые, как утверждается, были EAV на этих страницах.
5 Нули
Существует хорошо известнаяи задокументированная проблема под названием «Нулевая проблема».Это достойно эссе само по себе.Для этого поста достаточно сказать:
- проблема действительно в дополнительном или отсутствующем значении;здесь рассматривается дизайн таблицы так, что столбцы Null vs Nullable
- на самом деле не имеют значения, потому что независимо от того, используете ли вы Nulls / No Nulls / 6NF для исключения пропущенных значений, у вас будетчтобы кодировать для этого , проблема именно тогда заключается в обработке пропущенных значений , которые нельзя обойти
- , за исключением, конечно, чистого 6NF, который устраняетНулевая проблема
- код для обработки пропущенных значений остается
- , за исключением случаев с автоматической генерацией кода SQL, хе-хе
- Нулевые значения являются плохой новостью для производительности, и многие из нас десятилетия назад решили не допускать нулевые значения в базе данных (нулевые значения в переданных параметрах и наборах результатов для обозначения пропущенных значений вполне подходят)
- что означает набор пустых заменителей и логических столбцов для обозначения пропущенных значений
- Нули приводят к тому, что в противном случае фиксированные столбцы len будут переменными len;столбцы переменных len должны никогда не использоваться в индексах, поскольку при каждом доступе к каждой записи индекса необходимо выполнять небольшую «распаковку».
6 Должность
Я не сторонник EAV или 6NF, я сторонник качества и стандартов.Моя позиция:
Всегда, во всех отношениях, делайте все, что вы делаете, с наивысшим из известных вам стандартов.
Нормализацияв третью нормальную форму минимальна для реляционной базы данных (5NF для меня).DataTypes, декларативная ссылочная целостность, транзакции, нормализация - все это основные требования базы данных;если они отсутствуют, это не база данных.
- Если вам нужно «денормализовать для производительности», вы допустили серьезные ошибки нормализации, ваш дизайн не нормализован. Период. Не «денормализовать», наоборот, учиться нормализации и нормализации.
Нет необходимости выполнять дополнительную работу. Если ваше требование может быть выполнено с 5NF, не реализуйте больше. Если вам нужны дополнительные значения или возможность добавлять столбцы без изменений DDL или полного устранения нулевой проблемы, используйте 6NF, только в тех таблицах, где они нужны .
Если вы сделаете это, только из-за того, что SQL не обеспечивает надлежащей поддержки 6NF, вам нужно будет реализовать:
- простой и эффективный каталог (перепутывание столбцов и потеря целостности данных просто недопустимы)
- 5NF-доступ к таблицам 6NF через VIEWS, чтобы изолировать пользователей (и разработчиков) от обремененного (не «сложного») SQL
- пишите или покупайте утилиты, чтобы вы могли сгенерировать громоздкий SQL для построения строк 5NF из таблиц 6NF и избежать написания одинаковых
- измерять, контролировать, диагностировать и улучшать. Если у вас есть проблемы с производительностью, вы сделали (а) ошибку нормализации или (б) ошибку кодирования. Период. Сделайте резервную копию нескольких шагов и исправьте это.
Если вы решите использовать EAV, узнайте, что это такое, 6NF, и правильно его примените, как описано выше. Если вы это сделаете, у вас будет успешный проект, гарантировано. Если вы этого не сделаете, у вас будет собачий завтрак, гарантированный.
6.1 Нет такого понятия, как бесплатный обед
Эта пословица упоминалась, но на самом деле она использовалась неправильно. То, как это на самом деле глубоко применимо, описано выше: если вы хотите использовать преимущества 6NF / EAV, вам лучше быть готовым выполнить работу, необходимую для его получения (каталог, стандарты). Конечно, следствие состоит в том, что если вы не выполняете работу, вы не получите выгоды. Здесь нет «потери» типов данных; Домены значения; Внешние ключи; Проверки; Правила. Что касается производительности, то для 6NF / EAV нет снижения производительности, но всегда есть существенное снижение производительности для скользкой, нестандартной работы.
7 Конкретный вопрос
Наконец-то. С учетом вышеизложенного контекста и того, что это небольшой проект с небольшой командой, нет никаких сомнений:
- Не используйте EAV (или 6NF в этом отношении)
- Не используйте пустые или пустые столбцы (если вы не хотите подорвать производительность)
- Использовать единую таблицу платежей для столбцов общих платежей
- и дочерняя таблица для каждого PaymentType, каждый со своими конкретными столбцами
Все полностью типизированы и ограничены.
Что это за бизнес "еще один row_id"? Почему некоторые из вас прикрепляют удостоверение личности ко всему, что движется, не проверяя, является ли это олень или орел? Нет. Ребенок - ребенок-иждивенец. Соотношение 1 :: 1. PK ребенка - это PK родителя, общая таблица платежей. Это обычный кластер Supertype-Subtype, дифференциатором является PaymentTypeCode. Подтипы и супертипы являются обычной частью реляционной модели и полностью учитываются как в базе данных, так и в любом хорошем инструменте моделирования.
Конечно, люди, которые не знают реляционных баз данных, думают, что они изобрели его 30 лет спустя, и называют его забавными новыми именами. Или, что еще хуже, они сознательно переименуют его и заявляют, что это их собственные. Пока какой-то бедняга, с небольшим образованием и профессиональной гордостью, не разоблачает невежество или мошенничество. Я не знаю, кто это, но это один из них; Я просто констатирую факты, которые легко подтвердить.
Спасибо, что остались со мной до конца.
A. Ответы на комментарии
A.1 Атрибуция
Мое заявление, что «я верен РМ», и обращение к «Гигантам индустрии», я предполагал, что ИТ-специалисты поймут, что это значит.Смиренные извинения.
- У меня нет личных или частных или специальных определений.Все утверждения, касающиеся определения (например, императивы):
- Нормализация,
- Нормальные формы и
- Реляционная модель.
.
см. Множество оригинальных текстов. Авторы EF Codd и CJ Date (недоступно бесплатно в Интернете)
.
Последним является Временные данные и реляционная модель от CJСвидание, Хью Дарвен, Никос Лоренцо
.
и ничего, кроме этих текстов
.
"Я стою на плечах великанов"
.
- Суть, тело, все утверждения, касающиеся реализации (например, субъективное и от первого лица) из вышеперечисленного, основаны на опыте;Внедрение вышеуказанных принципов и концепций в качестве коммерческой организации (наемного консультанта или управляющего консультанта) в крупных финансовых учреждениях в Америке и Австралии в течение 32 лет.
- Сюда входит исправление множества крупных заданий илизамена нестандартных или нереляционных реализаций.
.
- Нулевая проблема по отношению к шестой нормальной форме
Свободно доступная Белая книга, относящаяся к названию (она не определяет Только Нулевая проблема.* A.2 Подтверждающие доказательства - Как указывалось в самом начале, цель этого поста состоит в том, чтобы противостоять дезинформации, которая распространена в этом сообществе, как услуга для сообщества.
- Подтверждающие заявления, сделанные в отношении реализации вышеуказанных принципов, могут быть предоставлены, если и когда будут определены конкретные заявления;и в той же степени, что неправильные заявления, опубликованные другими, на которые этот пост является ответом, также подтверждаются.Если будет драка с булочками, давайте удостоверимся, что игровое поле имеет уровень
Вот несколько документов, на которые я могу немедленно возложить руки, чтобы начать (я нахожусь в назначении вNZ, предоставит больше через пару дней, имена клиентов должны быть запутаны).
a. Крупный банк
Это лучший пример, поскольку он был предпринят по недвусмысленным причинам в этом посте, и цели были достигнуты.У них был бюджет на Sybase IQ (продукт DW), но отчеты были настолько быстрыми, когда мы закончили проект, им это не нужно.Торговой аналитической статистикой были мои 5NF плюс поворотные расширения, которые оказались 6NF , как описано выше.Я думаю, что на все вопросы, заданные в комментариях, были даны ответы в документе, кроме:
- количество строк:
- старая база данных неизвестна, но ее можно экстраполировать из другой статистики
- новая база данных= 20 столов на 100М, 4 стола на 10Б.
б. Малый финансовый институт Часть A
Часть B - Мясо
Часть C - Ссылочные диаграммы
Часть D - Приложение, Аудит индексов до / после (1 строка на индекс)
Обратите внимание на четыре документа; четвертый только для тех, кто хочет проверить подробные изменения индекса. Они запускали сторонние приложения, которые нельзя было изменить, потому что у местного поставщика не было бизнеса, плюс 120% расширений, которые они могли, но не хотели менять. Мы были вызваны, потому что они обновили до новой версии Sybase, которая была намного быстрее, что сдвинуло различные пороги производительности, что вызвало большое отсутствие взаимоблокировок. Здесь мы нормализовали абсолютно все на сервере , за исключением модели db, с целью (заранее гарантированной) устранения взаимоблокировок (извините, я не собираюсь объяснять это здесь: люди, которые спорят о проблеме «денормализации») , будет в розовой форме об этом). Он включал в себя инверсию «разбиения таблиц в архивную базу данных по производительности», что является предметом другого поста (да, новая отдельная таблица работала быстрее, чем две разлитые). Это упражнение применимо и к MS SQL Server [вставьте переписанную версию].
с. Йельская больница Нью-Хейвена
Это Йельская школа медицины, их учебная больница. Поддерживаю их годами. Стороннее приложение поверх Sybase. Проблема со статистикой в 80% случаев, когда они собирали снимки только в назначенные тестовые периоды, но без единой истории, поэтому нет «изображения перед», с которым можно сравнить нашу новую непротиворечивую статистику. Я не знаю ни одного другого сотрудника, который мог бы получать внутреннюю статистику Unix и Sybase на тех же графиках, в автоматическом режиме . Теперь сеть является порогом (поверьте, читатель понимает, что это хорошо).
Просто для начала, что было очищено для публикации. Больше позже. Хорошо, давайте представим доказательства того, что «денормализация» повышает производительность »и т. Д. Ваша очередь.
A.3 Длина
- Я не прошу прощения за длину или сжатый характер. Люди с небольшим вниманием (без обид, в наши дни это реальность) или те, кто не знаком с реляционной технологией или терминологией, должны ссылаться на исходные тексты или сторонников этой технологии.
- По определению, это исключает Вики и любого, кто клеветает на упомянутую технологию, например, постеры, на которые этот пост является ответом. Для слона невозможно определить газель; и если они постулируют о жизни газелей, мы не должны их слушать.