- •Федеральное агентство связи
- •Государственное образовательное учреждение высшего
- •Профессионального образования
- •«Поволжская государственная академия телекоммуникаций и информатики»
- •Разработка и эксплуатация удаленных баз данных
- •Конспект лекций
- •Введение
- •Раздел 1. Теория проектирования удаленных баз данных архитектуры удаленных бд Структурная схема терминов
- •Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •Достоинства и недостатки различных архитектур приложений бд
- •Основные технологии доступа к данным Технология com (component object model)
- •Создание распределенных приложений на базе dCom
- •Технология corba (общая архитектура брокеров объектных запросов)
- •Технология midas
- •Доступ к данным по технологии ado
- •Технология com (component object model)
- •Составные части технологии com
- •Создание распределенных приложений на базе dCom
- •Технология midas
- •Доступ к данным по технологии ado
- •Введение в работу с удаленными бд
- •Организация сеанса связи с удаленной бд
- •Сервер interbase
- •Физическая организация базы данных формата InterBase
- •Типы данных в таблицах InterBase Типы столбцов таблиц формата InterBase
- •Организация сеанса связи с удаленной бд
- •Физическая организация удаленной бд
- •Создание и модификация таблиц Операции с таблицами
- •Операции с индексами
- •Графическое проектирование структуры бд Просмотры View
- •Создание бд
- •Создание и использование доменов
- •Компоненты доступа к данным. Запросы на выборку данных
- •Компоненты для доступа к данным и их отображения
- •Формирование запросов на выборку данных
- •Запросы на изменение данных Структурная схема терминов
- •Работа с записями
- •Методика изменения данных при помощи компонент
- •Использование хранимых процедур
- •Понятие и назначение хранимых процедур
- •Язык хранимых процедур
- •Использование триггеров и генераторов
- •Понятие триггера
- •Команды создания, изменения и удаления триггера
- •Генераторы - назначение, создание, установка начального значения
- •Функции, определяемые пользователем – назначение, создание, применение, порядок работы с ними
- •Сортировка, поиск и фильтрация в бд и выборках
- •Сортировка
- •Фильтрация записей
- •Организация данных в бд InterBase
- •Поиск в наборах данных
- •Манипулирование данными в выборках
- •Управление транзакциями и кэширование памяти
- •Механизм транзакций
- •Механизм кэшированных изменений
- •Перехват исключительных ситуаций и обработка ошибок
- •Понятие исключительных ситуаций
- •Обработка исключений
- •Формирование и вывод отчетов
- •Назначение и виды отчетов
- •Компоненты для формирования отчетов
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Установка привилегий доступа к данным
- •Понятие привилегии, привилегии по умолчанию
- •Состав параметров при установлении привилегий
- •Назначение привилегий пользователю и группам пользователей
- •Отмена привилегий
- •Копирование, перенос и восстановление данных Создание резервной копии и восстановление бд
- •Восстановление транзакций
- •Регистрация новых пользователей
- •Копирование клиентской части приложения бд Структурная схема терминов
- •Утилита Install Shield
- •Определение файлов, объектов и элементов среды
- •Задание диалога при разархивировании
- •Создание прообраза копии диска
- •Создание копии на дискетах
Сервер interbase
SQL-сервер Local InterBase
Все серверы БД имеют похожие принципы организации данных и управления ими. Локальный сервер InterBase представляет собой локальную копию (версию) настоящего сервера Interbase, он устанавливается на компьютер локально, и позволяет локально разрабатывать и отлаживать приложения для работы с удаленными БД. В результате становится возможным так называемое масштабирование БД. Приложение, отлаженное локально для Local InterBase, может быть без всяких изменений перенесено на удаленный компьютер и будет работать с удаленной базой данных. SQL-сервер InterBase является "промышленной" СУБД, предназначается для хранения и выдачи больших объемов информации, в условиях одновременной работы множества клиентских приложений.
Целостность БД задается путем использования:
Отношения подчиненности между таблицами путем задания первичных ключей у родительской таблицы (primary) и внешних – у дочерних (foreign).
Ограничения на значения отдельных столбцов путем определения ограничений (constraint) на значение домена или столбца.
Бизнес-правил, задаваемых при помощи триггеров, т.е. подпрограмм, автоматически выполняемых сервером до или (и) после события изменения записи в БД.
Уникальных значений нужных полей путем создания и использования генераторов (generator).
Бизнес-правила – это правила работы с БД, позволяющие быстро модифицировать ее структуру, изменять значения ключевых полей, перестраивать индексы.
Для ускорения работы клиентских приложений с удаленной БД могут быть использованы хранимые процедуры(stored procedure), т.е. процедуры, которые хранятся и выполняются на сервере.
В составе записей БД могут входить BLOB-поля, предназначенные для хранения больших объемов информации в двоичном виде: текст, графические документы, файлы, мультимедиа и т.д. Интерпретация BLOB-полей выполняется в клиентском приложении, однако разработчик может определить BLOB-фильтры для автоматического преобразования BLOB-поля в другой вид.
InterBase позволяет определить UDF (user defined function) – пользовательские функции, в которых могут реализовываться подпрограммы, отсутствующие в стандартных функциях InterBase, например, вычисление максимума и минимума, преобразование типов, и т.п. Функция пишется на любом языке программирования в виде DLL.
InterBase может посылать уведомления клиентским приложениям о наступлении события. Для обеспечения быстрого выполнения запросов можно создавать виртуальные таблицы, в которых объединены записи в соответствии с некоторым условием.
Физическая организация базы данных формата InterBase
БД состоит из последовательности страниц, нумеруемых с нуля.
Нулевая страница является служебной и содержит информацию, необходимую для соединения с БД.
Размер страницы – 1 Кб (по умолчанию), а также 2, 4, 8 Кб – установлен при создании и может быть изменен при сохранении и восстановлении БД, поэтому размер страницы рекомендуется задавать равным размеру кластера диска. При этом учитывается длина записи и наличие BLOB-полей. Объем буфера ввода-вывода для операции чтения и записи определяется количеством страниц (75 по умолчанию). Если БД будет читаться чаще, объем следует увеличить.
В InterBase поддерживается многоверсионная структура записей. При изменении записи создается новая версия, куда записывается, помимо данных, номер транзакции и указатель на предыдущую версию. Старая версия помечена как измененная, а её указатель на следующую версию содержит адрес вновь созданной версии. Каждая стартующая транзакция работает с измененной версией записи. При удалении записи она помечается как удаленная, а удаляется, когда с ней завершены все активные транзакции.
При добавлении новой записи происходит компресация страницы за счет использования "дырок". Если суммарной "дырки" не хватает, то запись помещается на новую страницу. Выделение страниц не оптимизировано. На служебной странице хранятся номера всех свободных страниц.
Многоверсионная структура записи и неоптимальное выделение страниц ведут к высокой фрагментации и замедлению работы с БД, поэтому периодически приходится выполнять дефрагментацию либо путем сохранения БД на диске с последующим восстановлением из резерва копий, либо путем автосборки "мусора".