Возможность отслеживать изменения в вашей базе данных может быть трудоемким и утомительным процессом, который в определенных обстоятельствах может повлиять на производительность вашей базы данных и ваших пользователей. InterBase предлагает простое в реализации решение для отслеживания этих изменений.
Что такое представления изменений?
Представления изменений — это запатентованная модель подписки, используемая для подписки на данные и определения того, какие данные были изменены в базе данных.
Вы создаете подписку, охватывающую различные таблицы и столбцы, и даете пользователям право подписаться на изменения в данных. Здесь нет таблиц журналов или внешних файлов, поэтому это очень чистая настройка, которая отслеживает внутреннее, а это означает, что ваши изменения в безопасности внутри вашей базы данных, а не в файлах, к которым любой может получить доступ.
Только пользователи, которые подписаны на эти изменения данных, могут фактически видеть изменения, доступные им / для них.
Подписки могут выполняться как во время соединения, так и в рамках соединения. Таким образом, во время подключения вы можете получить предупреждение, а затем просто получить дельты. Поэтому, если вы должны были получить несколько тысяч записей, а затем получить сообщение «В таблице были изменения», вы можете использовать представления изменений для получения дельты вместо повторного обновления всего запроса. Сокращение времени и перемещения данных по вашей сети.
Что касается охвата соединения, действительно здорово то, что вам на самом деле не нужно подключаться, чтобы оно записывало изменения. После запуска транзакции базы данных вы можете установить подписку, затем отключиться от базы данных, а затем начать новое соединение с новой транзакцией в будущем.
Когда вы вносите изменения в свои данные, вы получаете эти данные всякий раз, когда применяете обновления. Используя представления изменений InterBases, теперь вы можете конкретно определить, какие дельты изменили уровень поля, поэтому вам нужно только упаковать и переместить данные, которые изменились. Некоторые из преимуществ использования представлений изменений:
- Снижение затрат и дискового ввода-вывода за счет минимизации синхронизации данных на мобильных устройствах
- Небольшое влияние на производительность
- Нет внешних журнальных таблиц
- Масштабируемость пользователей
- Отслеживайте изменения так, как хотите
При синхронизации изменений представлений перемещаются только изменения между локальной и серверной базами данных, сохраняя данные точными и актуальными!
Как настроить просмотр изменений
Есть два основных шага, которые необходимо выполнить, чтобы использовать представления изменений, настроить подписки на сервере и добавить несколько компонентов в свое приложение.
Сервер
- Создать подписку
- Укажите данные на уровне таблицы, столбца / поля.
- Предоставить доступ к подписке
Образец для СОЗДАНИЯ ПОДПИСКИ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<b>CREATE</b><span style="font-weight: 400;"> SUBSCRIPTION sub_employee_changes </span><b>ON</b><span style="font-weight: 400;"> EMPLOYEE (EMP_NO, DEPT_NO, SALARY) DESCRIPTION </span><span style="font-weight: 400;">'Subscribe to changes in EMPLOYEE table'</span><span style="font-weight: 400;">;</span> <b>CREATE</b><span style="font-weight: 400;"> SUBSCRIPTION sub_customer_deletes </span><b>ON</b><span style="font-weight: 400;"> CUSTOMER </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>DELETE</b><span style="font-weight: 400;">) DESCRIPTION </span><span style="font-weight: 400;">'Subscribe to deletes in CUSTOMER table'</span><span style="font-weight: 400;">; </span> <b>CREATE</b><span style="font-weight: 400;"> SUBSCRIPTION sub_various_changes</span> <span style="font-weight: 400;"> </span><b>ON</b><span style="font-weight: 400;"> EMPLOYEE </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>INSERT</b><span style="font-weight: 400;">, </span><b>UPDATE</b><span style="font-weight: 400;">, </span><b>DELETE</b><span style="font-weight: 400;">),</span> <span style="font-weight: 400;"> CUSTOMER </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>INSERT</b><span style="font-weight: 400;">, </span><b>UPDATE</b><span style="font-weight: 400;">, </span><b>DELETE</b><span style="font-weight: 400;">),</span> <span style="font-weight: 400;"> SALES </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>UPDATE</b><span style="font-weight: 400;">),</span> <span style="font-weight: 400;"> DEPARTMENT (</span><b>LOCATION</b><span style="font-weight: 400;">) </span><b>FOR</b> <b>ROW</b><span style="font-weight: 400;"> (</span><b>UPDATE</b><span style="font-weight: 400;">)</span> <span style="font-weight: 400;"> DESCRIPTION </span><span style="font-weight: 400;">'Subscribe to various changes on multiple tables'</span><span style="font-weight: 400;">;</span> <b>GRANT</b><span style="font-weight: 400;"> SUBSCRIBE </span><b>ON</b><span style="font-weight: 400;"> SUBSCRIPTION </span><span style="font-weight: 400;"><</span><span style="font-weight: 400;">subscription_name</span><span style="font-weight: 400;">></span> <b>TO</b> <span style="font-weight: 400;"><</span><span style="font-weight: 400;">user_name</span><span style="font-weight: 400;">></span><span style="font-weight: 400;">;</span> |
Клиент
После того, как подписки настроены на сервере, вы можете добавлять / активировать их в своих приложениях.
- Запустите транзакцию в режиме изоляции SnapShot.
- Сделайте свою подписку активной, используя запрос для выполнения установленной подписки, активной на True
- Запустите оператор select, чтобы получить дельты. Это может быть простой оператор выбора.
- После того, как вы получили свои дельты, зафиксируйте транзакцию, чтобы обновить просмотры изменений в приложении.
Ресурсы
Документация по изменениям представлений: https://docwiki.embarcadero.com/InterBase/2020/en/Getting_Started_with_Change_Views
Уведомления об изменении данных FireDAC : docwiki.embarcadero.com/RADStudio/Sydney/en/Data_Change_Notifications_(FireDAC)#Data_Change_Notifications_for_Specific_DBMS
InterBase: https://docwiki.embarcadero.com/InterBase/2020/en/Main_Page
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition