So verwenden Sie SQL: 2011 und -fristen

Obwohl Versionen des SQL-Standards vor SQL: 2011 vorgesehen DATUM, ZEIT, TIMESTAMP, und INTERVALL Datentypen, haben sie die Idee eines nicht-Adresse Periode der Zeit mit einer bestimmten Startzeit und einer bestimmten Endzeit.

Eine Möglichkeit, diese Notwendigkeit der Adressierung ist es, eine neue zu definieren PERIODE Datentyp. SQL: 2011 jedoch tut dies nicht. Um einen neuen Datentyp in SQL zu diesem späten Zeitpunkt in seiner Entwicklung einführen würde Chaos mit dem Ökosystem anrichten, die sich rund um SQL gebaut hat. Große operative Eingriffe an nahezu alle vorhandenen Datenbankprodukte erforderlich wäre, um einen neuen Datentyp hinzuzufügen.

SQL: 2011 löst das Problem durch Zugabe von Periodendefinitionen als Metadaten zu den Tabellen. Eine Periode Definition ist eine benannte Tabellenkomponente, ein Paar von Spalten zu identifizieren, die den Zeitraum Beginn und die Dauer Endzeit erfassen. Das CREATE TABLE und ALTER TABLE Anweisungen verwendet Tabellen zu erstellen und zu ändern haben, mit neuen Syntax zu erstellen oder zu zerstören, die erstellten Zeiträume durch diese neue Periode Definitionen aktualisiert.

EIN PERIODE eine Startspalte und ein Ende Spalte: wird von zwei Säulen bestimmt. Diese Spalten sind konventionell, ebenso wie die Spalten der vorhandenen Datumsdatentypen, die jeweils mit einem eigenen eindeutigen Namen. Wie bereits erwähnt, ist eine Periode Definition eine benannte Tabellenkomponente. Es nimmt den gleichen Namensraum wie Spaltennamen, also muss es alle vorhandenen Spaltennamen nicht duplizieren.

SQL folgt ein geschlossenes offenes Modell für Zeiträume, was bedeutet, dass eine Zeit um die Startzeit beinhaltet aber nicht die Endzeit. Für jede Tabellenzeile muss ein Zeitraum Endzeit größer sein als der Startzeit. Dies ist eine Bedingung, die von den DBMS erzwungen wird.

Es gibt zwei Dimensionen von Zeit, die wichtig sind, wenn sie mit zeitlichen Daten zu tun:

  • Gültige Zeit währenddessen ist die Zeitspanne, eine Zeile in einer Tabelle richtig Realität widerspiegelt.

  • Transaktionszeit währenddessen ist die Zeitspanne, eine Zeile oder in einer Datenbank festgeschrieben wird aufgezeichnet.

Die gültige Zeit und die Transaktionszeit für eine Zeile in einer Tabelle muss nicht gleich sein. Zum Beispiel in einem Business-Datenbank, die die Zeit erfasst, während der ein Vertrag in Kraft ist, kann die Information über den Vertrag (und wahrscheinlich) noch vor der Vertragsbeginn eingeführt.

In SQL: 2011, getrennte Tabellen können die zwei verschiedene Arten von Zeit oder eine einzelne, bitemporalen Tabelle dem Zweck dienen kann zur Aufnahme erstellt und gepflegt werden. Transaktionszeitinformationen werden in system versioniert Tabellen gehalten werden, die das System-Zeitperiode enthalten, bezeichnet mit dem Schlüsselwort SYSTEMZEIT.

Gültige Zeitinformation auf der anderen Seite wird in den Tabellen gehalten, die eine Anwendungszeitdauer enthalten. Sie können eine Anwendung Zeitperiode geben Sie einen beliebigen Namen, wird der Name zur Verfügung gestellt nicht bereits für etwas anderes verwendet. Sie dürfen höchstens ein System-Zeit und einer Anwendungszeitdauer zu definieren.

Obwohl zeitliche Daten-Unterstützung in SQL wird zum ersten Mal in SQL eingeführt: 2011 haben die Menschen vor den zeitlichen Konstrukte von SQL lange mit Zeitdaten zu tun hatte: 2011 wurden in einer Datenbank enthaltenen Produkte. Dies wurde in der Regel durch die Definition von zwei Tabellenspalten durchgeführt, eine für den Startdatetime und die andere für das Ende Datetime.

Die Tatsache, dass SQL: 2011 definiert keinen neuen PERIODE Datentyp, sondern verwendet Periodendefinitionen als Metadaten, bedeutet, dass bestehende Tabellen mit solchen Start- und Zielspalten leicht die neue Funktion zu integrieren aufgerüstet werden können. Die Logik für die Periode Bereitstellung von Informationen aus vorhandenen Anwendungsprogrammen entfernt werden, vereinfachen sie, beschleunigen sie und macht sie zuverlässiger.

Menü