Sequenzen

Eine Sequenz ist ein gespeichertes Objekt, das einfach eine Sequenz von Zahlen in monoton aufsteigender (oder absteigender) Reihenfolge generiert. Sequenzen bieten eine Möglichkeit, dass der Datenbankmanager automatisch eindeutige ganzzahlige und dezimale Primärschlüssel generiert und Schlüssel über mehrere Zeilen und Tabellen hinweg koordiniert.

Eine Sequenz kann verwendet werden, um die Parallelverarbeitung zu nutzen, anstatt über das Programm eindeutige Zahlen zu generieren, indem der zuletzt verwendete Wert gesperrt und dann erhöht wird.

Sequenzen eignen sich ideal für die Aufgabe der Generierung eindeutiger Schlüsselwerte. Eine Sequenz kann für viele Tabellen verwendet werden oder es kann eine separate Sequenz für jede Tabelle erstellt werden, die generierte Schlüssel erfordert. Eine Sequenz hat die folgenden Eigenschaften:

  • Kann garantierte eindeutige Werte haben, vorausgesetzt, dass die Sequenz nicht zurückgesetzt wird und die Werte nicht zyklisch durchlaufen können.
  • Kann Werte innerhalb eines definierten Bereichs erhöhen oder verringern.
  • Kann einen anderen Inkrementwert als 1 zwischen aufeinanderfolgenden Werten haben (der Standardwert ist 1).
  • Ist wiederherstellbar.

Werte für eine bestimmte Sequenz werden automatisch vom Datenbankmanager generiert. Durch die Verwendung einer Sequenz in der Datenbank wird der Leistungsengpass vermieden, der entsteht, wenn eine Anwendung Sequenzen außerhalb der Datenbank implementiert. Der Zähler für die Sequenz wird unabhängig von der Transaktion erhöht (oder verringert).

In einigen Fällen können Lücken in einer Sequenz eingebracht werden. Eine Lücke kann auftreten, wenn eine bestimmte Transaktion eine Sequenz zweimal erhöht. Die Transaktion kann eine Lücke in den beiden Zahlen erkennen, die generiert werden, da es möglicherweise andere Transaktionen gibt, die gleichzeitig dieselbe Sequenz inkrementieren. Ein Benutzer erkennt möglicherweise nicht, dass andere Benutzer aus derselben Sequenz zeichnen. Weiterhin ist es möglich, dass eine bestimmte Sequenz scheinbar Lücken in den Zahlen generiert hat, da eine Transaktion, die möglicherweise eine Folgenummer generiert hat, zurückgesetzt wurde. Die Aktualisierung einer Sequenz ist nicht Teil der Arbeitseinheit mit Wiederherstellung einer Transaktion.

Eine Sequenz wird mit einer Anweisung CREATE SEQUENCE erstellt. Auf eine Sequenz kann mithilfe einer Sequenzreferenzverwiesen werden. Eine Sequenzreferenz kann an den meisten Stellen erscheinen, an denen ein Ausdruck erscheinen kann. Eine Sequenzreferenz kann angeben, ob der zurückzugebende Wert ein neu generierter Wert oder der zuvor generierte Wert ist. Weitere Informationen finden Sie unter Sequenzreferenz und CREATE SEQUENCE.

Obwohl es Ähnlichkeiten gibt, unterscheidet sich eine Sequenz von einer Identitätsspalte. Eine Sequenz ist ein Objekt, während eine Identitätsspalte Teil einer Tabelle ist. Eine Sequenz kann mit mehreren Tabellen verwendet werden. Eine Identitätsspalte ist jedoch Teil einer einzelnen Tabelle.