Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лекция 7 Проектирование распределенной обработки данных 1

Работа добавлена на сайт samzan.net:


Лекция 7.

Проектирование распределенной обработки данных

1. Общие принципы управления распределенными базами данных.

2. Доступ к распределенным базам данных.

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

Основные принципы архитектурного построения систем распределенной обработки данных рассматривались на одной из первых лекций по курсу «Проектирование АСОИ и У». На данной лекции будут рассмотрены основные принципы управления распределенными базами данных с помощью SQL. Кроме того, будут также рассмотрены задачи, возникающие при работе с распределенными данными и концептуальные пути их решения.

1. Общие принципы управления распределенными базами данных.

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

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

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

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

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

2. Доступ к распределенным базам данных.

В простейшем случае пользователю одной БД предоставляется возможность подключения по сети к другим БД и извлекать из них информацию. Обычно это означает выполнение одиночного запроса к удаленной БД (СЛАЙД 1).

На данном рисунке изображена схема выполнения запроса с помощью SQL, которая применяется, когда локальная БД является периферийной, а удаленная – центральной корпоративной БД. Также на этом же рисунке показана схема выполнения обычного клиент-серверного запроса к удаленной БД, направленного пользователем другого ПК. С точки зрения удаленной БД , разница между обработкой от обычного клиентского ПК и запроса, полученного по специальной технологии удаленного доступа, невелика. В обоих случаях запрос передается по сети, удаленная СУБД определяет, имеет ли пользователь нужные привилегии, и выполняет запрос. Информация о том, чем завершилось выполнение запроса, передается обратно по сети.

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

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

Для подключения к удаленной БД применяется специальная инструкция: CONNECT TO имя_удаленонго_сервера.

После выполнения этой инструкции локальный сервер входит в режим сквозной передачи и направляет все последующие инструкции удаленному серверу.

Когда работа с удаленным сервером закончена, нужно выполнить инструкцию DISCONNECT.

В некоторых СУБД применяется иная схема доступа к удаленным данным.  Для доступа к удаленной БД пользователь локальной системы использует стандартные инструкции SQL, только к именам удаленных таблиц и представлений добавляется символ @, за которым следует имя канала связи. Например, SELECT MANE, ADRESS, FON/FAX

FROM table1@HOST1

WHERE ________________

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

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

Доступ к удаленным базам данных из локальных СУБД преимущественно применяется при выполнении небольших запросов и нерегулярном доступе к данным. Если же приложению требуется интенсивный и частый доступ к удаленной БД, тогда коммуникационные издержки могут оказаться неприемлемыми. Когда интенсивность и частота операций удаленного доступа превышает определенный предел, более эффективным оказывается использование локальной копии удаленных данных (СЛАЙД 2). В простейшем случае содержимое таблицы извлекается из главной базы даны, посылается по сети и помещается в соответствующую таблицу-реплику в подчиненной базе данных. Эта процедура выполняется периодически во время наименьшей загрузки сети.

Такой подход удобен в тех случаях, когда данные в реплицируемых таблицах изменяются редко или изменения выполняются в пакетном режиме. Данную стратегию модно организовать без поддержки со стороны СУБД. Для должны быть написаны несколько программ: во-первых, программа, извлекающая данные из БД и помещающая их в файл; во-вторых, программа, пересылающая файл на локальный ПК; в-третьих, программа, считывающая содержимое файла и применяющая инструкции DROP TABLE, CREAT TABLE и INSERT для заполнения таблиц-реплик. Данный подход носит название «дублирования таблиц». При такой схеме приложениям не разрешается обновлять данные. В случае подобной попытки СУБД сгенерирует ошибку.

Более гибкой в этом отношении схемой является схема двунаправленной репликации (СЛАЙД 3).

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

Затраты на репликацию

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

ГОРИЗОНТАЛЬНАЯ РЕПЛИКАЦИЯ ТАБЛИЦ

Распределить таблицу по сети можно следующим образом: разделить таблицу горизонтально, помещая полученные данные в различные системы (СЛАЙД 4).

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

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

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

ВЕРТИКАЛЬНАЯ РЕПЛИКАЦИЯ ТАБЛИЦ

Другой способ распределения таблицы по сети состоит в вертикальном разделении таблицы и размещении ее столбцов в разных системах (СЛАЙД 5).

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

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

ЗЕРКАЛЬНАЯ РЕПЛИКАЦИЯ ТАБЛИЦ

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

В простейшей конфигурации одна БД становится активной, а другая – резервной. Все запросы направляются к активной БД (система А), которая посылает реплики всех изменений резервной БД (система В). В случае сбоя запросы перенаправляются в резервную систему, которая содержит свежие данные. Недостатком такого подхода является то, что при нормальной работе без сбоев ресурсы резервной системы тратятся впустую. Эту систему необходимо обслуживать и оплачивать, хотя она не участвует в обработке данных.

Из-за указанного недостатка системы с высокой отказоустойчивостью проектируют так, чтобы сбалансировать возникающую в них нагрузку (СЛАЙД 7).

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

4. Механизмы репликации SQL Server 2000.




1. технологический анализ руля высоты самолета Руль высоты ~ подвижная часть горизонтального оперения пре
2. Контрольная работа 1
3. Червячная передача ~ это зубчатовинтовая передача движение в которой осуществляется по принципу винтовой.html
4. Е. ОТЧЕТ о лабораторной работе по курсу ОБЩАЯ ФИЗИКА
5. 0 12 в корАбсент грин 0
6. Основы патентоведения 1
7. День социального работника
8. тема и политические партии Федеративной Республики Германия Выполнила- студентка 4 курса очной форм
9. правової реформи є реалізація демократичних ідей правосуддя вироблених світовою практикою й наукою
10. .Архаизмді к~рсеті~із
11. Вступ Загальна характеристика основних засобів
12. Задание- 1. Выделите строку таблицы строку щелкнув на левом поле строки
13. Понятие и структура экономической системы общества
14. а Екатеринбург
15. УТВЕРЖДАЮБерезина Т
16. Управление конфликтами на примере туристического агентства Стар-Тревел
17. Назначение 10
18. 2.html
19. Феодальная экономика в России
20. МЕТОДИЧНІ ВКАЗІВКИ ДО САМОСТІЙНОЇ РОБОТИ З ДИСЦИПЛІНИ «БУХГАЛТЕРСЬКИЙ ОБЛІК 2