Функции сервера.
Средства разработки программ.
Средства запросов.
Функции клиента.
Компьютер-клиент получает инструкции от пользователя, подготавливает их для сервера и затем по сети посылает запрос на сервер. Сервер обрабатывает запрос, проводит поиск необходимых данных и отсылает их клиенту. Клиент в удобной для пользователя форме отображает полученную информацию.
В клиент-серверной среде пользователь компьютера-клиента имеет дело с экранной формой. В ней он задает параметры необходимой информации.
Инструментальные средства (tools), приложения и утилиты для интерфейсной части дополняют возможности клиент-серверной модели. К этим средствам относятся:
Средства запросов облегчают доступ к данным сервера, используя предопределенные запросы и встроенные возможности для построения отчетов.
Пользовательские приложения.
Многие стандартные приложения (например, Microsoft Excel) могут работать в качестве интерфейсной части, обеспечивая доступ к серверу базы данных. Другие приложения (такие, как Microsoft Access) имеют свой собственный SQL — для обеспечения доступа к системам управления базами данных от разных производителей.
|
|
Для реализации систем «клиент-сервер» необходимы специально разработанные интерфейсные части. Средства разработки программ (например, Microsoft Visual Basic) значительно облегчают программистам и администраторам информационных систем создание приложений, которые отвечают за доступ к серверам базы данных.
Сервер в клиент-серверной среде обычно предназначен для хранения и управления данными. Именно сервер выполняет большинство операций с данными. Сервер называют также прикладной частью модели «клиент-сервер», так как именно он выполняет запросы клиентов. По сети сервер принимает от клиентов структурированные запросы, выполняет их, а затем возвращает клиенту необходимую информацию.
Программное обеспечение, установленное на сервере для управления базой данных, реагируя на запросы клиентов, начинает поиск информации. Как часть системы «клиент-сервер» оно возвращает только результаты поиска.
Обработка данных на сервере включает их сортировку, извлечение затребованной информации и отправку ее в адрес пользователя.
Программное обеспечение (сервера базы данных) предусматривает, кроме того, следующие действия над информацией: обновление; удаление; добавление; защита.
Хранимые процедуры — это короткие, предварительно написанные процедуры обработки данных. Они хранятся на сервере и могут быть использованы любым клиентом.
Хранимые процедуры (stored procedures) помогают обрабатывать данные, уменьшая длину кода и используемого дискового пространства на компьютерах-клиентах. Одна хранимая процедура может быть вызвана любым количеством клиентов, при этом включать ее в код каждой программы вовсе не обязательно. Сфера действий хранимых процедур: осуществляют частичную обработку данных, обычно проводимую клиентом; уменьшают сетевой трафик, поскольку единственное обращение клиента приводит к выполнению серии команд хранимой процедуры, каждая из которых потребовала бы отдельного запроса; могут проводить контроль безопасности — для предотвращения несанкционированного запуска пользователями некоторых процедур.
|
|
Наиболее важной задачей при разработке клиент-серверных систем является решение о том, как функциональность приложения распределяется между клиентской и серверной частью. В связи с этим возможны двухуровневые, трехуровневые и многоуровневые архитектуры. Общее для всех архитектур – Клиентское приложение, кроме интерфейса, обеспечивает управление сценариями работы приложения. Сервер БД обеспечивает надежность, согласованность и защищенность данных, управляет запросами клиентов и выполняет их быструю обработку.
Возможные варианты – Большая часть функций приложения решается клиентом, сервер только обрабатывает SQL-запросы и ведет БД. Такая архитектура получила название «Толстый клиент – тонкий сервер». Появление возможности разработки хранимых процедур, вызываемых удаленно, привело к тенденции переносить возможно большую часть функций приложения на сервер. В идеале вся логика работы приложения переносится на сервер. При этом приложение легче поддерживается, так как все изменения вносятся только в одном месте – на сервере. Однако хранимые процедуры со сложной логикой реализуются с трудом ввиду ограниченности языковых средств. Такая архитектура – «Тонкий клиент – толстый сервер».
Трехуровневая архитектура предполагает выделение отдельных компонент в промежуточный слой, который может выполняться либо на выделенном сервере приложений, либо там же, где и сервер БД.
Существует несколько способов реализации модели «клиент-сервер». Основные два способа:
Æ данные размещаются на одном сервере базы данных:
Æ данные распределяются на нескольких серверах базы данных, в зависимости от местонахождения пользователей и типа данных.
Возможны два варианта построения распределенной системы:
Æ периодическая синхронизация серверов (обеспечит единообразие данных на всех серверах):
Æ использование хранилища данных (обеспечит хранение большого объема информации и передачу часто вызываемых данных в промежуточные системы, которые, в свою очередь, преобразуют их в удобный формат: благодаря этому уменьшается нагрузка на главный сервер).
Преимущества технологии «клиент-сервер»
Технология «клиент-сервер» создает мощную среду. Хорошо спланированная клиент-серверная система обеспечивает относительно недорогую платформу, которая обладает в то же время вычислительными возможностями мэйнфреймов и легко настраивается для выполнения конкретных задач. Кроме того, при клиент-серверной обработке резко уменьшается сетевой трафик, так как через сеть передаются только результаты запросов.
Еще одно замечание. Груз файловых операций ложится в основном на компьютер, который намного мощнее клиентов и способен поэтому лучше обслуживать запросы. Для нагруженных сетей это означает, что нагрузка будет распределена более равномерно, чем в традиционных сетях на основе сервера.
Модель «клиент-сервер» уменьшает потребность компьютеров-клиентов в оперативной памяти, поскольку вся работа с файлами выполняется на сервере. Серверы в клиент-серверных системах способны хранить большое количество данных. Благодаря этому на компьютерах-клиентах освобождается значительный объем дискового пространства для других приложений.
|
|
Наконец, управление всей системой, включая контроль за ее безопасностью, становится намного проще, так как все файлы и данные централизованно размещаются на сервере или на небольшом числе серверов. Упрощается также резервное копирование.
Введение в SQL.
Доступ к данным в БД организуется с помощью стандартного языка запросов. На сегодня таким языком является SQL. Прообраз языка возник в 1970 году, разработан фирмой IBM. На сегодня это Стандарт, определяемый ANSI (Американским Национальным Институтом Стандартов) ISO (МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ).
SQL первого поколения - SQL-86 и его незначительное развитие SQL-89. Вторая версия - SQL-92 получила уже весьма широкое распространение и спецификации ее заметно расширены. Третья версия предполагалась к выходу в 1996 году, однако фактически стандартизована только в 1999.
Разработчики коммерческих СУБД часто расширяют и модифицируют стандарт для реализации новых возможностей обработки данных. Поэтому приходится постоянно говорить об особенностях той или иной реализации. SQL не является языком программирования. На нем пишутся не программы, а запросы к БД. Другими словами на SQL формулируется, что нужно получить, но не как это надо сделать.
На процедурном языке запрос «вывести все строки, для которых условие усл истинно» привело бы к следующей последовательности шагов:
1. Рассмотреть строку таблицы.
2. Проверить, усл истинно?
3. Если да, то сохранить строку в буфере
4. Проверить, есть ли еще строки в таблице
5. Если да, то перейти к шагу 1
6. Вывести все строки из буфера.
На SQL просто формулируется запрос. В связи с этим в SQL отсутствуют операторы цикла, условные операторы и т.п.
Интерактивный и встроенный SQL
Интерактивный SQL применяется для работы непосредственно с БД и для немедленного получения результатов запроса. После ввода команды она сразу выполняется и если есть что вывести – результат выводится немедленно.
|
|
Вложенный или встроенный SQL состоит из команд SQL, помещенных внутри программы на другом языке типа Паскаля, С, Бейсика.
Подразделы SQL
Команды SQL полезно разделить на группы или подразделы.
DML – Data Manipulation Language – язык манипулирования данными. Набор команд для работы с таблицами, обновление значений полей.
DQL – Data Query Language – язык запросов. Набор команд для извлечения данных из таблиц. В основном – разные варианты команды Select. Иногда считается частью DML.
DDL – Data Definition Language – язык описания данных. Команды, определяющие объекты – таблицы, индексы и т.п.
DCL – Data Control Language – язык управления данными. Средства. Которые определяют, разрешить ли пользователю выполнять конкретное действие или нет. Иными словами, определяет права доступа к БД и таблицам для отдельных команд SQL.
Следует отметить также TPL – Transaction Processing Language – язык обработки транзакций. Транзакция – группа команд DML, выполняется как 1 команда.
Отметим, что это не разные языки, а различные функциональные группы команд SQL.
Краткий конспект SQL с примерами см. в файле Sql_All.doc.
Основы администрирования БД.
Этa глава знакомит вас с привилегиями. SQL применяется главным образом для тех приложений, где требуется распознавать и дифференцировать пользователей системы. В обязанности администрирования базы данных входит создание других пользователей и назначение им привилегий. С другой стороны, пользователи, создающие таблицы, управляют ими. Привилегии (privileges) — это определения того, может или нет отдельный пользователь выполнить данную команду. Существует несколько типов привилегий, соответствующих определенным типам операций. Привилегии назначаются и отменяются с использованием двух SQL команд — GRANT и REVOKE, о применении которых рассказывается в этой главе.