Содержание
InterBase - быстрый старт. Установка InterBase Что ставить? Установка InterBase на платформе Windows Подготовка к установке Установка Установка InterBase на платформе Linux/Unix Установка инструментария для администрирования InterBase Заключение Создаем базу данных Строка соединения Диалект базы данных Размер страницы Кодировка (CharSet) Имя пользователя и пароль Что получилось Типы данных О типах данных Синтаксис определения типов данных Целочисленные типы Вещественные типы данных Типы данных с фиксированной точкой Типы для хранения даты и времени Типы данных для хранения текста Тип данных BLOB Массивы Заключение Таблицы. Первичные ключи и генераторы Первичные ключи в таблицах Генераторы - лучшие друзья первичных ключей Заключение Индексы Для чего нужны индексы? Как устроены индексы Применение индексов Ускорение выполнения запросов с помощью индексов Обеспечение ссылочной целостности с помощью индексов Оптимизация производительности индексов Виды ограничений в базе данных Пример типичного ограничения Создание ограничений Первичный и уникальный ключи Внешние ключи Использование NULL в полях внешнего ключа Расширенные возможности поддержки ссылочной целостности с помощью внешнего ключа Ограничение CHECK Удаление ограничений Синтаксис DDL для работы с представлениями Примеры представлений Модифицируемые представления Заключение Хранимые процедуры Пример простой хранимой процедуры Разделители в хранимых процедурах Вызов хранимой процедуры Циклы и операторы ветвления Рекурсивные хранимые процедуры Заключение Расширенные возможности языка хранимых процедур InterBase Обработка исключений и ошибок Исключения Обработка ошибок SQL и InterBase Работа с массивами в хранимых процедурах Заключение Триггеры Пример триггера Контекстные переменные Управление состоянием триггера Ошибки и исключения в триггерах События InterBase Заключение User Defined Functions Механизм подключения функций Создание собственных функций Заключение Русификация InterBase Русификация базы данных InterBase Наборы символов Хранение символьных данных без использования наборов символов Вносим ясность Русификация клиентских приложений InterBase Собственные наборы символов и способы сортировки Транзакции. Параметры транзакций Концепция транзакций Что такое транзакции? Изолированность транзакций Механизм транзакций в InterBase Многоверсионная архитектура InterBase Реализация многоверсионности. Страницы учета транзакций Сборка мусора Взаимодействие транзакций Уровни изоляции транзакций Параметры транзакций Виды параметров транзакции Режим доступа Режим блокировки Взаимоблокировка Установка уровней изоляции Рекомендации по использованию параметров транзакций За пределами транзакций Двухфазное подтверждение транзакций Заключение Обзор библиотек доступа к InterBase Основа библиотек доступа к InterBase Библиотеки доступа Список библиотек доступа к InterBase Разработка приложений баз данных InterBase на Borland Delphi/C++ Builder/Kylix Что такое InterBase Express? Общее описание основных компонентов, включенных в состав IBX Компоненты-оболочки для Services API Использование основных компонентов InterBase eXpress (IBX) Иерархия компонентов в IBX Особенности TIBTable, TIBQuery и TIBStoredProc TIBTable TIBQuery TIBStoredProc Подключение к базе данных Управление транзакциями Выполнение запросов при помощи TIBDataSet Редактируемые запросы Редактирование данных при помощи визуальных компонентов Программное редактирование данных И снова про транзакции Использование генераторов для автоинкрементных полей Механизм master-detail Заключение Что такое FIBPIus? Общее описание компонент, включенных в состав FIBPIus Подключение к базе данных, выполнение простых запросов Управление транзакциями Использование стандартных визуальных db-компонентов совместно с FIBPIus Как сделать запрос редактируемым? Автоматическая генерация модифицирующих запросов в design-time и run-time Правильный способ использования auto-increment полей в FIBPIus Разделенные транзакции: уникальная возможность избежать Deadlock. Режим AutoCommit Механизм master-detail. Специальные опции TpFIBDatabase и TpFIBDataSet Специальные опции в компонентах FIBPIus Опции и настройки TpFIBDatabase Опции и настройки TpFIBDataSet Использование FIBPIus совместно с генератором отчетов FastReport Простой отчет Отчеты вида master-detail Создание отчетов в run-time Использование специальных инструментов в design-time: FIBPIus Tools Установка FIBPIus Tools Preferences SQL Navigator Специальные возможности FIBPIus Обработка потери подключения к базе данных Эмуляция Boolean-полей Поддержка array-полей. Пример использования TpFIBUpdateObject и TDataSetContainer Работа с BLOB-полями Локальная сортировка и локальная фильтрация Локальная сортировка Локальная фильтрация Обработка событий InterBase при помощи FIBPIus "Низкоуровневая" работа с внутренним буфером TpFIBDataSet Разработка клиентских приложений СУБД InterBase с использованием технологии Microsoft OLE DB Немного истории Обзор возможностей IBProvider Использование IBProvider в клиентских приложениях Компоненты ADODB Библиотека классов C++ для работы с OLE DB Инсталляция IBProvider Инсталляция ADODB-компонентов Примеры использования ADODB Использование библиотеки классов Примеры использования библиотеки классов Тестовая база данных Операционная система Состав компонентов IBProvider Источник данных Сессия Уровни изоляции транзакции Управление транзакциями Автоматические транзакции Управление транзакциями через SQL Примеры работы с транзакциями Распределенные транзакции Использование нескольких сессий в ADODB Чтение метаданных Команда Создание команды Установка текста команды Подготовка команды Подготовка параметров SQL-запроса Установка свойств результирующего множества Выполнение команды Набор строк Практическое использование IBProvider Работа с BLOB-полями Работа с массивами Особенности реализации поддержки массивов Работа с хранимыми процедурами Создание СОМ-объектов для работы с базой данных Использование скриптов в клиентских приложениях базы данных InterBase Использование пула подключений к базе данных Распределенные запросы Заключение Создание CGI-приложений под ОС Linux с использованием InterBase API Пример 1. Запрос без параметров Пример 2. Запрос с параметрами Заключение Работа с InterBase с использованием ODBC Возможности драйвера Gemini ODBC Поддержка кодировки UNICODE Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC Прокручиваемые курсоры Асинхронная отмена вызовов для InterBase 6.5 Настройка используемого диалекта InterBase SQL Настройка параметров транзакций Установка драйвера и настройка источников данных Вероятные проблемы и способы их решения Заключение Создание клиентов на Java. InterClient и JDBC Установка InterClient Communication Diagnostics Пример приложения на Java Заключение Администрирование и архитектура InterBase Установка InterBase - взгляд изнутри InterBase как встраиваемая СУБД Установка InterBase на платформе Windows Установка клиента под Windows Копирование файлов Совместное использование gds32.dll, InterBase.msg и mscvrt.dll Ключи в реестре для клиента InterBase Регистрация TCP/IP-сервиса при клиентской установке Установка InterBase-сервера на Windows Копирование файлов сервера Совместное использование файлов Ключи в реестре для сервера InterBase Регистрация ТСР/IР-сервиса Запуск InterBase-сервера Расширенная установка InterBase-сервера Пример установочного скрипта Резервное копирование базы данных и восстановление из резервной копии Резервное копирование базы данных InterBase Инструмент командной строки gbak Права для выполнения резервного копирования Резервное копирование многофайловых баз данных Резервное копирование при работе InterBase в режиме 24x7 Другие инструменты для осуществления резервного копирования Восстановление из резервной копии Восстановление с использованием инструмента gbak Восстановление из резервных копий многофайловых баз данных Владелец базы данных Заключение Миграция Почему необходима миграция Сущность процесса миграции Миграция между различными версиями InterBase Карта миграции Прямая миграция Сохранение информации о пользователях при миграции Восстановление из резервной копии на системе-приемнике Особый процесс, или обратная миграция Совместимость клиентов и серверов различных версий Перевод базы данных InterBase 6.x на 3-й диалект Двойные кавычки Ключевые слова Типы данных для работы с датой и временем Большие целые типы Пошаговые инструкции для перехода на 3-й диалект Клиенты 3-го диалекта Заключение Починка базы данных Обзор основных причин повреждения базы данных Отключение питания Forced writes - палка о двух концах Повреждения жесткого диска Ошибки проектирования базы данных Профилактика повреждений баз данных InterBase Инструмент командной строки gfix Восстановление поврежденной базы данных Спасение данных из поврежденной базы данных Восстановление "безнадежных" баз данных. InterBase Surgeon Статистика в InterBase Статистика базы данных InterBase Получение статистики Информация заголовочной страницы (Database header) Flags Checksum Generation Page size ODS version Oldest transaction Oldest active и Oldest snapshot Next transaction Bumped transaction Sequence number Next attachment ID Implementation ID Shadow count Page buffers Next header page Database dialect Creation date Attributes Shared Cache file Sweep interval Информация страниц данных Статистика страниц индексов Статистика InterBase-сервера Статистика по блокировкам Заключение Оптимизация работы InterBase Выбор аппаратного обеспечения для InterBase Сервер для InterBase Сетевое оборудование Рабочие станции Основные "рычаги" управления производительностью Кеш базы данных Forced Writes Sweep Interval Размер страницы базы данных Заключение Безопасность в InterBase: пользователи, роли и права Особенности системы защиты данных в InterBase Разрушаем легенду Система безопасности InterBase Пользователи Роли Права Раздача прав Организация пользователей в группы с помощью ролей Аннулирование прав Как правильно раздавать и аннулировать права Передача прав Особенности InterBase 6.5 Общие рекомендации по безопасности Что такое "архитектура сервера СУБД ? Состав модулей InterBase InterBase Super Server для Windows Каталог BIN в SuperServer Минимальный состав сервера InterBase SuperServer InterBase Classic Server под Linux Каталог BIN в InterBase Classic Server для Linux Заключение Classic и SuperServer Classic SuperServer Classic vs SuperServer Рекомендации по выбору архитектуры: Classic или SuperServer? Структура базы данных InterBase Физическая структура базы данных Зачем изучать физическую структуру базы данных? Файлы базы данных InterBase IBSurgeon - проводник по базе данных InterBase Файлы *.GDB изнутри Типы страниц и их использование Понятие об ODS Мост между физической и логической структурой базы данных Логическая структура базы данных InterBase BLR Иерархия объектов в InterBase Заключение Обзор современных версий семейства InterBase Yaffil - российский клон СУБД InterBase Введение Приоритетные направления развития Yaffil Интеграция с платформой Windows NT Производительность Надежность и безопасность Отличительные особенности сервера Yaffil Улучшенная производительность Улучшенный оптимизатор запросов Оптимизация сетевого трафика Эффективная работа с временными файлами сортировки Оптимальная структура хранения записей Ускоренная работа с индексами Улучшенная стратегия вычисления предиката IN и условий, объединенных по OR Ускоренное обновление данных Уменьшение времени, необходимого для резервного копирования и восстановления Индексы по выражениям Уменьшение размера, занимаемого индексами Выражения в значениях по умолчанию для доменов Удобная операция объединения строк Расширенные возможности указания пользовательских планов Имена индексов ограничений Улучшенное время отклика для версии SuperServer Улучшенный протокол локальных соединений (XNET) Ограничение времени ожидания для транзакций (Lock timeout) Расширения SQL Инструкция IIF Инструкция INSERT INTO ... FROM ... UNION ... Выражения в EXCEPTION Системные переменные ROWS_AFFECTED, GDSCODE, SQLCODE, TRANSACTIONJD, CONNECTIONJD Группировка по номеру столбца Значения переменных по умолчанию Тип данных BIGINT Дополнительные национальные кодовые страницы и порядки сортировки Группировка по встроенным функциям и UDF Ограничение результатов выборки FIRST/SKIP Увеличение глубины рекурсии процедур и триггеров Использование переменной окружения ISC_PATH Безопасная работа с внешними таблицами Классическая архитектура на Windows NT (Yaffil CS) Встраиваемый сервер Конфигурация безопасности для базы данных Использование сервера Yaffil внутри процесса Эффективное взаимодействие процессов архитектуры Classic Server Изменения оптимизатора, направленные на совместимость Yaffil Classic Server - замена InterBase Classic 4.0 Миграция баз данных на Yaffil и обратно Режим обратной совместимости Возможности, планируемые к реализации в следующих версиях Интегрированная безопасность (NT Integrated Security) Асинхронный сервер и отмена выполняющихся запросов Одновременный запуск нескольких копий сервера (multi-instancing) Хранение конфигурации в системном реестре Большие индексы Заключение InterBase 7 Семерка - первый шаг нового семейства Распараллеливание на несколько процессоров Мониторинг состояния сервера Модификация системных таблиц Примеры получения статистики Безопасность временных таблиц JDBC Туре 4 DRIVER Новая структура данных на диске: ODS11 Новый тип данных: BOOLEAN Новые ключевые слова Имена объектов длиной 68 символов Новые функции API для работы с Blob и массивами Другие изменения в 7-й версии InterBase SET TERM больше не нужен в isql Определение версии клиента Безопасность внешних таблиц. Параметр EXTERNAL FILE DIRECTORY Единое имя файла параметров InterBase Рекомендуемое расширение для файлов баз данных - *.ib Новое имя базы данных пользователей Заключение Firebird 1.5 - Open Source DBMS Продолжение линии 1.0 Версия 1.5 - эволюция или революция? Достигнутые результаты Отличительные особенности новой версии Дистрибутив Реализация языка SQL Расширение механизма событий Производительность Конфигурирование Firebird 2.0 - взгляд в будущее Новая версия ODS Поддержка SMP Средства мониторинга Дальнейшее развитие языка SQL Заключение Приложения Глоссарий Параметры конфигурационного файла InterBase LOCK_MEM_SIZE Параметры в ibconfig Действие Объяснение Показания к изменению параметра SEMAPHORE COUNT Параметры в ibconfig Действие Объяснение Показания к изменению параметра LOCK SIGNAL Параметры в ibconfig Действие Объяснение Показания к изменению параметра EVENT MEMORY SIZE Параметры в ibconfig Действие Объяснение Показания к изменению параметра DATABASE CACHE SIZE Параметры в ibconfig Действие Объяснение Показания к изменению параметра SERVER PRIORITY CLASS Параметры в ibconfig Действие Объяснение Показания к изменению параметра SERVER CLIENT MAPPING Параметры в ibconfig Действие Объяснение Показания к изменению параметра SERVER WORKING SIZE Параметры в ibconfig Действие Объяснение Показания к изменению параметра LOCK GRANT ORDER Параметры в ibconfig Действие Объяснение Показания к изменению параметра LOCK HASH SLOTS Параметры в ibconfig Действие Объяснение Показания к изменению параметра DEADLOCK TIMEOUT Параметры в ibconfig Действие Объяснение Показания к изменению параметра LOCK ACQUIRE SPINS Параметры в ibconfig Действие Объяснение Показания к изменению параметра CONNECTION TIMEOUT Параметры в ibconfig Действие Объяснение Показания к изменению параметра DUMMY PACKET INTERVAL Параметры в ibconfig Действие Объяснение Показания к изменению параметра Примечание ТМР DIRECTORY Параметры в ibconfig Действие Объяснение Показания к изменению параметра EXTERNAL FUNCTION DIRECTORY Параметры в ibconfig Действие Объяснение Показания к изменению параметра TCP REMOTE BUFFER Параметры в ibconfig Действие Объяснение Показания к изменению параметра Примечание