Предисловие
 
 Г л а в а  1. Введение в PostgreSQL
 Программная обработка данных
 Базы данных, состоящие из плоских файлов
 Что такое база данных?
 Типы баз данных
 База данных с сетевой структурой
 Иерархическая модель базы данных
 Реляционная модель базы данных
 Языки запросов
 SQL
 Системы управления базами данных
 Что такое PostgreSQL?
 Короткий экскурс в историю PostgreSQL
 Архитектура PostgreSQL
 Open Source лицензирование
 Ресурсы
 
 Г л а в а  2. Основы реляционных баз данных
 Электронные таблицы
 Немного терминологии
 Недостатки электронных таблиц
 В чем отличие таблицы от базы данных?
 Размещение информации в базе данных
 Сетевой доступ
 Выборка данных
 Добавление информации в базу данных
 Несколько таблиц
 Отношения между таблицами
 Проектирование таблиц
 Несколько эвристических правил
 Схема базы данных "Клиенты и заказы"
 Добавляем таблицы в базу данных
 Завершение первичного проекта
 Основные типы данных
 Значение NULL
 Образец базы данных
 Резюме
 
 Г л а в а  3. Начинаем работу с PostgreSQL
 Устанавливать или обновлять?
 Установка PostgreSQL из дистрибутива Linux
 Состав дистрибутива PostgreSQL
 Установка PostgreSQL из исходного кода
 Запуск PostgreSQL
 Создание базы данных
 Создание таблиц
 Удаление таблиц
 Заполнение таблиц
 Остановка PostgreSQL
 Установка PostgreSQL в Windows
 Cygwin - UNIX-среда для Windows
 Службы IPC для Windows
 PostgreSQL для Cygwin
 Компиляция PostgreSQL в Windows
 Конфигурирование PostgreSQL в Windows
 Автоматический запуск PostgreSQL
 Резюме
 
 Г л а в а  4. Доступ к данным
 Использование psql
 Простые выражения с оператором SELECT
 Замена названий столбцов
 Изменение порядка строк
 Исключение повторяющихся строк
 Выполнение вычислений
 Выбор строк
 Более сложные условия
 Поиск по шаблону
 Ограничение количества выводимых строк
 Сравнение других типов данных
 Сравнение с NULL
 Сравнение дат и времени
 Связывание данных в таблицах
 Связь двух таблиц
 Использование псевдонимов для таблиц
 Объединение трех таблиц
 Резюме
 
 Г л а в а  5. Графические программы для работы с PostgreSQL
 psql
 Запуск psql
 Команды psql
 История команд
 Сценарии psql
 Исследование базы данных
 Краткий справочник по параметрам командной строки
 Краткий справочник по внутренним командам
 ODBC
 pgAdmin
 Kpsql
 PgAccess
 Формы и редактор запросов
 Microsoft Access
 Связанные таблицы
 Ввод данных
 Отчеты
 Microsoft Excel
 Ресурсы
 Резюме
 
 Г л а в а  6. Работа с данными
 Добавление данных в базу
 Стандартный оператор INSERT
 Вставка данных в столбцы типа SERIAL
 Ввод значений NULL
 Команда copy
 Загрузка данных напрямую из другого приложения
 Обновление информации в базе данных
 Предостережение
 Удаление информации из базы данных
 Резюме
 
 Г л а в а  7. Расширенные возможности выборкиданных
 Агрегатные функции
 COUNT
 Функция MIN()
 Функция MAX()
 Функция SUM()
 Функция AVG()
 Объединение UNION
 Подзапросы
 Типы подзапросов
 Связанные подзапросы
 Самообъединения
 Внешние объединения
 Резюме
 
 Г л а в а  8. Определение данных иманипулирование ими
 Типы данных
 Логический тип
 Строковый тип
 Числовой тип
 Типы даты и времени
 Специальные типы PostgreSQL
 Создание собственных типов
 Преобразование типов
 Другие операции с данными
 Магические переменные
 Столбец OID
 Манипулирование таблицами
 Создание таблицы
 Изменение структуры таблиц
 Удаление таблиц
 Временные таблицы
 Представления
 Внешние ключи
 Внешний ключ как ограничение для столбца
 Внешний ключ как ограничение для таблицы
 Параметры внешних ключей
 Резюме
 
 Г л а в а  9. Транзакции и блокировки
 Что такое транзакция?
 Свойства АСИД
 Транзакции при однопользовательском доступе
 Ограничения использования транзакций
 Транзакции при многопользовательском доступе
 Уровни изоляции ANSI
 Уровни изоляции ANSI/ISO
 Режимы явных и неявных транзакций (Auto Commit)
 Блокировки
 Взаимные блокировки
 Явные блокировки
 Резюме
 
 Г л а в а  10. Хранимые процедуры и триггеры
 Операторы
 Приоритет и ассоциативность операторов
 Арифметические операторы
 Сравнения и операции над строками
 Другие операторы
 Функции
 Процедурные языки
 Основы за PL/pgSQL
 Перегрузка функций
 Листинг функций
 Удаление функций
 Применение кавычек
 Структура хранимой процедуры
 Аргументы функций
 Комментарии
 Объявления
 Присваивания
 Управляющие структуры
 Возвращение из функций
 Динамические запросы
 Функции SQL
 Триггеры
 Создание триггеров
 Зачем нужны хранимые процедуры 
 и триггеры?
 Резюме
 
 Г л а в а  11.  Администрирование PostgreSQL
 Установка по умолчанию
 bin
 include и lib
 doc
 man
 share
 data
 Инициализация базы данных
 Управление сервером
 Запуск и остановка сервера
 Пользователи
 Представления
 Сопровождение
 Создание и удаление баз данных
 Резервное копирование и восстановление данных
 Обновление версий СУБД
 Безопасность базы данных
 Параметры конфигурации
 Конфигурирование сервера в процессе сборки
 Конфигурирование сервера в процессе работы
 Производительность
 VACUUM
 Индексы
 Резюме
 
 Г л а в а  12. Проектирование базы данных
 Формулирование задачи
 Хороший проект базы данных
 Этапы проектирования базы данных
 Логическое проектирование
 Определение отношений и кардинальности
 Переход к физической модели
 Выбор типов данных
 Завершение определения таблиц
 Реализация бизнес-правил
 Проверка схемы
 Нормальные формы
 Первая нормальная форма
 Вторая нормальная форма
 Третья нормальная форма
 Распространенные приемы проектирования
 Отношение "многие-ко-многим"
 Иерархия
 Рекурсивные отношения
 Ресурсы
 Резюме
 
 Г л а в а  13. Доступ к PostgreSQL изC спомощьюlibpq
 Использование библиотеки libpq
 Соединение с базой данных
 Makefile
 Дополнительная информация
 Выполнение операторов SQL с помощью libpq
 Транзакции
 Извлечение данных из запросов
 Вывод результатов запроса
 Курсоры
 Двоичные значения
 Асинхронность
 Резюме
 
 Г л а в а  14. Доступ к PostgreSQL из C припомощивстроенногоSQL
 Первая программа с использованием встроенного SQL
 Аргументы ecpg
 Журнал выполнения SQL
 Соединения с базой данных
 Обработка ошибок
 Обработчики ошибок
 Переменные основного языка
 Извлечение данных с помощью ecpg
 Транзакции
 Обработка данных
 Курсоры
 Отладка кода ecpg
 Резюме
 
 Г л а в а  15. Доступ к PostgreSQL из PHP
 Установка поддержки PostgreSQL в PHP
 Использование PHP API для PostgreSQL
 Соединения с базой данных
 Построение запросов
 Работа с результирующими множествами
 Обработка ошибок
 Таблицы кодировки
 PEAR
 Резюме
 
 Г л а в а  16. Доступ к PostgreSQL из Perl
 Модуль pgsql_perl5 или Pg
 Установка pgsql_perl5
 Применение pgsql_perl5
 Perl DBI
 Установка DBI и PostgreSQL DBD
 Использование DBI
 Что еще можно сделать с помощью DBI?
 Использование DBIx::Easy
 DBI и XML
 Резюме
 
 Г л а в а  17. Доступ к PostgreSQL из Java
 Общее представление о JDBC
 Драйверы JDBC
 Тип 1
 Тип 2
 Тип 3
 Тип 4
 Сборка драйвера JDBC PostgreSQL
 DriverManager и Driver
 java.sql.DriverManager
 java.sql.Driver
 Соединения
 Создание объектов Statement
 Обработка транзакций
 Метаданные базы данных
 Результирующие наборы данных JDBC
 Тип результирующего множества и параллелизм доступа к нему
 Обход результирующих множеств
 Доступ к данным результирующих множеств
 Соответствие типов данных
 Обновляемые результирующие множества
 Другие важные методы
 Операторы JDBC
 Объект Statement
 Объекты PreparedStatements
 Исключительные ситуации и предупреждения SQL
 Приложение JDBC с графическим интерфейсом пользователя
 Схема классов
 Взаимодействие с системой
 Исходные файлы
 Компиляция и запуск приложения
 Резюме
 
 Г л а в а  18. Дополнительная информация и ресурсы
 Нереляционное хранилище
 OLTP, OLAP и другие термины базы данных
 Ресурсы
 Веб-ресурсы
 Общий инструментарий
 Книги
 Резюме
 
 П р и л о ж е н и е A. Ограничения базы данных  PostgreSQL
 П р и л о ж е н и е B. Типы данных PostgreSQL
 П р и л о ж е н и е C. Синтаксис SQL в PostgreSQL
 П р и л о ж е н и е D. Справочная информация по psql
 П р и л о ж е н и е E. Схема и таблицы базы данных
 П р и л о ж е н и е F. Поддержка больших объектов в PostgreSQL
 
 Алфавитный указатель
                                                            
                                                       
                                                        
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                 