SQL:2011

Fra Wikipedia, den frie encyklopedi

SQL:2011, offisielt ISO/IEC 9075:2016 Information technology – Database languages – SQL, er den syvende revisjonen av ISO-standarden for database-spørrespråket SQL. Den ble formelt vedtatt i 2011 desember.[1] Standarden består av 9 deler som beskriver SQL i detalj. SQL:2011 har blitt erstattet av SQL:2016.

Nye funksjoner[rediger | rediger kilde]

En av de viktigste nye funksjonene er forbedret støtte for temporale databaser.[2][3] Forbedringer i språket for definisjon og manipulering av temporale data (tidsdata eller tidsmessige data[klargjør]) inkluderer:

  • Tidsperiodedefinisjoner bruker to standard tabellkolonner som starter og slutter på en navngitt tidsperiode, med lukket-åpen-semantikk. Dette gir kompatibilitet med eksisterende datamodeller, applikasjonskode og verktøy.
  • Definisjon av applikasjons-tidsperiodetabeller (andre steder kalt gyldigtid-tabeller), ved hjelp av PERIOD FOR-notasjon
  • Oppdatering og sletting av applikasjons-tidsrader med automatisk tidsperiodesplitt
  • Temporale primærnøkler som inkluderer applikasjonstidsperioder med valgfrie ikke-overlappende betingelser via WITHOUT OVERLAPS-klausulen
  • Temporal referanseintegritet som betingelser for applikasjonstidstabeller
  • Applikasjonstidstabeller spørres ved hjelp av vanlig spørresyntaks eller ved å bruke nye temporale predikater for tidsperioder inkludert CONTAINS, OVERLAPS, EQUALS, PRECEDES, SUCCEEDS, IMMEDIATELY PRECEDES og IMMEDIATELY SUCCEEDS (som er modifiserte versjoner av Allens intervallalgebra)
  • Definisjon av systemversjonerte tabeller (andre steder kalt transaksjonstid-tabeller), ved hjelp av PERIOD FOR SYSTEM_TIME-notasjon og WITH SYSTEM VERSIONING-modifikatoren. Systemets tidsperioder vedlikeholdes automatisk. Det kreves ikke at betingelser for systemversjonerte tabeller er temporale, og håndheves bare på gjeldende rader.
  • Syntaks for oppdeling i tidsskiver (time slicing) og sekvensierte (sequenced) spørringer på systemets tidstabeller via AS OF SYSTEM TIME og VERSIONS BETWEEN SYSTEM TIME ... AND ...-klausuler
  • Applikasjonstid og systemversjonering kan brukes sammen for å gi bitemporale tabeller

Støtte i databasehåndteringssystemer[rediger | rediger kilde]

SAP HANA 2.0 SP03 støtter systemversjonerte tabeller[4] ved å bruke standard select-syntaks FOR SYSTEM_TIME AS OF '<timestamp1>'[5] SAP HANA 2.0 SP04 legger til (delvis) støtte for versjonering av applikasjonstid [6]

IBM DB2 versjon 10 hevder å være den første databasen som har en samsvarende implementering av denne funksjonen i det de kaller "Time Travel Queries",[7][8] selv om de bruker den alternative syntaksen FOR SYSTEM_TIME AS OF.

Oracle Oracle 12c støtter temporal funksjonalitet i samsvar med SQL:2011. Versjon 10g og 11g implementerer spørringer på tidsskiver i det de kaller Flashback Queries, ved hjelp av den alternative syntaksen AS OF TIMESTAMP.[9] Begge Oracles implementeringer avhenger av databasens transaksjonslogg, og tillater derfor bare temporale spørringer mot de siste endringene som fortsatt blir beholdt på sikkerhetskopi.

Microsoft SQL Server (versjon 2016) implementerer temporale tabeller med SYSTEM_VERSIONING.[10]

MariaDB 10.3 implementerer systemversjonerte tabeller.[11] MariaDB 10.4.3 la til støtte for applikasjonsversjonerte tabeller.[12]

PostgreSQL krever installasjon av temporal_tables extension. Den støtter bare temporal tabeller basert på system-tidsperiode, men følger ikke SQL:2011-designet.

Ebean ORM støtter spørringer med HISTORY AS OF og VERSIONS BETWEEN mot PostgreSQL og MySQL ved bruk av utløsere, historikktabeller og visninger.

CockroachDB har støttet AS OF SYSTEM TIME spørsmål siden minst v1. 0. 7.[13][14]

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ Paulley (December 16, 2011), «SQL:2011 is published» (blog), IA, Sybase, arkivert fra originalen on juli 11, 2012, https://archive.today/20120711002304/http://iablog.sybase.com/paulley/?p=2612, besøkt mai 21, 2023 
  2. ^ Zemke, Fred. "What's new in SQL:2011 Arkivert 10. august 2013 hos Wayback Machine.". ACM SIGMOD Record 41.1 (2012): 67-73
  3. ^ Kulkarni, Krishna, and Jan-Eike Michels. "Temporal features in SQL: 2011 Arkivert 15. november 2012 hos Wayback Machine.". ACM SIGMOD Record 41.3 (2012): 34-43
  4. ^ «SAP Help Portal». 
  5. ^ «SAP Help Portal». 
  6. ^ «SAP Help Portal». 
  7. ^ «Data management». 
  8. ^ «Data management». 
  9. ^ «Database SQL Reference». 
  10. ^ «Temporal Tables - SQL Server». 
  11. ^ «Changes & Improvements in MariaDB 10.3». 
  12. ^ «Application-Time Periods». 
  13. ^ «AS OF SYSTEM TIME | CockroachDB Docs». 
  14. ^ «Time-Travel Queries: SELECT witty_subtitle FROM THE FUTURE». Cockroach Labs. 22. juni 2016.