- •Раздел 2 проектирование серверной части приложения баз данных
- •Тема 2.1 sql-сервер InterBase и его основные компоненты
- •Тема 2.2 Физическая организация базы данных InterBase.
- •Тема 2.3 Создание базы данных.
- •Тема 2.4 Домены
- •Создание домена.
- •Тема 2.5 Создание таблиц
- •Определение ключей и ссылочных целостностей.
- •Тема 2.6 Работа с индексами.
- •Тема 2.7 Добавление, изменение, удаление записей
- •Добавление записей
- •Изменение записей.
- •Тема 2.8 Работа с просмотрами view.
- •Тема 2.9 Работа с хранимыми процедурами.
- •Изменение и удаление хранимых процедур
- •Алгоритмический язык хранимых процедур.
- •Тема 2.10 Работа с триггерами
- •Создание триггеров.
- •Тема 2.11 Использование генераторов.
Раздел 2 проектирование серверной части приложения баз данных
Тема 2.1 sql-сервер InterBase и его основные компоненты
SQL–сервер InterBase предназначен для хранения и обработки больших объемов информации в условиях одновременной работы с БД множества клиентских приложений. Масштаб информационной системы при этом произволен – от системы уровня рабочей группы (под управлением Novell Netware или Windows 32 на базе IBM-совместимых ПК) до системы уровня большого предприятия (на базе серверов IBM, Hewlett-Packard, SUN).
Ниже рассматривается ряд технологий InterBase, использование которых обеспечивает максимальную вычислительную разгрузку клиентского приложения и гарантирует высокую безопасность и целостность информации.
Для задания ссылочной и смысловой целостности в БД определяются:
отношения подчиненности между таблицами БД путем определения первичных (PRIMARY) ключей у родительских и внешних (FOREIGN) ключей у дочерних таблиц;
ограничения на значения отдельных столбцов (CONSTRAIT); условия ограничений могут быть разнообразны – от требования удовлетворения вводимых значений определенному диапазону или соответствия некоторой маске до требуемого отношения с одной или несколькими записями из другой таблицы (или многих таблиц) БД.
триггеры (TRIGGER) – подпрограммы, автоматически выполняемые сервером до или (и) после события изменения записи в таблице БД;
генераторы (GENERATOR) для создания и использования уникальных значений нужных полей.
Для ускорения работы клиентских приложений с удаленной БД могут быть определены хранимые процедуры (STORED PROCEDURE), которые представляют собой подпрограммы, принимающие и возвращающие параметры и способные выполнять запросы к БД, условные ветвления и циклическую обработку. Хранимые процедуры пишутся на специальном алгоритмическом языке. В них программируются часто повторяемые последовательности запросов к БД. Текст процедур хранится на сервере в откомпилированном виде. Преимущества в использовании хранимых процедур очевидны:
отпадает необходимость синтаксической проверки каждого запроса и его компиляции пред выполнением, что убыстряет выполнение запросов;
отпадает необходимость реализации в клиентской программе запросов, определенных в теле хранимых процедур;
увеличивается скорость обработки транзакций, т.к. вместо подчас длинного SQL-запроса по сети передается относительно короткое обращение к хранимой процедуре.
В составе записи БД могут определяться BLOB-поля (Binary Large Object – большой двоичный объект), предназначенные для хранения больших объемов данных в виде последовательности байтов. Таким образом могут храниться текстовые и графические документы, файлы мультимедиа, звуковые файлы и т.д. Интерпретация BLOB-поля выполняется в приложении, однако разработчик может определить так называемые BLOB-фильтры для автоматического преобразования содержимого BLOB-поля к другому виду.
InterBase дает возможность использовать определяемые пользователем функции (User Defined Function, UDF) в которых могут реализовываться функциональности, отсутствующие в стандартных встроенных функциях InterBase (вычисление максимума, минимума, среднего значения, преобразования типов и приведение букв к заглавным). Например, в UDF можно реализовать извлечение из значения даты номера дня, года; определение длины символьного значения; усечение пробелов; разные математические алгоритмы и т.п. Функция пишется на любом алгоритмическом языке, позволяющем разрабатывать DLL (библиотеки динамического вызова), например, на Object Pascal.
InterBase может посылать уведомления клиентским приложениям о наступлении какого-либо события (EVENT). Одновременно работающие приложения могут обмениваться сообщениями через сервер БД, вызывая хранимые процедуры, в которых реализована инициация нужного события.
Для обеспечения быстроты выполнения запросов и снятия с клиентского приложения необходимости такие запросы выдавать в БД можно определить виртуальные таблицы (или просмотры, VIEW), в которых объединяются записи из одной или более таблиц, соответствующих некоторому условию. Работа с просмотром из клиентского приложения ничем не отличается от работы с обычной таблицей. Поддерживает просмотр сервер, реагируя на изменение данных в БД. Просмотры могут быть изменяемыми или не допускающими внесения в них изменений.
Для доступа к БД используется утилита Windows Interactive SQL (WISQL). Она работает с БД напрямую через InterBase API, минуя BDE. С помощью WISQL можно писать любые запросы к серверу, будь то создание БД, таблиц, изменение структуры данных, извлечение данных из БД или их изменение, а также назначение прав доступа к информации для отдельных пользователей.
Для управления SQL-сервером в целом и отдельными БД в частности используется утилита InterBase Server Manager. С её помощью можно определять параметры SQL-сервера, производить сохранение, восстановление БД, сборку «мусора», определять новых пользователей, их пароли и т.д.
Для просмотра БД, работы с таблицами, индексами, доменами, ограничениями и др. могут использоваться утилиты Database Desktop (весьма ограниченно) и SQL Explorer.
Для просмотра и анализа реальных процессов, происходящих на сервере при реализации пользовательского запроса, используется утилита SQL Monitor.