Функции сервера.
Средства разработки программ.
Средства запросов.
Функции клиента.
Компьютер-клиент получает инструкции от пользователя, подготавливает их для сервера и затем по сети посылает запрос на сервер. Сервер обрабатывает запрос, проводит поиск необходимых данных и отсылает их клиенту. Клиент в удобной для пользователя форме отображает полученную информацию.
В клиент-серверной среде пользователь компьютера-клиента имеет дело с экранной формой. В ней он задает параметры необходимой информации.
Инструментальные средства (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, о применении которых рассказывается в этой главе.