Оглавление

Введение 13
Для кого эта книга? 13
Содержание книги 15
Где найти нужные сведения и программные средства? 19
Благодарности 20
Что там за перевалом? 21
Глава 1. Реляционные базы данных InterBase и Firebird 23
1.1. Основные объекты и понятия реляционной базы данных 25
1.2. Реализация отношений в реляционной модели 31
1.2.1. Отношение "один-к-одному" 32
1.2.2. Отношение "один-ко-многим" 33
1.2.3. Отношение "многие-ко-многим" 34
1.3. Нормализация таблиц 35
1.3.1. Первая нормальная форма 36
1.3.2. Вторая нормальная форма 37
1.3.3. Третья нормальная форма 38
1.3.4. Четвертая и пятая нормальные формы 39
1.3.5. Контрольное задание 39
1.4. 12 правил Кодда 41
1.5. Язык SQL 44
1.5.1. Назначение языка SQL 44
1.5.2. Синтаксические конструкции 44
1.5.3. Основные операторы SQL 47
1.6. Обращение к программам системы управления базами данных 47
Что там за перевалом? 49
Глава 2. Создание базы данных 51
2.1. Учетные записи пользователя 51
2.2. Создание новой учетной записи пользователя 52
2.2.1. Использование gsec 52
2.2.2. Использование IBExpert 56
2.2.3. Для особо одаренных. Создание собственной программы для работы
с учетными записями пользователей 59
2.2.3.1. Использование компонентов FIBPlus 59
2.2.3.2. Использование компонентов IBX 72
2.3. Создание учебной базы данных 75
2.3.1. Использование скриптов 77
2.3.2. Несколько слов о транзакциях 77
2.3.3. Создание базы данных с использованием isql 78
2.3.4. Создание базы данных с использованием IBExpert 80
2.3.4.1. Создание базы данных с использованием операторов SQL 80
2.3.4.2. Создание базы данных с использованием инструмента
Create Database 82
2.3.5. Для особо одаренных. Собственная программа для создания
базы данных 84
2.3.5.1. Использование компонентов FIBPlus 84
2.3.5.2. Использование компонентов IBX 88
2.4. Соединение с базой данных 89
2.5. Удаление базы данных 89
2.6. Регистрация базы данных в IBExpert 91
2.7. Копирование и восстановление базы данных 93
2.7.1. Копирование и восстановление базы данных утилитой командной
строки 93
2.7.1.1. Создание резервной копии 93
2.7.1.2. Восстановление базы данных с резервной копии 94
2.7.2. Копирование и восстановление базы данных в IBExpert 95
2.7.2.1. Создание резервной копии 95
2.7.2.2. Восстановление базы данных с резервной копии 97
2.7.3. Для особо одаренных. Собственная программа копирования
базы данных 98
2.7.3.1. Использование компонентов FIBPlus 98
2.7.3.2. Использование компонентов IBX 102
2.7.4. Для особо одаренных. Собственная программа восстановления
базы данных 103
2.7.4.1. Использование компонентов FIBPlus 103
2.7.4.2. Использование компонентов IBX 104
Что там за перевалом? 105
Глава 3. Работа с доменами 107
3.1. Типы данных 107
3.1.1. Числовые типы данных 108
3.1.1.1. Числа с фиксированной точкой 108
3.1.1.2. Числа с плавающей точкой 111
3.1.2. Типы данных даты и времени 112
3.1.3. Строковые типы данных 115
3.1.4. Тип данных BLOB 116
3.1.5. Тип данных BOOLEAN 117
3.2. Синтаксис оператора создания домена 117
3.3. Создание доменов 124
3.4. Изменение домена 126
3.5. Удаление домена 127
3.6. Создание доменов для учебной базы данных 127
Что там за перевалом? 129
Глава 4. Работа с таблицами 131
4.1. Первичные ключи 131
4.2. Проектирование таблиц 133
4.2.1. Общая постановка задачи 134
4.2.2. Справочные таблицы 134
4.2.3. Оперативные таблицы 137
4.2.4. Промежуточные итоги 142
4.3. Контрольная работа 143
4.3.1. Учебные дисциплины 143
4.3.2. Сотрудники организации 143
4.3.3. Движение товаров на складах 144
4.4. Синтаксические конструкции 144
4.4.1. Работа с генераторами 144
4.4.2. Синтаксис создания таблицы 146
4.4.2.1. Определение столбца таблицы 146
4.4.2.2. Определение ограничения таблицы 148
4.5. Создание таблиц и генераторов 152
4.6. Удаление и изменение таблиц 167
4.7. Создание таблиц для учебной базы данных 169
4.8. Использование индексов 169
4.9. Правильные ответы 171
4.9.1. Дисциплины, разделы, темы 171
4.9.2. Организации, отделы, сотрудники 173
4.9.3. Движение материалов на складах 174
Что там за перевалом? 177
Глава 5. Добавление, изменение, удаление и выборка данных 179
5.1. Добавление данных в базу данных 179
5.1.1. Добавление в таблицу одной строки 180
5.1.2. Добавление в таблицу нескольких строк 183
5.2. Удаление данных 185
5.3. Изменение данных 186
5.4. Выборка данных 187
5.5. Использование выражений и функций в операторах 188
5.6. Выполнение скриптов добавления и изменения данных 190
Что там за перевалом? 200
Глава 6. Для особо одаренных. Написание программ работы
с базой данных 201
6.1. Программа просмотра и удаления стран 202
6.1.1. Использование компонентов FIBPlus 202
Последний штрих 216
6.1.2. Использование компонентов IBX 219
6.2. Полнофункциональная программа работы со справочником стран 225
6.2.1. Использование компонентов FIBPlus 225
Несколько слов о BLOB и RichEdit 238
6.2.2. Использование компонентов IBX 238
6.3. Программа работы со справочниками стран и регионов 241
6.3.1. Использование компонентов FIBPlus 241
6.3.2. Использование компонентов IBX 246
6.4. Изменение упорядоченности наборов данных 247
6.4.1. Использование компонентов FIBPlus 248
6.4.2. Использование компонентов IBX 253
Что там за перевалом? 255
Глава 7. Поиск данных 257
7.1. Синтаксис оператора SELECT 257
7.2. Простые варианты поиска данных 259
7.2.1. Задание отображаемых столбцов 260
7.2.2. Упорядочение результата запроса. Предложение ORDER BY 263
7.2.3. Использование ключевого слова DISTINCT 267
7.2.4. Задание условий выборки. Предложение WHERE 270
Синтаксис предложения WHERE 271
Использование операторов сравнения 272
Использование варианта BETWEEN 278
Проверка на присутствие в списке значений (вариант IN) 280
Использование функций ALL, SOME, ANY, EXISTS, SINGULAR 283
Проверка на пустое значение 287
Поиск в строковых столбцах 287
Использование логических операций в условиях поиска 291
7.3. Соединение таблиц 294
7.3.1. Внешние соединения 294
Левое внешнее соединение 295
Правое внешнее соединение 298
Полное внешнее соединение 299
7.3.2. Более сложные примеры соединений 301
Двойное соединение 301
Рефлексивное соединение, или самосоединение 303
7.3.3. Внутреннее соединение 306
7.3.4. Замечания по синтаксису 309
7.4. Группировка результатов выборки 310
7.5. Использование подзапросов в операторах SQL 315
7.6. Использование представлений 320
7.6.1. Создание представлений 320
7.6.2. Примеры представлений 321
7.6.3. Типы представлений: только для чтения или изменяемые 325
7.6.4. Удаление представлений 325
Что там за перевалом? 326
Глава 8. Транзакции 327
8.1. Синтаксис оператора SET TRANSACTION 328
8.2. Характеристики транзакций 328
8.2.1. Режим доступа 329
8.2.2. Уровень изоляции 329
8.2.3. Режим разрешения блокировок 330
8.3. Для особо одаренных. Написание исследовательской программы 330
8.3.1. Использование компонентов FIBPlus 331
8.3.2. Использование компонентов IBX 341
8.3.3. Числовые значения параметров TPB 342
8.4. Исследование характеристик транзакций 343
8.4.1. Уровень изоляции READ COMMITTED 344
8.4.2. Уровень изоляции SNAPSHOT 348
8.4.3. Уровень изоляции SNAPSHOT TABLE STABILITY 349
8.4.4. Средства резервирования таблиц 350
Резервирование таблиц на уровне изоляции READ COMMITTED 351
Резервирование таблиц на уровне изоляции SNAPSHOT 352
8.4.5. Использование разделенных транзакций 353
8.4.6. Преимущества использования компонентов FIBPlus 355
Правильное использование разделенных транзакций 355
Использование защищенного режима в компонентах FIBPlus 356
8.4.7. Вложенные транзакции 357
Написание программы 358
8.5. Краткие итоги 363
Что там за перевалом? 364
Глава 9. Хранимые процедуры и триггеры 365
9.1. Язык хранимых процедур и триггеров 366
9.1.1. Использование оператора SET TERM 366
9.1.2. Использование переменных 367
9.1.3. Выполняемые операции 368
Присваивание значения 368
Использование оператора IF-THEN-ELSE 369
Оператор цикла WHILE-DO 370
Использование одиночного оператора SELECT 371
Оператор FOR SELECT-DO 372
Оператор вызова хранимой процедуры EXECUTE PROCEDURE 372
Оператор EXIT 373
Оператор SUSPEND 373
9.2. Исключения базы данных 373
9.2.1. Пользовательские исключения 374
9.2.2. Обработка исключений и ошибок базы данных в триггерах
и хранимых процедурах 375
9.3. События базы данных 376
9.4. Триггеры 376
9.4.1. Создание триггеров 377
9.4.2. Удаление и изменение триггеров 378
9.4.3. Примеры триггеров 379
Автоинкрементные поля 379
Триггер по поддержанию значений внешних ключей 380
Удаление строк подчиненной таблицы 381
Поддержание значения кода района в организациях 382
Создание истории 385
Помещение в базу данных нового человека 391
Корректировка данных человека 392
Отправка событий базы данных 395
9.5. Хранимые процедуры 397
9.5.1. Создание, изменение и удаление хранимых процедур 398
9.5.2. Выполняемые хранимые процедуры 399
Получение значения первичного ключа 399
Вычисление факториала целого числа 400
Рекурсивное вычисление факториала целого числа 401
9.5.3. Хранимые процедуры выбора 403
Простой вариант процедуры выбора регионов всех стран 403
Более полный вариант процедуры выбора регионов страны 405
Безупречный вариант процедуры выбора регионов страны 407
Сложное получение списка организаций 408
Что там за перевалом? 415
Глава 10. Для особо одаренных. Полезные программы работы
с базой данных 417
10.1. Программа работы со списком людей 417
10.1.1. Использование компонентов FIBPlus 419
Создание элементов управления программой 419
Компоненты работы с базой данных 420
10.1.2. Использование компонентов IBX 444
10.2. Программа работы с двумя базами данных 449
10.3. Программа просмотра и печати справочника стран 458
10.3.1. Использование компонентов FIBPlus 458
10.3.2. Использование компонентов IBX 465
10.4. Программа, включающая средство редактирования полей BLOB 466
Что там за перевалом? 467
Заключение 469
Приложение 1. Установка необходимых программ и компонентов 471
П1.1. Установка Firebird 2.0 471
П1.2. Установка InterBase 2007 Developer Edition 480
П1.3. Установка компонентов FIBPlus 486
П1.3.1. Установка полной версии 487
П1.3.2. Установка пробной версии 489
П1.4. Установка компонентов RichView 498
П1.5. Установка компонентов FastReport 498
П1.6. Установка IBExpert 502
Приложение 2. Наборы символов и порядок сортировки 503
П2.1. Полный список наборов символов и порядков сортировки 503
П2.2. Структура системных таблиц 510
П2.3. Для особо одаренных. Программа просмотра набора символов
и порядка сортировки 511
П2.3.1. Использование компонентов FIBPlus 511
П2.3.2. Использование компонентов IBX 516
Приложение 3. Коды ошибок 519
Приложение 4. Структура некоторых системных таблиц 571
П4.1. База данных, файлы, страницы 571
П4.1.1. Структура системных таблиц 572
П4.1.2. Программа с использованием компонентов FIBPlus 573
П4.1.3. Программа с использованием компонентов IBX 575
П4.2. Отношения (таблицы, представления) 575
П4.2.1. Структура системных таблиц 576
П4.2.2. Программы просмотра отношений 577
П4.3. Триггеры 579
П4.3.1. Структура системной таблицы 579
П4.3.2. Программы просмотра описаний триггеров 580
П4.4. Хранимые процедуры 582
П4.4.1. Структура системных таблиц 583
П4.4.2. Программы просмотра описаний хранимых процедур
и их параметров 584
Приложение 5. Содержимое компакт-диска 587
Предметный указатель 589

6
Оглавление
7
Оглавление