-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der
Erfindung
-
Diese
Erfindung betrifft allgemein Computeranwendungen, auf die gleichzeitig
durch viele Clients zugegriffen wird. Insbesondere bezieht sich
die vorliegende Erfindung auf ein Verfahren und ein System, was
vielen Clients erlaubt, gleichzeitig auf eine Datenbank zuzugreifen
und sie zu editieren.
-
Stand der
Technik
-
Eine
Datenbank ist eine logisch strukturierte Sammlung von Daten, organisiert
für einen
Zugriff durch einen menschlichen Benutzer, eine Softwareanwendung
oder eine maschinenbasierte logische Funktion und dafür von Nutzen
zu sein. Eine Datenbank wird allgemein in der Form eines Computerprogramms
oder einer Softwareanwendung verkörpert, die sich innerhalb einer
Speichereinrichtung befindet, kann aber auch einfach eine Menge
von Regeln zum Organisieren von und Zugreifen auf Daten auf eine nützliche
Art und Weise sein. Ein Datenbanksystem inkludiert einen Computer
zum Speichern und Manipulieren der Datenbank, Eingabe-/Ausgabe-
(E/A) Einrichtungen zum Eingeben von Daten und Anzeigen, oder anderweitig
Ausgeben, der Ergebnisse, und Kommunikations- oder Netzverknüpfungen,
um die verschiedenen Teile des Datenbanksystems miteinander zu verbinden.
Das Datenbanksystem kann man sich als das physische System (z.B.
Computerendgeräte,
Datenverknüpfungen,
E/A-Einrichtungen, Speicher etc.) vorstellen, während die Datenbank selbst
die Information darstellt, die zu speichern und manipulieren ist.
In der Praxis werden jedoch der Begriff Datenbank und der Begriff
Datenbanksystem häufig
austauschbar verwendet.
-
Ein
Datenbanksystem mit einer Datenbank ermöglicht, dass Daten zweckdienlich
gespeichert, abgefragt, manipuliert, mathematisch transformiert, kopiert
oder verknüpft
mit Daten innerhalb der gleichen Datenbank oder unterschiedlicher
Datenbanken oder Dateien werden. Dies wird durch Speichern von Datenindizes
und/oder Verweisinformation zusammen mit den Daten einer Datenbank
erreicht. Datenbanken werden typischerweise in permanenten oder
semi-permanenten Speichersystemen, die häufig nicht-flüchtiger
Speicher genannt werden, gespeichert, was Datenspeicherung ohne
eine nicht-unterbrochene Zuführung
von Energie ermöglicht.
Im Gegensatz dazu müssen
Daten in einem flüchtigen Speicher
eine kontinuierlich nicht-unterbrochene Zuführung von Energie aufweisen,
um Verlust von Daten zu vermeiden. US-Patent Nr. 5,745,905, erteilt
für Larsson
et al, welches Datenbankspeicherung in einem Speicher betrifft,
ist hierin durch Verweis in seiner Gesamtheit einbezogen.
-
Ein
Datenbanksystem kann für
eine Verwendung durch viele Benutzer konfiguriert sein. Z.B. kann
es ein Einzelhandelsgeschäft
nützlich
finden, eine Inventardatenbank zu unterhalten, die mit den Registrierkassen,
dem Lager und der Buchhaltung verknüpft ist. Eine Inventardatenbank
dieser Konfiguration kann ermöglichen,
dass verschiedene Aktivitäten
innerhalb des Geschäfts
gleichzeitig aktualisiert werden. Z.B. kann beim Auftreten eines
Verkaufs die Registrierkasse, die die Verkäufe aufzeichnet, die Einzelhandelsinventardatenbank
aktualisieren, um die Tatsache widerzuspiegeln, dass der Warenbestand
in dem Geschäft
um den Verkauf reduziert wurde. Wenn die Datenbank anzeigt, dass
der Warenbestand in dem Geschäft
unter ein gewisses Niveau abgefallen ist, wird das La ger, das auch
mit der Datenbank verknüpft
ist, aufgefordert, mehr Ware zu dem Geschäft zu liefern. Des weiteren
kann auch die Buchhaltung mit der Datenbank verknüpft sein,
um ihren Bargeldumlauf und Steuerschuldinformation basierend auf
der Information der Datenbank zu aktualisieren. Entsprechend kann
die Datenbank durch entweder die Registrierkasse, auf Durchführung eines
Verkaufs hin, das Lager, auf Empfang/Transfer von Gütern hin,
oder die Buchhaltung, auf das Auftreten einer Transaktion hin, aktualisiert
werden.
-
Die
Benutzer eines Datenbanksystems werden häufig als Clients bezeichnet.
Ein Datenbank-Client kann ein menschlicher Benutzer sein, der Datenbankdaten über eine
Computertastatur, einen digitalen Stift, einen Barcode-Lesestift,
ein Spracherkennungssystem oder dergleichen einträgt oder
modifiziert. Ein Datenbank-Client kann auch ein Sensor, Zähler, Detektor, Überwachungseinrichtung,
Computerprogramm oder Logik oder ein anderes ähnliches System sein, was zum
Generieren oder Modifizieren von Datenbankdaten fähig ist.
-
Ein
Datenbankmanager führt
Datenoperationen durch, wie etwa Transformieren des Wertes der Daten,
und Manipulieren der Daten durch Kopieren, Verschieben, Verknüpfen oder
anderweitiges Ändern des
Zustands der Daten. Eine andere wichtige Funktion des Datenbankmanagers
ist die Steuerung vom Zugriff zu der Datenbank. D.h. der Datenbankmanager
steuert den Client-Zugriff
zu Daten innerhalb einer Datenbank, inkludierend Steuerung vom gleichzeitigen
Client-Zugriff auf Daten in einer Mehrbenutzer-Datenbank. Ein Datenbankmanager
ist typischerweise ein Computerprogramm/Teilprogramm oder eine Softwareanwendung,
die eine Menge von Regeln oder Logik praktiziert, die Daten organisieren und
Zugriff zu den Daten innerhalb einer Datenbank begrenzen. In dem
vorliegenden Kontext wird der Begriff Datenbankmanager beim Verweis
auf den Computer oder eine physische Verarbeitungseinrichtung verwendet, innerhalb
dessen/derer sich die Datenbankmanagerfunktion oder Logik befindet.
-
1A–D veranschaulichen
einen Datenbankmanager 101 und Clients 102–106.
Der Datenbankmanager 101 wird in den Figuren in der Form
eines Dateiservers widergespiegelt. In der Praxis kann der Datenbankmanager 101 in
beliebigen von verschiedenen Typen von Computern oder Verarbeitungseinrichtungen
verkörpert
sein. Die Datenmanagerfunktion kann in dem gleichen Typ eines Computers
wie die Clients durchgeführt
werden. Die physische Konfiguration des Datenbankmanagers in Bezug
auf die Clients kann beliebige Formen annehmen, wie in 1A–D gezeigt.
Z.B. kann der Datenbankmanager 101 mit den Clients 102–106 in
der Buskonfiguration von 1A, der
Ringkonfiguration von 1B, der Sternkonfiguration von 1C oder der
Kommunikationsnetzkonfiguration von 1D verbunden
sein. In 1D kommuniziert der Datenbankmanager 101 mit
Datenbankclients 102–106 über ein
Kommunikationsnetz 90. Das Kommunikationsnetz 90 kann
das Internet, ein Intranet, ein Lokalbereichsnetz (LAN), das PSTN,
ein drahtloses Netz oder ein anderes ähnliches Netz für Kommunikationen
unter Knoten oder Benutzern sein.
-
Im
allgemeinen kann der Datenbankmanager entweder zentral angeordnet
sein, oder die Funktionen, die mit dem Datenbankmanager in Verbindung
stehen, können
unter verschiedenen Netzknoten, Ressourcen und/oder Datenbankclients
verteilt sein. Z.B. könnte
sich in beliebigen von 1A–D der Datenbankmanager entweder
nur in einem Computer befinden, wie etwa Computer 101,
oder die Funktionen, die mit dem Datenbankmanager in Verbindung
stehen, könnten
unter den Computern 101–106 verteilt sein.
In dem Fall eines verteilten Datenbankmanagers ist es wünschenswert,
ein etabliertes Schema für
Kommunikation unter den unterschiedlichen Abschnitten des Datenbankmanagers zu
haben, um Koordination von Datenbankmanageroperati onen zu ermöglichen.
Es wird hierin auf US-Patent Nr. 5,761,672 für Samuelson et al verwiesen,
das ein verteiltes Datenbanksystem betrifft. WO 98/59305 offenbart
Verfahren zum stückweisen Schreiben
von Daten in eine und Lesen von Daten aus einer Datenbank unter
Verwendung eines Zählers
zum Bestimmen, ob die gelesenen Daten fehlerhaft sind.
-
In
einer Mehrbenutzer-Datenbank können die
Clients Zugriff zu einer Datenbank von einem einzelnen Zugriffspunkt
zu unterschiedlichen Zeiten haben, oder mehrere Clients können gleichzeitig
auf die Datenbank auf einmal zugreifen. Der gleichzeitige Zugriff
auf eine Datenbank durch viele Clients kann zu Datenkorruption führen, d.h.
das unbeabsichtigte Überschreiben
oder die Modifikation von Daten eines Clients durch einen anderen
Client. Z.B. kann ein Client Daten editieren und sie sichern, wobei
die Modifikationen eines anderen Clients überschrieben werden. In dem
vorliegenden Kontext werden die Begriffe editieren und modifizieren
austauschbar verwendet, und inkludieren die Handlungen zum Löschen, Hinzufügen oder Ändern auf
eine beliebige Weise der Daten in einer Datenbank. Es ist ein Datenbankintegritätsschema
erforderlich, um Datenkorruption (Datenverfälschung) wegen gleichzeitigen
Datenbankoperationen durch viele Benutzer zu vermeiden, wobei die
vielen Benutzer die Daten der Datenbank editieren.
-
Ein
konventionelles Integritätsschema
involviert Begrenzung vom Zugriff für den Zweck zum Editieren der
Datenbank auf nur einen Client zu einem Zeitpunkt. Unter diesem
Schema wird nur einem Client gestattet, auf die Datenbank für die Zwecke
zum Durchführen
von Änderungen
an den Daten einer Datei oder eines Datensatzes der Datenbank zuzugreifen.
Anderen Clients kann gestattet werden, auf einen Datenbankdatensatz
oder eine Datei auf Nur-Lese-Basis zuzugreifen, ihnen wird aber
nicht erlaubt, die Datenbank zu editieren. Mit anderen Worten bleiben
alle außer
einem Client aus dem Datenbankdatensatz/der Datei für Bearbeitungszwecke ausgesperrt.
Während
ein derartiges Schema Integrität
der Datenbank sicherstellt, belastet es übermäßig die Nützlichkeit, ein Multi-Client-Datenbanksystem zu
haben.
-
Gemäß einem
anderen konventionellen Datenbankintegritätsschema wird ein neuer eindeutiger Identifikator
des Datensatzes, der gerade modifiziert wird, zugewiesen, wenn zwei
oder mehr Clients versuchen, den gleichen Datensatz gleichzeitig
zu editieren. Somit wird Multi-Benutzer-Editieren erlaubt, führt aber
zu vielen Versionen des Datenbankdatensatzes oder der gesamten Datenbankdatei.
Dieses Datenbankintegritätsschema
ist nachteilig, da es übermäßige Mengen
von Speicher wegen der Sicherung und Speicherung von vielen Versionen
der Datenbank erfordert. Außerdem
ist dieses Schema nicht tatsächlich
ein Multi-Benutzer-Datenbanksystem, da neue Iterationen oder Versionen
des gleichen Datensatzes oder der Datei jedes Mal gebildet werden, wenn
zwei oder mehr Clients danach streben, den gleichen Datensatz zu
modifizieren.
-
Deshalb
gibt es gegenwärtig
einen Bedarf nach einem verbesserten Verfahren zum Sicherstellen
von Datenbankintegrität
während
Multi-Benutzer-Editieren der Datenbank.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung stellt Datenbankintegrität sicher, während gleichzeitiger multipler
Clientzugriff zum Editieren der Datenbank erlaubt wird. Im allgemeinen
bewerkstelligt die vorliegende Erfindung dies durch Verwenden eines Änderungszählerwertes,
der den Modifikationsstatus von verschiedenen Datenbankdatensätzen verfolgt,
um eine Datenkorruptionssituation zu vermeiden. Entsprechend ist es
ein Ziel der vorliegenden Erfindung, ein Verfahren für viele
Clients vorzusehen, um ohne Datenkorruption auf Datensätze einer
Datenbank zuzugreifen und sie zu sichern.
-
In Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung werden die oben identifizierten
und andere Ziele für
einen ersten Client erreicht, der auf einen Datenbankdatensatz zugreift.
Auf Erlauben dem ersten Client hin, auf den Datenbankdatensatz zuzugreifen,
speichert ein Datenbankmanager einen Änderungszählerwert (CCV, change counter
value). Der CCV hat einen ersten Wert entsprechend dem Zustand der
Datenbank, wenn der erste Client auf den Datenbankdatensatz zugegriffen
hat. Falls eine modifizierte Version des Datenbankdatensatzes durch
einen zweiten Client gesichert wird, nachdem der erste Client auf
den Datensatz zugegriffen hat, wird der CCV inkrementiert. Falls
der erste Client danach strebt, den Datenbankdatensatz zu sichern,
verweigert von der Datenbankmanager die Anforderung des ersten Clients,
da der CCV-Wert geändert
ist, was anzeigt, dass der erste Client die Modifikationen des zweiten
Clients überschreiben
würde.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Andere
Ziele und Vorteile der vorliegenden Erfindung werden einem Fachmann
beim Lesen der folgenden detaillierten Beschreibung von bevorzugten
Ausführungsformen
in Verbindung mit den begleitenden Zeichnungen offensichtlich, worin
gleiche Bezugszeichen verwendet wurden, um gleiche Elemente zu bezeichnen,
und worin:
-
1A–D Computersystemkonfigurationen mit
einem Datenbankmanager sind, der mit vielen Clients verbunden ist;
-
2 eine
Multi-Benutzer-Datenbanksituation darstellt, die zur Korruption
(Beschädigung)
von Daten eines Clients innerhalb einer Datenbank führen kann;
-
3 die
Schritte darstellt, die mit einem Datenbanksynchronisationsverfahren
gemäß einer beispielhaften
Ausführungsform
der vorliegenden Erfindung in Verbindung stehen;
-
4 eine
Zahl von alternativen Operationen darstellt, die für einen
Client auf Verweigerung einer Erlaubnis hin verfügbar sind, um einen modifizierten
Datensatz zu sichern;
-
5 eine
Ausführungsform
darstellt, in der die alternativen Operationen, die für einen
Client verfügbar
sind, auf vorbestimmter Modifikationsautorisierung basieren; und
-
6 ein
Verfahren darstellt, welches eine Warnung vor einer potenziellen
Datenkorruptionssituation gemäß einer
alternativen Ausführungsform der
vorliegenden Erfindung vorsieht.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
2 stellt
eine Multi-Benutzer-Datenbanksituation dar, die zur Korruption von
Daten eines Clients innerhalb einer Datenbank führen kann. Zum Zeitpunkt t
= 1 greift Client A auf Datenbankdatensatz X zu. In dem vorliegenden
Kontext wird der Begriff "Datenbankdatensatz" beim Verweis auf
einen Abschnitt einer Datenbank, der gerade editiert wird, verwendet.
Ein Datenbankdatensatz kann so viel wie eine gesamte Datenbankdatei,
so wenig wie ein einzelnes Bit von Information oder ein beliebiger
anderer Abschnitt einer Datenbank sein. Zum Zeitpunkt t = 2 greift
Client B auf den gleichen Datenbankdatensatz (d.h. Datensatz X)
zu, der durch Client A noch nicht modifiziert und gesichert wurde.
Natürlich
kann in der Praxis Datenbankkorruption auch auftreten, wenn Client
B auf den Da tensatz X vor Client A zugreift (z.B. im Zeitpunkt t
= 0). Im Zeitpunkt t = 3 editiert, löscht oder modifiziert anderweitig
Client B den Datensatz X, und sichert danach die Modifikation. Weder
Client A noch Client B kennen beliebige Modifikationen an dem Datensatz
X durch den anderen, da Client A und Client B jeder mit Kopien des
Datensatzes X arbeiten, die zu ihnen im Zeitpunkt t = 1 bzw. Zeitpunkt
t = 2 heruntergeladen wurden.
-
Falls,
wie in 2 gezeigt, Client A Datensatz X im Zeitpunkt t
= 4 modifiziert, dann werden Modifikationen von Client B verloren
gehen, wenn Client A den modifizierten Datensatz X sichert. Die
Handlung von Client A, der den Datenbankdatensatz im Zeitpunkt t
= 4 sichert, löscht
beliebige Modifikationen aus, die Client B zuvor durchgeführt und
gesichert hat, da die Version des Datensatzes X, den Client A nun
editiert hat und gerade sichert, von Zeitpunkt t = 1 vor dem Zeitpunkt
t = 3 ist, als die Modifikationen von Client B gesichert wurden.
-
Ohne
ein etabliertes ausreichendes Datenbanksynchronisationsschema kommt
es zu Datenkorruption im Zeitpunkt t = 4, wenn Client A die neu modifizierte
Version vom Datensatz X sichert, wobei dadurch zuvor gesicherte
Modifikationen von Client B überschrieben
werden. Es ist wahrscheinlich, dass eine Datenbankkorruptionssituation
auftritt, wann immer viele Datenbank-Clients gleichzeitig Abschnitte der
gleichen Datenbankdaten editieren und sichern, was zu einander unbekannt
ist.
-
Überall in
dieser Beschreibung werden die Aktivitäten von Client A und Client
B im Sinne eines Zugriffs auf Datensatz X, und dann Editieren und
Sichern eines modifizierten Datensatzes X beschrieben. In der Tat
erstellt, wenn ein Client Editieren durchführt, der Client eine modifizierte
Version des Datensatzes X, auf die nur dieser Client Zugriff hat, bis
sie gesichert wurde. Wenn sie gesichert wurde, wird die modifizierte
Version des Datensatzes X der Datensatz X. Ein beliebiger Client,
der danach auf den Datensatz X zugreift, wird die zuvor modifizierte gesicherte
Version des Datensatzes X abrufen.
-
3 stellt
die Schritte dar, die mit dem Datenbanksynchronisationsverfahren
gemäß einer beispielhaften
Ausführungsform
der vorliegenden Erfindung in Verbindung stehen. In Schritt S10
strebt Client A danach, auf einen Datensatz einer Datenbank zuzugreifen,
z.B. Datensatz X. Der Client A kann danach streben, auf Datensatz
X zuzugreifen, durch Kontaktieren oder Anfordern von Erlaubnis von einem
Datenbankmanager, der Zugriff zu den Datenbankdatensätzen unter
verschiedenen vielen Clients steuert, die die Datenbank verwenden.
Z.B. kann der Client A eine Registrierkasse in einem Einzelhandelsgeschäft sein,
die auf die Inventardatenbank zugreift und sie aktualisiert, um
den Verkauf eines Gegenstandes widerzuspiegeln. Als ein alternativer Schritt
dafür oder
andere Ausführungsformen
muss der Client A nicht Erlaubnis anfordern, um auf den Datensatz
X zuzugreifen, in welchem Fall der Datenbankmanager einfach den
Zugriff des Clients überwacht,
während
Operationen durchgeführt
werden, um Datenintegrität
sicherzustellen.
-
In
Schritt S12 gemäß einer
beispielhaften Ausführungsform
gewährt
der Datenbankmanager Zugriff und beschafft oder lädt eine
Kopie des Datensatzes X zu Client A herunter, zusammen mit einem Änderungszählerwert
(CCV) für
den Datensatz X. Die Verwendung von CCV's sieht einen Mechanismus zum Verfolgen
des Modifikationsstatus von verschiedenen Datenbankdatensätzen vor.
Der CCV muss nicht eine tatsächliche
Zahl sein, sondern kann stattdessen ein beliebiger Wert sein, der
aufwärts oder
abwärts
inkrementiert, oder zu einem anderen Wert geän dert werden kann. Z.B. kann
der CCV ein Buchstabe des Alphabets, die Tageszeit oder Datum, die
Größe der Datei
oder des Datensatzes, die Zahl von Worten oder Buchstaben in dem
Datensatz, eine Paritätsprüfung oder
ein anderes ähnliches
Maß des Datenbankdatensatzes
sein. Der Veranschaulichung halber wird der CCV als ein numerischer
Wert in der vorliegenden Offenbarung beschrieben. Jedes Mal, wenn
ein Datensatz durch einen Client modifiziert und gesichert wird,
wird der Wert des CCV für
diesen Datensatz um eins inkrementiert. In dem in 3 veranschaulichten
Beispiel ist in dem Zeitpunkt, in dem Client A Zugriff auf den Datensatz
X gewährt wird,
der CCV = δc. Das erste Mal, wenn eine Modifikation
an dem Datensatz X gesichert wird, wird der Änderungszählerwert um eins zu einem Wert
von CCV = δc + 1 inkrementiert. Kurz gesagt dient der CCV
= δc als ein Bezugspunkt, der den Zustand vom Datenbankdatensatz
X in dem Zeitpunkt anzeigt, als Client A auf Datensatz X zugegriffen
hat.
-
Schritt
S14 repräsentiert
eine Zeitperiode, während
der Multi-Client-Datenbank-Editieren in dem Datensatz X stattfinden
kann. In Schritt S14 können
andere Clients als Client A den Datensatz X editieren und versuchen,
ihn zu sichern, nachdem der Datenbankmanager Datensatz X für Client
A in Schritt S12 beschafft hat. Für die Zwecke einer Bestimmung
einer potenziellen Datenkorruptionssituation gemäß der vorliegenden Erfindung
spielt es keine Rolle, ob die anderen Clients auf Datensatz X vor
Client A oder nach Client A zugegriffen haben. Es ist nur von Bedeutung,
dass die anderen Clients Modifikationen an dem Datensatz X folgend
Zugriff von Client A auf den Datensatz gesichert haben, wie durch
CCV = δc angezeigt, wie in der Situation vom Multi-Client-Datenbank-Editieren
von 2 dargestellt wird.
-
Gemäß der vorliegenden
Erfindung wird Client A in der Lage sein, den Datensatz X zu editieren und
dann die Änderungen
zu der Datenbank zu sichern, solange wie kein anderer Client Modifikationen
an dem Datensatz X nach dem Zeitpunkt gesichert hat, in dem Client
A auf den Datensatz X zugegriffen hat. Da der Zustand des Datensatzes
X durch Verweis auf den CCV bestimmt wird, kann der Datenbankmanager
Client A Erlaubnis gewähren,
den modifizierten Datensatz X für
solange wie CCV = δc ohne Verursachung von Datenkorruption zu
sichern. Da der CCV den gleichen Wert hat wie dann, als Client A
auf ihn für
den Zweck zum Durchführen
von Modifikationen zugegriffen hat, hat es keine anschließenden Modifikationen
gegeben, die zu Datensatz X gesichert wurden, was unbeabsichtigt
durch Modifikationen von Client A überschrieben würde. Mit
anderen Worten wird Client A Erlaubnis nur gewährt, den modifizierten Datensatz
X zu sichern, falls der entsprechende CCV für Datensatz X im Wert nicht geändert wurde,
seit der Client A auf den Datensatz X zugegriffen hat.
-
In
Schritt S16 strebt Client A, nachdem Modifikationen an dem Datensatz
X durchgeführt
wurden, nun danach, den modifizierten Datensatz X zu sichern. Vor
einer Sicherung des modifizierten Datensatzes X fordert Client A
Erlaubnis von dem Datenbankmanager an, den Datensatz zu sichern.
Falls Client A gestattet wird, den modifizierten Datensatz X zu
diesem Zeitpunkt zu sichern, und ein anderer Client Modifikationen
von Datensatz X anschließend
zu CCV = δc gesichert hat (als Client A auf den Datensatz
X zugegriffen hat), wird es dann zu Datenkorruption kommen, da die
Modifikationen des anderen Clients durch Client A überschrieben
würden.
-
Um
Datenkorruption zu vermeiden, vergleicht der Datenbankmanager den
gegenwärtigen Wert
von CCV mit δc in Verbindung mit Schritt S18, um zu ermitteln,
ob Datensatz X anschließend
zum Zugriff von Client A auf den Datensatz X in Schritt S12 modifiziert
wurde. Falls in Übereinstimmung
mit dem Pfad "JA" aus Schritt S18
heraus der Datenbankmanager bestimmt, dass CCV = δc ist,
fährt das Verfahren
zu Schritt S20 fort und Client A wird Erlaubnis gewährt, den
modifizierten Datensatz X zu sichern. Falls andererseits in Übereinstimmung
mit dem Pfad "NEIN" aus Schritt S18
heraus der Datenbankmanager bestimmt, dass CCV > δc ist, fährt
das Verfahren zum Schritt S22 fort und Client A wird keine Erlaubnis
gewährt,
den modifizierten Datensatz X zu sichern. In Schritt S22 führt die
Bestimmung, dass CCV > δc ist,
zu einer Verweigerung der Option, den modifizierten Datensatz X
durch Client A zu sichern.
-
In
Schritt S24 wird eine Fehlermeldung zu Client A gesendet, die den
Client A informiert, dass seine Anforderung, den modifizierten Datensatz
X zu sichern, verweigert wurde. Falls der Client eine Anzeige verwendet,
z.B. einen Computerbildschirm, eine Anzeige eines zellularen Telefons,
einen Fernsehmonitor etc., kann eine beispielhafte Form der Fehlermeldung
von Schritt S24 wie folgt sein:
FEHLER: ERLAUBNIS ZUM SICHERN
VON DATENSATZ X WIRD VERWEIGERT.
DATENSATZ X WURDE NACH ZUGRIFF
DURCH CLIENT A MODIFIZIERT.
-
Alternativ
könnte
die Fehlermeldung auf eine beliebige äquivalente Art und Weise übermittelt
werden, die einem Fachmann bekannt ist. Derartige Entsprechungen
inkludieren einen Ausdruck, ein hörbares System oder ein anderes ähnliches
Signalisierungsverfahren oder eine Vorrichtung. Beim Informieren
des Clients A durch Anzeige der Fehlermeldung oder ein anderes Signalisierungsmittel
fährt das
Verfahren dann zu Schritt S28 fort, wo eine Nachricht zu dem Client
A übermittelt
wird, die den Client A auffordert, eine oder mehr alternative Operationen
auszuwählen,
die für
Client A verfügbar
sind. In Schritt S30 kann Client A dann eine alternative Operation
folgend der Verweigerung zum Sichern des modifizierten Datensatzes
X durchführen.
-
4 stellt
eine Zahl von alternativen Operationen dar, die für Client
A verfügbar
sind, falls Client A Erlaubnis verweigert wird, den modifizierten
Datensatz X zu sichern. Dem Schritt S24 folgend, in dem eine Fehlermeldung
zu dem Client A gesendet wird, wird der Schritt S28 durchgeführt. In
dem Schritt S28 wird eine Nachricht zu dem Client A übermittelt,
die den Client A auffordert, eine oder mehr der alternativen Operationen
auszuwählen,
die für
Client A verfügbar
sind. Die alternativen Operationen können z.B. eine beliebige Kombination
von einer oder mehr der Operationen inkludieren, die in Verbindung
mit jedem der Schritte S34–S39
beschrieben werden. Es können
andere alternative Operationen, die einem Fachmann bekannt sind,
für Client
A bei Verweigerung von Erlaubnis zum Sichern eines modifizierten Datensatzes
zur Verfügung
stehen.
-
In
Schritt S34 kann der Client A wählen,
den Datensatz X, auf den er zugreift, aktualisiert zu haben, um
beliebige zuvor gesicherte Modifikationen des anderen Clients einzubeziehen,
d.h. von Schritt S14 von 3. Dies stellt sicher, dass
der Datensatz X von Client A die Modifikationen vom anderen Client widerspiegelt,
bevor Client A den Datensatz X sichert. Die alternative Operation
von Schritt S34 kann auf unterschiedliche Art und Weise implementiert werden.
Z.B. können
die zuvor gesicherten Modifikationen vom anderen Client nur solange
aktualisiert werden, wie die Modifikationen des anderen Clients und
von Client A nicht in Konflikt stehen. Alternativ können die
zuvor gesicherten Modifikationen des anderen Clients ungeachtet
dessen aktualisiert werden, ob ein beliebiger Konflikt zwischen
den Änderungen von
Client A und den zuvor gesicherten Änderungen existiert. Oder anderenfalls
können
die zuvor gesicherten Modifikationen des anderen Clients vollständig oder
teilweise basierend darauf aktualisiert werden, welcher Client zuerst
auf den Datensatz zugegriffen hat, welcher Client eine höhere Priorität hat oder
einem anderen ähnlichen
Kriterium.
-
Schritt
S35 erlaubt dem Client A, den modifizierten Datensatz als einen
neuen Datensatz oder unter einem neuen Dateinamen zu sichern. Um
unnötige
Erstellung vieler Dateiversionen des gleichen Datensatzes zu vermeiden,
ist es wünschenswert, eine
Sicherung von modifizierten Datensätzen unter einem neuen Dateinamen
zu vermeiden, bis eine Datenkorruptionssituation entsteht. Mit anderen
Worten würde
die Option, die in Schritt S35 geboten wird, vorzugsweise nur in
der Situation verfügbar
sein, wo der modifizierte Datensatz X durch einen anderen Client
gesicherten wurde, was zu CCV > δc führt und zu
einem Konflikt von Daten wegen den Modifikationen führt, anstatt
dann, wenn zwei Clients lediglich auf den gleichen Datensatz zugegriffen
haben.
-
In
Schritt S36 wird dem Client A die Option gegeben, dem anderen Client,
dessen Datensatz X potenziell beschädigt werden könnte, zu
erlauben, Modifikationen von Client A zu überprüfen, bevor Client A erlaubt
wird, sie zu sichern. Typischerweise entsteht die Situation, in
der ein Datensatz X eines anderen Clients potenziell beschädigt werden
könnte,
wenn ein anderer Client Datensatz X dem Zugriff von Client A auf
den Datensatz X folgend gesichert hat. Eine derartige Situation
entsteht z.B. in dem Schritt S14 von 3. Schritt
S36 ist besonders nützlich,
wenn ein anderer Client, z.B. Client B, auf Datensatz X zugegriffen
hat, aber eine wesentliche Modifikation am Datensatz X nicht durchgeführt hat. Z.B.
kann Client B auf Datensatz X zugegriffen haben und unbeabsichtigt
ein Leerzeichen durch Drücken der
Leertaste der Tastatur hinzugefügt
haben, während
er in dem Datensatz X geblättert
hat. In dieser Situation würde
Client B zweifellos Client A erlauben, den modifizierten Datensatz
X von Client A zu sichern, da Client B keine wesentlichen Modifikationen an
dem Datensatz X durchgeführt
hat, die beschädigt würden. Schritt
S36 kann implementiert werden, indem dem anderen Client, dessen
Modifikationen beschädigt
würden,
d.h. Client B, die Option gegeben wird, Client A zu erlauben, den
Datensatz X zu sichern, entweder nach Anzeigen von Modifikationen von
Client A, die zu sichern sind, zu Client B, oder nach Befragung
von Client B um eine Erlaubnis, den modifizierten Datensatz X von
Client A zu sichern, aber ohne Anzeigen von Modifikationen von Client
A, die zu sichern sind, zu Client B.
-
In
Schritt S37 wird Client A die Option zum Kopieren der modifizierten
Abschnitte von Datensatz X zu einem zeitweiligen Speicher geboten,
wie etwa einer "Zwischenablage" in einem Computer
oder einer Computeranwendung. Nach zeitweiliger Sicherung der Modifikationen
ist der Client A dann in der Lage, die jüngste Version vom Datensatz
X abzurufen, wofür
CCV > δc ist.
Client A kann dann die jüngste
Version von Datensatz X durch "Einfügen" der Modifikationen
des Datensatzes X, die zeitweilig in der Zwischenablage gesichert
sind, modifizieren. Auf diese Weise würden Modifikationen von Client
B nicht unbeabsichtigt durch Client A zerstört werden.
-
In
Schritt S38 wird dem Client A erlaubt, eine Kopie der zuvor gesicherten
Modifikationen am Datensatz X des anderen Clients zu ziehen, um
sie zu betrachten, bevor der Client A die vorliegenden Modifikationen
sichert. Dies erlaubt Client A die Möglichkeit, z.B. zu bestimmen,
ob die zuvor gesicherten Modifikationen wesentlich genug sind, um
Schritte zum Vermeiden von Beschädigung
vom Überschreiben der
zuvor gesicherten Modifikationen des anderen Clients zu gewähren, oder
die Modifikationen für
andere Zwecke zum Editieren zu betrachten.
-
Schließlich wird
in Schritt S39 dem Client A erlaubt, Modifikationen an dem Datensatz
X ohne Beachtung beliebiger anderer zuvor gesicherter Modifikationen
zu sichern. Diese Alternative wurde natürlich zu der Korruption beliebiger
zuvor gesicherter Modifikationen an dem Datensatz X führen, eine
Alter native, die z.B. akzeptabel sein kann, falls die verschiedenen
Clients vorbestimmte Autorisierungen zum Durchführen von Modifikationen haben,
wie in Verbindung mit 5 erörtert.
-
5 stellt
eine Ausführungsform
dar, in der die alternativen Operationen, die für einen Client verfügbar sind,
auf vorbestimmter Modifikationsautorisierung basieren. Gemäß dieser
Ausführungsform wird
vor einem Zugriff auf den Datensatz X in Schritt S10 von 3 dem
Client A ein Grad vorbestimmter Modifikationsautorisierung zum Durchführen von
Modifikationen an dem Datenbankdatensatz oder Datensätzen zugewiesen.
Die vorbestimmte Modifikationsautorisierung eines bestimmten Clients
kann entweder die Gleiche für
alle Datensätze
einer Datenbank sein, oder kann alternativ auf einer Basis von Datensatz
zu Datensatz für
jeden Datensatz der Datenbank zugewiesen werden.
-
In
Schritt S26, der vorzugsweise vor Schritt S30 von 3 durchgeführt wird,
ruft der Datenbankmanager die vorbestimmte Modifikationsautorisierung
von Client A ab, um zu bestimmen, ob der Erlaubnis von Client A,
Modifikationen zu sichern, irgendwelche Begrenzungen auferlegt sind.
Die alternativen Operationen, die dem Client A in Schritt S28 übermittelt
werden, d.h. Zugriff zu Schritten S34–S39 von 4,
werden durch die vorbestimmte Modifikationsautorisierung bestimmt,
die für
diesen Client spezifisch ist.
-
Zum
Beispiel kann ein Client, dem eine vorbestimmte Modifikationsautorisierung
entsprechend einem beträchtlichen
Grad von Zugriff gewährt
ist, in der Lage sein, eine beliebige der alternativen Operationen
von Schritten S34–S39
auszuüben.
Andererseits kann ein Client mit einer vorbestimmten Modifikationsautorisierung
entsprechend einem begrenzten Grad von Zugriff in der Lage sein,
nur auf eine Teilmenge der alternativen Operationen von S34–S39 zuzugreifen,
oder möglicherweise
keine der alternativen Operationen S34–S39. Die vorbestimmte Modifikationsautorisierung
kann selbst auf Betrachtungen von Datensicherheit, Datenschutz, der
Wahrscheinlichkeit von Datenkorruption oder ähnlichen Datenintegritätsbetrachtungen
basieren.
-
Beim Übermitteln
der alternativen Operationen zu dem Client A in Schritt S28 fährt das
Verfahren zu Schritt S30 fort. In dem Schritt S30 wird dem Client
A erlaubt, eine oder mehr autorisierte alternative Operationen durchzuführen, nachdem
die Option zum Sichern des modifizierten Datensatzes X über Modifikationen
eines anderen Clients verweigert wird.
-
6 stellt
ein Verfahren dar, das eine Warnung vorsieht, wenn es eine potenzielle
Datenkorruptionssituation gibt, in Übereinstimmung mit einer alternativen
Ausführungsform
der vorliegenden Erfindung. Dies hilft, eine Datenkorruptionssituation
zu vermeiden, durch Warnen eines Clients, dass die Datenbank anschließend zum
Abrufen des Datenbankdatensatzes, auf den der Client zugreift, geändert wurde.
Mit anderen Worten würde,
falls dem Client nicht erlaubt wurde, den Datensatz zu sichern,
auf den gerade zugegriffen wird, die Datenbank selbst nicht beschädigt werden.
Stattdessen würden
diese Modifikationen des Clients zu dem Ausmaß beschädigt, dass dem Client nicht
erlaubt würde,
sie zu sichern.
-
In
Schritt S10 von 6 strebt der Client A danach,
auf Datensatz X einer Datenbank zuzugreifen, durch Kontaktieren
oder Anfordern von Erlaubnis von dem Datenbankmanager, der Zugriff
auf die Datenbankdatensätze
steuert. Es kann ein Entscheidungsschritt S11 optional in dieser
Ausführungsform oder
anderen Ausführungsformen
des Verfahrens inkludiert sein, um zu bestimmen, ob Client A nach Nur-Lese-Zugriff
oder Zugriff für
Zwecke zum Editieren strebt. Falls nach Nur-Lese-Zugriff ersucht
wird, fährt
in Übereinstimmung
mit dem Pfad "JA" vom Entscheidungsschritt
S11 das Verfahren zu Schritt S13 fort und dem Client wird verboten,
den Datensatz X auf Gewährung
von Zugriff hin zu modifizieren. In Schritt S12 gewährt der
Datenbankmanager Zugriff und beschafft, oder lädt eine Kopie herunter, des
Datensatzes X, inkludierend ein CCV = δc, zu
Client A. In Schritt S14 kann Multi-Client-Datenbank-Editieren stattfinden,
worin andere Clients den Datensatz X editieren können, nachdem er zu Client
A in Schritt S12 mit CCV = δc beschafft wurde.
-
In
Schritt S15 editiert oder modifiziert ein anderer Client, z.B. Client
B, den Datensatz X, wobei eine modifizierte Version des Datensatzes
X erstellt wird. Da der Datensatz X gerade modifiziert wird, inkrementiert
der Datenbankmanager den CCV, sodass er nun CCV = δc +
1 ist. Dann sendet in Schritt S23 der Datenbankmanager eine Warnung,
um den Client A zu benachrichtigen, dass der Datensatz X durch einen
anderen Client modifiziert wurde, wobei dadurch eine potenzielle
Datenkorruptionssituation geschaffen wird. Die warnende Benachrichtigung könnte als
Reaktion auf den Client B, der die modifizierte Version des Datensatzes
X sichert, gesendet werden, oder könnte als Reaktion auf die Erstellung der
modifizierten Version des Datensatzes X gesendet werden. Für den letzteren
Fall würde
das System derart arbeiten, dass der Client B den Datenbankmanager
auf Modifizieren des Datensatzes X hin kontaktieren würde, bevor
der Datensatz X schon gesichert wurde. Dies würde die Situation vermeiden,
in der zwei Clients ausgedehnte Modifikationen an einem Datenbankdatensatz
erstellt haben, was es schwierig macht, Änderungen von beiden Clients
einzubeziehen.
-
Zusätzlich zu
der warnenden Nachricht, die in Schritt S23 gesendet wird, kann
das Verfahren auch alternative Operationen für Client A inkludieren, um
als ein Ergebnis der Datenbank korruptionssituation zu folgen, in Übereinstimmung
mit dem Schritt S30. Die alternativen Operationen können mit
jenen konsistent sein, die oben in Verbindung mit 4 ausgeführt werden,
oder ähnlichen
alternativen Operationen, die einem Fachmann bekannt sind.
-
Durch
einen Fachmann würde
erkannt, dass die vorliegende Erfindung in anderen spezifischen Formen
verkörpert
werden kann, ohne von den wesentlichen Charakteristika davon abzuweichen,
wie in den angefügten
Ansprüchen
definiert.