Файл: Отчет по практике Разработка приложений архитектуры клиентсервер при помощи sql.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 04.12.2023

Просмотров: 83

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


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

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

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

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

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


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

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

    продолжение
--PAGE_BREAK--

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

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

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



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

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

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

Архитектура клиент-сервер, дополняя характеристики SQL, дает возможность в малых, средних и больших сетях получать хорошую производительность при умеренных расходах.

2.1 Обеспечение безопасности

Система безопасности SQLусловно делится на два уровня: сервера и базы данных. На уровне сервера определяется возможность доступа пользователей к серверу. На уровне базы данных для пользователей, получивших доступ к серверу, устанавливаются права доступа к объектам базы данных.

На сервере система защиты SQLможет быть реализована в двух режимах: стандартном — комбинацией средств защиты и интегрированном -использованием только средств защиты.

В стандартном режиме защиты контроль и управление учетными записями, используемыми для доступа к серверу, осуществляет SQL. Кроме того, SQLсамостоятельно выполняет проверку подлинности пользователя с помощью пароля (т.е. аутентификация), хранит данные о правах доступа, именах и паролях. Стандартный режим используется наиболее часто. Его рекомендуется применять в случаях, когда в сети не используются средства WindowsNT/2kдля аутентификации пользователей и при использовании подключения к серверу с помощью различных протоколов.


В интегрированном режиме защиты контроль над устанавливаемыми пользователями соединениями осуществляет операционная система WindowsNT/2k. Достоинствами интегрированного режима защиты является то, что после регистрации пользователя в домене (т.е. ввода своего имени и пароля) он сразу получает соответствующие права доступа ко всем ресурсам домена WindowsNT/2k, в том числе и к данным SQL, а также использование передачи по сети. Такой метод автоматического предоставления доступа называется установлением доверительного соединения. Считается, что режим является более защищенным по сравнению с предыдущим, так как аутентификация средствами WindowsNT/2kявляется гораздо более защищенной, чем аутентификация SQL.

2.2 Язык SQL

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

SQLже (StructuredQueryLanguage— структурированный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQLсам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

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

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


Разработка, в основном, шла в отделениях фирмы IBM(языки ISBL, SQL, QBE) и университетах США (PIQUE, QUEL). Последний создавался для СУБД INGRES(InteractiveGraphicsandRetrievalSystem), которая была разработана в начале 70-х годов в Университете шт. Калифорния и сегодня входит в пятерку лучших профессиональных СУБД. Сегодня из всех этих языков полностью сохранились и развиваются QBE(Query-By-Example— запрос по образцу) и SQL, а из остальных взяты в расширение внутренних языков СУБД только наиболее интересные конструкции.

В начале 80-х годов SQL«победил» другие языки запросов и стал фактическим стандартом таких языков для профессиональных реляционных СУБД. В 1987 году он стал международным стандартом языка баз данных и начал внедряться во все распространенные СУБД персональных компьютеров. Почему же это произошло?

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

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

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

    продолжение
--PAGE_BREAK--