Перейти до вмісту

SQL:2011

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 23:47, 4 червня 2017, створена 178.137.203.233 (обговорення) (Відредаговано шаблон SQL)

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, and IMMEDIATELY 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]

Див. також

Примітки

  1. Paulley (16 грудня 2011), SQL:2011 is published, IA (blog), Sybase
  2. Zemke, Fred. "What's new in SQL:2011". ACM SIGMOD Record 41.1 (2012): 67-73
  3. Kulkarni, Krishna, and Jan-Eike Michels. "Temporal features in SQL: 2011". ACM SIGMOD Record 41.3 (2012): 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

Посилання