DE3688529T2 - Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation. - Google Patents

Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation.

Info

Publication number
DE3688529T2
DE3688529T2 DE86100034T DE3688529T DE3688529T2 DE 3688529 T2 DE3688529 T2 DE 3688529T2 DE 86100034 T DE86100034 T DE 86100034T DE 3688529 T DE3688529 T DE 3688529T DE 3688529 T2 DE3688529 T2 DE 3688529T2
Authority
DE
Germany
Prior art keywords
snapshot
base table
base
tid
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE86100034T
Other languages
English (en)
Other versions
DE3688529D1 (de
Inventor
Laura Meyers Haas
Bruce Gilbert Lindsay
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3688529D1 publication Critical patent/DE3688529D1/de
Application granted granted Critical
Publication of DE3688529T2 publication Critical patent/DE3688529T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

    Fachgebiet
  • Die vorliegende Erfindung betrifft ein Verfahren zur Aktualisierung einer erweiterbaren Mehrspaltentabelle, die eine Untergruppe oder eine Momentaufnahme einer logisch unabhängigen, erweiterbaren Mehrspalten- oder Basistabelle in einem verteilten, relationalen Datenbanksystem bildet. Im spezielleren Sinn betrifft das Verfahren die Weiterleitung von Änderungen, die eine periodische Anpassung der Tabelle der Momentaufnahme an den Inhalt der Basistabelle bewirken.
  • Hintergrund
  • Wie von C.J. Date in seinem Handbuch "A Guide to DB2" (Addison-Wesley Publishing Co., 1984) auf Seite 7 erläutert wird, ist eine relationale Datenbank vom Standpunkt der Benutzer aus betrachtet eine aus lauter Tabellen bestehende Objektgruppe. In dieser Hinsicht stellen Adiba und Lindsay in ihrer Veröffentlichung "Data Base Snapshots" (IBM Research Report RJ 2772, 7. März 1980) fest, daß Verwaltungssysteme für relationale Datenbanken eine Schnittstelle bieten, die sowohl Benutzern als auch Anwendungsprogrammen den Zugriff auf den Inhalt einer Gruppe von Relationen oder Tabellen gestattet, die zeitabhängigen Veränderungen unterworfen sind. Ein solches Verwaltungssystem gibt Auskunft über bzw. aktualisiert den aktuellen Wert von Datensätzen, die mit Hilfe von Anweisungen einer Abfragesprache ausgewählt wurden. Diese Anweisungen sind entweder in der Anwendungssoftware eingebettet oder werden von einem Benutzer direkt eingegeben. Adiba verweist darauf, daß die Benutzer Datensätze nicht nur in dem aktuell in der Datenbank gespeicherten Zustand abfragen und modifizieren können, sondern auch neue Datensätze einfügen und vorhandene Datensätze löschen können. Solche Systeme ermöglichen es den Benutzern außerdem, neue Relationen zu erstellen, die Attributgruppe der vorhandenen Relationen zu erweitern und nicht mehr benötigte Relationen zu löschen.
  • Ein Nachteil der heutigen Systeme besteht darin, daß Benutzer die Datenbank nur in dem aktuellsten Zustand bearbeiten können, auch wenn manche Anwendungen einen Zugriff auf frühere Versionen der Datenbank erfordern oder zumindest tolerieren. Nur-Lese-Zugriff auf frühere "Momentaufnahmen" von ausgewählten Teilen einer Datenbank würde es solchen Anwendungen ermöglichen, den Datenbankstatus eines früheren Zeitpunkts ("mit Stand vom") anzuzeigen, ohne daß eine Ausführung für diesen früheren Zeitpunkt erforderlich ist. Wenn solche Momentaufnahmen nicht von Aktualisierungen in der "aktuellen" Datenbank beeinflußt werden, können sie außerdem zum "Einfrieren" ausgewählter Teile der Datenbank in Verarbeitungen für komplexe Anwendungen verwendet werden, ohne die Aktualisierungsverarbeitung für einen aktuellen Datenbankzustand zu verzögern.
  • Adiba et al, beschreiben in den übrigen Teilen ihrer Veröffentlichung die Erstellung einer logisch unabhängigen Mehrspaltentabelle, die aus einer umfangreicheren Tabelle stammt und einen eingefrorenen Informationszustand darstellt. Dies ist die sogenannte "Momentaufnahme".
  • Der Vollständigkeit halber wird auf die US-Patentschrift 4.432.057, "Method for the Dynamic Replication of Data Under Distributed System Control to Control Utilization of Resources in a Multiprocessing Distributed Data Base System" verwiesen, die am 14. Februar 1984 von Daniell et al niedergelegt wurde. Diese Patentschrift betrifft den Zugriff auf Kopien einer auf vernetzte Knoten verteilten Tabelle, ohne daß eine parallele (synchronisierte) Aktualisierung durch Überarbeiten irgendeiner lokalen Tabelle mit fernen Versionen der Tabelle als Funktion der Knotenidentität und Zeitmarkensortierung erforderlich ist.
  • Gegenstand der Erfindung
  • Im Rahmen dieser Erfindung ist eine "Momentaufnahme" definiert als eine Nur-Lese-Kopie eines Teils einer einzelnen Tabelle, die bislang als Quellen- oder Basistabelle bekannt war. Die Momentaufnahme ist eine eingefrorene Kopie der Basistabelle. Dies bedeutet, daß sie nicht fortlaufend in der Basistabelle vorgenommene Änderungen widerspiegelt, wie dies bei einer echten Kopie der Fall wäre. Eine Momentaufnahme kann jedoch periodisch aufgefrischt werden, damit ihr Inhalt alle in der Datenbank vorgenommenen Änderungen seit der Erstellung der Momentaufnahme oder seit der letzten Auffrischung widerspiegelt. Folglich ist es eine der Aufgaben dieser Erfindung, ein Verfahren zur Minimierung der Datenmenge zu offenbaren, die zur Aktualisierung der Momentaufnahme übertragen wird, insbesondere dann, wenn die Momentaufnahme und Basistabelle physikalisch gestreut sind.
  • Diese Aufgabe wird durch ein Verfahren erfüllt, bei dem sowohl die Momentaufnahme als auch die Basistabelle in der gleichen Reihenfolge durchsucht werden, und bei dem mittels zusätzlicher Felder in der Basistabelle verfolgt werden kann, wo eine Änderung seit der letzten Auffrischung einer bestimmten Momentaufnahme stattgefunden hat und welcher Art die Änderung ist (d. h. eine Hinzufügung, Aktualisierung oder Löschung). Der Fortschritt hinsichtlich der Verfahrensschritte umfaßt: (a) Definieren einer Teilsortierung von Zeitmarken in den Zeilen-Aktualisierungen der Basistabelle, einer Gesamtsortierung von Zeileneintragskennungen, und einer rückwärtsgerichteten Verkettung der Kennungen von benachbarten Zeileneinträgen; (b) Durchsuchen der Basistabelle und Ermitteln von Aktualisierungen als Anomalien in bezug auf die Sortierungen oder Verkettung und (c) Weiterleitung der Aktualisierungen und entsprechende Änderung der Tabelle mit der Momentaufnahme.
  • Gegenstand der Erfindung ist die unerwartete Beobachtung, daß ein Zusammenhang zwischen einer Kombination von Gesamt- und Teilsortierungen und Verkettungen sowie einer Minimalinformationsdarstellung dieser Tabellenänderungen durch Spaltenerweiterungen, Durchsuchungen und durch Ermitteln von Sortier- oder Verkettungsanomalien besteht.
  • Da die Erfindung zum Teil auf Informationen aus bestimmten Spalten beruht, die bestimmte Sortierungseigenschaften annehmen, sollten solche Sortierungen definiert werden. Beispielsweise sind die Zeitmarken teilweise entsprechend den Zeilenaktualisierungen sortiert. Als Beispiel für eine Teilsortierung dient die für reale Zahlen definierte "kleiner als oder gleich"-Relation. Als Beispiel für die Gesamtsortierung von Zeileneintragskennungen dient die für reale Zahlen definierte "kleiner als"-Relation. Die "rückwärtsgerichtete Verkettung" (Backward Chaining) bezeichnet dasjenige Merkmal einer verbundenen Liste, das beim Durchlaufen einer Spalte von oben nach unten bewirkt, daß die Werte in irgendeinem Feld einen Zeiger bilden, der die Adresse eines Vorläufers für einen bestimmten Eintrag definiert. Einfügungen, Löschungen oder Modifikationen von Tabelleneinträgen stören diese Sortierungen und werden beim Durchsuchen der Tabelle ermittelt. Der sprungsequentielle Mischlauf, der zur Aktualisierung der Tabelle mit der Momentaufnahme verwendet wird, nimmt die Form einer indexsequentiellen Suche an.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 veranschaulicht die Ressourcen zur Datenspeicherung, Verarbeitung und Kommunikation in einer repräsentativen Konfiguration von Knoten in einer verteilten Datenbank und einem Mehrprozessor-/Mehrprogrammsystem.
  • Fig. 2 und 3 zeigen eine pseudocode-Darstellung der Verarbeitungsschritte für eine Basistabelle und Momentaufnahmetabelle, wobei das Objektcode-Äquivalent der höheren Programmiersprache auf einem in Fig. 1 gezeigten System ausführbar ist.
  • Die Umgebung
  • In Fig. 1 ist ein verteiltes System mit drei Knoten 10, 12, 14 dargestellt, das durch Kommunikationsverbindungen 16, 18 und andere Verbindungen 20, 22 mit anderen Knoten in dieser verteilten Datenbank eines Mehrprozessor-/Mehrprogrammsystems verbunden ist. Jeder Knoten 10, 12, 14 usw. besitzt die Fähigkeit, Datenelemente in den Datendateien 36, 38, 40 zu speichern. Kopien von Datenelementen werden dynamisch an einem Knoten im erforderlichen Umfang zur Unterstützung der an dem jeweiligen Knoten erfolgenden Verarbeitung erstellt. Physikalisch betrachtet kann ein Knoten ein Computer für allgemeine Anwendungen oder eine zentrale elektronische Einheit - z. B. ein IBM System /360 oder /370 - sein, wie in der US-Patentschrift 3.400.371 von Amdahl et al sowie in dem Handbuch "IBM System /370 principles of Operation", IBM Form GA22- 7000-6, beschrieben wird.
  • Zu den gemäß dem Stand der Technik ausgelegten Verwaltungssystemen für eine relationale Datenbank, welche zur praktischen Umsetzung der Erfindung eingesetzt werden können, gehört IBM Data Base 2, welches nachfolgend als DB2 bezeichnet wird. DB2 wird als Subsystem im IBM MVS /370 (Multiple Virtual Storage/370) DB2 ausgeführt, wie in dem "IBM Data Base 2 General Information Manual", IBM Form GC26-4073-1, 2. Ausgabe Juli 1984, erläutert wird. Von Bedeutung ist die Tatsache, daß DB2 ein relationales Datenmodell verwendet. In dieser Hinsicht stellen Tabellen die grundlegende Datenstruktur dar. In solchen relationalen Systemen werden alle Daten in einem einfachen Mehrspalten-Tabellenformat dargestellt. Solche Systeme bieten die Möglichkeit, zusätzliche Strukturen in den Tabellen zur Erfüllung spezieller Anforderungen zu definieren.
  • Aspekte einer relationalen Datenbank
  • Eine Tabelle in einem relationalen Datenbanksystem besteht aus einer Zeile mit Spaltenüberschriften sowie aus null oder mehr Zeilen mit Datenwerten. Für eine bestimmte Tabelle gibt die Zeile mit den Spaltenüberschriften einen bestimmten Datentyp für die Dateneinträge in dieser Spalte an. Darüber hinaus enthält jede Datenzeile genau einen Datenwert für jede Spalte, die in der Zeile der Spaltenüberschriften aufgeführt ist. Die Zeilen einer relationalen Tabelle werden als unsortiert betrachtet. Die Zeilen können einer Sortierung unterzogen werden, wenn sie in Antwort auf eine Abfrage abgerufen werden. Im Gegensatz dazu werden die Spalten der Tabelle als von links nach rechts sortiert betrachtet. Eine Basis- oder Quellentabelle ist eine autonome, benannte Tabelle. Dies bedeutet, daß die Tabelle eigenständig existiert. Damit steht sie im Gegensatz zu einer Ansicht, die nicht eigenständig existiert, sondern aus einer oder mehreren Basistabellen abgeleitet ist.
  • In einem gemäß dem Stand der Technik ausgelegten relationalen Datenbanksystem wie z. B. DB2 ist es möglich, nur wenige Basistabellen zu erstellen und zu laden und anschließend die darin enthaltenen Daten sofort zu benutzen. Zu einem späteren Zeitpunkt können neue Basistabellen und neue Felder schrittweise hinzugefügt werden, ohne daß sie sich auf die vorhandenen Benutzer der Datenbank auswirken. Einzelheiten in bezug auf die Erstellung, Bearbeitung und Extraktion von Daten in einer relationalen Datenbank können der zuvor genannten Veröffentlichung "A Guide to DB2" von C.J. Date, insbesondere den Kapiteln 3-8, entnommen werden.
  • Das Aktualisierungsverfahren
  • Das Verfahren dieser Erfindung geht davon aus, daß jeder Datensatz in einer Relation mit einer eindeutigen Kennung, auch als Tupel-ID (TID) bezeichnet, versehen ist. Es geht ferner davon aus, daß eine Relation effizient in der Reihenfolge der Tupel-IDs durchsucht werden kann. Ferner ist zu beachten, daß die einem Datensatz zugeordnete Tupel-ID einem anderen Datensatz zugewiesen werden kann, nachdem der erstgenannte Datensatz aus der Datenbank gelöscht wurde (d. h., TIDs können wiederverwendet werden). Darüber hinaus wird angenommen, daß jeder Datensatz der Basistabelle aus einer vorbestimmten Anzahl von benutzerdefinierten Spalten (BEN.FELDER) sowie aus zwei zusätzlichen systemdefinierten Spalten besteht. Die systemdefinierten Spalten sind PREVTID und UID. In diesem Zusammenhang ist PREVTID die Tupelkennung (TID) des Datensatzes vor einem bestimmten Datensatz in der Basistabelle. Analog hierzu ist UID eine "Zeitmarke", die dem Zeitpunkt der letzten Änderung des Datensatzes entspricht. Wie bereits zuvor offenbart wurde, beinhaltet die Erfindung die periodische Aktualisierung einer Momentaufnahme einer Basistabelle unter Verwendung einer minimalen Datenmenge. Kern des damit im Zusammenhang stehenden Fortschritts ist die Definition zusätzlicher Spalten in der Basistabelle und die Sortierungen der darin enthaltenen Informationen.
  • Jeder Datensatz der Momentaufnahme ist eine Untergruppe der Benutzerfelder des Datensatzes in der Basistabelle. Die Tabelle mit der Momentaufnahme enthält eine zusätzliche Systemdefinierte Spalte, die Auskunft über die Tupel-ID des entsprechenden Datensatzes in der Basistabelle gibt (BASE TID). Aus diesem Grund ist ein effizienter Zugriff auf die Momentaufnahme in der Reihenfolge der BASE TIDs möglich. Dies kann mit Hilfe einer geclusterten Verbindung bzw. einem geclusterten Index erreicht werden.
  • Die Basistabelle wird von normalen Benutzeranwendungen fortgeschrieben. Die zusätzlichen Spalten in der Basistabelle werden von dem Auffrischungsverfahren verwendet. Wenn der Wert in beiden zusätzlichen Spalten Null ist, wurde der Datensatz seit der letzten Auffrischung eingefügt. Lautet der Wert in der UID-Spalte allein Null, wurde der Datensatz seit der letzten Auffrischung aktualisiert. Enthält PREVTID nicht die TID des vorherigen Datensatzes, sondern eine andere gültige TID, wurden vor diesem Datensatz einige Löschungen oder Einfügungen durchgeführt.
  • Bei der Auffrischung wird vom Standort (oder Knoten) der Momentaufnahme aus eine Anforderung, die einen Wert für SNAPHIGH enthält, an den Standort (oder Knoten) der Basistabelle übermittelt. Dieser Wert ist der höchste UID-Wert, der an dem Standort der Momentaufnahme in irgendeinem, aus der Basistabelle empfangenen Datensatz während aller vorherigen Auffrischungen der Momentaufnahme aufgetreten ist. In Antwort darauf wird am Standort der Basistabelle eine Folge von Nachrichten generiert, die aus einer Anzahl von Tupeln mit dem folgenden Format bestehen:
  • < Ben.felder> , < Basistabelle TID> , < vorh. TID in Momentaufnahme), < UID>
  • In der obigen Verwendungsform sind < Ben.felder> solche Felder der Basistabelle, die von der Momentaufnahme verwendet werden, und < Basistabelle TID> ist die Tupel-ID, die den Benutzerfeldern dieses Datensatzes in der Basistabelle entspricht, < vorh. TID in Momentaufnahme> ist die Tupel-ID des letzten Datensatzes in der Basistabelle, der ebenfalls in der Momentaufnahme erscheint, und < UID> ist der Wert dieser Spalte für den betreffenden Datensatz in der Basistabelle.
  • Ein Datensatz aus der Basistabelle erscheint in der Nachricht, die an den Standort der Momentaufnahme zu übermitteln ist, wenn (1) der Datensatz zu der Momentaufnahme gehört, und (2) er ein UID aufweist, das höher als alle vorherigen UIDs am Standort der Momentaufnahme ist, oder wenn es wahrscheinlich ist, daß einige Löschungen vor diesem Datensatz seit der letzten Auffrischung dieser Momentaufnahme durchgeführt wurden.
  • Die Schritte des am Standort der Basistabelle ausführbaren Verfahrens beinhalten ein sequentielles Ordnen der Basistabelle in TID-Folge. Für jeden Datensatz wird festgestellt, ob dieser betreffende Datensatz entweder eingefügt oder aktualisiert wurde, und ob irgendwelche Datensätze unmittelbar vor diesem Satz gelöscht wurden. In irgendeinem dieser Fälle (Einfügen, Aktualisieren, Löschen) wird diesem Datensatz eine neue, höhere UID als vor dieser Auffrischung zugeordnet. Wenn der Datensatz aktualisiert wurde oder wenn Datensätze vor diesem Satz gelöscht wurden, muß das Lösch-Flag (DELETE) auf ON gesetzt werden. Dadurch wird angegeben, daß möglicherweise Datensätze aus der Momentaufnahme gelöscht wurden. Nebenbei bemerkt können Aktualisierungen in einer Basistabellen-Relation zu einer Löschung aus der Momentaufnahme führen, da der Datensatz nicht mehr die Kriterien für eine Berücksichtigung in der Momentaufnahme erfüllt. Im nächsten Schritt wird das Feld PREVTID auf Korrektheit überprüft und dann festgestellt, ob der Datensatz übermittelt werden soll. D.h. es wird gefragt, ob der Datensatz zur Momentaufnahme gehört. Ist dies der Fall, ist die UID des Datensatzes höher als SNAPHIGH, oder ist das Lösch-Flag auf ON gesetzt? Wenn die UID höher oder das Lösch-Flag auf ON gesetzt ist, wird der Datensatz in die Nachricht aufgenommen.
  • An der Position der Momentaufnahme wird eine von der Position der Basistabelle empfangene Nachricht Satz für Satz verarbeitet. Für jeden Tupel in der Nachricht werden in den Verfahrensschritten zuerst alle Datensätze aus der Momentaufnahme gelöscht, deren Wert im BASE TID-Feld zwischen < vorh. TID in Momentaufnahme> und < Basistabelle TID> in dem Nachrichtentupel liegt. Wenn dieser Tupel bereits in der Momentaufnahme vorhanden ist, werden seine Benutzerfelder aktualisiert, falls sie sich geändert haben. Ist der Tupel nicht vorhanden, wird er in die Momentaufnahme eingefügt.
  • Fig. 2 und 3 enthalten eine Pseudocode-Darstellung der Verarbeitungen in der Basistabelle und der Momentaufnahme gemäß dem Verfahren dieser Erfindung. Fig. 2 zeigt den detaillierten Prozedurablauf in der Basistabelle in Antwort auf eine Anforderung zur Aktualisierung der Momentaufnahmetabelle. Dazu gehört das Durchsuchen der Basistabelle in aufsteigender TID-Folge und das Ermitteln inkrementeller Änderungen, die z. B. durch das Einfügen, Löschen oder Modifizieren von Zeilen herbeigeführt wurden. Änderungen werden in Form von Änderungen in der Sortierung der TID- oder TS-Werte oder Änderungen in der rückwärtsgerichteten Verkettung von PREVTID erfaßt. Für das Durchsuchen der Basistabelle sind nicht mehr als eine Gruppe von geschachelten bedingten Anweisungen des Typs "if then else" erforderlich, mit denen festgestellt wird, ob Anomalien in der Sortierung oder Verkettung aufgetreten sind. Bei diesem einfachen Durchsuchen der Basistabelle in aufsteigender TID-Folge werden die Änderungen identifiziert, die dann an den Standort der Momentaufnahme übermittelt werden.
  • In Fig. 3 ist der an der Position der Momentaufnahme ausgeführte Code aufgeführt. An dieser Stelle wird ein einzelner sprungsequentieller Mischlauf in der Momentaufnahme in BASE TID-Reihenfolge durchgeführt, um die inkrementellen Änderungen festzuschreiben. Dadurch wird die Momentaufnahme aufgefrischt und weist den angeforderten, aktuellen Zustand auf. Dieser sprungsequentielle Mischlauf kann durch Verwendung eines Cluster-Index in der BASE TID noch effizienter gestaltet werden.
  • Anschauungsbeispiele
  • Das folgende erweiterte Beispiel veranschaulicht die Art, in der das Verfahren den Status der Basistabelle fortschreibt, die Nachrichten verarbeitet und die Nachrichten in der Tabelle der Momentaufnahme festgeschrieben werden. In diesem Beispiel setzt sich die Basistabelle aus zwei Datenspalten oder -feldern und zwei Steuerspalten oder -feldern zusammen. Die Bezeichnungen der Datenspalten oder -felder der Basistabelle lauten NAME und LOC. Sie kennzeichnen den Namen und den Standort einer Person. Die Bezeichnungen der Steuerspalten oder -felder der Basistabelle lauten PREV und TIME. Diese stehen für die Adresse des vorherigen Datensatzes in der Basistabelle und den Zeitpunkt, zu dem die Basistabelle gemäß der Ausführung des Verfahrens dieser Erfindung aktualisiert wurde. In diesem Beispiel werden zwei Tabellen mit Momentaufnahmen verwendet. Die Namen dieser Tabellen lauten SINKALL und SINKSJ. Die Tabellen der Momentaufnahmen enthalten jeweils zwei Datenspalten oder -felder, die den Spalten oder Feldern in der Basistabelle entsprechen, sowie eine Steuerspalte (bzw. ein Steuerfeld). Die Namen der Spalten oder Felder lauten NAME, LOC und ADR. Die letzte Spalte bzw. das letzte Feld gibt die Adresse des entsprechenden Datensatzes in der Basistabelle an. Die Momentaufnahme SINKALL wird aktualisiert, damit sie den gesamten Inhalt der Basistabelle widerspiegelt, während die Momentaufnahme SINKSJ aktualisiert wird, damit sie die Untergruppe der Basistabelle widerspiegelt, die den Datensätzen in der Basistabelle entspricht, in denen LOC = "SJ" ist.
  • In den folgenden Darstellungen werden die nachstehenden Abkürzungen zur Angabe der Gründe für die von dem Algorithmus ausgeführten Aktionen benutzt.
  • Gründe für Aktualisierungen in der Basistabelle
  • SU1 &rarr; Basistabellen-Satz, der seit der letzten Auffrischung der Basistabelle eingefügt wurde (PREV = null)
  • SU2 &rarr; einer oder mehrere der vorhergehenden Sätze seit der letzten Auffrischung der Basistabelle wurden gelöscht) PREV&sub1; = erwartet PREV)
  • SU3 &rarr; Einfügung vor dem aktuellen Datensatz seit der letzten Auffrischung der Basistabelle (PREV&sub1;= tatsächlich PREV)
  • SU4 &rarr; Datensatz seit der letzten Auffrischung der Basistabelle aktualisiert (PREV&sub1; = null & TIME = null)
  • Gründe für die Übertragung von Änderungen in die Momentaufnahmetabellen (entweder SINKALL oder SINKSJ)
  • TC1 &rarr; Datensatz wurde seit der letzten Auffrischung der Momentaufnahme geändert und Datensatz fällt in die Momentaufnahme-Einschränkung (TIME > SINK Zeit)
  • TC2 &rarr; Löschung in der Basistabelle ermittelt (nicht bekannt, ob Momentaufnahme betroffen ist)
  • TC3 &rarr; Tabellenende in Basistabelle, muß letzten Datensatz angeben, der bekanntermaßen in der Momentaufnahme ist, um Löschungen am Ende der Basistabelle widerzuspiegeln.
  • Gründe für die Einbringung von Änderungen in die Momentaufnahmetabellen (SINKALL oder SINKSJ)
  • CS1 &rarr; muß Datensatz in Momentaufnahme löschen
  • CS2 &rarr; muß Datensatz in Momentaufnahme aktualisieren
  • CS3 &rarr; muß Datensatz in Momentaufnahme einfügen
  • Die folgende Darstellung zeigt den Anfangszustand der Basistabelle, deren Datensätze sich an den angegebenen Adressen befinden, welche die aufgeführten Werte haben: Adr NAME LOC PREEV TIME
  • Als nächstes soll die Momentaufnahmetabelle SINKALL zum Zeitpunkt T1 gemäß dem Verfahren der Erfindung aktualisiert werden. Die vorherige Auffrischungszeit für die SINKALL-Tabelle lautet T0.
  • Im folgenden werden (1) die Aktionen und Gründe für die Aktionen in der Basistabelle und (2) die Aktionen und Gründe für die Aktionen in der Momentaufnahmetabelle beschrieben. Das Format des an die Momentaufnahmetabelle gesendeten Änderungssatzes sieht folgendermaßen aus:
  • Xmit (< 'Werte von 'normalen' Feldern des Momentaufnahme- Satzes'> ,
  • Adresse dieses Datensatzes in der Basistabelle Basistabellenadresse des vorherigen Datensatzes in der Momentaufnahmetabelle
  • Auffrischung von SINKALL
  • Zeitpunkt der Auffrischung = T1
  • Letzte Auffrischung von SINKALL = T0 Basistabelle fpr Auffrischung Adr NAME LOC PREV TIME Basistabelle nach Auffrischung SINKALL vpr Auffrischung NAME LOC ADR SINKALL nach Auffrischung
  • Im nächsten Schritt wird die Tabelle SINKSJ mit dem Verfahren gemäß dieser Erfindung aktualisiert. Der Zeitpunkt der Auffrischung ist T2, während der Zeitpunkt der letzten Auffrischung für SINKSJ T0 ist. Zu beachten ist, daß keine Aktualisierungen in der Basistabelle vorgenommen werden, da keine Basistabellen-Aktualisierungen seit der letzten Ausführung des Auffrischungsverfahrens stattgefunden haben. Zu beachten ist außerdem, daß nur Datensätze, die in der eingeschränkten Tabelle SINKSJ erscheinen, übertragen werden und daß der übertragene, "letzte Wert in der Tabelle der Momentaufnahme" entsprechend angepaßt wird.
  • Auffrischung von SINKSJ
  • Zeitpunkt der Auffrischung = T2
  • Letzte Auffrischung von SINKSJ = T0 Basistabelle vor Auffrischung Adr NAME LOC PREV TIME Basistabelle nach Auffrischung SINKALL vor Auffrischung NAME LOC ADR SINKALL nach Auffrischung
  • Als nächstes wird die Basistabelle wie folgt aktualisiert:
  • Aktualisieren von Bruce an Adresse 10 mit LOC = NY
  • Einfügen von Georg an Adresse 15 mit LOC = SJ
  • Löschen von Laura an Adresse 30
  • Der Inhalt der Basistabelle sieht nun folgendermaßen aus: Basistabelle zum Zeitpunkt T3 Adr NAME LOC PREV TIME
  • Danach wird die Tabelle SINKALL zum Zeitpunkt T3 mit Hilfe des differentiellen Auffrischungsverfahrens aktualisiert. Der vorherige Auffrischungszeitpunkt für die Tabelle SINKALL lautet T1.
  • Auffrischung von SINKALL
  • Zeitpunkt der Auffrischung = T3
  • Letzte Auffrischung von SINKALL = T1 Basistabelle vor Auffrischung Adr NAME LOC PREV TIME Basistabelle nach AuffrischungSINKALL vor Auffrischung NAME LOC ADR SINKALL nach Auffrischung
  • Als nächstes wird die Tabelle SINKSJ mit Hilfe des differentiellen Auffrischungsverfahrens aktualisiert. Der Zeitpunkt der Aktualisierung ist T4, und der Zeitpunkt der letzten Auffrischung für SINKSJ ist T2.
  • Auffrischung von SINKSJ
  • Zeitpunkt der Auffrischung = T4
  • Letzte Auffrischung von SINKSJ = T2 Basistabelle vor Auffrischung Adr NAME LOC PREV TIME Basistabelle nach Auffrischung SINKSJ vor Auffrischung NAME LOC ADR SINKSJ nach Auffrischung
  • Als nächstes wird die Basistabelle wie folgt aktualisiert:
  • Bruce an Adresse 10 löschen
  • Paul an Adresse 10 mit LOC = SJ einfügen
  • Bob an Adresse 20 löschen
  • Guy an Adresse 17 mit LOC = NY einfügen
  • Ron an Adresse 30 mit LOC = SJ einfügen
  • Der Inhalt der Basistabelle sieht nun folgendermaßen aus: Basistabelle zum Zeitpunkt T5 Adr NAME LOC PREV TIME
  • In diesem Durchlauf wird die Tabelle SINKSJ zuerst mit Hilfe des differentiellen Auffrischungsverfahrens aktualisiert. Der Zeitpunkt der Auffrischung ist T5, und der Zeitpunkt der letzten Auffrischung für SINKSJ ist T4. Basistabelle vor Auffrischung Adr NAME LOC PREV TIME Basistabelle nach Auffrischung SINKSJ vor Auffrischung NAME LOC ADR SINKSJ nach Auffrischung
  • Im nächsten Schritt wird die Tabelle SINKALL zum Zeitpunkt T6 mit Hilfe des differentiellen Auffrischungsverfahrens aktualisiert. Der Zeitpunkt der letzten Auffrischung für die Tabelle SINKALL lautet T3.
  • Auffrischung von SINKALL
  • Zeitpunkt der Auffrischung = T6
  • Letzte Auffrischung von SINKALL = T3 Basistabelle vor Auffrischung Adr NAME LOC PREV TIME Basistabelle nach Auffrischung SINKALL vor Auffrischung NAME LOC ADR SINKALL nach Auffrischung
  • Vorteile des Verfahrens
  • Obgleich die Erfindung insbesondere unter Bezugnahme auf ein bevorzugtes Ausführungsbeispiel beschrieben wurde, sollte aus der vorstehenden Ausführungen erkennbar geworden sein, daß ihr Unterschied gegenüber dem Stand der Technik in der Verwendung einer nur minimalen Datenmenge zur Auffrischung der Momentaufnahmetabelle besteht. Darüber hinaus wird mit dem Verfahren die Anzahl von Tabellenänderungen stark reduziert. Somit wird ein Tupel nur übertragen, wenn der Tupel aktualisiert oder eingefügt wurde, oder wenn der Tupel auf einen oder mehrere gelöschte Tupel in der Basistabelle folgt. Dies hat zudem den Vorteil, daß die Anzahl der zu protokollierenden Änderungen minimiert wird, die Nachrichtenlänge verkürzt wird und weniger Änderungen in den Momentaufnahmetabellen erforderlich sind. Ein weiterer Aspekt dieses Verfahrens besteht darin, daß normale, nicht der Auffrischung dienende Aktionen sowohl in den Momentaufnahme- als auch in den Basistabellen nur wenig oder keinen Rechenaufwand verursachen. Dies bedeutet beispielsweise, daß kein Rechenaufwand entsteht, wenn Momentaufnahmen gelesen oder die Basistabelle gelesen bzw. Datensätze in die Basistabelle eingefügt oder aus ihr gelöscht werden. Ebenso braucht für Aktualisierungen in der Basistabelle nur ein zusätzliches Feld geschrieben zu werden.
  • Bei diesem Auffrischungsverfahren werden während der Auffrischungsoperation effiziente Zugriffspfade in den Momentaufnahme- und Basistabellen genutzt. In der Basistabelle kann ein sequentielles Durchsuchen der Relation, d. h. in TID-Reihenfolge, zur Isolierung der Änderungen für die Kopie der Momentaufnahme verwendet werden. In der Momentaufnahme gestattet entweder eine geclusterte Verbindung oder ein geclusterter Index für BASE TID den Zugriff auf die benötigten Datensätze der Momentaufnahme während der Auffrischung. Wenn der bei jeder Auffrischung zu aktualisierende Teil der Momentaufnahme klein ist, dürfte ein geclusterter Index von Vorteil sein.
  • Das beschriebene Verfahren gestattet auch die Wartung mehrerer Momentaufnahmetabellen, die aus derselben Quellentabelle abgeleitet wurden. Der Wartungsaufwand für die Steuerfelder der Quellentabelle amortisiert sich über die verschiedenen, voneinander abhängigen Momentaufnahmen. Aktualisierungen in den Steuerfeldern während der Auffrischung einer Momentaufnahme brauchen zur Auffrischung einer zweiten Momentaufnahme nicht wiederholt zu werden. Außerdem kann bei diesem Verfahren jede Momentaufnahmetabelle eine unterschiedliche Untergruppe aus der Basistabelle beinhalten.

Claims (3)

1. Ein Verfahren zur Aktualisierung einer erweiterbaren Mehrspaltentabelle (Momentaufnahmetabelle), die eine Untergruppe einer logisch unabhängigen, erweiterbaren Mehrspaltentabelle (Basistabelle) in einem Knotennetzwerk eines verteilten relationalen Datenbanksystems darstellt, wobei jedem Zeileneintrag in der Basistabelle eine eindeutige Kennung (Tupel-ID oder TID) zugeordnet ist und das Datenbanksystem über lokale Mittel zur Generierung von Zeitmarken (TS) in aufsteigender Reihenfolge bei Bedarf verfügt, wobei das Verfahren die folgenden Schritte umfaßt:
(a) Definieren einer Teilsortierung von Zeitmarken für die Zeilenaktualisierungen (Einfügungen, Löschungen, Modifikationen) in der Basistabelle, einer Gesamtsortierung für Zeileneintragskennungen und einer rückwärtsgerichteten Verkettung der Kennungen von benachbarten Zeileneinträgen;
(b) Durchsuchen der Basistabelle und Ermitteln der darin vorgenommenen Änderungen als Anomalien in bezug auf die Sortierungen oder Verkettungen; und
(c) Weiterleiten der Anomalien an die Momentaufnahmetabelle und Ändern ihres Inhalts mittels derselbigen.
2. Ein Verfahren gemäß Anspruch 1, welches die folgenden Schritte umfaßt:
(a) Definieren von Spaltenerweiterungen in der Basistabelle, so daß jedem Zeileneintrag eine Kennung (PREVTID) des vorherigen benachbarten Eintrags in der Hauptsortierung der Zeile und ein TS-Wert zugeordnet ist, der der letzten Änderung des Eintrags entspricht, wobei diese Erweiterungen eine Gesamtsortierung von Zeileneinträgen nach TID, eine Teilsortierung nach TS-Werten und eine rückwärtsgerichtete Verkettung nach PREVTID bilden;
(b) Definieren von Spaltenerweiterungen in der Momentaufnahmetabelle, so daß jeder Zeileneintrag eine Tupel-ID enthält, und Verknüpfen des höchsten, in der Basistabelle aufgezeichneten TS-Wertes mit der Momentaufnahmetabelle; und
(c) in Antwort auf eine Anforderung zur Aktualisierung der Momentaufnahmetabelle die zusätzlichen Schritte des:
(1) Durchsuchens der Basistabelle in aufsteigender TID- Folge und Ermitteln inkrementeller, darin vorgenommener Änderungen (Einfügen, Löschen und Modifikation von Zeilen), die durch Änderungen in der Sortierung oder in der rückwärtsgerichteten Verkettung manifestiert wurden; und
(2) Weiterleitens und Einbringens der ermittelten Änderungen in die Momentaufnahmetabelle durch einen sprungsequentiellen Mischlauf in aufsteigender TID-Folge.
3. Ein Verfahren gemäß Anspruch 2, in dem durch Weiterleitung und Einbringung der ermittelten Änderungen in die Momentaufnahmetabelle mit Hilfe eines sprungsequentiellen Mischlaufs in aufsteigender TID-Folge dieser sprungsequentielle Mischlauf so modifiziert wird, daß dabei entweder eine geclusterte Verbindung oder ein geclusterter Index zum Einsatz kommt.
DE86100034T 1985-01-22 1986-01-02 Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation. Expired - Fee Related DE3688529T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/693,500 US4631673A (en) 1985-01-22 1985-01-22 Method for refreshing multicolumn tables in a relational data base using minimal information

Publications (2)

Publication Number Publication Date
DE3688529D1 DE3688529D1 (de) 1993-07-15
DE3688529T2 true DE3688529T2 (de) 1993-12-23

Family

ID=24784922

Family Applications (1)

Application Number Title Priority Date Filing Date
DE86100034T Expired - Fee Related DE3688529T2 (de) 1985-01-22 1986-01-02 Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation.

Country Status (5)

Country Link
US (1) US4631673A (de)
EP (1) EP0189031B1 (de)
JP (1) JPS61170842A (de)
CA (1) CA1238983A (de)
DE (1) DE3688529T2 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888690A (en) * 1985-01-11 1989-12-19 Wang Laboratories, Inc. Interactive error handling means in database management
US5097408A (en) * 1985-01-11 1992-03-17 Wang Laboratories, Inc. Apparatus for specifying a result relation in a relational database system by selection of rows
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US5047918A (en) * 1985-12-31 1991-09-10 Tektronix, Inc. File management system
US4918593A (en) * 1987-01-08 1990-04-17 Wang Laboratories, Inc. Relational database system
GB2203573A (en) * 1987-04-02 1988-10-19 Ibm Data processing network with upgrading of files
US4791561A (en) * 1987-04-17 1988-12-13 Wang Laboratories, Inc. Interactive construction of means for database maintenance
US5381555A (en) * 1987-05-18 1995-01-10 The Larches Corporation Method for designation of data in a data bank and extraction of data for use in a computer program
US5008819A (en) * 1987-10-07 1991-04-16 Gorbatenko George G Memory spaced array
WO1989003567A1 (en) * 1987-10-09 1989-04-20 Nucleus International Corporation A relational database using identifiers
EP0320266A3 (de) * 1987-12-11 1992-03-11 Hewlett-Packard Company Zusammensetzung von Ansichten in einem Datenbankverwaltungssystem
US5093782A (en) * 1987-12-14 1992-03-03 Texas Instruments Incorporated Real time event driven database management system
US5142674A (en) * 1988-03-08 1992-08-25 International Business Machines Corporation Interchange object data base index which eliminates the need for private copies of interchange documents files by a plurality of application programs
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US5043872A (en) * 1988-07-15 1991-08-27 International Business Machines Corporation Access path optimization using degrees of clustering
US5175849A (en) * 1988-07-28 1992-12-29 Amdahl Corporation Capturing data of a database system
US4937760A (en) * 1988-09-19 1990-06-26 International Business Machines Corporation Method for sharing common values implicitly among communicating generative objects
EP0360387B1 (de) * 1988-09-23 1996-05-08 International Business Machines Corporation Datenbankverwaltungssystem
US5136707A (en) * 1988-10-28 1992-08-04 At&T Bell Laboratories Reliable database administration arrangement
JPH03130874A (ja) * 1989-10-17 1991-06-04 Fujitsu Ltd リレーショナル・データベースの検索処理方式
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US5386553A (en) * 1990-10-10 1995-01-31 Fuji Xerox Co., Ltd. Disk file updating control device and method using updating data stored in a first-in-first-out queue
US5129152A (en) * 1990-12-20 1992-07-14 Hughes Aircraft Company Fast contact measuring machine
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
US5317731A (en) * 1991-02-25 1994-05-31 International Business Machines Corporation Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5333316A (en) * 1991-08-16 1994-07-26 International Business Machines Corporation Locking and row by row modification of a database stored in a single master table and multiple virtual tables of a plurality of concurrent users
WO1995008809A2 (en) * 1993-09-24 1995-03-30 Oracle Corporation Method and apparatus for data replication
US5553279A (en) * 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5440735A (en) * 1993-10-08 1995-08-08 International Business Machines Corporation Simplified relational data base snapshot copying
US5613113A (en) * 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
US5666524A (en) * 1994-08-31 1997-09-09 Price Waterhouse Llp Parallel processing system for traversing a transactional database
US5826020A (en) * 1994-09-30 1998-10-20 Hewlett-Packard Co. Workflow real time intervention
US5689705A (en) * 1995-02-13 1997-11-18 Pulte Home Corporation System for facilitating home construction and sales
US5995980A (en) * 1996-07-23 1999-11-30 Olson; Jack E. System and method for database update replication
US6374232B1 (en) * 1996-08-29 2002-04-16 Oracle Corp. Method and mechanism for retrieving values from a database
US5826258A (en) * 1996-10-02 1998-10-20 Junglee Corporation Method and apparatus for structuring the querying and interpretation of semistructured information
US5873098A (en) * 1997-04-23 1999-02-16 Oracle Corporation Dynamic snapshot set adjustment
US5963959A (en) * 1997-05-30 1999-10-05 Oracle Corporation Fast refresh of snapshots
US6289335B1 (en) * 1997-06-23 2001-09-11 Oracle Corporation Fast refresh of snapshots containing subqueries
US6539378B2 (en) 1997-11-21 2003-03-25 Amazon.Com, Inc. Method for creating an information closure model
US6192444B1 (en) * 1998-01-05 2001-02-20 International Business Machines Corporation Method and system for providing additional addressable functional space on a disk for use with a virtual data storage subsystem
US6532479B2 (en) * 1998-05-28 2003-03-11 Oracle Corp. Data replication for front office automation
US7162689B2 (en) 1998-05-28 2007-01-09 Oracle International Corporation Schema evolution in replication
US6529904B1 (en) * 1998-05-28 2003-03-04 Oracle Corp. Deployment of snapshots with parameterized data description language strings
US6847971B1 (en) * 1998-05-28 2005-01-25 Oracle International Corporation Lightweight data replication
US6792540B1 (en) 1998-05-28 2004-09-14 Oracle International Corporation Data replication security
US6339768B1 (en) 1998-08-13 2002-01-15 International Business Machines Corporation Exploitation of subsumption in optimizing scalar subqueries
US6334128B1 (en) * 1998-12-28 2001-12-25 Oracle Corporation Method and apparatus for efficiently refreshing sets of summary tables and materialized views in a database management system
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6694335B1 (en) * 1999-10-04 2004-02-17 Microsoft Corporation Method, computer readable medium, and system for monitoring the state of a collection of resources
US6532476B1 (en) 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US6529917B1 (en) 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
US6694337B1 (en) * 2000-10-26 2004-02-17 Intel Corporation Synchronizing databases
US7149759B2 (en) 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
US7337351B2 (en) * 2002-09-18 2008-02-26 Netezza Corporation Disk mirror architecture for database appliance with locally balanced regeneration
AU2003267284A1 (en) 2002-09-18 2004-04-08 Netezza Corporation Disk mirror architecture for database appliance
CA2414983A1 (en) * 2002-12-23 2004-06-23 Ibm Canada Limited-Ibm Canada Limitee Independent deferred incremental refresh of materialized views
US20050187888A1 (en) * 2004-02-19 2005-08-25 William Sherman Method for associating information pertaining to a meter data acquisition system
US8688634B2 (en) * 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US7490083B2 (en) 2004-02-27 2009-02-10 International Business Machines Corporation Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates
US7213103B2 (en) * 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
WO2006081953A1 (en) * 2005-02-01 2006-08-10 Nokia Siemens Networks Gmbh & Co. Kg Method for mirroring relational data
US8495015B2 (en) * 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US20070027938A1 (en) * 2005-07-26 2007-02-01 Scribe Software Inc. Detecting data changes
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US9690790B2 (en) * 2007-03-05 2017-06-27 Dell Software Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
US8341134B2 (en) 2010-12-10 2012-12-25 International Business Machines Corporation Asynchronous deletion of a range of messages processed by a parallel database replication apply process
EP2780796B1 (de) 2011-11-18 2019-01-02 Dell Software Inc. Verfahren und system für zusammenführung, speicherung und abruf inkrementell gesicherter daten
US8700569B1 (en) 2012-05-09 2014-04-15 Bertec Corporation System and method for the merging of databases
US9043278B1 (en) 2012-05-09 2015-05-26 Bertec Corporation System and method for the merging of databases
US8543540B1 (en) 2012-05-09 2013-09-24 Bertec Corporation System and method for the merging of databases
US10601918B2 (en) 2013-08-29 2020-03-24 Pure Storage, Inc. Rotating inactive storage units in a distributed storage network
US10484474B2 (en) 2013-08-29 2019-11-19 Pure Storage, Inc. Rotating offline DS units
US9661074B2 (en) 2013-08-29 2017-05-23 International Business Machines Corporations Updating de-duplication tracking data for a dispersed storage network
US9727625B2 (en) 2014-01-16 2017-08-08 International Business Machines Corporation Parallel transaction messages for database replication
US11080257B2 (en) * 2019-05-13 2021-08-03 Snowflake Inc. Journaled tables in database systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1054725A (de) 1964-04-06
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system

Also Published As

Publication number Publication date
EP0189031A2 (de) 1986-07-30
EP0189031B1 (de) 1993-06-09
US4631673A (en) 1986-12-23
JPS61170842A (ja) 1986-08-01
CA1238983A (en) 1988-07-05
DE3688529D1 (de) 1993-07-15
EP0189031A3 (en) 1989-11-23
JPH0444982B2 (de) 1992-07-23

Similar Documents

Publication Publication Date Title
DE3688529T2 (de) Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation.
DE60121231T2 (de) Datenverarbeitungsverfahren
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE69615230T2 (de) Relationales Datenbanksystem und Verfahren mit grosser Verfügbarkeit der Daten bei der Umstrukturierung von Tabellendaten
DE69128958T2 (de) Schneide- und Klebefilterung von unbegrenzten, dynamischen, unmodifizierbaren Datenströmen
DE69112694T2 (de) Verfahren zum Betrieb eines Datenverarbeitungssystems zur Ausführung von Datenbanktransaktionen.
DE68926422T2 (de) Datenbankverwaltungssystem
DE3382808T2 (de) Datenbankzugriffsverfahren mit einem benutzerfreundlichen Menü
DE60208778T2 (de) Datenstruktur für informationssysteme
DE3854667T2 (de) Datenbasissystem mit einer Baumstruktur.
EP0910829B1 (de) Datenbanksystem
DE69609862T2 (de) Datenbasiszugriff
DE68926849T2 (de) Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank
DE69425711T2 (de) Computerverfahren und -system zur Optimierung von Beta-Bäumen
DE69328227T2 (de) Abfrageoptimierungsverfahren für ein relationelles Datenbankverwaltungssystem
DE3853460T2 (de) Raumverwaltungsanordnung für das Datenzugriffssystem eines Dateizugriffsprozessors.
DE69408337T2 (de) Steuersystem einer relationellen datenbank gemäss einer objekt-orientierten logik, die die zugriffe auf die datenbank verringert, und entsprechendes verfahren
DE69229056T2 (de) Offene verzeichnis-datenbankansichten
DE68929132T2 (de) Datenbankverwaltungssystem und Verfahren hierfür
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE68916486T2 (de) Verfahren zur Durchführung von Operationen in einem relationalen Datenbankverwaltungssystem.
DE60220676T2 (de) Konsistente lesevorgänge in einer verteilten datenbankumgebung
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69328400T2 (de) Hilfsverfahren zur Abfrageoptimierung eines relationellen Datenbankverwaltungssystems und daraus resultierendes syntaktisches Analyseverfahren
DE68927142T2 (de) Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee