Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Министерство образования и науки РФ.docx
Скачиваний:
18
Добавлен:
27.03.2015
Размер:
73.39 Кб
Скачать

3.2. Особенность внесения изменений в пбд клиентов

Единственным отличием внесения изменений в ЦБД и в ПБД является тот факт, что в ПБД клиента нет необходимости вносить те изменения, которые были сделаны этим самым клиентом. Для того чтобы не приходилось выполнять подобное действие в Журналах Изменений существует поле "IDклиента внесшего изменения".

Изменения вносятся в ПБД только в том случае, если IDклиента, на котором происходит синхронизация, не равен полю "IDклиента внесшего изменения" элемента ОЖИ.

4. Пример работы в соответствии с алгоритмом

Пусть есть БД состоящая из трех одинаковых таблиц:

Дата/Время

Содержимое таблицы

Идентификация изменения

10.12.14 / 16-45

"Идиот"

начальная вставка

11.12.14 / 13-15

"Шестая палата"

начальная вставка

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

Эта БД сохранена в Центральной Базе Данных, а так же отправлена двум клиентам в виде Побочных Баз Данных, для внесения изменений.

Клиенты имеют ID"u1" и "u2".

Таблицы в БД имеют названия "tab_1" "tab_2" и "tab_3".

За время простоя Репликатора клиент u1 внес изменения в свою ПБД так, что она стала выглядеть следующим образом:

tab_1

Дата/Время

Содержимое таблицы

Идентификация изменения

15.12.14 / 12-45

"Фрактальная геометрия"

обновление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

tab_2

Дата/Время

Содержимое таблицы

Идентификация изменения

10.12.14 / 16-45

"Идиот"

начальная вставка

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

tab_3

Дата/Время

Содержимое таблицы

Идентификация изменения

15.12.14 / 12-15

"Комбинаторная оптимизация"

вставка

Соответственно его Журнал Изменений выглядит следующим образом:

Дата и время внесения изменений

Таблица в которую были внесены изменения

Тип изменения

Вид строки до внесения изменений

Вид строки после внесения изменений

ID клиента внесшего изменения

15.12.14 / 12-10

tab_3

удаление

10.12.14 / 16-45

"Идиот"

начальная вставка

-

u1

15.12.14 / 12-11

tab_3

удаление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

-

u1

15.12.14 / 12-12

tab_3

удаление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

-

u1

15.12.14 / 12-15

tab_3

вставка

-

15.12.14 / 12-15

"Комбинаторная оптимизация"

вставка

u1

15.12.14 / 12-20

tab_2

удаление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

-

u1

15.12.14 / 12-45

tab_1

обновление

10.12.14 / 16-45

"Идиот"

начальная вставка

15.12.14 / 12-45

"Фрактальная геометрия"

обновление

u1

В это время клиентu2 внес изменения в свою ПБД так, что она стала выглядеть следующим образом:

tab_1

Дата/Время

Содержимое таблицы

Идентификация изменения

10.12.14 / 16-45

"Идиот"

начальная вставка

11.12.14 / 13-15

"Шестая палата"

начальная вставка

15.12.14 / 12-30

"Вычислительные машины"

обновление

tab_2

Дата/Время

Содержимое таблицы

Идентификация изменения

10.12.14 / 16-45

"Идиот"

начальная вставка

11.12.14 / 13-15

"Шестая палата"

начальная вставка

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

15.12.14 / 12-22

"Так говорил Заратустра"

вставка

tab_3

Дата/Время

Содержимое таблицы

Идентификация изменения

15.12.14 / 12-05

"История России"

обновление

15.12.14 / 12-45

"Русско-немецкий словарь"

обновление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

Соответственно его Журнал Изменений выглядит следующим образом:

Дата и время внесения изменений

Таблица в которую были внесены изменения

Тип изменения

Вид строки до внесения изменений

Вид строки после внесения изменений

ID клиента внесшего изменения

15.12.14 / 12-05

tab_3

обновление

10.12.14 / 16-45

"Идиот"

начальная вставка

15.12.14 / 12-05

"История России"

обновление

u2

15.12.14 / 12-22

tab_2

вставка

-

15.12.14 / 12-22

"Так говорил Заратустра"

вставка

u2

15.12.14 / 12-30

tab_1

обновление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

15.12.14 / 12-30

"Вычислительные машины"

обновление

u2

15.12.14 / 12-45

tab_3

обновление

11.12.14 / 13-15

"Шестая палата"

