Лекции по Базам данных. лекции. Развитие технологий обработки данных
Скачать 0.53 Mb.
|
Архитектура «клиент – сервер» Так же как и выше рассмотренные технологии, технология «клиент – сервер» базируется на однотипной архитектуре. Эта архитектура предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых выполняет специальные управляющие функции, являясь сервером сети. Особенности в том, что архитектура «клиент – сервер» разделяет функции приложения пользователя (называемого клиентом) и сервера. Приложение-клиент формирует запрос к серверу, на котором расположена база данных, на структурном языке запросов SQL (Struсturеd Quеry Lаnguаge), являющемся промышленным стандартом в мире реляционных баз данных (основанных на реляционной алгебре). Удаленный сервер принимает запрос и переадресует его SQL-серверу базы данных. SQL-сервер – специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса. Клиентский компьютер лишь отсылает запрос к серверной базе данных и получает результат, после чего интерпретирует его необходимым образом и предоставляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети «курсируют» только те данные, которые необходимы клиенту. В итоге существенно снижается общая нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в кротчайшее время и с наименьшими накладными расходами. Представленная архитектура системы базы данных представлена на рисунке 3.3. Такие действия улучшают быстродействие системы и уменьшают время простоя или время ожидания результата запроса. При выполнении запросов сервером существенно улучшается степень безопасности данных, поскольку правила целостности данных определяются в базе данных на сервере и являются едиными для всех приложений, использующих эту базу данных. Таким образом, исключается возможность определения противоречивых правил поддержания целостности. Расширенный аппарат транзакций, поддерживаемый SQL-серверами, позволяет полностью исключить одновременное изменение одних и тех же данных различными пользователями и предоставляет возможность откатов к первоначальным значениям при внесении в базу данных изменений, что улучшает такую характеристику системы, как отказоустойчивость. Работа клиент-серверной архитектуры построена следующим образом: База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети). Рисунок 3.3 – Архитектура «клиент – сервер» Система управления базой данных располагается также на сервере сети. Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено прикладные программы (клиентское приложение) для работы с базой данных. На каждом из клиентских компьютеров пользователи имеют возможность запустить клиентские приложение. Используя предоставляемый приложением пользовательский интерфейс, он задают обращение к системе управления базой данных, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, то есть по сети от клиента к серверу передается лишь запросный текст. Система управления базой данных инкапсулирует внутри себя все сведения о физической структуре базы данных, расположенной на сервере. Система управления базой данных инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом, система управления базой данных возвращает результат в приложение. Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов. Имеются разграничения функций между сервером и клиентом. Эти разграничения представлены следующим образом. Функции приложения-клиента: Посылка запросов серверу. Интерпретация результатов запросов, полученных от сервера. Представление результатов пользователю в некоторой форме (интерфейс пользователя). Функции серверной части: Прием запросов от приложений-клиентов. Интерпретация запросов. Оптимизация и выполнение запросов к базе данных. Отправка результатов приложению-клиенту. Обеспечение системы безопасности и разграничение доступа. Управление целостностью базы данных. Реализация стабильности многопользовательского режима работы. В клиент-серверной архитектуре работают так называемые «промышленные» системы управления базами данных. Промышленными они называются из-за того, что именно системы управления базами данных этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. К разряду промышленных систем управления базами данных относятся МS SQL Server, Оrасle, Guрtа, Infоrmix, Sybаsе, DВ2, InterВase и ряд других. Обычно, SQL-сервер обслуживается отдельным сотрудником или группой сотрудников (администраторы SQL-сервера). Они управляют физическими характеристиками баз данных, производят оптимизацию сервера, настройку и переопределение различных компонентов баз данных, создают новые базы данных, изменяют существующие и т.д. Также они выдают привилегии, то есть производят разрешения различным пользователям на доступ определенного уровня к конкретным базам данных и SQL-серверу. Основные достоинства клиент-серверной архитектуры по сравнению с ранее рассмотренной файл-серверной архитектурой: Существенно улучшается загруженность сетевого трафика. Упрощаются клиентские приложения, так как на серверную часть ложится большая часть нагрузки. В этом случае, снижаются требования к аппаратным мощностям клиентских компьютеров. SQL-сервер это специальное программное средство. Его наличие приводит к предварительному решению существенной части проектных и программных задач. Существенно повышается целостность и безопасность базы данных. К недостатка клиент-серверной архитектуры можно отнести, такие характеристики, как более высокие финансовые затраты на аппаратное и программное обеспечение, а также то, что большое количество клиентских компьютеров, расположенных в разных местах, вызывает определенные трудности со своевременным обновлением клиентских приложений на всех компьютерах-клиентах. Не взирая на это, клиент-серверная архитектура с практической стороны хорошо зарекомендовала себя и в настоящий момент существует и функционирует большое количество баз данных построенных в соответствии с данной архитектурой. Многозвенная архитектура «клиент – сервер» Многозвенную архитектуру «клиент-сервер» рассмотрим на примере трехзвенная архитектуры, которая в некоторых случаях является многозвенной. Трехзвенная (многозвенная) архитектура (N-tier или multi-tier) представляет собой, более усовершенствованную, клиент-серверную архитектуру. Клиент-серверная архитектура, рассмотренная ранее, является 2-звенной: первое звено – клиентское приложение, второе звено – сервер базы данных и сама база данных. В трехзвенной архитектуре вся бизнес-логика или деловая логика, которая ранее входила в клиентские приложения, выделяется в отдельное звено, которое называется сервером приложений. При этом клиентским приложениям остается лишь пользовательский интерфейс. В качестве клиентского приложения, в описанном выше примере, может выступать Wеb-браузер. Что становится оптимальным? Какие характеристики улучшаются при использовании трехзвенной архитектуры? Теперь при изменении бизнес-логики более нет необходимости изменять клиентские приложения или прикладные программы и обновлять их у всех пользователей. Кроме того, максимально снижаются требования к аппаратной составляющей пользователя. Построение работы многозвенной архитектуры выглядит следующим образом: База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети). Система управления базой данных находится также на сервере сети. Существует специально выделенный сервер приложений, на котором располагается программное обеспечение (ПО) делового анализа (бизнес-логика). Существует множество клиентских компьютеров, на каждом из которых установлен так называемый «тонкий клиент» – клиентское приложение, реализующее интерфейс пользователя. Пользователи на каждом из клиентских компьютеров имеют возможность запустить приложение, которое называется тонким клиентом. Используя предоставляемый приложением пользовательский интерфейс, он задают или инициируют обращение к программному обеспечению делового анализа, которое расположено на сервере приложений. Сервер приложений осуществляет анализ требований пользователя и формирует запросы к базе данных. Для общения используется специальный язык запросов SQL, то есть, по сети от сервера приложений к серверу базы данных передается лишь запрос в виде текста. Система управления базой данных инкапсулирует внутри себя все сведения о физической структуре базы данных, расположенной на сервере. Система управления базой данных инициирует обращения к данным, находящимся на сервере, в результате которых результат выполнения запроса копируется на сервер приложений. Сервер приложений возвращает результат в клиентское приложение (пользователю). Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов. Представление информации в реляционных базах данных В современных условиях реляционный подход является наиболее распространенным в настоящее время, не смотря на то, что наряду с общепризнанными достоинствами обладает и рядом недостатков. К достоинствам реляционного подхода относятся: - наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать огромную часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными пользователю; - наличие простого, и в то же время сильного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретическую основу реляционного подхода к организации баз данных; - возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти. Реляционные системы, при всех перечисленных достоинствах, далеко не сразу получили широкое распространение. В то время, как основные теоретические результаты в этой области были получены еще в 70-х, и тогда же появились первые прототипы реляционных систем управления базами данных, долгое время считалось невозможным эффективно реализовывать таких систем. Однако отмеченные выше преимущества реляционного подхода и поэтапное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка более ранние системы управления базами данных, основанные не на реляционном подходе. Отметим недостатки реляционных систем управления базами: - присущая этим системам некоторая ограниченность (прямое следствие простоты) при использовании в так называемых нетрадиционных областях (наиболее распространенными примерами являются системы автоматизации проектирования), в которых требуются предельно сложные структуры данных. - невозможность адекватного отражения семантики предметной области. Иначе говоря, возможности представления знаний о семантической специфике предметной области в реляционных системах существенно ограничены. Исследования, проводимые в настоящее время в области постреляционных систем, главным образом посвящены именно устранению приведенных выше недостатков. В основном, в реляционной модели рассматриваются три аспекта данных: структура данных или объекты данных; целостность данных; обработка данных или операторы. Для управления реляционной базой данных Эдгар Кодд ввел реляционные языки обработки данных – реляционную алгебру и реляционное исчисление. Появление реляционных языков дополнительно к реляционной модели, которая сама по себе имела, безусловно, большое значение, явилось серьезным основанием для реляционной революции в области баз данных. Реляционные языки, позволяя манипулировать данными на основе только их логических характеристик, заняли одно из важнейших мест новой модели. В этом вопросе будут рассмотрены оба нововведения сформированные Коддом как язык манипулирования данными и учитывающий и реляционную алгебру и реляционные исчисления. Реляционная алгебра является процедурным языком для обработки реляционных таблиц. Это означает, что в реляционной алгебре используется пошаговый подход к созданию реляционных таблиц, содержащих ответы на запросы. Огромное внимание, проявляемое к реляционной алгебре, обусловлено тем, что она породила многие термины, часто встречающиеся в коммерческих языках баз данных. Более того, некоторые коммерческие языки баз данных основаны на реляционной алгебре. Реляционное исчисление – непроцедурный язык. В реляционном исчислении запрос создается путем определения таблицы запроса за один шаг. Огромное значение реляционного исчисления обусловлено двумя причинами: - оно базируется на исчислении предикатов формальной логики, которая является эффективным методом определения истинности высказывания на основе истинности его компонентов. Следовательно, реляционное исчисление имеет столь же твердую логическую основу, что и любой существующий язык программирования; - реляционное исчисление лежит в основе некоторых коммерческих реляционных языков. Кодд показал логическую эквивалентность реляционной алгебры и реляционного исчисления. Это означает, что любой запрос, который можно сформулировать при помощи реляционного исчисления, также можно сформулировать, пользуясь реляционной алгеброй, и наоборот. Данный факт позволил измерять логическую силу языка запросов. Если язык имеет как минимум те же возможности, что и реляционная алгебра, то он называется реляционно-полным. Таким образом, реляционная алгебра или реляционное исчисление являются эталоном при тестировании логических возможностей коммерческих реляционных языков. И реляционная алгебра, и реляционное исчисление в том виде, как они были сформулированы Коддом, являются теоретическими языками. Реляционная алгебра. Основные операции по обновлению информации в реляционной базе данных – это операции не над отношениями, а над кортежами отношения. В этой теме будут рассмотрены операторы, применяемые к целым отношениям. Операторы реляционной алгебры используют одно или два из существующих отношений для создания нового отношения, которое затем может быть использовано в качестве операнда для нового оператора. Ценность поэтапного создания новых отношений на основе старых трудно переоценить, поскольку оно предоставляет пользователю широчайшие возможности для выполнения множества операций обработки данных. Оно также чрезвычайно уменьшает сложность создание запросов, поскольку позволяет экспериментировать до тех пор, пока не будет найден оптимальный способ решения поставленной задачи. Напомним, что алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества. Реляционная алгебра или алгебра отношений представляет собой совокупность операций высокого уровня над отношениями. Реляционная алгебра определяет такие операции как: объединение; пересечение; разность; произведение; выбор; создание проекций; соединение; деление. Первые четыре операции взяты Эдгаром Коддом из математической теории множеств и практически совпадают с операциями теории множеств. Правомерность подобных действий базируется на том факте, что, поскольку реляционные таблицы являются множествами, то вполне естественно, что к ним применимы операции над множествами. Следующие четыре – новые операции, относящиеся только к реляционной модели данных. Надо помнить тот основополагающий момент, что одной из основных операций при работе с базой данных в реляционной теории является запрос. И выполнение всех перечисленных операций реляционной алгебры всегда направлено именно на реализацию запросов. Поэтому в ней отсутствуют любые конструкции, призванные объявлять, создавать или модифицировать данные. Запрос – операция над отношениями, результатом которой является отношение. Под системой запросов будем понимать формальную систему для выражения запросов. Запрос с использованием реляционной алгебры задает алгоритм преобразования отношений, приводящий к требуемому результату. Операции реляционной алгебры делятся на две группы – основные и дополнительные. Основные операции реляционной алгебры. Два отношения с одной и той же схемой могут быть рассмотрены как множества одного и того же универсума – множество всех возможных кортежей с этой схемой. К таким двум отношениям могут быть применены булевы операции. К основным операциям относятся следующие булевы операции: объединение, разность, декартово произведение. Объединение (Union) Пусть имеются отношения r и s, тогда отношение называется объединением r и s, если каждый кортеж, принадлежащий t, принадлежит или r, или s, или им обоим. |