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

Автор работы: Пользователь скрыл имя, 11 Января 2012 в 23:39, доклад

Описание работы

Появление вычислительных систем с базами данных привело к смене прежних способов обработки данных, в которых для каждого приложения определялись и поддерживались собственные наборы данных, новыми, в которых все данные определялись и поддерживались централизованно. А в последнее время происходит быстрое развитие технологий сетевой связи и обмена данными, вызванное созданием Internet, появлением мобильных и беспроводных вычислительных средств, а также "интеллектуальных" устройств.

Файлы: 1 файл

распределенные базы данных.docx

— 405.77 Кб (Скачать файл)

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

       Появление вычислительных систем с базами данных привело к смене прежних способов обработки данных, в которых для  каждого приложения определялись и  поддерживались собственные наборы данных, новыми, в которых все  данные определялись и поддерживались централизованно. А в последнее  время происходит быстрое развитие технологий сетевой связи и обмена данными, вызванное созданием Internet, появлением мобильных и беспроводных вычислительных средств, а также "интеллектуальных" устройств. Теперь под влиянием этих двух противоположных тенденций технология распределенных баз данных способствует обратному переходу от централизованной обработки данных к децентрализованной. Создание технологии систем управления распределенными базами данных является одним из самых больших достижений в области баз данных.В основном мы рассматривали централизованные системы баз данных, т.е. системы, в которых единственная логическая база данных размещалась в пределах одного узла и находилась под управлением одной СУБД. Теперь обсудим принципы и проблемы, связанные с распределенными СУБД, позволяющими конечным пользователям иметь доступ не только к данным, сохраняемым на их собственном узле, но и к данным, размещенным на различных удаленных узлах. В прессе уже неоднократно делались заявления о том, что в связи с нарастающим процессом перехода организаций к технологии распределенных баз данных централизованные базы данных буквально через несколько лет превратятся в антикварную редкость.

       Основной предпосылкой разработки систем, использующих базы данных, является стремление объединить все обрабатываемые в организации  данные в единое целое и обеспечить к ним контролируемый доступ. Хотя интеграция и предоставление контролируемого  доступа могут способствовать централизации, последняя не является самоцелью. На практике создание компьютерных сетей  приводит к децентрализации обработки  данных. Децентрализованный подход, по сути, отражает организационную структуру  многих компаний, логически состоящих  из отдельных подразделений, отделов, проектных групп и т.п., которые  физически распределены по разным офисам, отделениям, предприятиям или филиалам, причем каждая отдельная производственная единица имеет дело с собственным  набором обрабатываемых данных. Разработка распределенных баз данных, отражающих организационные структуры предприятий, позволяет сделать общедоступными данные, поддерживаемые каждым из существующих подразделений, обеспечив при этом их хранение именно в тех местах, где они чаще всего используются. Подобный подход расширяет возможности  совместного использования информации, одновременно повышая эффективность  доступа к ней.

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

       Основные  понятия

       Чтобы начать обсуждение проблем, связанных  с распределенными СУБД, прежде всего  необходимо уяснить, что же такое  распределенная база данных.

       Распределенная  база данных: Набор логически связанных между собой совокупностей разделяемых данных (и их описаний), которые физически распределены в некоторой компьютерной сети. Из этого вытекает следующее определение распределенной СУБД:

       Распределенная  СУБД: Программный комплекс, предназначенный для управления распределенными базами данных и обеспечивающий прозрачный доступ пользователей к распределенной информации.

       Распределенная  система управления базой данных (распределенная СУБД) состоит из единой логической базы данных, разделенной  на некоторое количество фрагментов. Каждый фрагмент базы данных сохраняется на одном или нескольких компьютерах, работающих под управлением отдельных СУБД и соединенных между собой сетью связи. Любой узел способен независимо обрабатывать запросы пользователей, требующие доступа к локально сохраняемым данным (т.е. каждый узел обладает определенной степенью автономности), а также способен обрабатывать данные, сохраняемые на других компьютерах сети.

       Пользователи  взаимодействуют с распределенной базой данных через приложения. Приложения могут подразделяться на не требующие  доступа к данным на других узлах (локальные приложения) и требующие подобного доступа (глобальные приложения). В распределенной СУБД должно существовать хотя бы одно глобальное приложение, поэтому любая такая СУБД должна иметь следующие характеристики:

       Имеется набор логически связанных разделяемых  данных.Сохраняемые данные разбиты  на некоторое количество фрагментов.Может  быть предусмотрена репликация фрагментов данных.Фрагменты и их копии распределяются по разным узлам.Узлы связаны между  собой сетевыми соединениями.

  • Доступ к данным на каждом узле происходит под управлением СУБД.
  • СУБД на каждом узле способна поддерживать автономную работу локальных приложений.
  • СУБД каждого узла поддерживает хотя бы одно глобальное приложение.

       Но  нет необходимости в том, чтобы  на каждом из узлов системы существовала своя собственная локальная база данных, что и показано на примере  топологии распределенной СУБД, представленной на рисунке:

