СУБД использует совершенно иной подход к хранению данных, чем базы данных объектов или ключей.
Реляционная модель предполагает, что вы не знаете, какие данные понадобятся в будущем,или как данные будут доступны в будущем.По моему опыту, это довольно надежное предположение.
Это одна из причин, по которой базы данных SQL позволяют добавлять индексы по мере необходимости и отбрасывать индексы, которые оказались бесполезными.Это позволит вам добавлять ограничения по мере их появления - ограничения, которые иногда требуют добавления большего количества таблиц - и удалять ограничения при изменении требований.Это позволит вам добавлять столбцы, когда вы обнаружите больше вещей, которые было бы полезно узнать.Это позволит вам заменить таблицы представлениями и заменить представления таблицами.Некоторые базы данных позволят вам создавать материализованные представления - их влияние на скорость запросов может быть драматичным, а их влияние на использование дисков - разрушительным.
Полезные базы данных расширяют сферу их применения.База данных SQL, разработанная в соответствии с реляционной моделью, позволяет относительно легко добавлять функции, о которых никто не мечтал во время первоначального проектирования, и без разрушения других частей системы .Поэтому их часто призывают делать то, что их первоначальные дизайнеры не представляли.
Все это
- добавление и удаление индексов с течением времени,
- добавление и удаление ограничений во времени,
- добавление и удаление столбцов во времени,
- добавление и удаление таблиц во времени,
делает любую оценку использования дискакак пустая трата времени.Любой из них может радикально изменить дисковое пространство, необходимое для базы данных.
Вы можете достаточно точно рассчитать пространство, необходимое для строки и страницы.(Попробуйте Google для «Макет строки YourDBMSname» и «Макет страницы YourDBMSname».) Но когда вы пытаетесь умножить на требуемое количество строк, вы должны оценить количество строк.Это ставит вас в тупик того, что Стив Макконнелл называет « конусом неопределенности ».
Если вы не измеряли использование диска в нескольких проектах с течением времени в своей собственной компании, оценить влияние этих вышеупомянутых пунктов просто предположительно.
Последняя компания из Fortune 100, в которой я работалимел оперативную базу данных, которая была в производстве с 1970-х годов.Сотни приложений, написанных на более чем 25 языках программирования в течение 40 лет, поражают эту вещь каждый день.(Я думаю, что он изначально был построен на IMS IBM; сегодня он работает на Oracle.)
Еще несколько лет назад никто не предполагал, что их база данных будет использоваться для перевода технических чертежей и спецификаций материалов на китайский язык.а также для производства таможенных документов, необходимых для вывоза готовой продукции из Китая.Реализация этих новых функций требовала хранения дополнительных данных о каждой детали и о каждом проектном документе в их оперативном инвентаре.В начале этого проекта наши оценки были довольно далеки.Это большой конец конуса.(Мы оценили несколько вещей, но не использование диска. Мы были обязаны преуспеть, поэтому, какой бы дизайн я ни придумал, кто-то должен был бы предоставить необходимое дисковое пространство.) Но когда мы начали работу, мы знали точное значение для каждогооценка, потому что мы уже сделали работу.(Это узкий конец конуса.)
Итак, как снизить риск угадывания в среде проектирования и развертывания базы данных?Возьмите урок 1972 года.
Постройте прототип и измерьте его.
Инженеры-химики давно узнали, что процесс, который работает в лаборатории, не может бытьосуществляется на заводе всего за один шаг.Промежуточный этап, называемый пилотной установкой , необходим для получения опыта в увеличении количества и работе в незащищенных средах.,,,
. , , Проект за проектом разрабатывает набор алгоритмов, а затем погружается в создание поставляемого клиентом программного обеспечения в соответствии с графиком, который требует поставки первого созданного. , , .
Поэтому вопрос управления заключается не в в том, построить ли пилотную систему и выбросить ее. Вы будете делать это. Единственный вопрос заключается в том, планировать ли заранее создание одноразового использования или пообещать предоставить одноразовое обслуживание клиентам.
Фред Брукс-младший, в Мифический человеко-месяц , стр. 116.