SQL:2011 - SQL:2011

SQL: 2011 oder ISO / IEC 9075: 2011 (unter dem allgemeinen Titel "Informationstechnik - Datenbanksprachen - SQL") ist die siebte Revision der ISO (1987) und ANSI (1986) Standard für die SQL - Datenbank - Abfragesprache . Er wurde im Dezember 2011 offiziell verabschiedet. Der Standard besteht aus 9 Teilen, die ausführlich in SQL beschrieben sind . Die nächste Version ist SQL:2016 .

Neue Eigenschaften

Eine der wichtigsten neuen Funktionen ist die verbesserte Unterstützung für temporale Datenbanken . Zu den Sprachverbesserungen für die zeitliche Datendefinition und -manipulation gehören:

  • Zeitraum Definitionen verwenden zwei Standard - Tabellenspalten als Anfang und am Ende eines benannten Zeitraums, mit geschlossener offener Semantik. Dies bietet Kompatibilität mit bestehenden Datenmodellen, Anwendungscode und Tools
  • Definition von Anwendungszeitraumtabellen (an anderer Stelle gültige Zeittabellen genannt), unter Verwendung der PERIOD FORAnnotation
  • Aktualisierung und Löschung von Bewerbungszeitzeilen mit automatischer Zeitabschnittsteilung
  • Zeitliche Primärschlüssel, die Anwendungszeiträume mit optionalen nicht überlappenden Einschränkungen über die WITHOUT OVERLAPSKlausel enthalten
  • Einschränkungen der zeitlichen referenziellen Integrität für Anwendungszeitpläne
  • Anwendungszeittabellen werden mit regulärer Abfragesyntax oder mit neuen abgefragt zeitlichen Prädikaten für Zeiträume einschließlich CONTAINS, OVERLAPS, EQUALS, PRECEDES, SUCCEEDS, IMMEDIATELY PRECEDES, und IMMEDIATELY SUCCEEDS(die Versionen geändert werden Allens Intervall Beziehungen )
  • Definition von systemversionierten Tabellen (an anderer Stelle als Transaktionszeittabellen bezeichnet ) unter Verwendung der PERIOD FOR SYSTEM_TIMEAnnotation und des WITH SYSTEM VERSIONINGModifikators. Systemzeiträume werden automatisch gepflegt. Einschränkungen für Tabellen mit Systemversion müssen nicht temporal sein und werden nur für aktuelle Zeilen erzwungen
  • Syntax für zeitgeteilte und sequenzielle Abfragen auf Systemzeittabellen über die AS OF SYSTEM TIMEund- VERSIONS BETWEEN SYSTEM TIME ... AND ...Klauseln
  • Anwendungszeit und Systemversionierung können zusammen verwendet werden, um bitemporale Tabellen bereitzustellen provide

Unterstützung in DBMS

SAP HANA 2.0 SP03 unterstützt systemversionierte Tabellen mit der Standard-Select-Syntax FOR SYSTEM_TIME AS OF '<timestamp1>' SAP HANA 2.0 SP04 fügt (teilweise) Unterstützung für die Versionierung zur Anwendungszeit hinzu

IBM DB2 Version 10 behauptet, die erste Datenbank zu sein, die eine konforme Implementierung dieser Funktion in sogenannten "Time Travel Queries" hat, obwohl sie die alternative Syntax verwenden FOR SYSTEM_TIME AS OF.

Oracle Oracle 12c unterstützt die temporale Funktionalität gemäß SQL:2011. Die Versionen 10g und 11g implementieren die Time-Sliced- Abfragen in sogenannten Flashback-Abfragen unter Verwendung der alternativen Syntax AS OF TIMESTAMP. Insbesondere sind beide Implementierungen von Oracle vom Datenbank- Transaktionslog abhängig und erlauben daher nur zeitliche Abfragen für aktuelle Änderungen, die noch zur Sicherung aufbewahrt werden.

Microsoft SQL Server (Version 2016) implementiert temporale Tabellen mit SYSTEM_VERSIONING.

MariaDB 10.3 implementiert systemversionierte Tabellen.

PostgreSQL erfordert die Installation der temporal_tables-Erweiterung . Temporal Tables Extension unterstützt nur die temporalen Tabellen des Systemzeitraums.

Ebean ORM unterstützt History AS OF- und VERSIONS BETWEEN-Abfragen auf Postgres und MySql unter Verwendung von Triggern, History-Tabellen und Ansichten .

CockroachDB unterstützt AS OF SYSTEM TIMEAbfragen seit mindestens v1.0.7 .

Siehe auch

Verweise

Externe Links