Где все родные пересмотренные базы данных? - PullRequest
12 голосов
/ 27 апреля 2010

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

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

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

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

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

Ответы [ 4 ]

3 голосов
/ 27 апреля 2010

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

В «Временные данные и реляционная модель» от Date, Darwen и Lorentzos авторы вводят шестую нормальную форму для учета проблем в отслеживании временных данных. *

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

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

3 голосов
/ 27 апреля 2010

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

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

1 голос
/ 06 мая 2010

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

0 голосов
/ 27 апреля 2010

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

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

...