Смекни!
smekni.com

Разработка приложений архитектуры клиент-сервер при помощи SQL (стр. 2 из 5)

Для создания и управления персональными базами данных и приложений, работающих с ними, используются СУБД, такие как Access и Visual FoxPro фирмы Microsoft, Paradox фирмы Borland.

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

Использование архитектуры клиент-сервер дает возможность постепенного наращивания ИС предприятия, во-первых, по мере развития предприятия; во-вторых, по мере развития самой ИС.

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

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

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


Рисунок 2. Структура информационной системы с клиент-сервером

1.3 Языки запросов

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

Запрос представляет собой специальным образом описанное требование, определяющие состав производимых над базой данных операций по выборке, удалению или модификации хранимых данных. Для подготовки запросов с помощью различных СУБД чаще всего используются два основных языка описания запросов: язык QBE (Query By Example) - язык запросов по образцу; язык SQL (Structured Query Language) -структурированный язык запросов.

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

Язык QBE был разработан компанией IBM в 1970-х годах и предназначался для пользователей, заинтересованных в выборе информации из баз данных. Этот язык получил у пользователей столь широкое признание, что в настоящее время в той или иной мере он реализован практически во всех популярных СУБД, включая и Microsoft Access. Средства поддержки языка QBE в СУБД Microsoft Access весьма просты в эксплуатации и в то же время представляют пользователям достаточно широкий спектр возможностей работы с данными. Средства языка QBE могут использоваться для ввода запросов к информации, сохраняемой в одной или нескольких таблицах, а так же для определения набора полей, которые должны присутствовать в результирующей таблице. Отбор записей может, проводится по конкретному или общему критерию, и предусматривать выполнение необходимых вычислений на основе информации, сохраняемой в таблицах. Кроме того, средства языка QBE можно использовать для выполнения различных операций над таблицами, например, для вставки и удаления записей, модификации значений полей или создания новых полей и таблиц.

СУБД Microsoft Access при создании запроса с использованием средств QBE неявно формирует эквивалентный оператор языка SQL, предназначенный для выполнения указанных действий.

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

Язык SQL берет свое начало в одной из исследовательских лабораторий компании IBM. В начале 1970-х годов исследователи выполняли первые разработки реляционных систем СУБД (или РСУБД), и тогда они создали подъязык данных, предназначенный для работы в этих системах. Пробная версия этого подъязыка была названа SEQUEL(Structured English Query Language - структурированный английский язык запросов). Однако когда пришло время официально выпускать их язык запросов в качестве продукта, разработчики захотели сделать так, чтобы люди понимали, что выпущенный продукт отличается от пробной системы СУБД и превосходит ее. Поэтому они решили дать выпускаемому продукту имя, хотя и отличающееся от SEQUEL, но явно принадлежащее к этому же семейству. Так что они назвали его SQL, который стал стандартом для подъязыков данных. В результате, хотя почти все поставщики и использовали варианты одного языка SQL, платформенная совместимость была слабой.

Вскоре началось движение за создание общепризнанного стандарта SQL, которого мог бы придерживаться каждый. В 1986 году организация ANSI выпустила официальный стандарт под названием SQL-86.3TOT стандарт был обновлен той же организацией в 1989 году и получил название SQL-89, а затем в 1992 году, был назван SQL-92. Самой последней версией стандарта SQL является SQL 2003.

Структурированный язык запросов SQL - это гибкий язык, являющийся самым распространенным инструментом, используемым для связи с реляционной базой данных. Этот язык предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и состоит из ограниченного числа команд, специально предназначенных для управления над данными. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro, Access). Чтобы решить с его помощью задачу, сообщается SQL, то, что именно вам нужно, а СУБД сама решит, как лучше всего выполнить ваш запрос. Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным. В специализированных системах разработки приложений типа клиент-сервер среда программирования, кроме того, обычно дополнена коммуникационными средствами (установление и разъединение соединений с серверами баз данных, обнаружение и обработка возникающих в сети ошибок), средствами разработки пользовательских интерфейсов, средствами проектирования и отладки.

Различают два основных метода использования встроенного SQL: статический и динамический.

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

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

По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Главное отличие между ними, заключается в способе формирования запросов: язык QBE предполагает ручное или визуальное формирование запроса, в то время как использование SQL означает программирование запроса.


2. РАЗРАБОТКА ПРИЛОЖЕНИЙ АРХИТЕКТУРЫ КЛИЕНТ-СЕРВЕР ПРИ ПОМОЩИ SQL

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