
- •Введение.
- •Лекция 1. Введение в клиент-серверные субд.
- •Interbase sql Server. Общие сведения.
- •Платформы
- •Типы приложений
- •Файлы базы данных InterBase
- •Лекция 3. Триггеры и хранимые процедуры
- •Хранимые процедуры (Stored Procedures)
- •Терминаторы
- •Заголовок
- •Тело процедуры
- •Блок кода процедуры
- •Оператор присваивания
- •Условный оператор if… then … else
- •Оператор select
- •Цикл for select и suspend
- •Цикл while … do
- •Операторы insert, update, delete
- •Оператор execute procedure
- •Исключения
- •События и оператор post_event
- •Изменения и удаления хранимых процедур
- •Примеры создания и вызова хранимых процедур
- •Генераторы
- •Увеличение шага генератора
- •Триггеры
- •Переменные new и old
- •Реализация автоинкрементных ключевых полей
- •Лекция 4. Транзакции. Механизм транзакций
- •Атомарность (Atomicity)
- •Согласованность (Consistency)
- •Изолированность (Isolation)
- •Устойчивость (Durability)
- •Неявный и явный старт транзакций
- •Как транзакция работает
- •Уровни изолированности транзакций
- •Параметры транзакций
- •Компонентыдоступакданнымивизуальныекомпоненты МеханизмыдоступакБд
- •ПроблемырусскихбукввInterBase
- •Лекция5. Основы языка php. Функции php для работы с субд История php
- •Возможности php
- •Основнойсинтаксис
- •Разделениеинструкций
- •Комментарии
- •Переменные,константыиоператоры
- •Переменные
- •Константы
- •Операторы
- •Типыданных
- •Типboolean(булевилилогическийтип)
- •Типinteger(целые)
- •Типfloat(числасплавающейточкой)
- •Типstring(строки)
- •Одинарныекавычки
- •Двойныекавычки
- •Типarray(массив)
- •Определениеприпомощиarray()
- •Определениеспомощьюсинтаксисаквадратныхскобок
- •Типobject(объекты)
- •Типresource(ресурсы)
- •Решениезадачи
- •Построениеинтерфейсадлядобавленияинформации
- •Установкасоединения
- •Выборбазыданных
- •Получениеспискаполейтаблицы
- •Отображениеспискаполейвhtml-форму
- •Записьданныхвбазуданных
- •Отображениеданных,хранящихсявMySql
- •Заключение
Interbase sql Server. Общие сведения.
Одним из реляционных клиент-серверных СУБД является InterBase SQL Server фирмы Borland. Схематично архитектура клиент-сервер InterBase в ее типичной конфигурации изображена на рисунке 2.
Компания Borland выпустила версию 6.0 OpenSource в июле 2000 года. В этот момент код Interbase был скопирован, и помещен там же, на sourceforge.net, но под названием Firebird.
Собственно, Borland как владелец исходных текстов, не публикует собственных изменений, тем более для платных версий. Выпуск платных (сертифицированных) версий Interbase был возобновлен в марте 2001 года, и схема оплаты лицензий, а также контроль лицензий на сервере, остались теми же, что и в Interbase 5.x.
Развитие Interbase и Firebird пошло разными путями. В основном в Firebird в течение почти года занимались исправлением ошибок, только после этого начав вводить новую функциональность.
Рис
2.
Архитектура клиент—сервер InterBase
Примерно в октябре 2001 года группа разработчиков из Санкт-Петербурга выпустила собственную версию под кодовым названием Yaffil, базирующуюся на исходном коде Firebird. Эта версия первоначально задумывалась как "исследовательская", с большим количеством параметров настройки и частями кода, оптимизированными и переведенными на ассемблер. В настоящее время Yaffil является полигоном для тестирования сервера, оптимизированного для работы на многопроцессорных компьютерах под Windows.
Функциональность Interbase 6.5 и Firebird практически одинакова, за исключением двух новшеств, введенных в Interbase 6.5 - специальной безопасности метаданных и возможности прерывать долго выполняющиеся запросы. Кроме того, платные версии Interbase являются сертифицированными, т.е. прошедшими тестирование.
В настоящее время последние версии InterBase 7 и FireBird 2 уже имеют существенные отличия, которые не позволяют производить миграцию базы. Декларируется, что семерка совместима только с InterBase 6.5, и рекомендуется проводить миграцию только через backup/restore.
Interbase полностью совместим со стандартом ANSI SQL-92, а так же имеет собственное расширение SQL для хранимых процедур и триггеров. В сравнении со многими другими СУБД, InterBase предоставляет очень эффективный механизм триггеров: каждая таблица может иметь большое количество триггеров, которые выполняются автоматически при вставке, изменении или удалении каждой отдельной записи, до или после этих событий. Многие функции существующих СУБД были впервые реализованы в Interbase – это, в частности, обновляемые представления, события, многомерные массивы и BLOB-поля. Более того, некоторые механизмы, такие, например, как двухфазное подтверждение транзакций, до сих пор остаются уникальными, представленными только в Interbase.
Подключение к базе может осуществляться как по сетевым протоколам (TCP/IP, NetBEUI, IPX/SPX), так и локально.
Одной из основных особенностей InterBase, пожалуй, можно считать версионную архитектуру, которая обеспечивает уникальные возможности при многопользовательской работе – пишущие пользователи никогда не блокируют читателей. Помимо этого, версионная архитектура позволяет отказаться от использования протокола транзакций, который в других СУБД служит для восстановления базы данных после сбоев, поэтому Interbase обладает очень высокой надежностью и устойчивостью.
Также в Interbase реализован механизм оптимистической блокировки на уровне записи. Это значит, что сервер блокирует только те записи, которые реально были изменены пользователем, и не блокирует всю страницу данных целиком. Эта особенность еще более снижает вероятность конфликтов при многопользовательском режиме работы.
Немаловажной особенностью сервера InterBase является возможность расширения стандартного набора SQL-функций при помощи пользовательских библиотек – User Defined Functions, а также механизмы обработки BLOB-полей на сервере с помощью BLOB-фильтров.