Назначение и область применениябаз данных SQL
Этот стандарт определяет синтаксис и семантику двух языков баз данных:
Язык определения схем (SQL-DLL) для объявления структур и ограничений целостности базы данных SQL.
Язык модулей и манипулирования данными (SQL-DML) для объявления процедур базы данных и выполняемых операторов в конкретной прикладной программе базы данных.
Этот стандарт определяет логические структуры данных и базовые операции для базы данных SQL. Он обеспечивает функциональные возможности для проектирования, доступа, поддержания, управления и защиты базы данных.
Этот стандарт обеспечивает средство для мобильности определений базы данных и прикладных программ между соответствующими стандарту реализациями.
Этот стандарт определяет два уровня и отдельное средство поддержания целостности. Уровень 2 - это полный язык баз данных SQL, не включающий средство поддержания целостности. Уровень 1 - это подмножество уровня 2, определенное в разделе 9 "Уровни" .
Замечание: Планируется дополнительный язык SQL как дополнение к этому стандарту. Основными темами, обсуждаемыми для этого приложения, являются улучшенное управление транзакциями, определение некоторых правил, объявляемых в конкретной реализации, улучшенные средства работы с символами и поддержка национальных наборов символов.
Средство поддержания целостности состоит в определении:
требуемых ограничений на ссылки между таблицами;
проверочных ограничений на строки таблицы;
значений столбца по умолчанию при занесении строки в таблицу.
В приложениях к стандарту определяется синтаксис включения операторов манипулирования данными SQL в стандартную во всех остальных отношениях прикладную программу. Такой синтаксис определяется как сокращенная нотация для стандартной прикладной программы, в которой встроенные операторы SQL заменены явными "вызовами" процедур базы данных, содержащими операторы SQL.
Этот стандарт применим к реализациям, существующим в среде, которая может включать прикладные языки программирования, языки запросов уровня конечного пользователя, системы генерации отчетов, системы словарей данных и распределенные коммуникационные системы, а также различные средства проектирования баз данных, администрирования баз данных и оптимизации производительности.
2. Ссылки
ISO 1539, Programming Languages - FORTRAN (endorsement by ISO of American National Standard X3.9).
ISO 1989, Programming Languages - COBOL (endorsement by ISO of American National Standard X3.23).
ISO 6160, Programming Languages - PL/1 (endorsement by ISO of American National Standard X3.53).
ISO 7185, Programming Languages - Pascal (endorsement by ISO of British Standard 6192 for the English text).
3. Обзор
3.1 Организация
Этот стандарт организован следующим образом:
В 3.2, "Нотация" и 3.3, "Соглашения" определяются нотации и соглашения, используемые в этом стандарте.
В 3.4, "Соответствие" определяется критерий соответствия.
В Разделе 4, "Понятия" определяются термины и представляются понятия, используемые в определении SQL.
В Разделе 5, "Общие элементы" определяются элементы языка, встречающиеся в нескольких частях языка SQL.
В Разделе 6, "Язык определения схем" определяются средства SQL для определения базы данных.
В Разделе 7, "Язык модулей" определяются модели и процедуры SQL.
В Разделе 8, "Язык манипулирования данными" определяются операторы манипулирования данными SQL.
В Разделе 9, "Уровни" определяются два уровня SQL и средство поддержания целостности.
3.2 Нотация
В качестве синтаксической нотации в этом стандарте используются БНФ ("Бэкусовские нормальные формы" или "Формы Бэкуса-Наура) со следующими расширениями:
Квадратные скобки ([]) обозначают необязательные элементы.
Многоточия (...) обозначают элементы, которые могут повторяться один или более раз.
Фигурные скобки ({ }) объединяют последовательности элементов.
В синтаксисе БНФ продукционный символ <A> определяется как содержащий продукционный символ <B>, если <B> входит в расширение <A>. Если <A> содержит <B>, то <B> содержится в <A>. Если <A> содержит <B>, то <A> является "содержащим" продукционным символом для <B>.
3.3 Соглашения
Синтаксические элементы этого стандарта определяются в следующих терминах:
Функция: короткое предложение о назначении элемента.
Формат: БНФ-определение синтаксиса элемента.
Синтаксические правила: дополнительные синтаксические ограничения, которым должен удовлетворять элемент, не выраженные в БНФ.
Общие правила: последовательная спецификация эффекта выполнения элемента.
В Синтаксических правилах термин "должен" определяет условия, которым должен удовлетворять любой вариант языка SQL, синтаксически соответствующий стандарту. Язык SQL синтаксически соответствует стандарту, если соответствует и Форматам и Синтаксическим правилам.
В Общих правилах термин "должен" определяет условия, которые проверяются во время выполнения операторов SQL. Если все эти условия истинны, то оператор выполняется успешно и в параметр SQLCODE устанавливается определенное неотрицательное число. Если какое-либо из условий ложно, оператор не выполняется успешно, не влияет на состояние базы данных, и в параметр SQLCODE устанавливается определенное реализатором отрицательное число.
В соответствующей стандарту реализации не требуется выполнение точной последовательности действий, определенных в Общих правилах, но должен достигаться тот же эффект, что и при выполнении этой последовательности. Термин "фактически" используется в Общих правилах для того, чтобы выделить действия, результат которых может быть достигнут в реализации другим способом.
Термин "долговременно хранимый объект" используется для характеризования таких объектов, как <модуль> (<module>) и <схема> (<schema>), которые создаются и уничтожаются с помощью механизмов, определенных реализатором.
В этом стандарте разделы начинаются с новых страниц с нечетными номерами, и, начиная с "Общих элементов" Раздела 5 до "Языка манипулирования данными" Раздела 8 , подразделы начинаются с новой страницы. Возникающие в результате пустоты несущественны.
3.4 Соответствие
В этом стандарте определяются соответствующие язык SQL и реализации SQL. Соответствующий стандарту язык SQL должен придерживаться Формата БНФ и соответствующих Синтаксических правил. Соответствующая реализация SQL должна обрабатывать соответствующий стандарту язык SQL в соответствии с Общими правилами.
В реализации, провозглашаемой соответствующей SQL-DDL, должен обрабатываться SQL-DDL (<схема> (<schema>)) на уровне 1 или уровне 2.
В реализации, провозглашаемой соответствующей SQL-DML, на уровне 1 или уровне 2 должны обрабатываться:
Прямые вызовы операторов языка манипулирования данными SQL (<операторы SQL> (<SQL statement>)) и/или
Язык модулей (<модуль> (<module>)) и/или
один или более из
a) COBOL со встроенным SQL (<программа на языке COBOL со встроенным SQL> (<embedded SQL COBOL program>));
b) FORTRAN со встроенным SQL (<программа на языке FORTRAN со встроенным SQL> (<embedded SQL FORTRAN program>));
c) Pascal со встроенным SQL (<программа на языке Pascal со встроенным SQL> (<embedded SQL Pascal program>));
d) PL/1 со встроенным SQL (<программа на языке PL/1 со встроенным SQL> (<embedded SQL PL/1 program>)).
В реализации, провозглашаемой полностью соответствующей SQL, должно обеспечиваться на уровне 1 или уровне 2 соответствие SQL-DDL и соответствие SQL-DML.
Соответствующие стандарту реализации могут обеспечивать дополнительные средства или возможности, не специфицируемые этим стандартом. Реализация остается соответствующей стандарту, даже если в ней обеспечиваются пользовательские опции для обработки языка, не соответствующего стандарту SQL или для обработки языка, соответствующего стандарту языка SQL, не соответствующим стандарту образом.
При провозглашении соответствия этому стандарту должно устанавливаться:
Какой из следующих типов соответствия провозглашается:
a) Полное соответствие SQL на уровне 1;
b) Полное соответствие SQL на уровне 2;
c) Cоответствие SQL-DDL на уровне 1;
d) Cоответствие SQL-DDL на уровне 2;
e) Cоответствие SQL-DML на уровне 1;
f) Cоответствие SQL-DML на уровне 2.
Какие из следующих возможностей реализованы:
a) Прямая обработка операторов языка манипулирования данными SQL;
b) Язык модулей (<модуль> (<module>));
c) COBOL со встроенным SQ (<программа на языке COBOL со встроенным SQL> (<embedded SQL COBOL program>));
d) FORTRAN со встроенным SQL (<программа на языке FORTRAN со встроенным SQL> (<embedded SQL FORTRAN program>));
e) Pascal со встроенным SQL (<программа на языке Pascal со встроенным SQL> (<embedded SQL Pascal program>));
f) PL/1 со встроенным SQL (<программа на языке PL/1 со встроенным SQL> (<embedded SQL PL/1 program>)).
Реализовано ли средство поддержания целостности.
Этот стандарт не определяет метод или время связывания прикладных программ и компонентов системы управления базами данных.
4. Понятия
4.1 Множества
Множество есть неупорядоченный набор различных объектов.
Мультимножество есть неупорядоченный набор объектов, которые не обязательно различны.
Последовательность есть упорядоченный набор объектов, которые не обязательно различны.
Мощность набора есть число объектов в этом наборе. Если не оговорено противное, любой набор может быть пустым.
4.2 Типы данных
Тип данных есть множество представимых значений. Логическое представление значения есть <литерал> (<literal>). Физическое представление значения зависит от реализации.
Значение является примитивным в том смысле, что в этом стандарте не производится логическое подразделение значений. Значение может быть неопределенным значением или не неопределенным значением.
Неопределенное значение есть определяемое в реализации зависящее от типа специальное значение, отличное ото всех не неопределенных значений этого типа.
Не неопределенное значение есть либо символьная строка, либо число. Символьная строка и число - это несравнимые значения.