Системы обработки информации - язык баз данных SQL

В конце 2003 г. был


Сергей Кузнецов

В конце 2003 г. был принят и опубликован новый вариант международного стандарта SQL:2003 [1]. Многие специалисты считали, что в варианте стандарта, следующем за SQL:1999, будут всего лишь исправлены неточности SQL:1999. Но на самом деле, в SQL:2003 специфицирован ряд новых и важных свойств.

Прежде всего, претерпела некоторые изменения общая организация стандарта. Стандарт SQL:2003 состоит из следующих частей:



  • 9075-1, SQL/Framework;


  • 9075-2, SQL/Foundation;


  • 9075-3, SQL/CLI;


  • 9075-4, SQL/PSM;


  • 9075-9, SQL/MED;


  • 9075-10, SQL/OLB;


  • 9075-11, SQL/Schemata;


  • 9075-13, SQL/JRT;


  • 9075-14, SQL/XML.

    Части 1-4 и 9-10 с необходимыми изменениями остались такими же, как и в SQL:1999. Часть 5 (SQL/Bindings) больше не существует; соответствующие спецификации включены в часть 2. Раздел части 2 SQL:1999, посвященный информационной схеме, выделен в отдельную часть 11. Появились две новые части – 13 и 14. Часть 13 полностью называется “SQL Routines and Types Using the Java Programming Language” (“Использование подпрограмм и типов SQL в языке программирования Java”). Появление такой отдельной части стандарта оправдано повышенным вниманием к языку Java со стороны ведущих производителей SQL-ориентированных СУБД. Наконец, последняя часть SQL:2003 посвящена спецификациями языковых средств, позволяющих работать с XML-документами в среде SQL. В этой статье мы ограничимся кратким обсуждением изменений и дополнений, произведенных комитетом по стандартизации SQL в части 2.

    Как указывается в [2], наиболее серьезные изменения языка SQL, специфицированные в части 2 стандарта SQL:2003, касаются следующих аспектов:



  • типы данных;


  • подпрограммы, вызываемые из SQL;


  • расширенные возможности оператора CREATE TABLE;



  • новый объект схемы – генератор последовательностей;


  • новые виды столбцов – идентифицирующие столбцы (identity column) и генерируемые столбцы (generated column);


  • новый оператор MERGE;

    В следующих разделах статьи1

    мы кратко обсудим эти аспекты.


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