2009-10-04 3 views
11

Здесь сказано:В чем разница между временной базой данных и исторической архивной базой данных?

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

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

В временном дБ см. Здесь temporal database modeling and normalisation нет отдельной таблицы, насколько я понимаю.

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

ответ

7

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

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

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

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

+0

+1 Хорошие наблюдения. –

+0

Если бы каждая нить на SO всегда была такой гражданской ... :) – DVK

6

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

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

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

+0

Это означает, что выбор критериев зависит от обработки данных? – programmernovice

+0

Это зависит от характера и использования поиска данных. Исторические таблицы, как правило, доступны только тогда, когда кто-то должен знать, кто внес изменения, что произошло, и когда это было сделано. Временные базы данных предназначены специально для выполнения запросов, основанных на времени, для данных, которые не имеют никакого отношения к истории изменений. Таким образом, они совершенно разные. –

+0

+1. Я добавил некоторые практические соображения: производительность в моем ответе. – DVK

1

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

Тип истории, о которой вы просили в этой другой теме, содержит наши (текущие!) вера в историю реальности.

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

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

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

Смежные вопросы