SQL: 2011 - SQL:2011

SQL: 2011 eller ISO / IEC 9075: 2011 (under den allmänna titeln "Informationsteknik - Databas språk - SQL") är den sjunde revidering av ISO (1987) och ANSI (1986) standard för SQL -databas frågespråket . 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 temporära databaser . Språkförbättringar för temporär datadefinition och manipulation inkluderar:

  • Tidsperioddefinitioner använder två standardtabellkolumner som början och slutet av en namngiven tidsperiod, med semantik med slutna öppningar. Detta ger kompatibilitet med befintliga datamodeller, applikationskod och verktyg
  • Definition av tidtabeller för applikationer (någon annanstans kallas giltiga tidtabeller) med hjälp av PERIOD FORkommentaren
  • Uppdatering och radering av applikationstidsrader med automatisk tidsperioduppdelning
  • Temporal primära nycklar som innehåller applikationstidsperioder med valfria icke-överlappande begränsningar via WITHOUT OVERLAPSklausulen
  • Temporal referensintegritetsbegränsningar för tidtabeller för applikationer
  • Application tidtabeller är frågas med hjälp av vanlig frågesyntax eller med hjälp av nya tids predikat för tidsperioder, inklusive CONTAINS, OVERLAPS, EQUALS, PRECEDES, SUCCEEDS, IMMEDIATELY PRECEDES, och IMMEDIATELY SUCCEEDS(som är modifierade versioner av Allens intervall relationer )
  • Definition av systemversionerade tabeller (någon annanstans kallas transaktionstabeller ) med hjälp av PERIOD FOR SYSTEM_TIMEkommentaren och WITH SYSTEM VERSIONINGmodifieraren. Systemets tidsperioder bibehålls automatiskt. Begränsningar för systemversionerade tabeller behöver inte vara tidsmässiga och tillämpas bara på nuvarande rader
  • Syntax för tidsskivade och sekvenserade frågor på systemtabeller via AS OF SYSTEM TIMEoch VERSIONS BETWEEN SYSTEM TIME ... AND ...klausulerna
  • Applikationstid och systemversion kan användas tillsammans för att tillhandahålla bitemporala tabeller

Stöd i DBMS

SAP HANA 2.0 SP03 stöder systemversionerade tabeller med standardväljningssyntax FOR SYSTEM_TIME AS OF '<timestamp1>' SAP HANA 2.0 SP04 lägger till (partiellt) stöd för applikationstidsversionering

IBM DB2 version 10 påstår sig vara den första databasen som har implementerat denna funktion i vad de kallar "Time Travel Queries", även om de använder den alternativa syntaxen FOR SYSTEM_TIME AS OF.

Oracle Oracle 12c stöder temporär funktionalitet i enlighet med SQL: 2011. Versioner 10g och 11g genomföra tids skivas frågor i vad de kallar Flashback frågor med hjälp av alternativa syntax AS OF TIMESTAMP. Noterbart är båda Oracles implementeringar beror på databasen transaktionslogg och så bara tillåter tids frågor mot de senaste förändringarna som fortfarande bevaras för säkerhetskopiering.

Microsoft SQL Server (version 2016) implementerar tidsmässiga tabeller med SYSTEM_VERSIONING.

MariaDB 10.3 implementerar systemversionerade tabeller.

PostgreSQL kräver installation av tillägget temporal_tables . Temporal Tables Extension stöder endast temporära tabeller i systemperioden.

Ebean ORM stöder History AS OF och VERSIONS MELLAN frågor på Postgres och MySql med hjälp av utlösare, historiktabeller och vyer .

CockroachDB har stött AS OF SYSTEM TIMEfrågor sedan åtminstone v1.0.7 .

Se även

Referenser

externa länkar