Топология распределенной СУБД

       Из  определения СУБД следует, что она  должна сделать само это распределение  данных прозрачным (незаметным) для конечного пользователя. Другими словами, от пользователей должен быть полностью скрыт тот факт, что распределенная база данных состоит из нескольких фрагментов, которые могут размещаться на различных компьютерах и для которых, возможно, даже организована репликация данных. Цель обеспечения прозрачности состоит в том, чтобы распределенная система внешне выглядела как централизованная. Иногда это требование называют основным принципом создания распределенных СУБД. Данный принцип требует предоставления конечному пользователю широкого набора функциональных возможностей, но, к сожалению, одновременно ставит перед программным обеспечением распределенной СУБД множество дополнительных задач.

       Распределенная  обработка

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

       Распределенная  обработка: Обработка с использованием централизованной базы данных, доступ к которой может осуществляться с различных компьютеров сети.

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

Топология системы с распределенной обработкой

       Параллельные  СУБД

       Кроме того, следует четко понимать различия, существующие между распределенными  и параллельными СУБД.

       Параллельная  СУБД: Система управления базой данных, функционирующей с использованием нескольких процессоров и жестких дисков, что позволяет ей (если это возможно) распараллеливать выполнение некоторых операций с целью повышения общей производительности обработки.

       Появление параллельных СУБД было вызвано тем  фактом, что системы с одним  процессором оказались не способны удовлетворять растущие требования к масштабируемости, надежности и  производительности обработки данных. Эффективной и экономически обоснованной альтернативой однопроцессорным СУБД стали параллельные СУБД, функционирующие  одновременно на нескольких процессорах. Применение параллельных СУБД позволяет  объединить несколько маломощных машин  для получения такого же уровня производительности, как и в случае одной, но более  мощной машины, с дополнительным выигрышем  в масштабируемости и надежности системы по сравнению с однопроцессорными  СУБД.

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

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

       Хотя  параллельная система без разделения вычислительных ресурсов иногда рассматривается  как распределенная СУБД, в такой  системе распределение данных обусловлено  лишь стремлением к повышению  производительности. Более того, узлы распределенной СУБД обычно разделены  географически, находятся под управлением  разных администраторов и соединены  между собой относительно медленными сетевыми соединениями, тогда как  узлы параллельной СУБД чаще всего  располагаются на одном и том  же компьютере или в пределах одной  и той же производственной площадки.

       Системы с разделением  памяти состоят из тесно связанных между собой компонентов, в число которых входит несколько процессоров, разделяющих общую системную память. Эта архитектура, называемая также архитектурой с симметричной многопроцессорной обработкой (SMP), в настоящее время получила широкое распространение и применяется для самых разных вычислительных платформ, от персональных рабочих станций, содержащих несколько параллельно работающих микропроцессоров, больших RISC-систем и вплоть до крупнейших мэйнфреймов. Эта архитектура обеспечивает быстрый доступ к данным для ограниченного набора процессоров, количество которых обычно не превосходит 64. В противном случае взаимодействие по сети становится узким местом всей системы.

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

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

       Параллельные  технологии обычно используются в случае исключительно больших баз данных, размеры которых могут достигать  нескольких терабайтов (  байт), или в системах, обеспечивающих выполнение тысяч транзакций в секунду. Подобные системы нуждаются в доступе к большому объему данных и должны обеспечивать приемлемое время реакции на запрос. Параллельные СУБД могут использовать различные вспомогательные технологии, позволяющие повысить производительность обработки сложных запросов за счет применения методов распараллеливания операций просмотра, соединения и сортировки, что позволяет нескольким процессорным узлам автоматически распределять между собой текущую нагрузку. В данный момент достаточно отметить, что все крупные разработчики СУБД в настоящее время поставляют параллельные версии созданных ими машин баз данных.

Информация о работе Распределенные базы данных