начальная вставка


15.12.14 / 12-45

"Русско-немецкий словарь"

обновление

u2

Репликатор начинает работу.

1) Клиентам закрывается доступ к их ПБД.

2) На сервер отправляются Журналы Изменений клиентов.

3) Журналы Изменений клиентов объединяются в Общий Журнал Изменений.

4) ОЖИ упорядочивается по полю " Дата и время внесения изменений "

ОЖИ выглядит следующим образом:

Дата и время внесения изменений

Таблица в которую были внесены изменения

Тип изменения

Вид строки до внесения изменений

Вид строки после внесения изменений

ID клиента внесшего изменения

15.12.14 / 12-05

tab_3

обновление

10.12.14 / 16-45

"Идиот"

начальная вставка

15.12.14 / 12-05

"История России"

обновление

u2

15.12.14 / 12-10

tab_3

удаление

10.12.14 / 16-45

"Идиот"

начальная вставка

-

u1

15.12.14 / 12-11

tab_3

удаление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

-

u1

15.12.14 / 12-12

tab_3

удаление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

-

u1

15.12.14 / 12-15

tab_3

вставка

-

15.12.14 / 12-15

"Комбинаторная оптимизация"

вставка

u1

15.12.14 / 12-20

tab_2

удаление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

-

u1

15.12.14 / 12-22

tab_2

вставка

-

15.12.14 / 12-22

"Так говорил Заратустра"

вставка

u2

15.12.14 / 12-30

tab_1

обновление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

15.12.14 / 12-30

"Вычислительные машины"

обновление

u2

15.12.14 / 12-45

tab_1

обновление

10.12.14 / 16-45

"Идиот"

начальная вставка

15.12.14 / 12-45

"Фрактальная геометрия"

обновление

u1

15.12.14 / 12-45

tab_3

обновление

11.12.14 / 13-15

"Шестая палата"

начальная вставка


15.12.14 / 12-45

"Русско-немецкий словарь"

обновление

u2

ОЖИ обрабатывается в соответствии с описанным выше алгоритмом и приобретает следующий вид:

Дата и время внесения изменений

Таблица в которую были внесены изменения

Тип изменения

Вид строки до внесения изменений

Вид строки после внесения изменений

ID клиента внесшего изменения

15.12.14 / 12-05

tab_3

обновление

10.12.14 / 16-45

"Идиот"

начальная вставка

15.12.14 / 12-05

"История России"

обновление

u2

15.12.14 / 12-11

tab_3

удаление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

-

u1

15.12.14 / 12-12

tab_3

удаление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

-

u1

15.12.14 / 12-15

tab_3

вставка

-

15.12.14 / 12-15

"Комбинаторная оптимизация"

вставка

u1

15.12.14 / 12-20

tab_2

удаление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

-

u1

15.12.14 / 12-22

tab_2

вставка

-

15.12.14 / 12-22

"Так говорил Заратустра"

вставка

u2

15.12.14 / 12-30

tab_1

обновление

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

15.12.14 / 12-30

"Вычислительные машины"

обновление

u2

15.12.14 / 12-45

tab_1

обновление

10.12.14 / 16-45

"Идиот"

начальная вставка

15.12.14 / 12-45

"Фрактальная геометрия"

обновление

u1

5) В ЦБД вносятся изменения согласно ОЖИ.

После внесения изменений ЦБД выглядит следующим образом:

tab_1

Дата/Время

Содержимое таблицы

Идентификация изменения

15.12.14 / 12-45

"Фрактальная геометрия"

обновление

11.12.14 / 13-15

"Шестая палата"

начальная вставка

15.12.14 / 12-30

"Вычислительные машины"

обновление

tab_2

Дата/Время

Содержимое таблицы

Идентификация изменения

10.12.14 / 16-45

"Идиот"

начальная вставка

12.12.14 / 11-21

"Евгений Онегин"

начальная вставка

15.12.14 / 12-22

"Так говорил Заратустра"

вставка

tab_3

Дата/Время

Содержимое таблицы

Идентификация изменения

15.12.14 / 12-05

"История России"

обновление

15.12.14 / 12-15

"Комбинаторная оптимизация"

вставка

6) ЦБД сохраняется. Информация из ОЖИ сохраняется в Итоговом Журнале.

7) ОЖИ отправляется клиентам.

8) ОЖИ применяется к ПБД клиентов.

9) Клиентские Журналы изменений обнуляются.

10) Клиентам открывается доступ к их ПБД.