SQL:2011
SQL:2011 або ISO/IEC 9075:2011 (під загальною назвою "Інформаційні технології - мови баз даних - SQL") — сьома ревізія ISO (1987) і ANSI (1986) стандарту для мови запитів до бази даних SQL. Вона була офіційно прийнята в грудні 2011 року.[1] Стандарт складається з 9 частин, які докладно описані в SQL.
Нові можливості
Однією з основних нових функцій є поліпшена підтримка темпоральних баз даних[2][3]. Удосконалення мови для темпорального визначення даних і маніпулювання ними включають:
- Визначення часового періоду використовує два стандартні стовпчики таблиці, як початок і кінець іменованого періоду часу, з замкнутою відкритою семантикою. Це забезпечує сумісність із наявними моделями даних, кодом прикладних програм та інструментами;
- Визначення таблиць програмних часових періодів (інакше званих таблицями допустимого часу[en]) за допомогою анотації
PERIOD FOR - Оновлення та видалення часових рядків з автоматичним розділенням часових періодів
- Темпоральні первинні ключі, що сполучають періоди часу з додатковими непересічними обмеженнями через оголошення
WITHOUT OVERLAPS - Темпоральні обмеження посилальної цілосності для часових таблиць
- Запити до часових таблиць виконуються за допомогою запитів зі звичайним синтаксисом, або за допомогою темпоральних предикатів для часових періодів, серед яких
CONTAINS,OVERLAPS,EQUALS,PRECEDES,SUCCEEDS,IMMEDIATELY PRECEDESтаIMMEDIATELY SUCCEEDS(які є модифікованими версіями інтервальної алгебри Аллена[en]) - Визначення таблиць системи контролю версій (інакше званих таблицями часу транзакції) за допомогою анотації
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, IA (blog), Sybase
- ↑ Земке, Фред (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
- 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