- •Глава 1. Базы данных и системы управления 9
- •Глава 2. Организация доступа к данным 45
- •Глава 3. Реляционная алгебра 60
- •Глава 4. Основы sql 67
- •Глава 5. Проектирование реляционных баз данных 89
- •Глава 6. Взаимодействие sql с приложениями 116
- •Глава 7. Некоторые проблемы администрирования баз данных 154
- •Базы данных и системы управления
- •Файловые системы
- •Концепция баз данных
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков баз данных
- •Трехуровневая модель архитектуры систем баз данных
- •Модели данных
- •Характеристика связей
- •Компьютерно-ориентированные модели данных
- •Реляционный подход
- •Ключи и целостность реляционных данных
- •Моделирование концептуальной схемы базы данных
- •Организация доступа к данным
- •Страницы и файлы
- •Индексирование
- •Структуры типа б-дерева
- •Хеширование
- •Методы сжатия
- •Метод дифференциального сжатия
- •Иерархические методы сжатия
- •Кодирование по методу Хаффмена
- •Реляционная алгебра
- •Традиционные реляционные операции
- •Специальные реляционные операции
- •Дополнительные реляционные операции
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формул
- •Основы sql
- •Типы данных
- •Строковые типы данных
- •Битовые типы данных
- •Точные числовые типы данных
- •Вещественные числовые типы данных
- •Календарные типы данных
- •Значения null
- •Создание и обслуживание таблиц
- •Запрос на выборку
- •Статистические функции
- •Создание соединений
- •Вложенные запросы
- •Запрос на объединение
- •Запросы, выполняющие реляционные операции вычитания, пересечения и деления
- •Запросы на изменение
- •Перекрестные запросы
- •Проектирование реляционных баз данных
- •Нормализация отношений
- •Функциональные зависимости
- •Н ормальные формы, обоснованные функциональными зависимостями
- •Нормальная форма Бойса–Кодда
- •Нормальные формы, обоснованные более сложными зависимостями
- •Процедура нормализации и проектирования
- •Пример проектирования базы данных
- •Назначение и предметная область
- •Проектирование базы данных
- •Взаимодействие sql с приложениями
- •Встраивание sql-операторов в программный код
- •Тип курсора
- •Триггеры
- •Хранимые процедуры
- •Стандартные интерфейсы для доступа к данным
- •Информационное окружение веб-сервера
- •Стандарт odbc
- •Уровни соответствия
- •Уровень соответствия odbc
- •Задание имени источника данных odbc
- •Расширяемый язык разметки xml
- •Xml как язык разметки
- •Материализация хмl-документов с помощью xslt
- •Создание хмl-документов на основе информации из базы данных
- •Некоторые проблемы администрирования баз данных
- •Оптимизация запросов
- •Параллельная обработка данных
- •Потеря обновления
- •Зависимость от незафиксированных обновлений
- •Несогласованный анализ
- •Блокировки транзакций
- •Согласованность и уровень изоляции транзакций
- •Распределенные системы баз данных
- •Фрагментация
- •Репликация
- •Распространение обновлений
- •Управление каталогом
- •Распределенная обработка запросов
- •Типы распределенных систем баз данных
- •Нераспределенные мультибазовые субд
- •Клиент-серверные системы
- •Системы с общими ресурсами
- •Технические аспекты администрирования базы данных
- •Восстановление базы данных
- •Безопасность баз данных
- •Шифрование данных
- •Производительность баз данных
- •Администрирование данных
- •Литература
Уровни соответствия
Перед создателями стандарта ODBC стояла дилемма. Если они зададут для стандарта минимальный уровень совместимости, поддержать этот стандарт будут в состоянии многие производители. Однако при этом стандарт будет представлять только малую долю всей мощи и выразительности, которыми обладают ODBC и SQL. С другой стороны, если стандарт будет предписывать очень высокий уровень совместимости, то лишь немногие производители смогут поддерживать его, а это лишит его ценности. Чтобы справиться с этой дилеммой, были определены уровни соответствия стандарту. Уровни соответствия определяются по отношению к SQL и по отношению к ODBC.
Уровень соответствия odbc
Уровень соответствия ODBC (ODBC conformance level) описывает то, какие возможности и функции доступны через интерфейс прикладных программ (API) драйвера. Интерфейс прикладных программ драйвера – это набор функций, которые может вызывать приложение для обращения за услугами источника данных. Стандартом предусмотрены три уровня три уровня соответствия ODBC. На практике почти все драйверы обеспечивают по крайней мере первый уровень соответствия, поэтому базовый уровень не представляет особого интереса.
УРОВНИ СООТВЕТСТВИЯ ODBC
Базовый уровень (Core API):
соединение с источниками данных;
подготовка и выполнение SQL-операторов;
получение данных из набора результатов;
сохранение или откат транзакций;
получение информации об ошибках.
Первый уровень (Level 1 API):
соответствие ODBC на базовом уровне;
соединение с источниками данных, содержащих информацию, специфичную для драйвера;
отправка и прием частичных результатов;
получение информации из каталога;
получение информации о параметрах, возможностях и функциях драйвера.
Второй уровень (Level 2 API):
соответствие ODBC на базовом и первом уровнях;
обзор возможных соединений и источников данных;
получение «родной» формы SQL;
вызов библиотеки преобразований;
обработка двунаправленных курсоров.
Приложение может вызвать драйвер, чтобы определить, какой уровень соответствия ODBC он предоставляет. Если приложение требует такого уровня соответствия, который не обеспечивается драйвером, оно может корректно прервать сеанс и выдать пользователю соответствующее сообщение. Можно написать приложение так, чтобы оно использовало функции более высокого уровня соответствия, если они доступны, а если нет, реализовывало их самостоятельно.
Например, драйверы второго уровня должны предоставлять двунаправленный курсор. Приложение можно запрограммировать так, чтобы оно использовало курсоры, если они доступны, а если нет, реализовывало бы отсутствующую функцию собственными средствами, используя предложения WHERE с сильными ограничениями. Это гарантирует, что за один прием приложению будет возвращаться лишь небольшое количество строк, которые будут обрабатываться с помощью курсора, поддерживаемого самим приложением. Во втором случае производительность, скорее всего, будет ниже, зато, по крайней мере, приложение будет способно успешно выполнить задачу.
Уровни соответствия SQL
Уровни соответствия SQL (SQL conformance levels) описывают то, какие SQL-операторы, выражения и типы данных может обрабатывать драйвер. Стандартом определены также три уровня соответствия. Возможности минимального синтаксиса SQL весьма ограничены, и большинство драйверов поддерживают по крайней мере базовый синтаксис.
УРОВНИ СООТВЕТСТВИЯ SQL
Минимальный синтаксис (Minimum SQL Grammar):
CREATE TABLE, DROP TABLE;
простой оператор SELECT (без вложенных запросов);
INSERT, UPDATE, DELETE;
простые выражения (A > В + С);
типы данных CHAR, VARCHAR, LONGCHAR.
Базовый синтаксис (Core SQL Grammar):
минимальный синтаксис;
ALTER TABLE, CREATE INDEX, DROP INDEX;
CREATE VIEW, DROP VIEW;
GRANT, REVOKE;
полный синтаксис оператора SELECT (включая вложенные запросы);
встроенные функции: SUM, COUNT, MAX, MIN, AVG;
типы данных DECIMAL, NUMERIC, SMALLINT, REAL, FLOAT, DOUBLE PRECISION.
Расширенный синтаксис (Extended SQL Grammar):
базовый синтаксис;
внешние соединения;
UPDATE и DELETE с использованием позиции курсора;
скалярные функции: SUBSTRING, ABS;
переменные для даты, времени и временная метка;
пакетная обработка SQL-операторов;
хранимые процедуры.
Как и в случае с уровнями соответствия ODBC, приложение может вызвать драйвер, чтобы определить, какой уровень соответствия SQL он поддерживает. Имея эту информацию, приложение может затем определить, какие SQL-операторы можно передавать на выполнение драйверу. Если необходимо, приложение может прервать сеанс или использовать альтернативные, менее мощные способы получения данных.