Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
15
Добавлен:
26.11.2018
Размер:
388.1 Кб
Скачать

Протокол 2-ух фазной фиксации

Т1

Т2

Т голосование фиксировать Т1

Т2

. .

: : Тп

транзакция

Т2 да

Прервать Т1

нет Т2

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

Фрагментация – хранение фрагментов таблицы в разных узлах сети.

Пример:

Категория билетов

Станция

цена

Красноярск

Новосибирск

Москва

Владивосток

Горизонтальная фрагментация таблицы

Разбиение таблицы на фрагменты по строкам выполняется с помощью команды R:=(R(SELECT * FROMR WHERE Город = «Новосибирск»))

Вертикальная фрагментация – разделение таблицы по вертикали (убираются те данные, которые не нужны).

Стратегия распределения нефрагментированных файлов.

Каким образом распределить файл по сети. Минимизировать количество удаленных обращений и максимизировать число локальных обращений.

Алгоритм размещения файла по сети

Cij – объем свободного дискового пространства узла j;

Fi – размер файла i;

Тк – транзакция

N - число узлов

  1. Определяется значение каждой транзакции к каждому файлу Fik.

Ф

Т

1

2

3

1

10

0

0

2

0

10

30

3

5

10

0

  1. Среднее число запусков транзакций на узлах сети. Nij

У

Т

1

2

1

2

1

2

0

2

3

2

0

  1. В ычисляется весовой коэффициент Vij, определяется на какое место нужно отправить файл.

Ф

У

1

2

3

1

30

30

0

2

20

20

60

  1. максимум (Vij) для указанного узла j.

  2. О существляется проверка:

Как только файл нашел свой узел, все соответствующие столбцы удаляются из таблицы. Как только свободное дисковое пространство на узле заполнилось, то соответствующие ему строка и столбцы удаляются из таблицы. Таким образом распределяется от файла к узлу.