Вы нашли то, что искали?
Главная Разделы

Добавить страницу в закладки ->

10. Распределение базы данных. Базы и банки данных

Базы и банки данных

10. Распределение базы данных

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

Все таблицы данных распределяются по сети (узлом), где осуществляется их применение. Каналы между узлами – соединения. Все данные в сети делятся на 2 подвида:

  1. Локальные – используются только в своем узле.
  2. Глобальные данные – могут использоваться в любом узле.

Преимущество:

  1. уменьшенное время на доступ наиболее часто используемых программ.
  2. рассширяются объемы данных, в которых можно иметь доступ.
  3. надежность хранения увеличивается

Недостатки:

  1. производительность падает.
  2. запросы обрабатывать сложнее.
  3. управление транзакциями при параллельном доступе усложняется.
  4. возникает проблема обновления при терражировании данных.

Все распределенные базы данных делятся на два типа:

  1. Однородные – те базы данных. У которых все локальные данные управляются СУБД одного типа.
  2. Неоднородные – это такие БД, у которых все локальные данные могут управляться СУБД разного типа и могут иметь разные модели данных.

Все узлы в распределенных БД являются автономными, т.е. полная независимость узла от других узлов.

Задачи РСУБД:

  1. Выполнение запросов.
  2. Обработка транзакций.
  3. Обнаружение распределенных тупиков.
  4. Восстановление РБД.

Каждая таблица имеет: имя, состоящее из:

  1. Полное имя: задается командой CREAT TABL
  2. Системное имя (создается при создании автоматически)
    • имя таблицы
    • № узла создания
    • № узла в котором таблица была размещена после создания (родовой узел)
    • имя создателя.

Существует оператор, который позволяет отправить таблицу на любой из узлов сети: MYGRATE TABLE эту таблицу можно найти по локальному каталогу в котором эта таблица была размещена после создания. Когда запрос обращается к таблице, считывается имя и затем считывается адрес, где находится.

Порядок выполнения запросов в БД

Узел, из которого исходит запрос, называется главным. Узлы, из которых исходит запрос, называется дополнительными.

  1. Происходит разбор команды SQL в главном узле. С заменой полных имен таблиц на системные имена
  2. В главном узле определяется порядок взаимодействия узлов.
  3. Запрос (весь) разбивается на составные части, в каждом из которых будет воспроизводиться в своем узле. Эти части (подзапросы) рассылаются по соответствующим узлам.
  4. На дополнительных узлах происходит проверка прав доступа пользователя, оптимизация запроса в соответствии с имеющимися индексами, происходит комплектация запросов, т.е. генерация машинных кодов.

Архитектура РСУБД

Транзакция в РБД может состоять из нескольких мастей – агентов.
Транзакции состоящая из нескольких агентов называются глобальными.
Транзакция, с которой начинается обработка, называется инициирующая.
ДТ – диспетчер транзакции. Фиксирует начало и конец транзакции, передает информацию о четности планировщику.
Планировщик составляет расписание работы транзакции, устанавливает блокировку по чтению БД.
ДД – диспетчер данных. Выполняет команду чтения и записи над данными, результаты этих операций передаю планировщику. Планировщик передает ДТ, а ДТ передает обратно транзакции.

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

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

Пример:

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

Станция

цена

 

 

Красноярск

 

 

 

Новосибирск

   
 

Москва

   
 

Владивосток

   

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


Разбиение таблицы на фрагменты по строкам выполняется с помощью команды R:=(R(SELECT * FROMR WHERE Город = “Новосибирск”))
Вертикальная фрагментация – разделение таблицы по вертикали (убираются те данные, которые не нужны).

 

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

Чтобы оптимально распределить файлы по сети, нужно. минимизировать количество удаленных обращений и максимизировать число локальных обращений.
Алгоритм размещения файла по сети
Cij – объем свободного дискового пространства узла j;
Fi – размер файла i;
Тк – транзакция
N - число узлов

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

  2. Ф

    Т

    1

    2

    3

    1

    10

    0

    0

    2

    0

    10

    30

    3

    5

    10

    0

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

  4. У

    Т

    1

    2

    1

    2

    1

    2

    0

    2

    3

    2

    0

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

  6. Ф

    У

    1

    2

    3

    1

    30

    30

    0

    2

    20

    20

    60

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

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

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

Базы и банки данных

Последние изменения страницы: 26.01.2018






© Банк лекций Siblec.ru
Электронная техника, радиотехника и связь. Лекции для преподавателей и студентов. Формальные, технические, естественные, общественные, гуманитарные, и другие науки. Карта сайта

Новосибирск, Екатеринбург, Москва, Санкт-Петербург, Нижний Новгород, Ростов-на-Дону, Чебоксары.

E-mail: formyneeds@yandex.ru