SQL:2011
SQL:2011 або ISO/IEC 9075:2011 (під загальною назвою "Інформаційні технології - мови баз даних - SQL") — сьома ревізія ISO (1987) і ANSI (1986) стандарту для мови запитів до бази даних SQL. Вона була офіційно прийнята в грудні 2011 року.[1] Стандарт складається з 9 частин, які докладно описані в SQL.
Нові можливості
Однією з основних нових функцій є поліпшена підтримка часових баз даних.[2][3] Удосконалення мови для часового визначення даних і маніпулювання включають:
- Визначення часового періоду використовує два стандартні стовпці таблиці, як початок і кінець іменованого періоду часу, з замкнутою відкритою семантикою. Це забезпечує сумісність з існуючими моделями даних, кодом прикладних програм та інструментами
- Визначення часових періодів таблиць використовує
PERIOD FOR
анотацію - Оновлення та видалення часових рядків з автоматичним розподілом часових періодів
- Часові первинні ключі включають періоди часу з додатковими непересічними обмеженнями по пункту
WITHOUT OVERLAPS
- Часові обмеження посилальної цілосності для таблиць
- Запити до часових таблиць виконуються за допомогою синтаксису регулярних запитів або за допомогою часових предикатів для часових періодів
CONTAINS
,OVERLAPS
,EQUALS
,PRECEDES
,SUCCEEDS
,IMMEDIATELY PRECEDES
, andIMMEDIATELY SUCCEEDS
(які є модифікованими версіями Інтервальної алгебри Аллена) - Визначення system-versioned таблиць за допомогою
PERIOD FOR SYSTEM_TIME
анотації таWITH SYSTEM VERSIONING
модифікатору. Системні часові періоди підтримуються автоматично. Обмеження для system-versioned таблиць не повинні бути часовими і примусово застосовуються тільки для поточних рядків - Синтаксис time-sliced і послідовних запитів до системи часових таблиць з використанням
AS OF SYSTEM TIME
іVERSIONS BETWEEN SYSTEM TIME ... AND ...
- Час і система управління версіями можуть бути використані разом, щоб забезпечити реалізацію двочасових таблиць
Підтримка в СКБД
IBM DB2 версії 10 претендує на звання першої бази даних, що має відповідну реалізацію цієї функції в Time Travel Queries,[4][5] хоча вони використовують альтернативний синтаксис FOR SYSTEM_TIME AS OF
.
Oracle Oracle 12c підтримує часові функціональні можливості відповідно до SQL:2011.[6] Версії 10g і 11g реалізують time-sliced запити, які називаються Flashback Queries та використовують альтернативний синтаксис AS OF TIMESTAMP
.[7] Обидві реалізації Oracle залежать від журналу транзакцій бази даних і тільки дозволяють часові запити до останніх змін, які ще зберігаються для резервного копіювання.
Microsoft SQL Server (версія 2016) реалізує часові таблиці з SYSTEM_VERSIONING
.[8]
Див. також
Примітки
- ↑ Paulley (16 грудня 2011), SQL:2011 is published, IA (blog), Sybase
- ↑ Zemke, Fred. "What's new in SQL:2011". ACM SIGMOD Record 41.1 (2012): 67-73
- ↑ Kulkarni, Krishna, and Jan-Eike Michels. "Temporal features in SQL: 2011". ACM SIGMOD Record 41.3 (2012): 34-43
- ↑ 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
Посилання
- SQL:2011, Catalogue (webshop), ISO
- Part 1: Framework (SQL/Framework) (draft; PDF), JTC1SC32, 6 серпня 2011
- Part 14: XML-Related Specifications (SQL/XML) (draft; PDF), JTC1SC32, 6 серпня 2011
- List of further freely available Final Committee Drafts (search), Google
- Oracle 11g Total Recall Whitepaper (PDF), Oracle, 1 вересня 2009