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
таIMMEDIATELY SUCCEEDS
(які є модифікованими версіями інтервальної алгебри Аллена) - Визначення таблиць системи контролю версій (інакше званих таблицями часу транзакції) за допомогою анотації
PERIOD FOR SYSTEM_TIME
та модифікатораWITH SYSTEM VERSIONING
. Системні часові періоди підтримуються автоматично. Обмеження для таблиць системи контролю версій можуть не бути темпоральними і примусово застосовуються тільки для поточних рядків - Синтаксис часових (англ. 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 12c підтримує темпоральну функціональність відповідно до SQL:2011[6]. Версії 10g і 11g реалізують часові запити, які називаються Flashback Queries з використанням альтернативного синтаксису AS OF TIMESTAMP
[7]. Обидві реалізації Oracle залежать від журналу транзакцій бази даних і дозволяють лише темпоральні запити до останніх змін, які ще зберігаються для резервного копіювання.
Microsoft SQL Server (версія 2016) реалізує темпоральні таблиці з SYSTEM_VERSIONING
[8].
Див. також
Примітки
- Paulley (16 грудня 2011). SQL:2011 is published (blog). IA. Sybase. Архів оригіналу за 11 липня 2012. Процитовано 4 червня 2017.
- Земке, Фред (2012). What's new in SQL:2011 (pdf) (вид. ACM SIGMOD Record 41.1). с. 67—73.
- Кулкарні, Крішна; Джан-Ейке, Міхельс (2012). Temporal features in SQL: 2011 (pdf) (вид. ACM SIGMOD Record 41.3). с. 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 (webshop). Каталог. ISO. Архів оригіналу за 13 травня 2016. Процитовано 4 червня 2017.
- 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 (пошук). Google.
- Oracle 11g Total Recall Whitepaper (PDF). Oracle. 1 вересня 2009.