Книги в продаже (аннотация + содержание + отрывок)

Дж. Грофф, П. Вайнберг
ЭНЦИКЛОПЕДИЯ SQL (+CD).
Цена: 336 р.

Источник: Издательский дом 'ПИТЕР'
Разделы: SQL (язык запросов к базам данных)
Подробнее: Информация от издателя (открывается в новом окне)
Заказ: Оформление покупки (открывается в новом окне)
      Перед вами — новое издание наиболее полного руководства по использованию структурированного языка запросов SQL, применяемого для работы с базами данных. В книге подробно описываются возможности SQL, реализованные в самых распространенных СУБД и определенные в стандарте ANSI/ISO для SQL. В ней вы найдете подробную информацию, касающуюся применения инструкций для работы с базами данных, стандартов SQL, а также популярных API-интерфейсов, служащих для доступа к таким базам данных, как ODBC, SQL/CLI, JDBC и OCI. Большое внимание уделяется вопросам безопасности данных, влиянию объектных технологий на SQL и интеграции SQL с XML. На прилагающемся компакт-диске содержатся дистрибутивы трех СУБД: SQL Server 2000, IBM DB2 и MySQL. Книга предназначена для всех пользователей, интересующихся языком запросов SQL.
     
     
     
      Содержание
      Предисловие
      Структура книги
      Соглашения, принятые в книге
      Для кого предназначена эта книга
      Благодарности
      ЧАСТЬ 1.Обзор SQL
      Глава 1.
      Введение
      Язык SQL
      Роль SQL
      Достоинства SQL
      Независимость от конкретных СУБД
      Межплатформенная переносимость
      Стандарты языка SQL
      Поддержка SQL компанией IBM
      Поддержка со стороны Microsoft
      Реляционная основа
      Высокоуровневая структура
      Интерактивные запросы
      Программный доступ к базе данных
      Различные представления данных
      Полноценный язык для работы с базами данных
      Динамическое определение данных
      Архитектура клиент/сервер
      Поддержка корпоративных приложений
      Объектно-ориентированные технологии
      Доступ к данным в Интернете
      Интеграция с языком Java
      Промышленная инфраструктура
      Глава 2.
      Краткий обзор SQL
      Простая база данных
      Выборка данных
      Получение итоговых данных
      Добавление данных
      Удаление данных
      Обновление данных
      Защита данных
      Создание базы данных
      Резюме
      Глава 3.
      Развитие SQL
      SQL и управление базами данных
      Краткая история SQL
      Первые годы
      Первые реляционные СУБД
      СУБД компании IBM
      Коммерческое признание
      Стандарты SQL
      Стандарты ANSI/ISO
      Другие стандарты SQL
      ODBC и консорциум SQL Access Group
      Миф о переносимости
      SQL и сети
      Централизованная архитектура
      Архитектура файл/сервер
      Архитектура клиент/сервер
      Трехуровневая архитектура Интернета
      Влияние SQL
      SQL и стратегия унификации баз данных компании IBM
      SQL и мини-компьютеры
      SQL и UNIX
      SQL и персональные компьютеры
      SQL и обработка транзакций
      SQL и базы данных для рабочих групп
      SQL и хранилища данных
      SQL и распределенные Интернет-приложения
      Резюме
      Глава 4.
      Реляционные базы данных
      Первые модели данных
      Системы управления файлами
      Иерархические базы данных
      Сетевые базы данных
      Реляционная модель данных
      Учебная база данных
      Таблицы
      Первичные ключи
      Отношения предок/потомок
      Внешние ключи
      Двенадцать правил Кодда*
      Резюме
      ЧАСТЬ 2. Получение данных
      Глава 5.
      Основы языка SQL
      Инструкции
      Имена
      Имена таблиц
      Имена столбцов
      Типы данных
      Константы
      Числовые константы
      Строковые константы
      Константы даты и времени
      Именованные константы
      Выражения
      Встроенные функции
      Отсутствующие значения
      Резюме
      Глава 6.
      Простые запросы
      Инструкция SELECT
      Предложение SELECT
      Предложение FROM
      Результаты запроса на выборку
      Простые запросы
      Вычисляемые столбцы
      Выборка всех столбцов*
      Повторяющиеся строки
      Отбор строк
      Условия отбора
      Операторы сравнения
      Проверка на принадлежность диапазону значений
      Поверка на членство в множестве
      Проверка на соответствие шаблону
      Проверка на равенство значению NULL
      Составные условия отбора
      Сортировка результатов запроса
      Правила выполнения однотабличных запросов
      Объединение результатов нескольких запросов*
      Запрос на объединение и повторяющиеся строки*
      Запрос на объединение и сортировка*
      Вложенные запросы на объединение*
      Резюме
      Глава 7.
      Многотабличные запросы
      Пример двухтабличного запроса
      Объединение таблиц по равенству
      Запросы с использованием отношения предок/потомок
      Условия для отбора строк
      Несколько связанных столбцов
      Запросы на выборку к трем и более таблицам
      Прочие объединения таблиц по равенству
      Объединение таблиц по неравенству
      Особенности многотабличных запросов
      Полные имена столбцов
      Выборка всех столбцов
      Самообъединения
      Псевдонимы таблиц
      Производительность при обработке многотабличных запросов
      Внутренняя структура объединения таблиц
      Умножение таблиц
      Правила выполнения многотабличных запросов на выборку
      Внешнее объединение таблиц*
      Левое и правое внешние объединения*
      Система записи внешнего объединения*
      Объединения и стандарт SQL2
      Внутренние объединения в стандарте SQL2*
      Внешние объединения в стандарте SQL2*
      Перекрестные объединения и расширенные запросы на объединение в SQL2*
      Многотабличные объединения в стандарте SQL2
      Резюме
      Глава 8.
      Итоговые запросы на выборку
      Статистические функции
      Вычисление суммы значений столбца
      Вычисление среднего значения столбца
      Вычисление экстремумов
      Вычисление количества значений в столбце
      Статистические функции в списке возвращаемых столбцов
      Статистические функции и значения NULL
      Удаление повторяющихся строк
      Запросы с группировкой
      Несколько столбцов группировки
      Ограничения на запросы с группировкой
      Значения NULL в столбцах группировки
      Условия отбора групп
      Ограничения на условия отбора групп
      Значения NULL и условия отбора групп
      Предложение HAVING без GROUP BY
      Резюме
      Глава 9.
      Подчиненные и составные запросы
      Применение подчиненных запросов
      Что такое подчиненный запрос
      Подчиненные запросы в предложении WHERE
      Внешние ссылки
      Условия отбора в подчиненном запросе
      Сравнение с результатом подчиненного запроса
      Проверка на принадлежность результатам подчиненного запроса
      Проверка на существование
      Многократное сравнение*
      Подчиненные запросы и объединения
      Уровни вложенности запросов
      Коррелированные подчиненные запросы*
      Подчиненные запросы в предложении HAVING*
      Подчиненные запросы - резюме
      Сложные запросы в SQL2*
      Выражения со скалярными значениями
      Выражения с записями таблиц
      Табличные выражения
      Табличные операции и составные запросы
      Резюме
      ЧАСТЬ 3.Обновление данных
      Глава 10.
      Внесение изменений в базу данных
      Добавление новых данных
      Однострочная инструкция INSERT
      Многострочная инструкция INSERT
      Утилиты пакетной загрузки
      Удаление существующих данных
      Инструкция DELETE
      Удаление всех строк
      Инструкция DELETE с подчиненным запросом*
      Обновление существующих данных
      Инструкция UPDATE
      Обновление всех строк
      Инструкция UPDATE с подчиненным запросом*
      Резюме
      Глава 11.
      Целостность данных
      Условия целостности данных
      Обязательное наличие данных
      Условия на значения
      Ограничения на значения столбца
      Домены
      Целостность таблицы
      Прочие условия уникальности столбцов
      Условия уникальности столбцов и значения NULL
      Ссылочная целостность
      Проблемы, связанные со ссылочной целостностью
      Правила удаления и обновления*
      Каскадные удаления и обновления*
      Ссылочные циклы*
      Внешние ключи и значения NULL*
      Расширенные возможности задания ограничений в SQL2
      Утверждения
      Типы ограничений столбцов и таблиц в SQL2
      Отложенная проверка ограничений
      Деловые правила
      Что такое триггер
      Триггеры и ссылочная целостность
      Достоинства и недостатки триггеров
      Триггеры и стандарты SQL
      Резюме
      Глава 12.
      Обработка транзакций
      Что такое транзакция
      Инструкции COMMIT и ROLLBACK
      Модель транзакции в стандарте ANSI/ISO
      Другие модели транзакций
      Журнал транзакций*
      Транзакции и работа в многопользовательском режиме
      Проблема пропавшего обновления
      Проблема промежуточных данных
      Проблема несогласованных данных
      Проблема строк-призраков
      Параллельные транзакции
      Блокировка*
      Уровни блокировки
      Жесткая и нежесткая блокировки
      Тупиковые ситуации*
      Усовершенствованные методы блокировки*
      Технология версий
      Технология версий в действии
      Преимущества и недостатки технологии версий
      Резюме
      ЧАСТЬ 4.Структура базы данных
      Глава 13.
      Создание баз данных
      Язык определения данных
      Создание базы данных
      Определения таблиц
      Создание таблицы
      Удаление таблицы
      Изменение определения таблицы
      Определение ограничений
      Утверждения
      Домены
      Псевдонимы таблиц
      Индексы
      Другие объекты базы данных
      Структура базы данных
      Однобазовая архитектура
      Многобазовая архитектура
      Каталожная архитектура
      Базы данных на нескольких серверах
      Структура базы данных и стандарт ANSI/ISO
      Каталоги в SQL2
      Схемы в SQL2
      Резюме
      Глава 14.
      Представления
      Что такое представление
      Как СУБД работает с представлениями
      Преимущества представлений
      Недостатки представлений
      Создание представлений
      Горизонтальные представления
      Вертикальные представления
      Смешанные представления
      Сгруппированные представления
      Объединенные представления
      Обновление представлений
      Обновление представлений и стандарт ANSI/ISO
      Обновление представлений в коммерческих СУБД
      Контроль над обновлением представлений
      Удаление представления
      Материализованные представления*
      Резюме
      Глава 15.
      SQL и безопасность баз данных
      Принципы защиты данных, применяемые в SQL
      Идентификаторы пользователей
      Защищаемые объекты
      Привилегии
      Представления и защита данных в SQL
      Предоставление привилегий
      Привилегии на столбцы
      Передача привилегий
      Отмена привилегий
      Инструкция REVOKE и право предоставления привилегий
      Инструкция REVOKE и стандарт ANSI/ISO
      Резюме
      Глава 16.
      Системный каталог
      Что такое системный каталог
      Системный каталог и средства формирования запросов
      Системный каталог и стандарт ANSI/ISO
      Содержимое системного каталога
      Информация о таблицах
      Информация о столбцах
      Информация о представлениях
      Комментарии
      Информация об отношениях между таблицами
      Информация о пользователях
      Информация о привилегиях
      Информационная схема в стандарте SQL2
      Прочая информация
      Резюме
      ЧАСТЬ 5.Программирование на SQL
      Глава 17.
      Встроенный SQL
      Обзор программного SQL
      Выполнение инструкций SQL в СУБД
      Основные концепции встроенного SQL
      Компиляция программы со встроенным SQL
      Выполнение программы со встроенным SQL
      Простые инструкции встроенного SQL
      Объявление таблиц
      Обработка ошибок
      Использование базовых переменных
      Выборка данных с помощью встроенного SQL
      Запросы, возвращающие одну запись
      Запросы, возвращающие набор записей
      Удаление и обновление данных с использованием курсоров
      Курсоры и обработка транзакций
      Резюме
      Глава 18.
      Динамический SQL
      Недостатки статического SQL
      Основные концепции динамического SQL
      Динамическое выполнение инструкций
      Динамическое выполнение в два этапа
      Инструкция PREPARE
      Инструкция EXECUTE
      Динамические запросы на выборку
      Инструкция DESCRIBE
      Динамическая инструкция DECLARE CURSOR
      Динамическая инструкция OPEN
      Динамическая инструкция FETCH
      Динамическая инструкция CLOSE
      Диалекты динамического SQL
      Динамический SQL в Oracle*
      Динамический SQL и стандарт SQL2
      Базовые динамические инструкции в SQL2
      Стандарт SQL2 и область SQLDA
      Стандарт SQL2 и динамические запросы на выборку
      Резюме
      Глава 19.
      Интерфейсы программирования приложений SQL
      Применение программных интерфейсов для доступа к базам данных
      Библиотека DB-Library в SQL Server
      Базовые принципы работы с SQL Server
      Запросы на выборку в SQL Server
      Позиционные обновления
      Динамические запросы на выборку
      Протокол ODBC и стандарт SQL/CLI
      Формирование стандарта SQL/CLI
      Структуры CLI
      Обработка инструкций SQL с помощью CLI
      Ошибки CLI и диагностическая информация
      Атрибуты CLI
      Функции, возвращающие информацию о CLI
      Протокол ODBC
      Структура ODBC
      Независимое взаимодействие с различными СУБД
      Функции ODBC для работы с системными каталогами
      Расширенные возможности ODBC
      Интерфейс вызовов в Oracle
      Дескрипторы OCI
      Подключение к серверу Oracle
      Выполнение инструкций
      Обработка результатов запроса
      Управление описателями
      Управление транзакциями
      Протокол JDBC
      История развития и версии JDBC
      Реализации JDBC и типы драйверов
      Интерфейс программирования приложений JDBC
      Обработка ошибок в JDBC
      Получение метаданных посредством JDBC
      Дополнительные возможности JDBC
      Резюме
      ЧАСТЬ 6.Перспективы развития языка SQL
      Глава 20.
      Обработка данных и хранимые процедуры
      Концепции хранимых процедур
      Простейший пример
      Использование хранимых процедур
      Создание хранимой процедуры
      Вызов хранимой процедуры
      Переменные хранимых процедур
      Блоки инструкций
      Возврат значения из процедуры
      Возврат значений через параметры
      Условное выполнение
      Циклы
      Другие управляющие конструкции
      Циклическая обработка курсоров
      Обработка ошибок
      Преимущества хранимых процедур
      Производительность хранимых процедур
      Системные хранимые процедуры
      Внешние хранимые процедуры
      Триггеры
      Преимущества и недостатки триггеров
      Триггеры в диалекте Transact-SQL
      Триггеры в диалекте Informix
      Триггеры в диалекте Oracle PL/SQL
      Дополнительные вопросы, связанные с использованием триггеров
      Хранимые процедуры, триггеры и стандарт SQL
      Хранимые процедуры в стандарте SQL/PSM
      Создание подпрограммы
      Управляющие конструкции
      Операции с курсором
      Блоки инструкций
      Обработка ошибок
      Перегрузка имен подпрограмм
      Внешние хранимые процедуры
      Дополнительные элементы SQL/PSM, связанные с хранимыми процедурами
      Триггеры в стандарте SQL3
      Резюме
      Глава 21.
      SQL и хранилища данных
      Концепции хранилищ данных
      Компоненты хранилища данных
      Эволюция хранилищ данных
      Архитектура баз данных для хранилищ
      Кубы фактов
      Схема "звезда"
      Многоуровневые измерения
      Расширения SQL для хранилищ данных
      Производительность хранилищ данных
      Скорость загрузки данных
      Производительность запросов
      Резюме
      Глава 22.
      SQL и серверы приложений
      SQL и Web-узлы: первые реализации
      Серверы приложений и трехуровневая архитектура Web-узла
      Доступ к базам данных из серверов приложений
      Типы EJB-компонентов
      Доступ к базам данных из сеансовых EJB-компонентов
      Доступ к базе данных из сущностного EJB-компонента
      Спецификация EJB 2.0
      Кеширование данных
      Резюме
      Глава 23.
      SQL и распределенные базы данных
      Проблемы управления распределенными данными
      Практические подходы к управлению распределенными базами данных
      Доступ к удаленным базам данных
      Прозрачность доступа к удаленным данным
      Дублирование таблиц
      Репликация таблиц
      Двунаправленная репликация
      Затраты на репликацию
      Типичные схемы репликации
      Доступ к распределенным базам данных
      Удаленные запросы
      Удаленные транзакции
      Распределенные транзакции
      Распределенные запросы
      Метод двухфазного завершения транзакций*
      Сетевые приложения и архитектура баз данных
      Приложения клиент/сервер
      Приложения клиент/сервер с хранимыми процедурами
      Корпоративные приложения и кеширование данных
      Управление базами данных в Интернете
      Резюме
      Глава 24.
      SQL и объектно-ориентированные технологии
      Объектно-ориентированные базы данных
      Характеристики объектно-ориентированной базы данных
      Плюсы и минусы объектно-ориентированных баз данных
      Влияние объектных технологий на рынок баз данных
      Объектно-реляционные базы данных
      Поддержка больших объектов
      Большие объекты в реляционной модели
      Специализированная обработка больших объектов
      Абстрактные типы данных
      Определение абстрактных типов данных
      Использование абстрактных типов данных
      Наследование
      Табличное наследование - реализация классов
      Множества, массивы и коллекции
      Создание коллекций
      Коллекции и запросы на выборку
      Манипулирование коллекциями данных
      Коллекции и хранимые процедуры
      Пользовательские типы данных
      Методы и хранимые процедуры
      Поддержка объектных возможностей в стандарте SQL3
      Резюме
      Глава 25.
      SQL и XML
      Что такое XML
      Основы XML
      Работа с данными
      XML и SQL
      Элементы или атрибуты
      Использование XML с базами данных
      Вывод в формате XML
      Ввод в формате XML
      Обмен данными в формате XML
      Хранение и интеграция данных в формате XML
      XML и метаданные
      Document Type Definition
      Схема XML
      XML и запросы
      Концепции XQuery
      Обработка запросов в XQuery
      Базы данных XML
      Резюме
      Глава 26.
      SQL и основные тенденции развития баз данных
      Тенденции на рынке баз данных
      Насыщение рынка СУБД
      Сегментация рынка СУБД
      Пакеты корпоративных приложений
      Повышение производительности аппаратного обеспечения
      Аппаратные средства серверов баз данных
      Война за показатели производительности
      Стандарты языка SQL
      SQL в следующем десятилетии
      Распределенные базы данных
      Массивные хранилища данных
      Сверхпроизводительные базы данных
      Интернет и интеграция с сетевыми сервисами
      Встроенные базы данных
      Интеграция с объектно-ориентированными технологиями
      Резюме
      Приложения
      Приложение А.
      Учебная база данных
      Приложение Б.
      Синтаксис языка SQL
      Инструкции DDL
      Основные инструкции DML
      Инструкции обработки транзакций
      Инструкции для работы с курсорами
      Выражения запросов
      Условия отбора
      Выражения
      Элементы инструкций
      Простые элементы
      Приложение В.
      Стандарт SQL/CLI
      Значения, возвращаемые функциями CLI
      Универсальные функции управления дескрипторами
      Функции управления средой SQL
      Функции управления сеансами подключения
      Функции управления инструкциями SQL
      Функции для выполнения инструкций SQL
      Функции для обработки результатов запроса
      Функции для получения информации о результатах запроса
      Функции управления описателями CLI
      Функции для отложенной обработки динамических параметров
      Функции для получения диагностической информации
      Функции для получения информации о библиотеке CLI
      Коды параметров функций CLI
      Приложение Г.
      Информационная схема SQL
      Представление SCHEMATA
      Представление TABLES
      Представление COLUMNS
      Представление VIEWS
      Представление VIEW_TABLE_USAGE
      Представление VIEW_COLUMN_USAGE
      Представление TABLE_CONSTRAINTS
      Представление REFERENTIAL_CONSTRAINTS
      Представление CHECK_CONSTRAINTS
      Представление KEY_COLUMN_USAGE
      Представление ASSERTIONS
      Представление CONSTRAINT_TABLE_USAGE
      Представление CONSTRAINT_COLUMN_USAGE
      Представление TABLE_PRIVILEGES
      Представление COLUMN_PRIVILEGES
      Представление USAGE_PRIVILEGES
      Представление DOMAINS
      Представление DOMAIN_CONSTRAINTS
      Представление DOMAIN_COLUMN_USAGE
      Представление CHARACTER_SETS
      Представление COLLATIONS
      Представление TRANSLATIONS
      Представление SQL_LANGUAGES
      Приложение Д.
      О прилагаемом компакт-диске
      Установка программного обеспечения СУБД
      Microsoft SQL Server 2000
      Требования к аппаратному и программному обеспечению
      Замечания по инсталляции SQL Server 2000
      Инсталляция SQL Server 2000
      Запуск SQL Server 2000
      Деинсталляция SQL Server 2000
      IBM DB2
      Требования к аппаратному и программному обеспечению
      Замечания по инсталляции DB2 Enterprise Edition
      Инсталляция DB2 Enterprise Edition
      Запуск DB2 Enterprise Edition
      Деинсталляция DB2 Enterprise Edition
      MySQL
      Требования к аппаратному и программному обеспечению
      Замечания по инсталляции MySQL
      Инсталляция MySQL
      Запуск MySQL
      Деинсталляция MySQL
      Алфавитный указатель
     
     
     
     
      ОТРЫВОК
     
     
      Часть 1
      Обзор SQL
      Первые четыре главы этой книги содержат введение в язык SQL. В главе 1 объясняется, что такое SQL, а также описываются его основные свойства и преимущества. В главе 2 дан краткий обзор всего языка и на примерах проиллюстрированы многие его возможности. В главе 3 рассмотрены история и перспективы развития языка, причины его нынешней популярности, а также дано описание SQL-стандартов и рассказано об основных поставщиках продукции, разработанной на базе SQL. В главе 4 описана реляционная модель данных, на основе которой создан SQL, и дано ее сравнение с другими более
      ранними моделями данных.
      Глава 1. Введение
      Глава 2. Краткий обзор SQL
      Глава 3. Развитие SQL
      Глава 4. Реляционные базы данных
      Глава 1
      Введение
      Стремительный рост популярности SQL является одной из самых важных тенденций в современной компьютерной промышленности. За два последних десятилетия SQL прошел эволюционный путь от небольшой коммерческой программы до компьютерного продукта, собирающего на рынке десятки миллиардов долларов в год, и стал единственным стандартным языком баз данных. На сегодняшний день SQL поддерживают свыше ста СУБД, работающих как на больших ЭВМ (мэйнфреймах), так и на персональных компьютерах. Был принят, а затем трижды дополнен официальный международный стандарт на SQL. Я
      зык SQL является важным звеном в архитектуре систем управления базами данных, выпускаемых всеми ведущими поставщиками программных продуктов, и служит одним из стратегических направлений разработок компаний Microsoft, IBM и Oracle, трех крупнейших производителей программного обеспечения. Кроме того, SQL является открытым программным продуктом, что способствует росту популярности Linux и помогает в развитии движения за открытые программные средства. Зародившись в результате выполнения второстепенного исследовательского проекта компании IBM, SQL сегодня широко изве
      стен и в качестве важной компьютерной технологии, и в качестве мощного рыночного фактора.
      Но, собственно говоря, что такое SQL? Почему он так важен? Что он позволяет делать и как он работает? Если SQL - настоящий стандарт, то почему существует так много различных версий и диалектов? Чем отличаются друг от друга такие популярные СУБД, как SQL Server, Oracle, Informix, Sybase и DB2? Что представляет собой стандарт ODBC компании Microsoft и как он связан с SQL? Каким образом стандарт JDBC связывает SQL с Java и объектными технологиями? Какова его роль в появлении Web-сервисов? Как он влияет на конкуренцию между Web-сервисами, основанными на языке Java и языках, разработанных корпорацией Micros
      oft? Каким образом SQL изменяет работу пользователя на компьютере и как извлечь максимальную пользу из применения этого важного инструмента работы с данными?
      Язык SQL
      SQL является инструментом, предназначенным для выборки и обработки информации, содержащейся в компьютерной базе данных. SQL - это сокращенное название структурированного языка запросов (Structured Query Language). По историческим причинам аббревиатура SQL читается обычно как "сиквел", но используется и альтернативное произношение "эскюэль". Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных одного определенного типа, называемыми
      реляционными.
      На рис. 1.1 изображена схема работы SQL. Согласно этой схеме, в вычислительной системе имеется база данных, в которой хранится важная информация. Если вычислительная система относится к сфере бизнеса, то в базе данных могут содержаться сведения о материальных ценностях, выпускаемой продукции, объемах продаж и зарплате. В базе данных на персональном компьютере может находиться информация о выписанных чеках, телефонах и адресах или информация, извлеченная из более крупной вычислительной системы. Компьютерная программа, которая управляет базой данных, назы
      вается системой управления базой данных, или СУБД.
      Если пользователю необходимо получить информацию из базы данных, он запрашивает ее у СУБД с помощью SQL. СУБД обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных; отсюда и название - структурированный язык запросов.
      Однако это название не совсем соответствует действительности. Во-первых, сегодня SQL представляет собой нечто большее, чем просто инструмент создания запросов, хотя именно для этого он и был первоначально разработан. Несмотря на то что выборка данных по-прежнему остается одной из наиболее важных функций SQL, сейчас этот язык используется для реализации всех функциональных возможностей, которые СУБД предоставляет пользователю. К ним относятся:
      Организация данных. SQL дает пользователю возможность определять структуру представления данных, а также устанавливать отношения между элементами базы данных.
      Выборка данных. SQL дает пользователю или приложению возможность извлекать из базы данных содержащуюся в ней информацию и использовать ее.
      Обработка данных. SQL дает пользователю или приложению возможность изменять базу данных, то есть добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся.
      Управление доступом. С помощью SQL можно ограничить возможности пользователя по выборке и изменению данных и защитить их от несанкционированного доступа.
      Совместное использование данных. SQL координирует совместное использование данных пользователями, работающими параллельно, чтобы они не мешали друг другу.
      Целостность данных. SQL позволяет обеспечить целостность базы данных, защищая ее от разрушения из-за несогласованных изменений или отказа системы.
      Таким образом, SQL является достаточно мощным языком, обеспечивающим эффективное взаимодействие с СУБД.
      Во-вторых, SQL - это не полноценный компьютерный язык типа COBOL, C, C++ или Java. В нем нет инструкции IF для проверки условий, нет инструкции GOTO для организации переходов и нет инструкций DO или FOR для создания циклов. SQL является подъязыком баз данных, в который входит около сорока инструкций, предназначенных для управления базами данных. Инструкции SQL встраиваются в базовый язык, например COBOL или C, и дают возможность получать доступ к базам данных. Кроме того, из такого языка, как C, C++ или Java, инструкции SQL можно передавать СУБД в явном виде, используя интерфейс вызово
      в функций, либо посредством сообщений, пересылаемых по компьютерной сети.
      Наконец, SQL - это слабо структурированный язык, особенно по сравнению с такими высокоструктурированными языками, как C, Pascal или Java. Инструкции SQL напоминают английские предложения и содержат "слова-пустышки", не влияющие на смысл инструкции, но облегчающие ее чтение. В SQL почти нет нелогичностей и к тому же имеется ряд специальных правил, предотвращающих создание инструкций, которые выглядят как абсолютно правильные, но не имеют смысла.
      Несмотря на не совсем точное название, SQL на сегодняшний день является единственным стандартным языком для работы с реляционными базами данных. SQL - это достаточно мощный и в то же время относительно легкий для изучения язык. Краткое введение в SQL, представленное в следующей главе, познакомит вас с основными возможностями этого языка.
      Роль SQL
      Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. Нельзя пойти в компьютерный магазин и "купить SQL". SQL - это неотъемлемая часть СУБД, инструмент, с помощью которого осуществляется связь пользователя с ней. На рис. 1.2 изображена структурная схема типичной СУБД, компоненты которой соединяются в единое целое с помощью SQL (своего рода "клея").
      Ядро базы данных является сердцевиной СУБД; оно отвечает за физическое структурирование данных и запись их на диск, а также за физическое чтение данных с диска. Кроме того, оно принимает SQL-запросы от других компонентов СУБД (таких как генератор форм, генератор отчетов или модуль запросов), от пользовательских приложений и даже от других вычислительных систем. Как видно из рисунка, SQL выполняет много различных функций:
      SQL - язык интерактивных запросов. Пользователи вводят команды SQL в интерактивных программах с целью выборки данных и отображения их на экране. Это удобный способ выполнения специальных запросов.
      SQL - язык программирования баз данных. Чтобы получить доступ к базе данных, программисты вставляют в свои программы команды SQL. Эта методика используется как в программах, написанных пользователями, так и в служебных программах баз данных (таких как генераторы отчетов).
      SQL - язык администрирования баз данных. Администратор базы данных, находящейся на рабочей станции или на сервере, использует SQL для определения структуры базы данных и управления доступом к данным.
      SQL - язык создания приложений клиент/сервер. В программах для персональных компьютеров SQL используется как средство организации связи по локальной сети с сервером базы данных, в которой хранятся совместно используемые данные. Архитектура клиент/сервер весьма популярна в приложениях корпоративного уровня.
      SQL - язык доступа к данным в Интернете. На Web-серверах SQL используется как стандартный язык для доступа к корпоративным базам данных.
      SQL - язык распределенных баз данных. В системах управления распределенными базами данных SQL помогает распределять данные среди нескольких взаимодействующих вычислительных систем. Программное обеспечение каждой системы посредством SQL связывается с другими системами, посылая им запросы на доступ к данным.
      SQL - язык шлюзов баз данных. В вычислительных сетях с различными СУБД SQL часто используется в шлюзовой программе, которая позволяет СУБД одного типа связываться с СУБД другого типа.
      Таким образом, SQL превратился в полезный и мощный инструмент, обеспечивающий пользователям, программам и вычислительным системам доступ к информации, содержащейся в реляционных базах данных.
      Достоинства SQL
      SQL - это легкий для понимания язык и в то же время универсальное программное средство управления данными.
      Успех языку SQL принесли следующие его особенности:
      независимость от конкретных СУБД;
      межплатформенная переносимость;
      наличие стандартов;
      одобрение и поддержка компанией IBM (СУБД DB2);
      поддержка со стороны компании Microsoft (СУБД SQL Server, протокол ODBC и технология ADO);
      реляционная основа;
      высокоуровневая структура;
      возможность выполнения специальных интерактивных запросов;
      обеспечение программного доступа к базам данных;
      возможность различного представления данных;
      полноценность как языка, предназначенного для работы с базами данных;
      возможность динамического определения данных;
      поддержка архитектуры клиент/сервер;
      поддержка корпоративных приложений;
      расширяемость и поддержка объектно-ориентированных технологий;
      возможность доступа к данным в Интернете;
      интеграция с языком Java (протокол JDBC);
      промышленная инфраструктура.
      Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, рабочих станциях и крупных серверах. Ниже эти факторы рассмотрены более подробно.
      Независимость от конкретных СУБД
      Все ведущие поставщики СУБД используют SQL, и ни одна новая СУБД, не поддерживающая SQL, не может рассчитывать на успех. Реляционную базу данных и программы, которые с ней работают, можно перенести с одной СУБД на другую с минимальными доработками и переподготовкой персонала. Программные средства, входящие в состав СУБД для персональных компьютеров, такие как программы для создания запросов, генераторы отчетов и генераторы приложений, работают с реляционными базами данных многих типов. Таким образом, SQL обеспечивает независимость от конкретных СУБД, что я
      вляется одной из наиболее важных причин его популярности.
      Межплатформенная переносимость
      Реляционные СУБД выполняются на различных вычислительных системах: от мэйнфреймов и систем среднего уровня до персональных компьютеров, рабочих станций, различных специализированных серверов. Они функционируют на отдельных компьютерах, в локальных и корпоративных сетях и Интернете. Приложения, созданные с помощью SQL и рассчитанные на однопользовательские системы или серверные системы масштаба подразделений (рабочих групп), по мере своего развития могут быть перенесены в более крупные системы. Наконец, информация из корпоративных реляционных баз д
      анных может быть загружена в базы данных отдельных подразделений или в персональные базы данных пользователей.
      Стандарты языка SQL
      Официальный стандарт языка SQL был опубликован Американским национальным институтом стандартов (American National Standards Institute - ANSI) и Международной организацией по стандартизации (International Standards Organization - ISO) в 1986 году, расширен в 1989 году, а затем - в 1992 и 1999 годах. Кроме того, SQL является федеральным стандартом США в области обработки информации (FIPS - Federal Information Processing Standard) и, следовательно, соответствие ему является одним из основных требований, содержащихся в больших правительственных контрактах на разработки в компьютерной промышленности. В течение последних десяти
      лет многие другие международные, правительственные и промышленные группы вносили свой вклад в стандартизацию различных составляющих SQL, таких как интерфейсы программирования и объектно-ориентированные расширения. Со временем многие из подобных инициатив стали составной частью стандарта ANSI/ISO. Все эти стандарты служат как бы официальной печатью, одобряющей SQL, и ускорили завоевание им рынка.
      Поддержка SQL компанией IBM
      SQL был разработан научными сотрудниками компании IBM и широко используется ею во множестве пакетов программного обеспечения. Подтверждением этому служит флагманская СУБД DB2 компании IBM. SQL поддерживают все основные семейства компьютеров компании IBM - от персональных компьютеров и систем среднего уровня (AS/400 и серверов на базе Unix) до мэйнфреймов IBM. Широкая поддержка SQL фирмой IBM ускорила его признание и еще в самом начале возникновения и развития рынка баз данных явилась своего рода недвусмысленным указанием для других поставщиков баз данных и программны
      х систем, в каком направлении необходимо двигаться. Сегодня применение SQL выходит далеко за пределы собственных компьютерных систем компании IBM. Продукция на базе SQL используется для широкого спектра технических средств, выпускаемых такими конкурирующими поставщиками компьютерного оборудования, как Sun или Hewlett-Packard.
      Поддержка со стороны Microsoft
      Компания Microsoft рассматривает подсистему доступа к базам данных как важную часть своей операционной системы Windows. Стандартом этой компании по обеспечению доступа к базам данных является протокол ODBC (Open Database Connectivity - открытый доступ к базам данных) - программный интерфейс, основанный на SQL. Протокол ODBC поддерживается наиболее распространенными Windows-приложениями (электронными таблицами, текстовыми редакторами, базами данных и т. п.), разработанными как самой компанией Microsoft, так и другими ведущими поставщиками. Поддержка ODBC обеспечивается также всеми ведущ
      ими реляционными СУБД. Позднее Microsoft реализовала объектно-ориентированные надстройки над ODBC, в частности технологии OLE DB и ADO. Когда в конце 1980-х компания приступила к превращению системы Windows в жизнеспособную серверную операционную систему, был предложен собственный продукт Microsoft на базе SQL - SQL Server. Сегодня SQL Server остается ведущим продуктом Microsoft и ключевым компонентом ее архитектуры .NET для Web-сервисов.
      Реляционная основа
      SQL является языком реляционных баз данных, поэтому он стал популярным тогда, когда популярной стала реляционная модель представления данных. Табличная структура реляционной базы данных интуитивно понятна пользователям, поэтому язык SQL является простым и легким для изучения. Реляционная модель имеет солидный теоретический фундамент, послуживший основой для эволюции и реализации реляционных баз данных. На волне популярности, вызванной ее успехом, SQL стал единственным языком для реляционных баз данных.
      Высокоуровневая структура
      Инструкции SQL выглядят как обычные английские предложения, что упрощает их изучение и понимание. Частично это обусловлено тем, что инструкции SQL описывают данные, которые необходимо получить, а не определяют способ их поиска. Таблицы и столбцы в реляционной базе данных могут иметь длинные описательные имена. В результате большинство инструкций SQL означают именно то, что точно соответствует их именам, поэтому их можно читать как простые, понятные предложения.
      Интерактивные запросы
      SQL является языком интерактивных запросов, который обеспечивает пользователям немедленный доступ к данным. С помощью SQL пользователь может в интерактивном режиме получить ответы на самые сложные запросы в считанные минуты или секунды, тогда как программисту потребовались бы дни или недели, чтобы написать для пользователя соответствующую программу. Из-за того что SQL допускает интерактивное формирование запросов, данные становятся более доступными и могут помочь в принятии решений, делая их более обоснованными.
      Программный доступ к базе данных
      Программисты пользуются языком SQL, чтобы писать приложения, в которых содержатся обращения к базам данных. Одни и те же инструкции SQL используются как для интерактивного, так и для программного доступа, поэтому части программ, содержащие обращения к базе данных, можно вначале тестировать в интерактивном режиме, а затем встраивать в программу. В традиционных базах данных для программного доступа используются одни программные средства, а для выполнения интерактивных запросов - другие, без какой либо связи между этими двумя режимами доступа.
      Различные представления данных
      С помощью SQL создатель базы данных может сделать так, что различные пользователи базы данных будут видеть различные представления ее структуры и содержимого. Например, базу данных можно спроектировать таким образом, что каждый пользователь будет видеть только данные, относящиеся к его подразделению или торговому региону. Кроме того, данные из различных частей базы данных могут быть скомбинированы и представлены пользователю в виде одной простой таблицы. Следовательно, представления можно использовать для усиления защиты базы данных и ее настройки п
      од конкретные требования отдельных пользователей.
      Полноценный язык для работы с базами данных
      Первоначально SQL был задуман как язык интерактивных запросов, но сейчас он вышел далеко за рамки выборки данных. SQL является полноценным и логичным языком, предназначенным для создания базы данных, управления ее защитой, изменения ее содержимого, выборки данных и совместного их использования несколькими пользователями, работающими параллельно. Приемы, освоенные при изучении одного раздела языка, могут затем применяться в других командах, что повышает производительность работы пользователей.
      Динамическое определение данных
      С помощью SQL можно динамически изменять и расширять структуру базы данных даже в то время, когда пользователи обращаются к ее содержимому. Это большое преимущество перед языками статического определения данных, которые запрещают доступ к базе данных во время изменения ее структуры. Таким образом, SQL обеспечивает максимальную гибкость, так как дает базе данных возможность адаптироваться к изменяющимся требованиям, не прерывая работу приложения, выполняющегося в реальном масштабе времени.
      Архитектура клиент/сервер
      SQL - естественное средство для реализации приложений клиент/сервер. В этой роли SQL служит связующим звеном между клиентской системой, взаимодействующей с пользователем, и серверной системой, управляющей базой данных, позволяя каждой системе сосредоточиться на выполнении своих функций. Кроме того, SQL дает возможность персональным компьютерам функционировать в качестве клиентов по отношению к сетевым серверам или более крупным базам данных, установленным на мэйнфреймах; это позволяет получать доступ к корпоративным данным из приложений, работающих на
      персональных компьютерах.
      Поддержка корпоративных приложений
      Во всех корпоративных приложениях, обеспечивающих ежедневную деятельность крупных компаний и организаций, для хранения и обработки информации применяются базы данных на основе SQL. Как правило, информация о коммерческих операциях (заказах, объемах продаж и выплат, клиентах, уровнях запасов и т. д.) имеет структуру в виде полей записей, которые легко преобразовать в табличную структуру SQL. При разработке этих приложений используются корпоративные базы данных на основе SQL, и большинство производителей не создают собственные программные средства для управ
      ления данными, а применяют уже существующие. Поскольку для работы любого корпоративного приложения требуется база данных на основе SQL, продажа таких приложений автоматически порождает спрос на новые копии программных средств управления базами данных.
      Объектно-ориентированные технологии
      Основным препятствием на пути развития языка SQL стало появление объектных баз данных как следствие общей направленности компьютерного рынка в сторону объектно-ориентированных технологий. В ответ на это поставщики реляционных СУБД начали постепенно модернизировать SQL, добавляя в него различные объектные возможности. Появившиеся в результате "объектно-реляционные" базы данных стали более популярной альтернативой чисто объектным базам данных, гарантировав таким образом "спокойную жизнь" языку SQL в последнем десятилетии. На новой волне объектно-ориент
      ированных технологий, воплотившейся в XML и Web-сервисах, возродились и бросили вызов SQL "базы данных XML" и альтернативные языки запросов. Исходя из предыдущего опыта, можно предположить, что ответом на этот вызов станут реляционная модель и расширения на основе XML в SQL, которые позволят языку сохранить свое назначение.
      Доступ к данным в Интернете
      Взрыв популярности Интернета привел к тому, что к концу 90-х годов SQL стал рассматриваться и как стандартный язык для доступа к данным в глобальной сети. Первоначально, в эпоху зарождения WWW, разработчики, занимавшиеся отображением на Web-страницах информации, извлеченной из баз данных, применяли SQL как средство взаимодействия со шлюзами баз данных. Позднее, с появлением трехуровневой архитектуры Интернета с четким разделением на клиент, сервер приложений и сервер баз данных, SQL стал связующим звеном между вторым и третьим уровнями. В будущем сфера применен
      ия SQL в Интернете будет распространяться не только на Web-узлы, но и на управление данными для совместно работающих приложений и распределенных объектов в Web-сервисах.
      Интеграция с языком Java
      В целях обеспечения связи между Java-приложениями и реляционными базами данных компания Sun Microsystems (создатель Java) разработала протокол JDBC (Java Database Connectivity) - набор стандартных API-функций, позволяющих программам, написанным на языке Java, использовать SQL для доступа к данным. Затем JDBC был принят как стандарт доступа к данным в версии языка Java2 Enterprise Edition (J2EE), который поддерживается всеми основными Интернет-серверами приложений. Кроме того, многими ведущими поставщиками СУБД было объявлено о включении поддержки языка Java в их продукты. Таким образом, появилась возм
      ожность, например, писать хранимые процедуры на языке Java. Это подчеркивает важность SQL в эпоху значительного роста интереса к программированию на Java.
      Промышленная инфраструктура
      Возможно, самой главной причиной, обусловившей возрастание значения SQL, стало возникновение базирующейся на нем компьютерной промышленной инфраструктуры. Главная часть этой инфраструктуры - реляционные системы баз данных на основе SQL. Другой важной составляющей являются корпоративные приложения, в которых используются SQL и базы данных SQL, а также инструменты генерации отчетов, ввода данных, конструкторы, инструменты программирования и другие средства, позволяющие сделать применение SQL более простым. В инфраструктуре важное место занимают опытные про
      граммисты, а также службы обучения и обслуживания, помогающие при создании и поддержке функционирования проектов SQL. Целая отрасль возникла вокруг консультаций по SQL, его оптимизации и настройки. Все части инфраструктуры SQL взаимосвязаны и способствуют дальнейшему успешному развитию друг друга. Если вам необходимо решить проблему управления данными, то самым легким, дешевым и надежным будет решение с использованием языка SQL.
     

Энциклопедия SQL (+CD). / Дж. Грофф, П. Вайнберг - СПб: Питер, 2003. - 896 с.

Экономика и управление | Право/a> | Бухгалтерский учет и налоги |