Учебники

Распределенная СУБД — Стратегии проектирования

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

Репликация данных

Репликация данных — это процесс хранения отдельных копий базы данных на двух или более сайтах. Это популярный отказоустойчивый метод распределенных баз данных.

Преимущества репликации данных

  • Надежность — в случае сбоя какого-либо сайта система базы данных продолжает работать, поскольку копия доступна на другом сайте (ах).

  • Снижение нагрузки на сеть — поскольку локальные копии данных доступны, обработка запросов может быть выполнена с меньшим использованием сети, особенно в пиковые часы. Обновление данных может быть сделано в нерабочее время.

  • Быстрый отклик — доступность локальных копий данных обеспечивает быструю обработку запросов и, следовательно, быстрое время отклика.

  • Упрощенные транзакции — Транзакции требуют меньшего количества объединений таблиц, расположенных на разных сайтах, и минимальной координации по сети. Таким образом, они становятся проще по своей природе.

Надежность — в случае сбоя какого-либо сайта система базы данных продолжает работать, поскольку копия доступна на другом сайте (ах).

Снижение нагрузки на сеть — поскольку локальные копии данных доступны, обработка запросов может быть выполнена с меньшим использованием сети, особенно в пиковые часы. Обновление данных может быть сделано в нерабочее время.

Быстрый отклик — доступность локальных копий данных обеспечивает быструю обработку запросов и, следовательно, быстрое время отклика.

Упрощенные транзакции — Транзакции требуют меньшего количества объединений таблиц, расположенных на разных сайтах, и минимальной координации по сети. Таким образом, они становятся проще по своей природе.

Недостатки репликации данных

  • Повышенные требования к хранилищу. Поддержание нескольких копий данных связано с увеличением затрат на хранение. Требуемое пространство для хранения кратно объему хранилища, необходимому для централизованной системы.

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

  • Нежелательное приложение — соединение базы данных — если не используются сложные механизмы обновления, устранение несоответствия данных требует сложной координации на уровне приложения. Это приводит к нежелательному применению — соединению базы данных.

Повышенные требования к хранилищу. Поддержание нескольких копий данных связано с увеличением затрат на хранение. Требуемое пространство для хранения кратно объему хранилища, необходимому для централизованной системы.

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

Нежелательное приложение — соединение базы данных — если не используются сложные механизмы обновления, устранение несоответствия данных требует сложной координации на уровне приложения. Это приводит к нежелательному применению — соединению базы данных.

Некоторые часто используемые методы репликации —

  • Репликация снимков
  • Репликация почти в реальном времени
  • Тянуть репликацию

фрагментация

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

Фрагментация должна быть выполнена таким образом, чтобы исходная таблица могла быть восстановлена ​​из фрагментов. Это необходимо для того, чтобы исходная таблица могла быть восстановлена ​​из фрагментов при необходимости. Это требование называется «реконструктивность».

Преимущества фрагментации

  • Поскольку данные хранятся рядом с местом использования, эффективность системы баз данных повышается.

  • Методы оптимизации локальных запросов достаточны для большинства запросов, поскольку данные доступны локально.

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

Поскольку данные хранятся рядом с местом использования, эффективность системы баз данных повышается.

Методы оптимизации локальных запросов достаточны для большинства запросов, поскольку данные доступны локально.

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

Недостатки фрагментации

  • Когда требуются данные из разных фрагментов, скорости доступа могут быть очень высокими.

  • В случае рекурсивных фрагментов для реконструкции потребуются дорогостоящие методы.

  • Отсутствие резервных копий данных на разных сайтах может сделать базу данных неэффективной в случае сбоя сайта.

Когда требуются данные из разных фрагментов, скорости доступа могут быть очень высокими.

В случае рекурсивных фрагментов для реконструкции потребуются дорогостоящие методы.

Отсутствие резервных копий данных на разных сайтах может сделать базу данных неэффективной в случае сбоя сайта.

Вертикальная фрагментация

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

Например, давайте предположим, что база данных университета хранит записи всех зарегистрированных студентов в таблице Student, имеющей следующую схему.

УЧЕНИК

Regd_No название Курс Адрес Семестр сборы Метки

Теперь детали сборов сохраняются в разделе счетов. В этом случае дизайнер фрагментирует базу данных следующим образом:

CREATE TABLE STD_FEES AS 
   SELECT Regd_No, Fees 
   FROM STUDENT;

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

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

Например, в схеме учащегося, если в Школе информатики необходимо хранить сведения обо всех слушателях курса информатики, разработчик будет горизонтально фрагментировать базу данных следующим образом:

CREATE COMP_STD AS 
   SELECT * FROM STUDENT  
   WHERE COURSE = "Computer Science";

Гибридная фрагментация

В гибридной фрагментации используется комбинация горизонтальной и вертикальной методик фрагментации. Это наиболее гибкий метод фрагментации, поскольку он генерирует фрагменты с минимальной посторонней информацией. Однако реконструкция исходного стола часто является дорогостоящей задачей.

Гибридная фрагментация может быть сделана двумя альтернативными способами —

Сначала сгенерируйте набор горизонтальных фрагментов; затем генерировать вертикальные фрагменты из одного или нескольких горизонтальных фрагментов.

Сначала сгенерируйте набор вертикальных фрагментов; затем генерировать горизонтальные фрагменты из одного или нескольких вертикальных фрагментов.