Введение в системы БД (542480), страница 19
Текст из файла (страница 19)
раздел 2.3). ° Приложения, предоставляемые поставщиками (часто называемые инструментальными средствами). В целом, назначение таких средств — содействовать процессу создания и выполнения других приложений, т.е. приложений, которые разрабатываются специально для решения некоторой специфической задачи. Часто эти создаваемые приложения могут выглядеть вовсе не так, как приложения в общепринятом смысле. И это понятно, поскольку само назначение инструментальных средств состоит в предоставлении пользователям, особенно конечным, возможности создавать приложения без написания традиционных программ.
Например, одно из предоставляемых поставщиком СУБД инструментальных средств может быть генераторам отчетов, с помощью которого конечный пользователь 82 Часть 1 Основные понятия сможет получить отформатированный отчет, выполнив обычный запрос к системе. Каждый такой запрос является, по сушеству, ни чем иным, как небольшим специальным приложением, написанным на языке очень высокого уровня (со специфическим назначением), а именно — на языке выдачи отчетов. Поставляемые инструментальные средства„в свою очередь, делятся на несколько самостоятельных классов.
а) Процессоры языков запросов. б) Генераторы отчетов. в) Графические бизнес-подсистемы. г) Электронные таблицы. д) Процессоры обычных языков. е) Статистические пакеты. ж) Средства управления копированием или средства извлечения данных. з) Генераторы приложений (включая процессоры языков четвертого поколения). и) Другие средства разработки приложений, включая САБЕ-инструменты (САБЕ или Сошрцгег-АЫед Бочаге Епрпеег!пй — автоматизация разработки программного обеспечения), и т.д. Подробное обсуждение этих приложений выходит за рамки данной книги, однако следует отметить, что (как утверждалось ранее) главная задача системы баз данных — поддержка создания и выполнения приложений.
Поэтому качество имею- шихся клиентских инструментальных средств должно быть главным учитываемым фактором при выборе СУБД, наиболее подходяшей для конкретного заказчика. Другими словами, СУБД сама ло себе — не единственный и необязательно важнейший фактор, который нужно учитывать в этом случае. Завершим настояший раздел ссылкой иа последуюший материал.
Так как система в целом может быть четко разделена на две части (сервер и клиенты), появляется возможность работы этих двух частей яа Разных машинах. Иначе говоря, существует возможность организации распределенной обработки. Распределенная обработка предполагает, что отдельные машины можно соединить какой-нибудь коммуникационной сетью таким способом, что выполнение одной задачи обработки данных можно будет распределить на несколько машин этой сети.
Как показала практика, эта возможность настолько заманчива по различным соображениям (главным образом, экономическим), что термин "клиент/сервер" стал применяться почти исключительно в тех случаях, когда клиенты и сервер действительно находятся на разных машинах. Более подробно распределенная обработка данных рассматривается ниже, в разделе 2П 2. 2.11. Утилиты Утилиты — это программы, разработанные для АБД и используемые им при решении различных административных задач.
Как упоминалось выше, некоторые утилиты выполняются на внешнем уровне системы и потому представляют собой не что иное, как приложения специального назначения. Одни из них могут быть созданы даже не поставщиком данной СУБД, а определенными сторонними разработчиками программ- 83 Глава 2. Архитектура системы баз данных ного обеспечения. Однако другие утилиты выполняются непосредственно на внутреннем уровне (т.е, действительно являются частью сервера) и поэтому должны предоставляться поставщиками СУБД.
Ниже приводится несколько примеров утилит различных типов, которые часто применяются на практике. ° Инструменты загрузки, применяемые для создания исходной версии базы данных из одного или более файлов операционной системы. ° Инструменты выгрузкн-перезагрузки, применяемые для выгрузки базы данных или ее части, создания резервных копий хранимых данных и восстановления базы данных из этих копий.
(Безусловно, утилита перезагрузки, по существу, идентична упомянутой выше утилите загрузки.) ° Инструменты реорганизации, применяемые для перераспределения данных в хранимой базе данных, которое выполняется по различным причинам (обычно с целью повышения производительности). В частности, это может быть процедура группирования данных на диске некоторым специальным образом или освобождение пространства, занятого ранее данными, которые больше не используются. ° Статистические инструменты, применяемые длл вычисления различных статистических показателей и показателей производительности, таких как сведения о размерах файлов или значениях данных, счетчики операций ввода-вывода и т.п. ° Инструменты анализа, применяемые для анализа упомянутой выше статистической информации.
Этот список охватывает лишь небольшую часть функциональных возможностей, обычно предоставляемых доступными утилитами. Помимо перечисленных, существует множество других функций. 2.12. Распределенная обработка Как мы определили в разделе 2.10, термин "распределенная обработка*' означает, что разные машины можно соединить в коммуникационную сеть (например,!п1егпе1) для организации совместного решения одной задачи обработки данных на нескольких машинах сети.
(Термин "параялельная обработка" используется практически для того же, но в "параллельных" системах взаимодействующие машины с физической точки зрения расположены рядом, тогда как для распределенной системы это вовсе необязательно и отдельные машины могут быть достаточно удалены географически.) Взаимодействие между различными машинами осуществляется с помощью специального программного обеспечения, предназначенного для управления сетью. Оно может быть некоторым расширением менеджера передачи данных (см.
раздел 2.9), но чаще всего является отдельным программным компонентом. Распределенная обработка может быть самой разнообразной и осуществляться на разных уровнях. Как отмечалось в разделе 2.10, один из простейших случаев, представленный на рис. 2.6, — это случай, когда сервер СУБД запускается на одной машине, а клиентское приложение — на другой. 84 Часть 1 Основные понятия Прозрачный удаленный доступ Как уже отмечалось в конце раздела 2АО, термин "клиент/сервер", несмотря на то что он, строго говоря, является чисто архитектурным, фактически стал синонимом изображенной на рис. 2.6 структуры, в соответствии с которой клиент и сервер запускаются на разных машинах.
И действительно, существует множество аргументов в пользу подобной схемы. ° Главный аргумент связан с возможностью организации параллельной обработки. В этом случае для решения общей задачи применяется сразу несколько процессоров, поскольку работа сервера (базы данных) Маши Приложения яшина и клиента (приложения) осуществляется параллельно. клиента В результате показатели времени реакции системы на запрос и ее производительности должны улучшиться. ° Кроме того, машина сервера может быть изготовлена по специальному заказу и специально приспособлена для работы с СУБД ("машина базы данных").
Такое решение позволяет дополнительно повысить производительность СУБД. Суал Машина ° Аналогично машина клиента может представлять со- сереера бой персональную рабочую станцию, максимально приспособленную к потребностям конкретного конечного пользователя, что позволит предоставить ему наиболее удобный интерфейс и гарантировать высокий уровень готовности, быструю реакцию системы и другие дополнительные удобства при использовании.
° К одной и той же машине сервера могут иметь Рис. 2б. Вариант раснредоступ несколько разных машин клиентов (что деленной обработки, в чаще всего и имеет место). Поэтому одна база катаром клиент исврданных может совместно использоваться не- вер запускаются на сколькими различными клиентскими системами, разныхмашинах как показано на рис. 2.7. К сказанному выше можно добавить, что работа сервера и клиента на отдельных машинах отвечает принципам работы многих предприятий.
Вполне типичный способ функционирования отдельных предприятий (например, банков) заключается в использовании многих компьютеров, причем данные для одной части предприятия сохраняются на одном компьютере, а данные для другой части — на другом. Несомненно, что пользователям одного компьютера, пусть лишь иногда, обязательно потребуется доступ к данным, хранящимся на другом компьютере. Следуя примеру банка, можно с высокой степенью вероятности утверждать, что пользователям одного отделения банка иногда потребуется доступ к данным, сохраняемым в другом его отделении. Из этого можно сделать вывод, что на машинах клиентов могут сохраняться их данные, а машина сервера может иметь собственные приложения.
Поэтому, вообще говоря, каждая машина будет выступать в роли сервера для одних пользователей и в роли клиента для других, образуя систему, представленную на рис. 2.8. Иными словами, в этом случае каждая машина будет поддерживать полную систему баз данных в смысле, который вкладывался в это понятие в предыдущих разделах главы. Глава 2. Архитектура системы баз данных 85 Митины клиентов Рис. 2.
7. Система с однич сервером и нескалькичи клиентами Отметим последнее преимушество, которое состоит в том, что отдельная машина клиента может иметь доступ к нескольким машинам серверов (случай, противоположный показанному на рис. 2.7). Это полезная возможность, поскольку, как уже упоминалось, предприятие обычно выполняет обработку данных таким образом, что полный набор всех данных сохраняется не на одной машине, а распределяется на нескольких различных машинах, причем в приложениях иногда необходим доступ к данным сразу нескольких машин.
Такой доступ предоставляется, в основном, двумя способами. ° Клиент может получать доступ к любому количеству серверов, но лишь к одному из них в каждый момент времени (т.е. каждый запрос к базе данных может быть направлен только к одному серверу). В такой системе невозможно за один запрос получить комбинированные данные от двух или более серверов. Кроме того, пользователь в такой системе должен знать, на какой именно машине содержится конкретная часть данных. ° Клиент может получать доступ к любому количеству серверов одновременно (т.е. за один запрос можно получить комбинированные данные двух или более серверов). В этом случае серверы рассматриваются клиентом как единый сервер (с логической точки зрения) и пользователь может не знать, на какой именно машине содержится та или иная часть данных.