double arrow

Хранимые процедуры


Функции сервера.

Средства разработки программ.

Средства запросов.

Функции клиента.

Компьютер-клиент получает инструкции от пользователя, подготавливает их для сервера и затем по сети посылает запрос на сервер. Сервер обрабатывает запрос, про­водит поиск необходимых данных и отсылает их клиенту. Клиент в удобной для пользователя форме отображает полученную информацию.

В клиент-серверной среде пользователь компьютера-клиента имеет дело с экран­ной формой. В ней он задает параметры необходимой информации.

Инструментальные средства (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, о при­менении которых рассказывается в этой главе.







Сейчас читают про: