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].

Див. також

Примітки

  1. Paulley (16 грудня 2011). SQL:2011 is published (blog). IA. Sybase. Архів оригіналу за 11 липня 2012. Процитовано 4 червня 2017.
  2. Земке, Фред (2012). What's new in SQL:2011 (pdf) (вид. ACM SIGMOD Record 41.1). с. 67—73.
  3. Кулкарні, Крішна; Джан-Ейке, Міхельс (2012). Temporal features in SQL: 2011 (pdf) (вид. ACM SIGMOD Record 41.3). с. 34—43.
  4. http://www.ibm.com/developerworks/data/library/techarticle/dm-1204whatsnewdb210/index.html
  5. http://www.ibm.com/developerworks/data/library/techarticle/dm-1204db2temporaldata/
  6. http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/temporal/temporal.html
  7. http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm
  8. https://msdn.microsoft.com/en-us/library/dn935015.aspx

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.