ГОСТ Р ИСО/МЭК 9075-93
Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
ЯЗЫК БАЗ ДАННЫХ SQL С РАСШИРЕНИЕМ ЦЕЛОСТНОСТИ
Information processing systems - Database
Language SQL with Integrity Enhancement
Дата введения 1994-07-01
Предисловие
1 РАЗРАБОТАН И ВНЕСЕН Техническим комитетом по стандартизации ТК22 "Информационная технология"
2 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 08.07.93 N 169
Настоящий стандарт подготовлен на основе аутентичного текста международного стандарта ИСО/МЭК 9075-89 "Системы обработки информации. Язык баз данных SQL с расширением целостности"
3 ВВЕДЕН ВПЕРВЫЕ
Настоящий стандарт определяет синтаксис и семантику двух языков, ориентированных на работу с базами данных (языков баз данных):
1) Язык описания схемы (SQL-DDL) для объявления структур и ограничений целостности базы данных SQL.
2) Модульный язык и язык манипулирования данными (SQL-DML) для объявления процедур работы с базами данных и выполняемых операторов специальной программы применения базы данных.
Настоящий стандарт определяет логические структуры данных и базовые операции для базы данных SQL. Он обеспечивает функциональные возможности для разработки, доступа, сохранения, управления и защиты базы данных.
Настоящий стандарт представляет средство обеспечения мобильности определения баз данных и прикладных программ между соответствующими реализациями.
Стандарт определяет два уровня и отдельно свойство расширения целостности. Уровень 2 - это полный язык базы данных за исключением свойства расширения целостности. Уровень 1 - это подмножество уровня 2, определенное в пункте 9 раздела "Уровни".
Примечание - Дополнительный язык SQL планируется в последующих дополнениях к этому стандарту. Основные темы, рассматриваемые в таких дополнениях, - это расширенная обработка транзакций, задание определенных правил, определяемых разработчиком, расширенные средства обработки символов и средства обеспечения множеств национальных символов.
Свойство расширения целостности представляет собой средство для задания:
1) ограничения на обращения между таблицами, которые должны соблюдаться;
2) проверочные ограничения, которые следует применять для строк таблицы;
3) величина по умолчанию для столбца, когда строка вставляется в таблицу.
Приложения к этому стандарту определяют встроенный синтаксис для включения оператора языка манипулирования данными SQL в стандартную в других отношениях прикладную программу. Такой встроенный синтаксис по определению является сокращенной записью для стандартной прикладной программы, в которой встроенные операторы SQL заменены в явной форме "вызовами" процедур базы данных, которые содержат оператор SQL.
Настоящий стандарт применяется для реализаций, существующих в среде, которая может включать в себя языки прикладных программ, языки запросов конечного пользователя, системы генерирования сообщений, системы словарей данных, системы библиотеки программ и системы распределенной связи, а также различные средства для создания баз данных, организации прохождения данных и оптимизации характеристик.
ГОСТ 28141-89 Язык программирования ФОРТРАН (ISO 1539 Programming Languages - FORTRAN)
ГОСТ 22558-89 Язык программирования КОБОЛ (ISO 1989 Programming Languages - COBOL)
ISO 6160-79 Язык программирования ПЛ/1* (Programming Languages - PL/1)
________________
* Данный документ может быть получен по запросу из ВНИИКИ Госстандарта России
ГОСТ 28140-89 Язык программирования ПАСКАЛЬ (ISO 7185 Programming Languages - PASCAL)
Структура настоящего стандарта следующая:
1) 3.2 "Нотация" и 3.3 "Условные обозначения" определяют обозначения и условные обозначения в данном стандарте.
2) 3.4 "Согласование" определяет критерии согласования.
3) Раздел 4 "Понятия" определяет термины и представляет понятия, использованные в определении SQL.
4) Раздел 5 "Общие элементы" определяет элементы языка, появляющиеся в нескольких частях языка SQL.
5) Раздел 6 "Язык определения схемы" определяет способности SQL для задания базы данных.
6) Раздел 7 "Модульный язык" определяет модули и процедуры.
7) Раздел 8 "Язык манипулирования данными" определяет операторы по управлению данными в SQL.
8) Раздел 9 "Уровни" определяет оба уровня SQL и средства расширения целостности.
В настоящем стандарте используется синтаксическая запись БНФ ("нормальная форма Бэкуса", "форма Бэкуса-Наура") со следующими расширениями:
1) прямоугольные скобки ([ ]) показывают необязательные элементы;
2) многоточие (...) показывает элементы, которые могут повторяться один или более раз;
3) фигурные скобки ({ }) охватывают последовательности элементов.
В синтаксисе БНФ символ продукции <А> определен как "содержащий" символ продукции <В>, если <В> занимает некое место в расширении <А>. Если <А> содержит <В>, то <В> "содержится" в <А>. Если <А> содержит <В>, то <А> является "содержащим" <А> символом продукции для <В>.
Синтаксические элементы настоящего стандарта определяются с помощью понятия:
1) Функции: краткое указание цели элемента.
2) Формата: определение БНФ синтаксиса данного элемента.
3) Синтаксических правил: дополнительные синтаксические ограничения, не выраженные в БНФ, которым должен удовлетворять данный элемент.
4) Общим правилам: последовательное определение эффекта в ходе вычисления данного элемента.
В синтаксических правилах термин "должен" определяет условия, которые должны быть правильными для синтаксически подчиненного SQL языка. Обработка языка SQL, который не подчиняется форматам или синтаксическим правилам, определяется разработчиком.
В общих правилах термин "должен" определяет условия, которые проверяются во время прохода при выполнении оператора SQL. Если все такие условия истинны, то оператор успешно выполняется и устанавливается параметр SQLCODE (код SQL) в определенном неотрицательном числе. Если любое такое условие неправильно, то указание не выполняется успешным образом, выполнение указания не оказывает влияния на базу данных, и параметр SQLCODE приобретает заданное разработчиком отрицательное число.
Согласующая реализация не требуется для выполнения точной последовательности действий, определенных в Общих правилах, а будет оказывать такое же влияние на базу данных, что и эта последовательность. Термин "эффективно" используется в Общих правилах для подчеркивания действий, эффект от которых мог бы быть достигнут другими способами путем реализации.
Термин "устойчивый объект" используется для охарактеризования таких объектов, как <модуль>-ли и <схема>-мы, которые создаются и разрушаются с помощью определенных разработчиком механизмов.
Настоящий стандарт определяет согласующий язык SQL и согласующие реализации SQL. Согласующий язык SQL будет твердо придерживаться формата БНФ и соответствующих синтаксических правил. Согласующая реализация SQL будет обрабатывать стандартный согласующий язык SQL в соответствии с Общими правилами.
Реализация, подтверждающая согласование SQL-DDL, будет обрабатывать SQL-DDL <схема> на уровне 1 или 2.
Реализация, подтверждающая согласование SQL-DML, будет проводить обработку на уровне 1 или 2:
1) прямого вызова указаний языка управления данными SQL (<оператор SQL>); и/или
2) модульного языка (<модуль>); и/или
3) одного или более:
a) встроенного SQL КОБОЛ (<встроенная программа SQL КОБОЛ>)
b) встроенного SQL ФОРТРАН (<встроенная программа SQL ФОРТРАН>)
с) встроенного SQL ПАСКАЛЬ (<встроенная программа SQL ПАСКАЛЬ>)
d) встроенного SQL ПЛ/1 (<встроенная программа SQL ПЛ/1>).
Реализация, подтверждающая полное согласование SQL, будет обеспечивать либо на уровне 1, либо на уровне 2 согласования SQL-DDL и SQL-DML.
Согласующая реализация может предоставлять дополнительные средства или варианты, не обусловленные в данном стандарте. Реализация остается согласующей даже в том случае, если она предоставляет пользователю варианты для работы с несогласующим языком SQL или для работы с согласующим языком SQL несогласованным способом.
Объявления согласования с настоящим стандартом будут устанавливать:
1) Какие из следующих типов согласования объявляются:
a) полное согласование SQL с уровнем 1;
b) полное согласование SQL с уровнем 2;
c) согласование SQL-DDL с уровнем 1;
d) согласование SQL-DDL с уровнем 2;
e) согласование SQL-DML с уровнем 1;
f) согласование SQL-DML с уровнем 2.
2) Какие из следующих средств реализованы:
a) прямая обработка указаний языка управления данными SQL;
b) модульный язык (<модуль>);
c) встроенный SQL КОБОЛ (<встроенная программа SQL КОБОЛ>);
d) встроенный SQL ФОРТРАН (<встроенная программа SQL ФОРТРАН>);
e) встроенный SQL ПАСКАЛЬ (<встроенная программа SQL ПАСКАЛЬ>);
f) встроенный SQL ПЛ/1 (<встроенная программа SQL ПЛ/1>).
3) Реализованы ли средства расширения целостности.
Настоящий стандарт не определяет метод или время связи между прикладными программами и компонентами системы управления базой данных.
Множество есть неупорядоченный набор определенных объектов.
Мультимножество - неупорядоченный набор объектов, которые не обязательно являются определенными.
Последовательность - это упорядоченный набор объектов, которые не обязательно являются различными.