Подтвердить что ты не робот

Где все внутренние измененные базы данных?

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

Я сбиваю с толку, что API уже практически работает с транзакциями. Мы начинаем транзакцию, изменяем некоторые данные и совершать. Мы также проверяем подлинность базы данных, чтобы она виновата. Моя компания хранит в конце месяца версии всей нашей базы данных для целей учета, которые приравниваются к тэгам. Это не кричит RCS?

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

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

У меня есть вопрос где-то там...

4b9b3361

Ответ 1

Одним из нативных решений является Oracle База данных Flashback (aka Total Recall). Это дополнительное дополнение к Enterprise Edition, но это довольно круто. Он прозрачно хранит версии данных до тех пор, пока мы хотим их сохранить, и предоставляет синтаксис для запроса старых версий данных. Он может быть включен по таблице за таблицей.

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

Ответ 2

Вы можете читать временные базы данных.

В "Временные данные и реляционная модель" по дате, Дарвену и Лоренцосу авторы вводят шестая нормальная форма для учета проблем при отслеживании временных данных.

Ричард Снодграсс предложил TSQL2 в качестве расширения SQL для обработки временных данных.

Реализации включают:

Ответ 3

Несколько СУБД реализуют механизмы управления версиями на уровне двигателя. К сожалению, для этого нет независимого от поставщика стандарта, поэтому они все являются собственностью. Oracle flashback уже упоминался. Функция Microsoft Change Data Capture в SQL Server - это еще одна.

Ответ 4

Ты забыл, что мне нужна производительность. СУБД представляет собой довольно низкий уровень хранения данных, и в системах с миллиардами строк производительность может быть важной. Поэтому, если вы хотите эту систему аудита, вы можете сами ее создать, используя доступные вам инструменты (например, триггеры).

Как и в файловой системе, не все файлы подходят для управления версиями, в базе данных не все строки также подходят для управления версиями.