SQL: 2011 или ISO / IEC 9075: 2011 (под общим названием "Информационные технологии - языки баз данных - SQL") является седьмой пересмотр ISO (1987) и ANSI (1986) стандарт для SQL базы данных языка запросов . Он был официально принят в декабре 2011 года. [1] Стандарт состоит из 9 частей, которые подробно описаны в SQL . Следующая версия - SQL: 2016 .
Новые возможности [ править ]
Одна из основных новых функций - улучшенная поддержка временных баз данных . [2] [3] Усовершенствования языка для определения и обработки временных данных включают:
- Определения периода времени используют два стандартных столбца таблицы в качестве начала и конца именованного периода времени с семантикой закрыто-открыто. Это обеспечивает совместимость с существующими моделями данных, кодом приложения и инструментами.
- Определение таблиц периодов времени приложения (в другом месте называемых действительными таблицами времени ) с использованием
PERIOD FOR
аннотации - Обновление и удаление временных строк приложения с автоматическим разделением временных периодов
- Временные первичные ключи, включающие периоды времени приложения с дополнительными неперекрывающимися ограничениями через
WITHOUT OVERLAPS
предложение - Ограничения временной ссылочной целостности для расписаний приложений
- Таблицы времени приложения запрашивается с помощью регулярного синтаксиса запросов или с использованием новых временными предикатами для периодов времени , в том числе
CONTAINS
,OVERLAPS
,EQUALS
,PRECEDES
,SUCCEEDS
,IMMEDIATELY PRECEDES
, иIMMEDIATELY SUCCEEDS
(которые являются модифицированными версиями интервальных отношений Аллена ) - Определение таблиц с системным управлением версиями (в другом месте называемых таблицами времени транзакций ) с использованием
PERIOD FOR SYSTEM_TIME
аннотации иWITH SYSTEM VERSIONING
модификатора. Системные периоды времени поддерживаются автоматически. Ограничения для таблиц с системным управлением версиями не обязательно должны быть временными и применяются только к текущим строкам. - Синтаксис для времени нарезанных и секвенсированных запросов к таблицам времени системы через
AS OF SYSTEM TIME
иVERSIONS BETWEEN SYSTEM TIME ... AND ...
статьи - Время приложения и управление версиями системы могут использоваться вместе для создания битемпоральных таблиц.
Поддержка в СУБД [ править ]
SAP HANA 2.0 SP03 поддерживает таблицы с системным управлением версиями [4] с использованием стандартного синтаксиса выбора FOR SYSTEM_TIME AS OF '<timestamp1>'
[5] SAP HANA 2.0 SP04 добавляет (частичную) поддержку управления версиями во время приложения [6]
IBM DB2 версии 10 утверждает, что является первой базой данных, которая имеет соответствующую реализацию этой функции в том, что они называют «запросами путешествия во времени» [7] [8], хотя они используют альтернативный синтаксис FOR SYSTEM_TIME AS OF
.
Oracle Oracle 12c поддерживает временную функциональность в соответствии с SQL: 2011. [9] Версии 10g и 11g реализуют запросы с временным разделением в так называемых Flashback Queries , используя альтернативный синтаксис AS OF TIMESTAMP
. [10] Примечательно, что обе реализации Oracle зависят от журнала транзакций базы данных и поэтому разрешают только временные запросы к недавним изменениям, которые все еще сохраняются для резервного копирования.
Microsoft SQL Server (версия 2016) реализует темпоральные таблицы с помощью SYSTEM_VERSIONING
. [11]
MariaDB 10.3 реализует таблицы с системным управлением версиями. [12]
PostgreSQL требует установки расширения temporal_tables . Temporal Tables Extension поддерживает только темпоральные таблицы с системным периодом.
Ebean ORM поддерживает запросы History AS OF и VERSIONS BETWEEN в Postgres и MySql с использованием триггеров, таблиц истории и представлений .
См. Также [ править ]
- SQL
- Викибук SQL
- Медленно меняющееся измерение
- Временная база данных
Ссылки [ править ]
- ^ Paulley (16 декабря 2011), "SQL: 2011 опубликована", IA , Sybase, архивируются с оригинала (блог) на 11 июля 2012
- ^ Земке, Фред. « Что нового в SQL: 2011 ». Запись ACM SIGMOD 41.1 (2012): 67-73
- ^ Кулкарня, Кришна и Ян-Айке Михельс. « Временные особенности в SQL: 2011 ». Запись ACM SIGMOD 41.3 (2012): 34-43
- ^ https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20d329a6751910149d5fdbc4800f92ff.html#loio20d329a6751910149d5fdbc4800fsioning_configurationff
- ^ https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20fcf24075191014a89e9dc7b8408b26.html
- ^ https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/en-US/20fcf24075191014a89e9dc7b8408b26.html
- ^ http://www.ibm.com/developerworks/data/library/techarticle/dm-1204whatsnewdb210/index.html
- ^ http://www.ibm.com/developerworks/data/library/techarticle/dm-1204db2temporaldata/
- ^ http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/temporal/temporal.html
- ^ http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm
- ^ https://msdn.microsoft.com/en-us/library/dn935015.aspx
- ^ https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-103/
Внешние ссылки [ править ]
- "SQL: 2011", Каталог (интернет-магазин) , ISO.
- Часть 1: Framework (SQL / Framework) (черновик; PDF) , JTC1SC32, 2011-08-06.
- Часть 14: Спецификации, связанные с XML (SQL / XML) (черновик; PDF) , JTC1SC32, 2011-08-06.
- Список других проектов заключительного комитета в свободном доступе (поиск) , Google.
- Технический документ Oracle 11g Total Recall (PDF) , Oracle, 01.09.2009.