- •То, что выделено красным - не найдено Оглавление
- •Понятие базы данных. Модели данных
- •Элементы базы данных
- •Методы и способы доступа к данным
- •Механизм транзакций
- •Средства для работы с удаленными базами данных
- •Организация данных на машинных носителях
- •Физическое представление иерархических структур
- •Физическое представление сетевых структур
- •Архитектура файловой организации баз данных
- •Модели распределения данных по физическим носителям
- •Основные условия и требования к распределенной обработке данных
- •Базовые архитектуры распределенной обработки данных
- •Характеристика архитектуры «файловый сервер»
- •Характеристика архитектуры «выделенный сервер»
- •Характеристика архитектуры «активный сервер»
- •Характеристика архитектуры «сервер приложений»
- •Характеристика архитектуры «сервер базы данных»
- •Базовая технология сом
- •Организация доступа к данным
- •Характеристика технологий разработки многозвенных распределенных приложений
- •Характеристика технологии midas
- •Характеристика технологии corba
- •Общая характеристика серверов
- •Основные операции с таблицами баз данных
- •Навигационный доступ к данным
- •Доступ к данным с помощью запросов
- •Хранимые процедуры
- •Триггеры
- •Характеристика языка sql
- •Характеристика языка php
- •Характеристика сервера MySql
Основные условия и требования к распределенной обработке данных
Свойства «идеальной» системы управления распределенными базами данных:
• прозрачность относительно расположения данных: СУБД должна представлять все данные так, как если бы они были локальными;
• гетерогенность системы: СУБД должна работать с данными, которые хранятся в системах с различной архитектурой и производительностью (независимость от СУБД);
• прозрачность относительно сети: СУБД должна одинаково работать в условиях разнородных сетей;
• поддержка распределенных запросов: пользователь должен иметь возможность объединять данные из любых баз, даже если они размещены в разных системах;
• поддержка распределенных изменений: пользователь должен иметь возможность изменять данные в любых базах, на доступ к которым у него есть права, даже если эти базы размещены в разных системах;
• поддержка распределенных транзакций: СУБД должна выполнять транзакции, выходящие за рамки одной вычислительной системы, и поддерживать целостность распределенной БД даже при возникновении отказов как в отдельных системах, так и в сети;
• безопасность: СУБД должна обеспечить защиту все распределенной БД от несанкционированного доступа;
• универсальность доступа: СУБД должна обеспечивать единую методику доступа ко всем данным.
Однако ни одна из существующих СУБД не достигает этого идеала вследствие следующих практических проблем:
• низкая и несбалансированная производительность сетей передачи данных, что в распределенных транзакциях сильно снижает общую производительность обработки;
• обеспечение целостности данных в распределенных транзакциях базируется на принципе «все или ничего» и требует специального протокола двухфазного завершения транзакций, что приводит к длительной блокировке изменяемых данных;
• необходимо обеспечить совместимость данных стандартного типа, для хранения которых в разных системах используются разные физические форматы и кодировки;
• выбор схемы размещения сетевых каталогов. Если каталог будет храниться в одной системе, то удаленный доступ будет замедлен. Если будет размножен – изменения придется распространять и синхронизировать;
• необходимо обеспечить совместимость СУБД разных типов и поставщиков;
• увеличение потребности в ресурсах для координации работы приложений с целью обнаружения и устранения тупиковых ситуаций в распределенных транзакциях.
Именно указанные причины определили на практике частичность и «этапность» введения в СУБД тех или иных возможностей распределенной обработки данных. В простейшем случае пользователь имеет возможность обращаться по сети к записям в БД, размещенным на других компьютерах. В других случаях СУБД сама производит аутенти
Базовые архитектуры распределенной обработки данных
Почти все модели организации взаимодействия пользователя с базой данных построены на основе модели «клиент-сервер». То есть предполагается, что каждое такое приложение отличается способом распределения функций ранее приведенных групп обработки данных между, как минимум, двумя частями:
• Клиентской, которая отвечает за целевую обработку данных и организацию взаимодействия с пользователем;
• Серверной, которая обеспечивает хранение данных, обрабатывает запросы и посылает результаты клиенту для специальной обработки.
Сервер – это программа, реализующая функции собственно СУБД: определение данных, запись – чтение данных, поддержка схем внешнего, концептуального и внутреннего уровней, диспетчеризация и оптимизация выполнения запросов, защита данных.
Клиент – это различные программы, написанные как пользователями, так и поставщиками СУБД, внешние или «встроенные» по отношению к СУБД. Программа-клиент организована в виде приложения, работающего «поверх» СУБД, и обращающегося для выполнения операций над данными и компонентами СУБД через интерфейс внешнего уровня.
Архитектура «файл-сервер».
Организация и управление базой данных (в т.ч. и СУБД) целиком располагается на машине клиента, а база данных, представляющая собой обычно набор специализированных структурированных файлов, на машине-сервере. В этом случае серверная компонента представлена даже не средствами СУБД, а сетевыми составляющими операционной системы, обеспечивающими удаленный разделяемый доступ к файлам.
Взаимодействие между клиентом и сервером происходит на уровне команд ввода-вывода файловой системы, которая возвращает запись или блок данных.
Достоинство – возможность обслуживания запросов нескольких клиентов.
Недостатки:
• высокая загрузка сети и машин-клиентов, т.к. обмен идет на уровне единиц информации файловой системы – физических записей, блоков или даже файлов, из которых на машине клиента будут выбраны и представлены необходимые для приложения элементы данных;
• низкий уровень защиты данных, так как доступ к файлам БД управляется общими средствами ОС-сервера;
• низкий уровень управления целостностью и непротиворечивостью информации, так как бизнес-правила функциональной обработки, сосредоточенные на клиентской части, могут быть противоречивыми и несинхронизированными.
Архитектура «выделенный сервер базы данных»
Средства управления базой данных и база данных размещены на машине-сервере.
Взаимодействие между клиентом и сервером происходит на уровне команд языка манипулирования данными СУБД (обычно SQL), которые обрабатываются СУБД на машине-сервере.
Достоинства:
• возможность обслуживания запросов нескольких клиентов;
• снижение нагрузки на сеть и машины сервера и клиентов;
• защита данных осуществляется средствами СУБД, что позволяет блокировать не разрешенные пользователю действия;
• сервер реализует управление транзакциями и может блокировать попытки одновременного изменения одних и тех же записей.
Недостатки:
• Бизнес-логика функциональной обработки и представление данных могут быть одинаковыми для нескольких клиентских приложений, и это увеличит совокупные потребности в ресурсах при исполнении вследствие повторения части кода программ и запросов;
• Низкий уровень управления непротиворечивостью информации, так как бизнес-правила функциональной обработки, сосредоточенные на клиентской части, могут быть противоречивыми.
Архитектура «активный сервер баз данных»
Для того, чтобы устранить недостатки, свойственные архитектуре сервера базы данных, необходимо, чтобы непротиворечивость бизнес-логики и изменения базы данных контролировались на стороне сервера.
Для этой функции бизнес-логики разделяются между клиентской и серверной частями. Общие или критически значимые функции оформляются в виде хранимых процедур, включаемых в состав базы данных. Кроме этого вводится механизм отслеживания событий БД – триггеров, также включаемых в состав базы. При возникновении соответствующего события (обычно изменения данных), СУБД вызывает для выполнения хранимую процедуру, связанную с триггером, что позволяет эффектно контролировать изменение базы данных.
Хранимые процедуры и триггеры могут быть использованы любыми клиентскими приложениями, работающими с базой данных. Это снижает дублирование программных кодов и исключает необходимость компиляции каждого запроса.
Недостатком такой архитектуры становится существенно возрастающая загрузка сервера за счет необходимости отслеживания событий и выполнения части бизнес-правил.
Архитектура «сервер приложений»
Рассмотренные выше архитектуры являются двухзвенными: здесь все функции доступа и обработки распределены между программой клиента и сервером БД.
Дальнейшее снижение требований к ресурсам клиента достигается за счет введения промежуточного звена – сервера приложений, на который переносится значительная часть программных компонентов управления данными и большая часть бизнес-логики. При этом серверы баз данных обеспечивают исключительно функции СУБД по ведению и обслуживанию базы данных.
К другим (организационно-технологическим) достоинством трехзвенной архитектуры можно отнести:
• централизованное введение бизнес-логики, и в случае внесения изменения отсутствие необходимости их тиражирования в клиентских приложениях;
• отсутствие необходимости устанавливать на клиентских машинах компоненту программного обеспечения управления доступа к данным:
• возможность отложенного обновления БД в случае изменения данных, запрошенных с сервера, в автономном режиме. Данные будут обновлены в базе после следующего соединения клиентской программы с сервером приложений.
