В чем разница между временной базой данных и исторической архивной базой данных? - PullRequest
12 голосов
/ 05 октября 2009

Здесь сказано:

http://www.ibm.com/developerworks/web/library/wa-dbdsgn2.html

Каждая таблица в БД должна иметь таблицу истории, отражающую всю историю первичной таблицы.Если необходимо обновить записи в первичной таблице, старое содержимое записи сначала копируется в таблицу истории, прежде чем будет выполнено обновление.Таким же образом удаленные записи в первичной таблице копируются в таблицу истории перед удалением из первичной таблицы.Таблицы истории всегда имеют имя соответствующей основной, но с добавленным _Hist.

Во временной базе данных см. Здесь моделирование и нормализация временной базы данных отдельной таблицы не существуетнасколько я понимаю.

Так, когда я должен создать другую таблицу или нет?

Ответы [ 3 ]

8 голосов
/ 05 октября 2009

То, что Роберт сказал теоретически - добавить нечего.

Практически , временная таблица по сравнению с основной + историческая таблица, имеет другие значения.

Для данных с высокой степенью обслуживания (например, количество обновлений / удалений значительно превышает количество вставок), наличие хронологической таблицы (иногда также называемой «аудит» - поскольку это основной механизм обеспечения отслеживания данных БД) позволяет сохранять основные таблица достаточно небольшого размера по сравнению с хранением информации аудита внутри самой основной таблицы. Это может иметь существенное влияние на производительность как для селекторов, так и для вставок в основной таблице, особенно в свете оптимизации индекса, описанной ниже.

В довершение всего, индексы в таблице историй / аудита не обязательно должны быть на 100% идентичны основной таблице, то есть вы можете не указывать индексы, которые не нужны для запроса данных аудита из базы данных историй (что ускоряет вставки в таблицу аудита) и, наоборот, оптимизировать, какие индексы существуют для конкретных запросов аудита (включая упорядочение таблицы по метке времени через кластеризованный индекс), не обременяя основную таблицу теми индексами, которые замедляют изменения данных (и в случае кластеризации во время обновления столкновение с кластеризованным индексом основной таблицы, поэтому обычно его нельзя кластеризовать во временном порядке).

6 голосов
/ 05 октября 2009

Таблицы истории предоставляют историю (как правило, не временных) изменений, внесенных пользователями в первичные записи базы данных. Эта история носит архивный характер (то есть к ней иногда обращаются в исторических целях). Временная информация (когда было внесено изменение) носит вторичный характер.

Временная база данных разработана специально для выполнения временных запросов. Временная информация является первичной по своей природе и хранится в сети для немедленного извлечения. Вторая таблица не создается, если только не требуется архивирование.

http://en.wikipedia.org/wiki/Temporal_database

1 голос
/ 05 октября 2009

Таблица истории, о которой говорится в этой статье developerworks, представляет собой таблицу, в которой хранится история базы данных (т. Е. История наших убеждений о реальности).

История, о которой вы спрашивали в другой ветке, отражает наше (текущее!) Мнение об истории реальности.

Обратите внимание на разницу. Они согласны только в той степени, в которой наши прошлые представления о реальности действительно были правильными. И это не всегда 100%.

Если вы используете первое как второе, то вы в некотором смысле предполагаете, что эта степень совпадения действительно равна 100%, т.е. что все ваши прошлые убеждения о реальности всегда и по определению совпадали с реальностью, т.е. что у вас невозможно иметь какое-либо ошибочное представление о реальности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...