SQL:2011

SQL:2011 eller ISO/IEC 9075:2011 (under den allmänna titeln "Informationsteknologi – Databasspråk – SQL") är den sjunde revideringen av ISO (1987) och ANSI (1986)-standarden för SQL- databasens frågespråk . Den antogs formellt i december 2011. Standarden består av 9 delar som beskrivs i detalj i SQL . Nästa version är SQL:2016 .

Nya egenskaper

En av de viktigaste nya funktionerna är förbättrat stöd för temporala databaser . Språkförbättringar för tidsdefinition och manipulering av data inkluderar:

  • Tidsperioddefinitioner använder två standardtabellkolumner som början och slutet av en namngiven tidsperiod, med stängd-öppen semantik. Detta ger kompatibilitet med befintliga datamodeller, applikationskod och verktyg
  • Definition av applikationstidsperiodtabeller (kallas på andra ställen giltiga tidstabeller ), med användning av PERIOD FOR -anteckningen
  • Uppdatering och radering av applikationstidsrader med automatisk tidsperiodsdelning
  • Temporala primärnycklar som innehåller tillämpningsperioder med valfria icke-överlappande begränsningar via WITHOUT OVERLAPS -satsen
  • Temporala referensintegritetsbegränsningar för applikationstidtabeller
  • Programtidtabeller efterfrågas med hjälp av vanlig frågesyntax eller med hjälp av nya temporala predikat för tidsperioder, inklusive INNEHÅLLER , OVERLAPS , EQUALS , PRECEDES , SUCCEEDS , IMMEDIATELY PRECEDES och IMMEDIATELY SUCCEEDS (som är modifierade versioner av Allens intervall )
  • Definition av systemversionsbaserade tabeller (kallas på andra ställen transaktionstidtabeller ), med användning av PERIOD FOR SYSTEM_TIME - anteckningen och WITH SYSTEM VERSIONING -modifieraren. Systemets tidsperioder bibehålls automatiskt. Begränsningar för systemversionsbaserade tabeller behöver inte vara tidsmässiga och tillämpas endast på aktuella rader
  • Syntax för tidsdelade och sekvenserade frågor VERSIONER MELLAN SYSTEM TIME ... AND ... systemtidtabeller via AS OF SYSTEM TIME och satserna
  • Applikationstid och systemversionering kan användas tillsammans för att tillhandahålla bitemporala tabeller

Support i DBMS

SAP HANA 2.0 SP03 stöder FÖR SYSTEM_TIME FRÅN '<tidsstämpel1>' systemversionsbaserade tabeller med hjälp av standardvalsyntaxen SAP HANA 2.0 SP04 lägger till (delvis) stöd för applikationstidversionering

IBM DB2 version 10 påstår sig vara den första databasen som har en överensstämmande implementering av denna funktion i vad de kallar "Time Travel Queries", även om de använder den alternativa syntaxen FÖR SYSTEM_TIME FRÅN .

Oracle Oracle 12c stöder temporal funktionalitet i överensstämmelse med SQL:2011. Versioner 10g och 11g implementerar de tidsdelade frågorna i vad de kallar Flashback Queries , med den alternativa syntaxen AS OF TIMESTAMP . Noterbart är båda Oracles implementeringar beroende av databasens transaktionslogg och tillåter därför endast tidsmässiga frågor mot de senaste ändringarna som fortfarande sparas för säkerhetskopiering.

Microsoft SQL Server (version 2016) implementerar temporala tabeller med SYSTEM_VERSIONING .

MariaDB 10.3 implementerar systemversionsbaserade tabeller. MariaDB 10.4.3 lade till stöd för programversionsbaserade tabeller.

PostgreSQL kräver installation av tillägget temporal_tables . Temporal Tables Extension stöder endast systemperiodens tidstabeller, men följer inte SQL:2011-designen.

Ebean ORM stöder History AS OF och VERSIONER MELLAN frågor på PostgreSQL och MySQL med hjälp av triggers, historiktabeller och vyer .

CockroachDB har stödt AS OF SYSTEM TIME -frågor sedan åtminstone v1.0.7 .

Se även

externa länkar