Введение в стандарты языка баз данных SQL

       

Язык баз данных SQL/


Как уже отмечалось во введении, стандарт языка баз данных SQL/89 стал первым международно принятым стандартом языка SQL. У этого языка имеется масса недостатков: многие важные понятия не определены, много отдано на откуп реализациям и т.д., но тем не менее этот стандарт сыграл свою роль в становлении действительно стандартизованных реляционных систем управления базами данных (и, на самом деле, значимость SQL/89 сохраняется и сегодня, поскольку большинство производителей современных СУБД поддерживает именно этот стандарт). Более того, с появлением стандарта SQL/89 стало реально возможно проектировать, разрабатывать и сопровождать информационные системы, не слишком привязанные к конкретному производителю СУБД. В некотором смысле появление SQL/89 явилось продвижением технологии баз данных в сторону открытых систем (мобильность, интероперабельность и т.д.).


Стандарт имеет следующую структуру:

Раздел 1: "Область применения";

Раздел 2: "Нормативные ссылки" - перечень дополнительных стандартов;

Раздел 3: "Определения, обозначения и соглашения";

Раздел 4: "Понятия" - базовые понятия, используемые при определении языка;

Раздел 5: "Лексические элементы";

Раздел 6: "Скалярные выражения" - определение элементов языка, производящих скалярные значения;

Раздел 7: "Выражения запросов" - определение элементов языка, производящих строки и таблицы данных;

Раздел 8: "Предикаты";

Раздел 9: "Правила присваивания данных" - правила, определяющие порядок выборки данных из базы данных или сохранения данных в базе данных, и правила формирования операций над множествами;

Раздел 10: "Дополнительные общие элементы" - дополнительные общие языковые элементы, используемые в разных частях языка;

Раздел 11: "Определение схемы и манипулирование схемой" - определение средств создания схемы и управления схемой;



Раздел 12: "Модуль" - определение модулей и процедур;

Раздел 13: "Манипулирование данными" - определение операторов манипулирования данными;

Раздел 14: "Управление транзакциями";

Раздел 15: "Управление подключениями";

Раздел 16: "Управление сессиями";

Раздел17: "Динамический SQL" - определение средств, предназначенных для динамического выполнения операторов SQL;

Раздел 18: "Управление диагностикой"

Раздел 19: "Встроенный SQL" - определение синтаксиса встраивания SQL в некоторые стандартные языки программирования;

Раздел 20: "Прямой вызов SQL" - определение подмножества SQL/92, которое может использоваться в режиме прямого вызова;

Раздел21: "Информационная схема и схема определений" - определение представляемых таблиц, содержащих информацию о схеме;

Раздел22: "Коды статуса" - определение значений, идентифицирующих статус завершения SQL-операторов, и механизмов, посредством которых эти значения возвращаются;



Раздел 23: "Соответствие" - определение критериев соответствия языку SQL/92;

Далее следует набор приложений, которые не являются частью стандарта, а предназначены только для информирования пользователей и разработчиков.

Приложение A: "Уровни языка SQL" - перечисление правил, определяющих подмножества вводного SQL (EntrySQL) и промежуточного SQL (IntermediateSQL) стандарта SQL/92;

Приложение B: "Элементы, определяемые в реализации" - перечисление средств, для которых в стандарте установлено, что синтаксис, или смысл, или результат воздействия на базу данных частично или полностью определяется в реализации, и описание определяющей информации, которая должна быть обеспечена в реализации для каждого случая;

Приложение C: "Элементы, зависимые от реализации" - перечисление средств, для которых в стандарте явно установлено, что их смысл или результат воздействия на базу данных зависит от реализации;

Приложение D: "Неодобряемые свойства" - перечисление свойств, которые разработчики стандарта не хотели бы видеть в его следующей версии;

Приложение E: "Несовместимости с SQL/89" - перечисление несовместимостей между SQL/92 и SQL/89;

Приложение F: "Поддержка и интерпретация SQL" - разъясняются интерпретации SQL и коррективы, которые были внесены после принятия SQL/89.

В следующих разделах мы обсудим наиболее важные, с нашей точки зрения, свойства SQL/92. Это не будет полный пересказ стандарта, поскольку, во-первых, он имеет слишком большой объем, а во-вторых, многие важные в практических целях средства не отличаются от средств ранее рассмотренного стандарта SQL/89. Поэтому в основном мы будем говорить о дополнительных средствах SQL/92, отличающих этот стандарт от SQL/89.


Содержание раздела