Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

InterBase и Delphi. Клиент-серверные базы данных

Покупка
Артикул: 817029.01.99
Доступ онлайн
490 ₽
В корзину
Книга посвящена разработке клиент-серверных приложений баз данных (БД) на платформе системы управления базами данных InterBase (Firebird) и языка программирования Delphi. В ней представлено точное и полное описание инструментария разработчика, так необходимого для создания профессиональных проектов. Издание предназначено как для работающих с современными информационными технологиями студентов и преподавателей высших учебных заведений, так и для программистов, которые найдут в книге всё необходимое для самостоятельного проектирования клиент-серверных баз данных.
Осипов, Д. Л. InterBase и Delphi. Клиент-серверные базы данных : практическое руководство / Д. Л. Осипов. - 2-е изд. - Москва : ДМК Пресс, 2023. - 537 с. - ISBN 978-5-89818-586-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107951 (дата обращения: 10.12.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
InterBase и Delphi. 
Клиент-серверные 
базы данных

Москва, 2023

Д. Л. Осипов

2-е издание, электронное

УДК 004.65:004.451
ББК 32.972.32
О73

О73
Осипов, Дмитрий Леонидович.
InterBase и Delphi. Клиент-серверные базы данных / Д. Л. Осипов. — 2-е изд., эл. — 
1 файл pdf : 537 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader 
XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-586-2

Книга посвящена разработке клиент-серверных приложений баз данных (БД) на платформе 
системы управления базами данных InterBase (Firebird) и языка программирования Delphi. В ней 
представлено точное и полное описание инструментария разработчика, так необходимого для 
создания профессиональных проектов.
Издание предназначено как для работающих с современными информационными технологиями 
студентов и преподавателей высших учебных заведений, так и для программистов, которые найдут 
в книге всё необходимое для самостоятельного проектирования клиент-серверных баз данных.

УДК 004.65:004.451 
ББК 32.972.32

Электронное издание на основе печатного издания: InterBase и Delphi. Клиент-серверные базы данных / 
Д. Л. Осипов. — Москва : ДМК Пресс, 2015. — 536 с. — ISBN 978-5-97060-254-6. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы 
то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с 
этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских 
прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-586-2
© Осипов Д. Л., 2015
© Оформление, издание, ДМК Пресс, 2015

Содержание

ВВЕДЕНИЕ .....................................................................13

Часть I  Проектирование базы данных .............................15

Глава 1  Немного истории  ............................................16
Создание структурированного языка запросов ..................................................................................17
Возможности SQL .........................................................................................................................................18
InterBase ............................................................................................................................................................19
Реализация SQL в InterBase ..............................................................................................................20
Диалекты InterBase SQL .....................................................................................................................22
Резюме ...............................................................................................................................................................22

Глава 2  Введение в реляционную модель .......................23
Сущность и атрибуты ...................................................................................................................................24
Реляционная связь ........................................................................................................................................26
Целостность данных .....................................................................................................................................27
Доменные ограничения .......................................................................................................................27
Целостность сущностей .......................................................................................................................28
Ссылочная целостность .......................................................................................................................28
Корпоративная целостность ..............................................................................................................29
Модель «сущность–связь» .........................................................................................................................29
Нормализация данных .................................................................................................................................30
Резюме ...............................................................................................................................................................32

Глава 3  Создание базы данных  .....................................33
Создание БД в консоли администрирования ......................................................................................33
Управление БД средствами SQL ..............................................................................................................36
Создание БД, CREATE DATABASE...............................................................................................36
Изменение БД, ALTER DATABASE ...............................................................................................38
Уничтожение БД, DROP DATABASE ...........................................................................................39
Резюме ...............................................................................................................................................................39

Глава 4  Типы данных и домены  .....................................40
Типы данных ....................................................................................................................................................40
Точные числовые типы ........................................................................................................................41
Приближённые числовые типы ........................................................................................................41
Логический тип ......................................................................................................................................42
Строки символов ...................................................................................................................................42
Дата и время ............................................................................................................................................43
Большие бинарные объекты ..............................................................................................................45
Преобразование типов данных ..................................................................................................................46
Операции с данными ....................................................................................................................................47
Проверка на равенство значений .....................................................................................................47
Домены ..............................................................................................................................................................47
Определение домена в консоли администрирования ...............................................................49

 Содержание

Создание домена CREATE DOMAIN ............................................................................................50
Изменение домена ALTER DOMAIN.............................................................................................54
Удаление домена DROP DOMAIN .................................................................................................54
Как получить информацию о домене? ...................................................................................................54
Резюме ...............................................................................................................................................................55

Глава 5  Таблицы .........................................................56
Ключи .................................................................................................................................................................57
Создание значений ключа с помощью генератора .....................................................................58
Таблицы и консоль администрирования ...............................................................................................59
Создание таблицы, CREATE TABLE......................................................................................................61
Определение столбцов таблицы .......................................................................................................62
Первичный ключ ....................................................................................................................................66
Внешние ключи и связи между таблицами ..................................................................................66
Изменение таблицы ALTER TABLE .......................................................................................................69
Удаление таблицы DROP TABLE ............................................................................................................71
Временные таблицы ......................................................................................................................................71
Резюме ...............................................................................................................................................................72

Глава 6  Представления ................................................73
Представления и консоль администрирования ..................................................................................74
Создание представления, CREATE VIEW ...........................................................................................75
Модифицируемые представления ...........................................................................................................76
Ограничение WICH CHECK OPTION .........................................................................................78
Изменение представления ..........................................................................................................................78
Удаление представления, DROP VIEW ................................................................................................78
Резюме ...............................................................................................................................................................79

Глава 7  Индексы .........................................................80
Индексы на основе B-деревьев ..................................................................................................................81
Правила назначения пользовательских индексов ..............................................................................85
Создание индексов в консоли администрирования ..........................................................................86
Создание индекса, CREATE INDEX .......................................................................................................87
Подключение/отключение индекса, ALTER INDEX .......................................................................87
Удаление индекса, DROP INDEX ............................................................................................................88
Избирательность индекса ...........................................................................................................................88
Резюме ...............................................................................................................................................................90

Глава 8  Выборка данных и инструкция SELECT .................91
Порядок сортировки, ORDER BY ...........................................................................................................93
Ограничение количества строк в результирующем наборе ............................................................94
Условие отбора данных, предложение WHERE .................................................................................94
Сравнение .................................................................................................................................................95
Попадание в диапазон, BETWEEN .................................................................................................96
Начало строки с подстроки, STARTING WITH .........................................................................96
Проверка на вхождение подстроки, CONTAINING ..................................................................97
Соответствие шаблону, LIKE ............................................................................................................97
Проверка на неопределённость, IS NULL  ....................................................................................98

Содержание  5

Вложенные запросы и проверка существования ................................................................................99
Подзапрос IN ...........................................................................................................................................99
Проверка существования EXISTS  ............................................................................................... 100
Многократное сравнение ................................................................................................................. 101
Агрегирующие функции ........................................................................................................................... 102
Группировка данных GROUP BY ......................................................................................................... 103
Дополнительная фильтрация группы строк, HAVING ......................................................... 104
Резюме ............................................................................................................................................................ 104

Глава 9  Многотабличные запросы SELECT ....................105
Внутреннее соединение с помощью WHERE ................................................................................... 106
Соединение JOIN ........................................................................................................................................ 106
Соединение нескольких таблиц .................................................................................................... 108
Запросы к иерархическим данным ............................................................................................... 110
Слияние UNION  ........................................................................................................................................ 111
Оптимизация запроса ................................................................................................................................ 112
Резюме ............................................................................................................................................................ 114

Глава 10  Редактирование данных ................................115
Вставка, инструкция INSERT  ............................................................................................................... 115
Модификация, инструкция UPDATE ................................................................................................. 116
Удаление, инструкция DELETE  ........................................................................................................... 118
Применение UDF-функций .................................................................................................................... 118
Резюме ............................................................................................................................................................ 119

Глава 11  Процедурный SQL ........................................120
Хранимая процедура .................................................................................................................................. 121
Комментарии ........................................................................................................................................ 122
Переменные .......................................................................................................................................... 123
Выборка данных с помощью SELECT…INTO .......................................................................... 124
Условный оператор IF…THEN…ELSE ......................................................................................... 124
Цикл WHILE…DO ............................................................................................................................. 125
Цикл выборки данных FOR SELECT…DO ............................................................................... 126
Оператор SUSPEND ......................................................................................................................... 127
Оператор EXIT  ................................................................................................................................... 128
Вызов процедуры, EXECUTE PROCEDURE ................................................................................. 128
Триггер ............................................................................................................................................................ 129
Контекстные переменные ................................................................................................................ 130
Преобразование данных ................................................................................................................... 132
Ввод значений по умолчанию  ....................................................................................................... 132
Поддержка корпоративной целостности данных .................................................................... 133
События .......................................................................................................................................................... 134
Что нельзя сделать в процедурном SQL? ........................................................................................... 135
Резюме ............................................................................................................................................................ 135

Глава 12  Внешние функции  ........................................136
Размещение UDF-библиотеки ............................................................................................................... 136
Подключение внешней функции к БД ................................................................................................ 137

 Содержание

Подключение UDF в консоли администрирования ............................................................... 139
Вызов UDF .................................................................................................................................................... 140
Разработка UDF-библиотек в Delphi................................................................................................... 140
Работа со строками ............................................................................................................................. 141
Особенности разработки в C++ Builder .............................................................................................. 142
Резюме ............................................................................................................................................................ 144

Глава 13  Обработка исключений .................................145
Исключения в InterBase ........................................................................................................................... 146
Создание и вызов пользовательского исключения ................................................................ 147
Модификация и удаление исключения ...................................................................................... 148
Обработка исключений, выражение WHEN…DO .................................................................. 148
Ведение протокола исключений .................................................................................................... 150
Объектная модель исключений в Delphi ............................................................................................ 151
Обработка исключений в Delphi ................................................................................................... 152
Централизованная обработка исключений в приложении .......................................................... 155
Настройка среды разработки для обработки ИС ............................................................................ 157
Резюме ............................................................................................................................................................ 158

Глава 14  Транзакции и параллельная обработка данных ...159
Проблемы параллельного доступа к данным .................................................................................... 160
Управление транзакциями в InterBase ................................................................................................ 161
Подходы к сериализации транзакций ......................................................................................... 161
Идентификация транзакции ........................................................................................................... 162
Состояние транзакции ...................................................................................................................... 163
Многоверсионная архитектура ...................................................................................................... 163
Уровни изоляции транзакций в стандарте SQL ....................................................................... 164
Уровни изоляции транзакций в InterBase ................................................................................. 165
Разрешение блокировок ................................................................................................................... 166
Управление транзакцией средствами SQL ........................................................................................ 166
Определение транзакции, SET TRANSACTION ..................................................................... 167
Фиксация транзакции, COMMIT WORK ................................................................................. 168
Откат транзакции, ROLLBACK .................................................................................................... 169
Точки сохранения ............................................................................................................................... 169
Резюме ............................................................................................................................................................ 169

Глава 15  Аутентификация и авторизация ......................170
Способы аутентификации в InterBase ................................................................................................. 171
Выбор способа аутентификации ................................................................................................... 172
Учётные записи ............................................................................................................................................ 174
Предопределённые полномочия .................................................................................................... 174
Создание учётных записей средствами SQL ............................................................................. 175
Управление наборами привилегий ....................................................................................................... 176
Ролевой доступ .................................................................................................................................... 176
Резюме ............................................................................................................................................................ 180

Глава 16  Шифрование данных ....................................181
Подготовка к шифрованию, действия SYSDBA .............................................................................. 181

Содержание  7

Действия SYSDSO ..................................................................................................................................... 182
Создание пароля SEP ........................................................................................................................ 182
Создание криптографического ключа ......................................................................................... 183
Полномочия на шифрование и расшифровку .......................................................................... 184
Шифрование данных ................................................................................................................................. 185
Расшифровка данных ................................................................................................................................ 186
Резюме ............................................................................................................................................................ 186

Часть II  Разработка клиентского приложения ................187

Глава 17  Доступ к БД из клиентского приложения ..........188
Структура клиентского приложения InterBase ............................................................................... 188
Доступ к базе данных, компонент TIBDatabase ............................................................................... 189
Выбор диалекта ISQL........................................................................................................................ 190
Создание и уничтожение базы данных ....................................................................................... 190
Соединение с базой данных ............................................................................................................ 191
Разрыв соединения ............................................................................................................................ 195
Информирование о составе БД ..................................................................................................... 196
Контроль за транзакциями .............................................................................................................. 198
Файл инициализации БД, TIBDatabaseINI ...................................................................................... 199
Резюме ............................................................................................................................................................ 200

Глава 18  Транзакции и компонент TIBTransaction ...........201
Параметры транзакции ............................................................................................................................. 201
Автоматическое управление транзакцией ......................................................................................... 203
Управление транзакцией в ручном режиме ....................................................................................... 203
Точки сохранения ............................................................................................................................... 205
Тайм-аут транзакции ......................................................................................................................... 205
Управление несколькими соединениями ........................................................................................... 206
Диагностика состояния транзакции ..................................................................................................... 207
Резюме ............................................................................................................................................................ 207

Глава 19  Работа со скриптами SQL ..............................208
Выполнение скриптов, TIBScript .......................................................................................................... 208
Разработка помощника установки БД ........................................................................................ 210
Получение метаданных, TIBExtract ..................................................................................................... 212
Пример генератора скриптов .......................................................................................................... 214
Резюме ............................................................................................................................................................ 215

Глава 20  Общие черты наборов данных IBX ...................216
Функционал набора данных ................................................................................................................... 217
Подключение к объектам БД .................................................................................................................. 218
Открытие и закрытие набора данных .................................................................................................. 218
Обновление набора данных ............................................................................................................ 219
Перемещение по записям ......................................................................................................................... 220
Двунаправленный и однонаправленный курсор ..................................................................... 222
Закладки ................................................................................................................................................ 222
Состояние набора данных ........................................................................................................................ 225

 Содержание

Редактирование записей в наборе ......................................................................................................... 227
Отложенные обновления ................................................................................................................. 229
Доступ к отдельному столбцу ................................................................................................................. 232
Вычисляемые поля ............................................................................................................................. 234
Поле генератора .................................................................................................................................. 234
Фильтрация набора данных .................................................................................................................... 236
Поиск строки в наборе .............................................................................................................................. 238
Обработка событий .................................................................................................................................... 239
Взаимодействие с визуальными элементами управления  .......................................................... 241
Резюме ............................................................................................................................................................ 241

Глава 21  Поле набора данных .....................................242
Базовый класс TField ................................................................................................................................. 242
Тип обслуживаемых данных ........................................................................................................... 244
Функциональное назначение ......................................................................................................... 244
Обращение к полю ............................................................................................................................. 245
Доступ к значению ............................................................................................................................. 246
Размер поля .......................................................................................................................................... 249
Значение по умолчанию ................................................................................................................... 249
Ограничения на ввод данных ......................................................................................................... 250
Маска ввода .......................................................................................................................................... 251
Индексные поля .................................................................................................................................. 252
Отображение данных ........................................................................................................................ 252
Обработка событий ............................................................................................................................ 254
Искусственные поля .................................................................................................................................. 255
Поля подстановки............................................................................................................................... 255
Вычисляемые поля ............................................................................................................................. 260
Числовые поля ............................................................................................................................................. 261
Поля целых чисел  .............................................................................................................................. 263
Поля вещественных чисел ............................................................................................................... 263
Текстовое поле ............................................................................................................................................. 264
Логическое поле .......................................................................................................................................... 264
Поля даты и времени ................................................................................................................................. 265
Поля BLOB .................................................................................................................................................... 265
Резюме ............................................................................................................................................................ 268

Глава 22  Компонент быстрой разработки TIBTable ..........269
Программирование без кода ................................................................................................................... 269
Особенности подключения...................................................................................................................... 271
Отношение между главной и подчинённой таблицами ................................................................ 271
Очистка, удаление таблицы .................................................................................................................... 273
Работа с индексами..................................................................................................................................... 273
Создание и удаление индексов ...................................................................................................... 275
Создание таблицы ....................................................................................................................................... 276
Описание состава полей таблицы, класс TFieldDefs .............................................................. 276
Описание состава индексов таблицы, класс TIndexDefs ...................................................... 278
Пример использования метода CreateTable  ............................................................................. 280
Резюме ............................................................................................................................................................ 281

Содержание  9

Глава 23  Компоненты для работы с SQL ........................282
Инструкция SQL TIBSQL ....................................................................................................................... 282
Подготовка к работе ........................................................................................................................... 283
Обслуживание полученного набора данных ............................................................................. 285
Запрос TIBQuery......................................................................................................................................... 285
Коллекция TParams и динамический SQL ........................................................................................ 287
Параметр TParam ................................................................................................................................ 289
Пример запроса с параметром ........................................................................................................ 290
Хранимая процедура TIBStoredProc ................................................................................................... 291
Универсальный набор данных TIBDataSet ....................................................................................... 292
Формирование запросов .................................................................................................................. 293
Модифицируем данные, TIBUpdateSQL ........................................................................................... 295
Резюме ............................................................................................................................................................ 297

Глава 24  Реакция на события сервера 
в клиентском приложении ..............................................299
Компонент TIBEvents ............................................................................................................................... 299
Пример реакции на события ................................................................................................................... 300
Резюме ............................................................................................................................................................ 303

Глава 25  Компоненты Data Controls ..............................304
Источник данных – компонент TDataSource ................................................................................... 304
Общие черты компонентов Data Controls .......................................................................................... 306
Сетка TDBGrid ............................................................................................................................................ 307
Одновременный выбор нескольких строк ................................................................................. 308
Колонки сетки  ..................................................................................................................................... 309
Обработка событий ............................................................................................................................ 315
Статический текст TDBText ................................................................................................................... 319
Строка ввода TDBEdit .............................................................................................................................. 320
Многострочный редактор TDBMemo.................................................................................................. 321
Изображение TDBImage .......................................................................................................................... 322
Список строк TDBListBox ....................................................................................................................... 323
Комбинированный список TDBComboBox ....................................................................................... 324
Группа переключателей TDBRadioGroup .......................................................................................... 324
Кнопка выбора TDBCheckBox ............................................................................................................... 324
Компонент TDBCtrlGrid .......................................................................................................................... 325
Списки с полями подстановки ............................................................................................................... 327
Список подстановки TDBLookupListBox  ................................................................................. 329
Комбинированный список подстановки TDBLookupComboBox ...................................... 329
Навигатор TDBNavigator ......................................................................................................................... 329
Резюме ............................................................................................................................................................ 331

Глава 26  Иерархические данные .................................332
Дерево TTreeView ....................................................................................................................................... 332
Пример работы с рекурсивными таблицами ..................................................................................... 334
Сбор данных  ........................................................................................................................................ 335
Новая запись ........................................................................................................................................ 337

 Содержание

Редактирование записи .................................................................................................................... 337
Удаление записи .................................................................................................................................. 339
Сортировка узлов ............................................................................................................................... 340
Переподчинение узлов ...................................................................................................................... 341
Резюме ............................................................................................................................................................ 345

Глава 27  Нестандартное представление данных ............346
Компоненты списки ................................................................................................................................... 346
Список с флажками выбора TCheckListBox ............................................................................. 348
Сетка строк TStringGrid  .......................................................................................................................... 349
Пример работы с сеткой строк ....................................................................................................... 352
Развитие примера ............................................................................................................................... 354
Список просмотра TListView ................................................................................................................. 356
Хранение данных в списке, коллекция TListItems ................................................................. 356
Элемент списка TListItem ............................................................................................................... 357
Стиль представления данных ......................................................................................................... 358
Особенности работы списка со стилем vsReport ..................................................................... 358
Выбор элементов списка .................................................................................................................. 359
Упорядочивание элементов ............................................................................................................. 361
Поиск элементов ................................................................................................................................. 361
Группировка элементов .................................................................................................................... 362
Пример работы со списком просмотра ....................................................................................... 362
Резюме ............................................................................................................................................................ 366

Глава 28  Библиотеки DLL на стороне клиента ................367
Общая характеристика DLL ................................................................................................................... 367
Экспорт функций DLL.............................................................................................................................. 368
Разработка библиотеки доступа к БД .................................................................................................. 368
Подключение библиотеки к приложению ......................................................................................... 372
Неявная загрузка DLL ...................................................................................................................... 372
Явная загрузка DLL ........................................................................................................................... 373
Резюме ............................................................................................................................................................ 375

Глава 29  Компоненты для администрирования 
InterBase .....................................................................376
Общие черты компонентов ...................................................................................................................... 376
Свойства сервера, TIBServerProperties ............................................................................................... 379
Конфигурирование БД, TIBConfigService ......................................................................................... 382
Отключение и перезапуск БД ........................................................................................................ 383
Управление опциями ......................................................................................................................... 384
Ведение журнала транзакций ......................................................................................................... 386
Шифрование данных ......................................................................................................................... 388
Протокол работы сервера, TIBLogService .......................................................................................... 389
Статистика, TIBStatisticalService .......................................................................................................... 390
Валидация и восстановление, TIBValidationService....................................................................... 392
Управление учётными записями, TIBSecurityService ................................................................... 394
Резервное копирование и восстановление, TIBBackupService и TIBRestoreService .......... 399
Информация о БД, компонент TIBDatabaseInfo ............................................................................. 402

Доступ онлайн
490 ₽
В корзину