Факультет Кибернетики
Кафедра «Управляющие интеллектуальные системы»
Курс лекций «Введение в СУБД HyTech»
Москва 2011
ОГЛАВЛЕНИЕ
1. Характеристика СУБД HyTech................................................................................................................. 12
Типовые функции современной СУБД .................................................................................................. 12
1.1 Управление данными во внешней памяти........................................................................................ 12
Управление данными во внешней памяти ......................................................................................... 12
Организация хранения информации на внешнем устройстве ......................................................... 12
Политика размещения данных на внешних носителях в СУБД HyTech ........................................ 12
Организация данных в таблицах HyTech ........................................................................................... 12
Структура файлов, реализующих таблицы СУБД HyTech ............................................................... 13
Организация индексов в СУБД HyTech ............................................................................................. 13
Журнальные файлы в СУБД HyTech .................................................................................................. 13
Словарь данных .................................................................................................................................... 14
1.2 Управление данными в оперативной памяти................................................................................... 14
Управление данными в ОП ................................................................................................................. 14
Управление буферизацией данных при выполнении запросов на чтение .................................... 14
Управление буферизацией данных при выполнении запросов на запись ..................................... 14
Разделение памяти для общих структур данных ............................................................................... 15
Управление пользовательскими структурами данных ..................................................................... 15
1.3 Управление транзакциями, обеспечение многопользовательского доступа................................ 15
Термины и определения ....................................................................................................................... 15
Управление транзакциями ................................................................................................................... 15
Атомарность транзакции в СУБД HyTech ......................................................................................... 16
Непротиворечивость информации в СУБД HyTech ......................................................................... 16
Изолированность транзакций .............................................................................................................. 16
Долговечность ....................................................................................................................................... 16
Механизмы разделения времени ......................................................................................................... 17
1.4 Обеспечение отказоустойчивости..................................................................................................... 17
Термины и определения ....................................................................................................................... 17
Обеспечение отказоустойчивости СУБД ........................................................................................... 17
Механизмы защиты от мягких сбоев .................................................................................................. 17
Механизмы защиты от жестких сбоев ................................................................................................ 17
1.5 Поддержка SQL и процедурных языков для работы с данными.................................................... 18
Стандарт SQL-89 ................................................................................................................................... 18
Типы данных в SQL HyTech ................................................................................................................ 18
Таблицы в СУБД HyTech ..................................................................................................................... 18
Индексы в СУБД HyTech ..................................................................................................................... 18
Операторы DML (select, insert, update, delete) в СУБД HyTech ....................................................... 18
Ограничения целостности в СУБД HyTech ....................................................................................... 19
Оптимизация запросов в СУБД HyTech ............................................................................................. 20
Прочие операторы и свойства ............................................................................................................. 20
Свойства процедурного расширения СУБД HyTech ........................................................................ 20
1.6 Реализация средств сетевого взаимодействия и поддержки распределенных архитектур......... 21
Средства сетевого взаимодействия и поддержки распределенных архитектур ............................ 21
Поддержка сетевых протоколов .......................................................................................................... 21
Работа с другими источниками данных ............................................................................................. 22
Распределенные вычисления ............................................................................................................... 22
1.7 Разграничение доступа к данным...................................................................................................... 22
Средства разграничения доступа к данным ....................................................................................... 22
Базовое управление доступом ............................................................................................................. 22
Аутентификация ................................................................................................................................... 23
Управление доступом к данным ......................................................................................................... 23
2. Основные понятия СУБД HyTech............................................................................................................ 24
Основные понятия СУБД HyTech ........................................................................................................... 24
2.1 Основные понятия............................................................................................................................... 24
Реляционная таблица ............................................................................................................................ 24
Временные таблицы ............................................................................................................................. 24
Индексы ................................................................................................................................................. 24
Курсоры ................................................................................................................................................. 25
Отслеживание изменений данных ...................................................................................................... 25
Механизм снимков ............................................................................................................................... 25
Отключение механизма снимков ........................................................................................................ 25
Механизм транзакций .......................................................................................................................... 25
Транзакции в HyTech ............................................................................................................................ 26
Профиль, роль ....................................................................................................................................... 26
Генератор ............................................................................................................................................... 27
Кодификатор ......................................................................................................................................... 27
Хранимая процедура ............................................................................................................................ 27
Триггер ................................................................................................................................................... 27
Внешний источник данных ................................................................................................................. 28
Встроенные представления ................................................................................................................. 28
Встроенные переменные ...................................................................................................................... 28
2.2 Архитектура СУБД HyTech................................................................................................................ 29
Структура SQL - сервера ...................................................................................................................... 29
Схема взаимодействия клиента и сервера ......................................................................................... 29
Особенности организации таблиц в СУБД HyTech .......................................................................... 30
Недостатки организации таблиц в СУБД HyTech ............................................................................ 31
Поиск в таблицах СУБД HyTech ......................................................................................................... 31
Идентификация записей в таблицах ................................................................................................... 32
Использование инвертированных списков в СУБД HyTech ........................................................... 32
Организация хранения данных на диске ........................................................................................... 33
Структура ядра СУБД ........................................................................................................................... 34
Монитор таблиц .................................................................................................................................... 34
Монитор транзакций ............................................................................................................................ 35
Решение задачи перевода денег .......................................................................................................... 35
Система поддержки транзакций в СУБД HyTech ............................................................................. 36
Монитор замков .................................................................................................................................... 36
Реализация системы захватов .............................................................................................................. 37
Оптимизация запросов ......................................................................................................................... 37
3. SQL диалект СУБД HyTech...................................................................................................................... 38
3.1 Тестовая схема БД................................................................................................................................ 38
Описание тестовой схемы БД ............................................................................................................. 38
Создание тестовой схемы .................................................................................................................... 40
Листинги тестовой схемы .................................................................................................................... 41
3.2 Основные SQL операторы манипулирования данными................................................................. 46
3.2.1 Оператор отбора информации из таблицы select...................................................................... 46
Оператор select ................................................................................................................................... 46
Особенности работы с оператором select ........................................................................................ 47
Примеры работы с оператором select .............................................................................................. 47
Объединение выборок ....................................................................................................................... 49
Конструкция for update ..................................................................................................................... 51
Внешнее соединение ......................................................................................................................... 51
Работа с кодификаторами ................................................................................................................. 53
3.2.2 Оператор вывода результатов на экран browse resullts............................................................. 54
Оператор вывода результатов на экран ........................................................................................... 54
3.2.3 Оператор копирования записей между таблицами insert select............................................... 55
Оператор insert select ......................................................................................................................... 55
Примеры работы с оператором ........................................................................................................ 55
3.2.4 Оператор добавления записи в таблицу insert values................................................................ 57
Оператор insert values ........................................................................................................................ 57
Пример работы с оператором insert values ...................................................................................... 58
3.2.5 Оператор модификации записей в таблице update................................................................... 59
Оператор update ................................................................................................................................. 59
Пример работы с оператором update ............................................................................................... 59
3.2.6 Оператор удаления строк из таблицы delete.............................................................................. 60
Оператор delete .................................................................................................................................. 60
3.2.7 Оператор выполнения запроса, заданного строкой execute immediate................................... 61
Оператор execute immediate .............................................................................................................. 61
3.2.8 Оператор выгрузки результатов в таблицу results table............................................................ 61
Оператор results table ......................................................................................................................... 61
3.3 Операторы управления транзакциями и снимками......................................................................... 62
3.3.1 Операторы работы со снимками................................................................................................. 62
Операторы работы со снимками ...................................................................................................... 62
3.3.2 Операторы работы с транзакциями............................................................................................ 64
Механизм транзакций и механизм снимков ................................................................................... 64
Оператор начала транзакции begin work ......................................................................................... 65
Операторы завершения транзакции ................................................................................................. 65
Примеры работы с операторами завершения транзакции ............................................................. 66
Работа с транзакциями в многопользовательском режиме ........................................................... 67
3.3.3 Блокировки.................................................................................................................................... 68
Оператор блокирования таблицы lock ............................................................................................ 68
Оператор освобождения строк unlock ............................................................................................. 68
Примеры работы с блокировками .................................................................................................... 69
3.4 Операторы работы с таблицами и индексами.................................................................................. 69
3.4.1 Оператор создания таблицы create table..................................................................................... 69
Оператор create table .......................................................................................................................... 69
Атрибуты и ограничения столбцов ................................................................................................. 70
Временные таблицы .......................................................................................................................... 71
Другие функции для создания таблиц - функция dsexec .............................................................. 72
Другие функции для создания таблиц - функция copytable .......................................................... 73
Другие функции для создания таблиц - функция htCreateTable ................................................... 73
Другие функции для создания таблиц - функция imptitle ............................................................. 74
3.4.2 Оператор удаления таблицы drop table...................................................................................... 75
Оператор drop table ............................................................................................................................ 75
3.4.3 Оператор открытия таблицы open table...................................................................................... 75
Оператор open table ............................................................................................................................ 75
3.4.4 Оператор закрытия таблицы close table...................................................................................... 75
Оператор close table ........................................................................................................................... 75
3.4.5 Оператор переноса переменной части таблицы в постоянную pack table............................. 76
Оператор pack table ............................................................................................................................ 76
3.4.6 Оператор удаления переменной части таблицы drop diff........................................................ 77
Оператор drop diff ............................................................................................................................. 77
3.4.7 Оператор переименования таблицы rename table...................................................................... 78
Оператор rename table ........................................................................................................................ 78
3.4.8 Оператор создания индекса таблицы create index..................................................................... 78
Оператор create index ......................................................................................................................... 78
Использование группы атрибутов в качестве индекса ................................................................. 79
Добавление подстроки в качестве индекса таблицы ..................................................................... 80
3.4.9 Оператор удаления индекса drop index...................................................................................... 81
Оператор drop index ........................................................................................................................... 81
Удаление группы или подстроки ..................................................................................................... 81
3.5 Операторы для работы с внешними источниками данных............................................................. 82
Создание внешнего источника данных .............................................................................................. 82
Выполнение запросов к внешнему источнику данных .................................................................... 83
Пакетное выполнение запросов к внешнему источнику данных ................................................... 84
Удаление внешнего источника данных ............................................................................................. 85
3.6 Операторы для работы с генераторами............................................................................................. 85
Операторы create generator, set generator ............................................................................................ 85
Операторы gen_id, drop generator ........................................................................................................ 86
Использование генератора ................................................................................................................... 87
4. Процедурные расширения SQL диалекта СУБД HyTech...................................................................... 89
4.1 Лексические элементы языка............................................................................................................. 89
Лексические элементы - зарезервированные слова .......................................................................... 89
Зарезервированные слова.................................................................................................................. 89
Лексические элементы - константы .................................................................................................... 90
Константы ........................................................................................................................................... 90
Константы целого типа ..................................................................................................................... 90
Константы вещественного типа ....................................................................................................... 90
Строковые константы ....................................................................................................................... 91
Константы типа дата ......................................................................................................................... 91
Лексические элементы - операции, ограничители, комментарии .................................................. 91
Ограничители ..................................................................................................................................... 91
Операции ............................................................................................................................................ 91
Комментарии ...................................................................................................................................... 92
Лексические элементы - идентификаторы ......................................................................................... 92
Идентификаторы ................................................................................................................................ 92
4.2 Переменные.......................................................................................................................................... 92
Переменные процедурного языка HyTech ......................................................................................... 92
4.3 Типы данных........................................................................................................................................ 93
Типы данных для хранения целочисленных и действительных значений .................................... 93
Типы данных float, double, currency ................................................................................................. 93
Типы данных byte, int, word, number, long, dword .......................................................................... 94
Типы данных процедурного языка HyTech. ...................................................................................... 94
Типы данных для хранения символьных значений, дат и массивов .............................................. 94
Тип данных date ................................................................................................................................. 94
Тип данных char ................................................................................................................................. 95
Тип данных array................................................................................................................................. 95
4.4 Линейные операторы.......................................................................................................................... 95
Выражения - арифметические операции ............................................................................................ 95
Выражения .......................................................................................................................................... 95
Арифметические операции ............................................................................................................... 96
Выражения - операции отношения и присваивания ........................................................................ 96
Операции отношения ........................................................................................................................ 96
Операция присваивания ................................................................................................................... 97
Выражения - логические операции .................................................................................................... 97
Составной оператор, пустой оператор ............................................................................................... 97
Составной оператор ........................................................................................................................... 97
Пустой оператор ................................................................................................................................ 98
Оператор вывода, оператор завершения работы программы .......................................................... 98
Оператор вывода ................................................................................................................................ 98
Оператор завершения работы программы ...................................................................................... 99
Операторы ветвления ........................................................................................................................... 99
Оператор ветвления ........................................................................................................................... 99
Оператор цикла с предусловием в формате WHILE ...................................................................... 100
Оператор цикла с предусловием в формате FOR ............................................................................ 101
Оператор цикла с постусловием ....................................................................................................... 102
Переход к выполнению очередной итерации цикла ...................................................................... 103
4.5 Хранимые процедуры и функции.................................................................................................... 104
Хранимые процедуры ........................................................................................................................ 104
Функции .............................................................................................................................................. 106
4.6 Триггеры............................................................................................................................................. 107
Создание триггера .............................................................................................................................. 107
Удаление триггера .............................................................................................................................. 109
4.7 Совместное использование SQL запросов и процедурных расширений.................................... 109
Совместное использование SQL-запросов и процедурных расширений ..................................... 109
Передача переменных в качестве параметра в SQL-запрос......................................................... 109
Сохранение результата запроса в переменной ............................................................................. 109
Использование результата запроса ................................................................................................... 110
Использование результата, сохраненного в переменной, в других запросах ........................... 110
Чтение результата запроса .............................................................................................................. 110
Работа с триггерами ............................................................................................................................ 112
Использование в триггерах переменных old и new ..................................................................... 112
Проверка ошибок триггера ............................................................................................................. 112
4.8 Встроенные SQL функции............................................................................................................... 113
Функции преобразования .................................................................................................................. 113
Функции преобразования ............................................................................................................... 113
Строковые функции ........................................................................................................................ 114
Операции с таблицами, выполнение запросов ............................................................................... 114
Функции работы с датами и временем ............................................................................................. 115
Импорт-экспорт .................................................................................................................................. 115
Функции для получения информации о таблицах .......................................................................... 115
Числовые функции ............................................................................................................................. 116
Функции обработки ошибок ............................................................................................................. 116
Интерфейсные и битовые функции .................................................................................................. 116
Интерфейсные функции ................................................................................................................. 116
Битовые функции ............................................................................................................................ 116
Функции отладки ................................................................................................................................ 117
Функции отладки ............................................................................................................................. 117
Разные функции .................................................................................................................................. 117
Функции работы с кодификаторами ................................................................................................ 117
4.9 Практические приемы и оптимизация SQL запросов................................................................... 117
Навигационное соединение таблиц ................................................................................................. 117
Использование кодификаторов вместо соединений ....................................................................... 119
Уточнение результатов соединения .................................................................................................. 120
Использование конструкции IN вместо соединения ...................................................................... 120
Использование группы для связки таблиц по нескольким ключам .............................................. 121
Получение декартового произведения ............................................................................................. 122
Использование ключевых полей в запросах .................................................................................... 123
Использование суррогатного ключа вместо уникального ключа .............................................. 123
Использование неуникального ключа вместо уникального ...................................................... 123
Использование ключевого поля вместо неключевого ................................................................. 124
Выделение длинных неключевых полей в отдельную таблицу ................................................. 124
Расположение суррогатного ключа в начале строки .................................................................. 124
4.10 Оптимизация поисковых запросов................................................................................................ 124
Поиск в результатах предыдущего поиска ...................................................................................... 124
Использование временных таблиц для промежуточных вычислений ...................................... 125
Оптимизация группировки и сортировки ....................................................................................... 125
Различные приемы оптимизации ...................................................................................................... 126
Перенос условий из having в where ................................................................................................ 126
Уменьшение размера поля, используемого для поиска по маске ............................................... 126
Перенос изменений в постоянную часть ...................................................................................... 126
Использование пакетных SQL-операций вместо одиночных .................................................... 127
4.11 Диагностика результатов выполнения SQL запросов................................................................. 128
Работа с функциями обработки ошибок - функции lasthterr, lastsqlerr .......................................... 128
Функция lasthterr – Получить код последней ошибки HyTech ................................................... 128
Функция lastsqlerr – Получить код последней ошибки Sql ......................................................... 128
Работа с функциями обработки ошибок - функции sqlermsg, htiomsg .......................................... 128
Функция sqlermsg – Получить текст сообщения об ошибке SQL ............................................... 128
Функция htiomsg — Получить сообщение об ошибке ввода/вывода ........................................ 129
Работа с функциями обработки ошибок - функции htabort, htSetError ......................................... 129
Функция htabort – Завершает (или нет) выполнение SQL-скрипта при ошибке в HyTech ..... 129
Функция htSetError – Установить пользовательский код ошибки.............................................. 130
Коды ошибок SQL ........................................................................................................................... 131
5. Администрирование СУБД HyTech...................................................................................................... 132
Типовые задачи администрирования ................................................................................................... 132
5.1 Установка и настройка сервера HyTech.......................................................................................... 132
Установка сервера ............................................................................................................................... 132
Получение дистрибутива СУБД HyTech ....................................................................................... 132
Инсталляция СУБД HyTech в Windows ........................................................................................ 132
Инсталляция СУБД HyTech в Linux............................................................................................... 133
Настройка параметров работы сервера ............................................................................................ 134
Файл инициализации - раздел «Параметры» ................................................................................... 135
Файл инициализации - раздел «SQL процесс» ............................................................................... 135
Файл инициализации - другие разделы файла инициализации .................................................... 137
Пример файлов инициализации ....................................................................................................... 138
Типовые рекомендации по настройке параметров сервера в файле инициализации ................. 140
5.2 Запуск/останов работы сервера........................................................................................................ 141
Управление сервером ......................................................................................................................... 141
Запуск/останов HyTech SQL сервера ................................................................................................ 141
Настройка стартового файла ............................................................................................................. 142
Мониторинг действий сервера с использованием лог-файла ........................................................ 142
Конфигурирование сервера по результатам мониторинга ............................................................ 144
5.2.1 Запуск/останов работы сервера в режиме сервиса.................................................................. 146
Регистрация и задание параметров сервиса .................................................................................. 146
Настройка параметров сервиса в конфигурационном файле ..................................................... 147
Запуск, останов, удаление регистрации сервиса .......................................................................... 147
5.2.2 Запуск/останов работы сервера в режиме консольного приложения................................... 148
Администрирование запуска/останова работы сервера в режиме консольного приложения 148
Запуск/останов/пауза сервера ......................................................................................................... 149
Запуск/останов сервера по расписанию ........................................................................................ 149
Мониторинг действий сервера - мониторинг из окна приложения сервера ............................ 152
Мониторинг и управление процессами ........................................................................................ 153
5.3 Резервное копирование (архивирование) и восстановление БД.................................................. 153
Резервное копирование и восстановление БД ................................................................................ 153
Архивирование базы данных в автономном режиме ..................................................................... 154
Архивирование базы данных в оперативном режиме .................................................................... 155
Архивирование таблиц пользователей ............................................................................................ 155
Архивирование системных таблиц .................................................................................................. 157
Архивирование файла инициализации ............................................................................................ 157
Планирование стратегии архивирования базы данных ................................................................. 158
Восстановление базы данных, архивированной в автономном режиме ...................................... 159
Восстановление базы данных, архивированной в оперативном режиме .................................... 159
Восстановление базы данных, архивированной в оперативном режиме - восстановление таблиц 160
Восстановление базы данных, архивированной в оперативном режиме - восстановление системных таблиц ................................................................................................................................................... 160
5.4 Проверка и исправление таблиц данных и системных таблиц.................................................... 161
Проверка и исправление таблиц ....................................................................................................... 161
Проверка таблиц ................................................................................................................................. 162
Исправление поврежденного журнала ............................................................................................. 163
Исправление повреждения постоянной части или ассоциатора ................................................... 163
Проверка целостности системных таблиц и восстановление системных таблиц сервера ......... 163
Примеры пакетной проверки таблиц ............................................................................................... 164
Конфигурационный файл с именем HTCTLG.INI ......................................................................... 165
5.5 Конфигурирование СУБД для использования прокси - сервера.................................................. 166
Назначение прокси - сервера ............................................................................................................. 166
Установка, запуск и останов прокси-сервера .................................................................................. 167
Конфигурирование прокси-сервера ................................................................................................. 168
5.6 Индексирование и упаковка таблиц, снятие провисшего захвата............................................... 169
Индексирование таблицы .................................................................................................................. 169
Упаковка таблицы (перенос журнала в постоянную часть) ........................................................... 170
Снятие провисшего захвата с записи таблицы ................................................................................ 170
5.7 Управление безопасностью.............................................................................................................. 171
Управление безопасностью ............................................................................................................... 171
Создание пользователя ....................................................................................................................... 171
Изменение/удаление пользователя ................................................................................................... 172
Аутентификация пользователя при входе в систему ...................................................................... 172
Создание профиля безопасности ....................................................................................................... 173
Изменение/удаление профиля безопасности ................................................................................... 174
Создание/удаление роли .................................................................................................................... 175
Назначение права пользователю или роли ...................................................................................... 176
Отмена права пользователю или роли ............................................................................................. 178
Назначение/отзыв роли пользователю или другой роли ................................................................ 180
Установка/изменение пароля на чтение/запись данных в таблицу ............................................... 180
Шифрование данных в таблицах ...................................................................................................... 181
Аудит действий пользователя ........................................................................................................... 182
6. PHP как инструментальное средство создания WEB приложений.................................................... 183
Архитектура web-приложений с использованием PHP - клиент, http сервер ................................. 183
Архитектура web-приложений с использованием PHP - интерпретатор PHP, CУБД HyTech ...... 183
Установка и настройка сервера Apache и модуля PHP ....................................................................... 185
Установка для Windows ..................................................................................................................... 185
Установка для GNU/Linux.................................................................................................................. 190
6.1 Синтаксис PHP................................................................................................................................... 192
6.1.1 Общие свойства кода.................................................................................................................. 192
Общие свойства кода ....................................................................................................................... 192
Комментарии, переменные, константы ......................................................................................... 192
Типы данных и выражения ............................................................................................................. 193
Тип данных integer (целое число) ................................................................................................... 194
Тип данных float (число с плавающей точкой) ............................................................................ 195
Тип данных boolean (логический) .................................................................................................. 195
Тип NULL ......................................................................................................................................... 196
Тип данных строка ........................................................................................................................... 197
Создание массива ............................................................................................................................. 198
Доступ к элементам массива .......................................................................................................... 199
Операции работы с массивом ......................................................................................................... 200
6.1.2 Управляющие конструкции....................................................................................................... 201
Условный оператор ......................................................................................................................... 201
Оператор «переключатель» ............................................................................................................ 203
Циклы ................................................................................................................................................ 204
Примеры работы с циклами ........................................................................................................... 204
Операторы передачи управления - break ....................................................................................... 206
Операторы передачи управления - continue .................................................................................. 206
Операторы включения - include ..................................................................................................... 207
Операторы включения - require ...................................................................................................... 209
6.2 Пользовательские функции в PHP, функции работы с массивами и строками......................... 209
6.2.1 Пользовательские функции в PHP, функции работы с массивами и строками.................. 209
Пользовательские функции ............................................................................................................ 209
Параметры пользовательских функций ........................................................................................ 210
Параметры пользовательских функций - переменное число параметров ................................. 211
Возвращаемое значение .................................................................................................................. 212
Локальные и глобальные переменные .......................................................................................... 213
Статические переменные ................................................................................................................ 213
6.2.2 Встроенные функции для работы с массивами....................................................................... 214
Функции поиска .............................................................................................................................. 215
Примеры функций поиска .............................................................................................................. 215
Функции сортировки ...................................................................................................................... 216
Примеры сортировок ....................................................................................................................... 218
Итераторы ......................................................................................................................................... 220
Функции выборки и преобразования массивов ........................................................................... 220
Примеры работы с функциями выборки и преобразования массивов ...................................... 221
6.2.3 Строковые функции и регулярные выражения....................................................................... 222
Строковые функции ........................................................................................................................ 222
Примеры использования строковых функций ............................................................................. 223
Функции разбора регулярных выражений ................................................................................... 223
Примеры использования функций разбора регулярных выражений ........................................ 224
Шаблоны ........................................................................................................................................... 225
Шаблоны, продолжение .................................................................................................................. 226
Подшаблоны ..................................................................................................................................... 227
Модификаторы ................................................................................................................................. 228
6.3 Технология использования PHP при создании Интернет - приложений.................................... 229
6.3.1 Технология обработки HTTP-запросов с помощью PHP........................................................ 229
Методы доступа ............................................................................................................................... 229
Параметры и переменные ............................................................................................................... 230
HTML - формы ................................................................................................................................. 230
HTML - формы, продолжение ........................................................................................................ 231
Более сложная HTML- форма ......................................................................................................... 232
6.3.2 Сессии.......................................................................................................................................... 234
Взаимодействие между клиентом и сервером .............................................................................. 234
Идентификатор сессии, использование механизма сессии ......................................................... 235
Пример работы с сессиями ............................................................................................................. 236
6.4 Классы и объекты в PHP................................................................................................................... 237
6.4.1 Общие сведения о классах и объектах...................................................................................... 237
Классы ............................................................................................................................................... 237
Примеры создания класса ............................................................................................................... 238
Особенности передачи объектов в классы .................................................................................... 239
6.4.2 Наследование.............................................................................................................................. 240
Пример наследования ...................................................................................................................... 240
Уровни доступа ................................................................................................................................ 241
Пример с различными уровнями доступа ..................................................................................... 241
Абстрактные классы и интерфейсы ............................................................................................... 242
6.4.3 Конструкторы и деструкторы.................................................................................................... 244
Создание конструктора и деструктора ............................................................................................. 244
Конструктор в классах-потомках ................................................................................................... 245
6.4.4 Полиморфизм.............................................................................................................................. 246
Перегрузка методов ......................................................................................................................... 246
Другие возможности полиморфизма ............................................................................................. 247
6.4.5 Исключения................................................................................................................................. 248
Исключения ...................................................................................................................................... 248
7. Совместное использование языка PHP и СУБД HyTech..................................................................... 250
7.1 API HyTech в среде PHP................................................................................................................... 250
Основные функции API HyTech в среде PHP ................................................................................. 250
7.1.1 Функции для соединения и отключения от сервера HyTech................................................. 250
Соединение с сервером HyTech, функция hytech_connect .......................................................... 250
Соединение с сервером HyTech, функция hytech_pconnect ........................................................ 251
Отключение от сервера HyTech ..................................................................................................... 251
Функция для смены кодировки символов .................................................................................... 253
7.1.2 Функции для выполнения SQL-запросов................................................................................ 253
Выполнение SQL-запроса и открытие результата запроса ......................................................... 253
Выполнение SQL-запроса без открытия результата .................................................................... 254
7.1.3 Функции для работы с результатами SQL-запросов............................................................... 255
Закрытие ранее открытого результата ........................................................................................... 255
Получение количества полей в результате запроса ..................................................................... 255
Пример использования функций ................................................................................................... 256
Получение значений полей в заданной строке результата ......................................................... 257
Получение строки результата в виде объекта ............................................................................... 258
Получение значения поля в заданной строке результата ............................................................ 258
Пример использования функций ................................................................................................... 259
7.1.4 Функции для работы с типами DATE и ARRAY в HyTech................................................... 260
Установка режима работы с датами и массивами ........................................................................ 260
Установка формата строки для преобразования даты ................................................................. 261
Преобразование строки в дату (целое число) ............................................................................... 261
Преобразование даты(числа) в строку ........................................................................................... 262
Пример работы с функциями преобразования ............................................................................. 262
7.1.5 Функции для пакетного ввода данных.................................................................................... 263
Пакетное добавление строк в таблицу .......................................................................................... 263
От