InterBase и Delphi. Клиент-серверные базы данных
Покупка
Тематика:
Проектирование баз и банков данных
Издательство:
ДМК Пресс
Автор:
Осипов Дмитрий Леонидович
Год издания: 2023
Кол-во страниц: 537
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-586-2
Артикул: 817029.01.99
Книга посвящена разработке клиент-серверных приложений баз данных (БД) на платформе системы управления базами данных InterBase (Firebird) и языка программирования Delphi. В ней представлено точное и полное описание инструментария разработчика, так необходимого для создания профессиональных проектов.
Издание предназначено как для работающих с современными информационными технологиями студентов и преподавателей высших учебных заведений, так и для программистов, которые найдут в книге всё необходимое для самостоятельного проектирования клиент-серверных баз данных.
- Полная коллекция по информатике и вычислительной технике
- Базы данных. Разработка и защита
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Проектирование баз и банков данных
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
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