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 (які є модифікованими версіями інтервальної алгебри Аллена[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].

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Paulley (16 грудня 2011), SQL:2011 is published, IA, Sybase, архів оригіналу (blog) за 11 липня 2012, процитовано 4 червня 2017
  2. Земке, Фред (2012). What's new in SQL:2011 (PDF) (вид. ACM SIGMOD Record 41.1). с. 67—73. Архів оригіналу (pdf) за 10 серпня 2013. Процитовано 4 червня 2017.
  3. Кулкарні, Крішна; Джан-Ейке, Міхельс (2012). Temporal features in SQL: 2011 (PDF) (вид. ACM SIGMOD Record 41.3). с. 34—43. Архів оригіналу (pdf) за 15 листопада 2012. Процитовано 4 червня 2017.
  4. Архівована копія. Архів оригіналу за 31 серпня 2016. Процитовано 4 червня 2017.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  5. Архівована копія. Архів оригіналу за 25 жовтня 2012. Процитовано 4 червня 2017.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  6. Архівована копія. Архів оригіналу за 8 липня 2017. Процитовано 4 червня 2017.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  7. Архівована копія. Архів оригіналу за 6 травня 2017. Процитовано 4 червня 2017.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  8. Архівована копія. Архів оригіналу за 22 грудня 2016. Процитовано 4 червня 2017.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Посилання[ред. | ред. код]