-
Die
vorliegende Erfindung betrifft eine Vorrichtung zum Speichern von
Datenelementen spezifischer Attribute und zum Zugreifen auf gespeicherte Datenelemente,
ein Verfahren zum Speichern von Datenelementen spezifischer Attribute
und zum Zugreifen auf gespeicherte Datenelemente, ein Computerprogrammprodukt
zum Steuern der Vorrichtung sowie ein Speichermedium, auf dem das
Computerprogrammprodukt gespeichert ist.
-
Speichervorrichtungen
zum überschreibbaren Speichern von Datenelementen weist
fast jede elektronische Datenverarbeitungsanlage auf. So verfügen
sowohl handelsübliche stationäre Einzelplatzrechner
wie PCs (Personal Computer) aber auch mobile Computer wie sogenannte
Laptops oder Notebooks über derartige Speichervorrichtungen
in Form einer Festplatte, auf der sich Datenelemente überschreibbar
speichern lassen. Die Bandbreite der Speichervorrichtungen reicht
bis hin zu Datenbanken, die eigens zum Zweck des effektiven Speicherns
und Verwaltens von Datenelementen im Hinblick auf die Vermeidung
von Datenredundanzen eingerichtet sind und sowohl auf gewöhnlichen
Computern als auch auf Großrechenanlagen implementiert sein
können. Dabei werden die in den Speichervorrichtungen gespeicherten
Datenelemente aus verwaltungstechnischen Gründen für
gewöhnlich nach spezifischen Attributen unterschieden.
-
Wird
ein in einer Speichervorrichtung gespeichertes Datenelement eines
vorgegebenen Attributs durch ein neues Datenelement desselben Attributs überschrieben,
so wird bei bekannten Speichervorrichtungen das gespeicherte Datenelement
beim Überschreiben gelöscht und durch das neue
Datenelement ersetzt, das dann nach dem Überschreiben in der
Speichervorrichtung gespeichert ist. Das vor dem Überschreiben
gespeicherte Datenelement dieses Attributs geht dabei in der Regel
unwiederbringlich verloren. Dies ist insbesondere deswegen nachteilig, weil
nie ausgeschlossen werden kann, dass Überschreibungen gespeicherter
Datenelemente unbeabsichtigt oder verse hentlich erfolgen, was unter
Umständen zu erheblichen Datenverlusten führen
kann. Hieraus erwächst ein weiterer Nachteil bekannter Speichervorrichtungen,
der während Aktualisierungen von in der Speichervorrichtung
gespeicherten Datenelementen oder Programmen auftreten kann. Wenn
beispielsweise ein auf einem Computer eines Benutzers gespeichertes
Programm durch eine neuere Version desselben aktualisiert wird,
kann es vorkommen, dass vor der Aktualisierung vorgenommene persönliche
Einstellungen des Benutzers im Programm oder Daten des Benutzers
durch die neuere Version des Programms überschrieben werden
und verloren gehen. Während sich die persönlichen
Einstellungen des Benutzers unter Aufwand von Zeit und Arbeit neu
einrichten lassen können, sind die Daten in der Regel nicht
wieder herstellbar.
-
In
der
WO 2004/102420
A1 wird versucht diese Probleme zu umgehen, indem in der
dort offenbarten Speichervorrichtung zu kopierende Datenelemente
einem Benutzer zunächst optisch angezeigt werden, der dann
manuell darüber entscheidet, ob ein betreffendes Datenelement
in die Speichervorrichtung kopiert wird oder nicht. Letztendlich
ist diese Lösung bei großen anfallenden Mengen
zu kopierender Datenelemente zeitraubend und arbeitsaufwändig.
Zudem wird auch hier das Problem irrtümlicher Überschreibungen
nicht gelöst, so dass die vorgeschlagene Lösung
letztlich unbefriedigend bleibt.
-
Es
ist daher die Aufgabe der vorliegenden Erfindung, eine Vorrichtung
zum Speichern von Datenelementen spezifischer Attribute und zum
Zugreifen auf gespeicherte Datenelemente, ein System, ein Verfahren
zum Speichern von Datenelementen spezifischer Attribute und zum
Zugreifen auf gespeicherte Datenelemente, ein Computerprogrammprodukt zum
Steuern der Vorrichtung sowie ein Speichermedium zu schaffen, auf
dem das Computerprogrammprodukt gespeichert ist, die Datenverluste
bei Überschreibungen gespeicherter Datenelemente ausschließen
und ein flexibleres Überschreiben gespeicherter Datenelemente
ermöglichen.
-
Diese
Aufgabe wird durch eine Vorrichtung mit den Merkmalen des Anspruchs
1, ein System mit den Merkmalen des Anspruchs 37, ein Verfahren
mit den Merkmalen des Anspruchs 40, ein Computerprogrammprodukt
nach Anspruch 52 und ein Speichermedium nach Anspruch 53 gelöst.
-
Gemäß der
vorliegenden Erfindung wird im Falle eines Überschreibens
des ersten Datenelements eines vorgegebenen Attributs durch das
zweite Datenelement des vorgegebenen Attributs das erste Datenelement
nicht wie bei bekannten Vorrichtungen gelöscht, vielmehr
wird stattdessen die Speicherung des ersten Datenelements beibehalten.
Ein einmal gespeichertes Datenelement wird auch bei beliebig vielen
nachfolgenden Überschreibungen von Datenelementen des vorgegebenen
Attributs zu keiner Zeit gelöscht. Jeglicher Datenverlust
ist somit grundsätzlich ausgeschlossen. Selbst im Falle
eines irrtümlichen Überschreibens bleibt das jeweilige überschriebene
Datenelement physikalisch existent und geht nicht verloren. Auf
das so überschriebene erste Datenelement kann auch nach
dem Überschreiben jederzeit zugegriffen werden, um beispielsweise überschriebene
Benutzereinstellungen oder sonstige Daten wiederherzustellen. Dazu
wird beim Zugriff auf Datenelemente des vorgegeben Attributs eine
Bezugszeit vorgegeben, die relativ zur zweiten Validitätszeit älter
und relativ zur ersten Validitätszeit jünger ist,
um das erste Datenelement auszulesen. Zum Auslesen des zweiten Datenelements
wird dagegen eine Bezugszeit vorgegeben, die jünger ist
als die zweite Validitätszeit. Grundsätzlich können
beliebige Bezugszeiten vorgegeben werden, wobei die Bezugszeit auch
jünger oder älter sein kann als alle Validitätszeiten
aller gespeicherten Datenelemente des vorgegebenen Attributs. Im
ersteren Fall wird dasjenige Datenelement mit der jüngsten
zugewiesenen Validitätszeit ausgelesen, im letzteren Fall
wird hingegen kein Datenelement ausgelesen, da kein Datenelement
vorliegt, dem eine Validitätszeit zugeordnet ist, die älter
ist als die Bezugszeit. Weil bei Überschreibungen gespeicherter
Datenelemente eines Attributs durch neue Datenelemente desselben Attributs
den neuen Datenelementen Validitätszeiten zugewiesen werden,
die jeweils jünger sind als die dem jeweiligen überschriebenen
Datenelement zugewiesene Validitätszeit, ist für
jede Bezugszeit und auch bei Vorhandensein mehrerer gespeicherter
Datenelemente des vorgegebenen Attributs eindeutig definiert, welches
der Datenelemente des vorgegebenen Attributs bei Zugriffen unter
Vorgabe einer Bezugszeit jeweils auszulesen ist.
-
Grundsätzlich
können den Datenelementen beliebige Validitätszeiten
zugewiesen werden. Zum Beispiel kann die erste Validitätszeit
einer Zeit entsprechen, die relativ zur Zeit des Speicherns des
ersten Datenelements beliebig weit in der Vergangenheit liegt oder
die relativ zur Zeit des Speicherns des ersten Datenelements beliebig
weit in der Zukunft liegt. Insbesondere ist es möglich,
dem ersten Datenelement eine Validitätszeit zuzuweisen,
die relativ zu wenigstens einer Validitätszeit eines gespeicherten Datenelements
des vorgegebenen Attributs oder relativ zu mehreren oder allen Validitätszeiten
bereits gespeicherter Datenelemente des vorgegebenen Attributs älter
ist. Entsprechend ist die zweite Validitätszeit nicht auf
eine solche Zeit beschränkt, die in Bezug auf diejenige
Zeit, zu der das zweite Datenelement gespeichert wird, in der Vergangenheit
liegt oder ihr entspricht; sie kann vielmehr analog relativ zur
Zeit des Speicherns des zweiten Datenelements beliebig weit in der
Zukunft liegen. Folglich wird bei Zugriffen auf ein Datenelement
des vorgegebenen Attributs, bei denen beispielsweise eine Bezugszeit vorgegeben
wird, die einer aktuellen Zeit des Zugriffs entspricht, ein Datenelement
mit einer zugewiesenen Validitätszeit, die relativ zur
Zeit des Zugriffs in der Zukunft liegt, auch nicht ausgelesen. Unter
der Annahme, dass als Bezugszeit stets die gerade aktuelle Zeit
eines Zugriffs vorgegeben wird, wird ein solches Datenelement erst
dann ausgelesen, wenn der Zugriff zu einer Zeit nach der dem Datenelement
zugewiesenen Validitätszeit erfolgt. Wird dem zweiten Datenelement
zum Beispiel als zweite Validitätszeit eine relativ zur
Zeit des Speicherns des zweiten Datenelements zukünftige
Zeit zugewiesen, so wird bei Zugriffen auf Datenelemente des vorgegebenen
Attributs das zweite Datenelement ohne weiteres Tun anstelle des
ersten Datenelements einfach nach Überschreiten der zweiten
Validitätszeit ausgelesen. insofern erweist sich der Gegenstand
der vorliegenden Erfindung als wesentlich flexibler bei der Überschreibung gespeicherter
Datenelemente als bekannte Verfahren und Vorrichtungen zur Datenspeicherung,
da er zukünftige Überschrei bungen gespeicherter
Datenelemente ohne die Notwendigkeit ermöglicht, dafür
irgendwelche besonderen Einrichtungen vorzusehen, die zur Messung
der Zeit und zur Ausführung der Überschreibung
zu einem vorgegebenen Zeitpunkt ausgelegt sind.
-
Bei
dem erfindungsgemäßen Verfahren kann es sich insbesondere
um ein computerimplementiertes Verfahren handeln, wobei das Computerprogrammprodukt
für ein automatisiertes Steuern der Vorrichtung bzw. für
ein automatisiertes Ausführen des Verfahrens sorgt.
-
Das
Datenelement kann ganz allgemein eine beliebige logisch gruppierte
Informationseinheit sein. So kann das Datenelement eine beliebige
Zeichenkette sein, wie zum Beispiel ein Wort, ein Name oder eine
Zahl. Ferner kann es sich bei dem Datenelement beispielsweise um
Informationen zur Darstellung eines Bildes mittels eines entsprechenden
Computerprogramms oder um eine beliebig geartete Adresse eines Datenelements
oder sonstigen Objektes handeln. Aber auch Daten enthaltende Dateien
als solche können Datenelemente sein. Welcher Art das Datenelement
ist, wird durch dessen Attribut oder Attribute bestimmt. Es können
jeweils verschiedene Attribute Datenelemente spezifizieren, bei
denen es sich um einen Namen, eine Zahl, Informationen zur Darstellung
eines Bildes oder eine Adresse handelt. Handelt es sich bei dem
Datenelement um eine Datei, dann kann deren Dateiname oder Dateityp
ein Attribut des Datenelements darstellen.
-
Da
bei der vorliegenden Erfindung kein physikalisches Löschen überschriebener
Datenelemente stattfindet, wächst zwar das in der Vorrichtung
gespeicherte Datenvolumen stärker an als bei bekannten
Vorrichtungen, die Datenelemente beim Überschreiben physikalisch
löschen, doch ist dieser Umstand angesichts der Speicherkapazitäten
heutiger moderner Speichervorrichtungen vernachlässigbar und
wird durch den Vorteil der beliebigen Zugreifbarkeit auf überschriebene
Datenelemente und der Nachvollziehbarkeit von Überschreibungsvorgängen mehr
als wieder aufgewogen.
-
Bei
nachfolgenden sukzessiven Überschreibungen von Datenelementen
desselben vorgegebenen Attributs durch neue Datenelemente weist
die Vorrichtung dem neuen Datenelement bevorzugt eine jeweilige
Validitätszeit zu, die jünger ist als die Validitätszeiten
aller Datenelemente dieses Attributs, und es speichert das neue
Datenelement mit der ihm zugewiesenen Validitätszeit unter
beibehalten der Speicherung aller Datenelemente dieses Attributs. Besonders
bevorzugt wird das zweite Datenelement unter beibehalten der Speicherung
aller gespeicherten Datenelemente aller Attribute gespeichert, um auch
das physikalische Löschen gespeicherter Datenelemente anderer
Attribute zu vermeiden und einen damit einhergehenden Datenverlust
auszuschließen.
-
Bei
einer bevorzugten Ausführungsform der Erfindung ist die
Vorrichtung bei Ausbleiben einer Vorgabe für die Bezugszeit
bei einem Zugriff auf Datenelemente des vorgegebenen Attributs zur
automatischen Vorgabe einer Bezugszeit eingerichtet, die der jeweiligen
Zeit entspricht, zu der der Zugriff erfolgt, um zu gewährleisten,
dass bei einem Zugriff stets ein Datenelement mit einer zugewiesenen
Validitätszeit ausgelesen wird, die älter ist
als die aktuelle Zeit, zu der der Zugriff erfolgt, und dem von allen
Datenelementen mit zugewiesenen Validitätszeiten, die älter
sind als die aktuelle Zeit des Zugriffs, die jeweils jüngste
Validitätszeit zugewiesen ist.
-
Bei
einer weiteren bevorzugten Ausführungsform der Erfindung
wird wenigstens einem Datenelement oder jedem Datenelement ein jeweiliger Zeitpunkt
des Speicherns des betreffenden Datenelements als Validitätszeit
zugeordnet. Man erhält dadurch eine Art historischer Speicherung
der Datenelemente, bei der die Zeit, zu der ein Datenelement gespeichert
wurde, an dessen Validitätszeit ablesbar ist. Die Validitätszeit
kann zum Beispiel sekundengenau, minutengenau, stundengenau oder
tagesgenau sein. Bei sekundengenauen Validitätszeiten wird
einem Datenelement neben dem Tagesdatum auf die Sekunde genau die
Zeit als Validitätszeit zugewiesen, zu der das Datenelement
gespeichert wurde. Entsprechend wird bei minutengenauen oder stundengenauen
Validitätszeiten dem Datenelement neben dem Tagesdatum
auf die Minute bzw. auf die Stunde genau die Zeit als Validitätszeit
zugewiesen, zu der das Datenelement gespeichert wurde. In der Praxis
genügen jedoch meist bereits tagesgenaue Validitätszeiten,
bei denen dem Datenelement das Datum desjenigen Tages als Validitätszeit
zugewiesen wird, an dem das Datenelement gespeichert wurde.
-
Grundsätzlich
ist es nicht ausgeschlossen, dass zwei Datenelementen zweier verschiedener
Attribute gleiche Validitätszeiten zugewiesen werden. Insbesondere
dann, wenn es sich um eine tagesgenaue Validitätszeiten
handelt, kann es vorkommen, dass mehreren am selben Tag gespeicherten
Datenelementen desselben Attributs gleiche Validitätszeiten
zugewiesen werden. Validitätszeiten allein können
daher unter Umständen zur eindeutigen Adressierung oder
Identifizierung von Datenelementen ungeeignet sein. Bei einer weiteren
bevorzugten Ausführung der Erfindung wird daher wenigstens
einem Datenelement oder jedem Datenelement eine jeweils eindeutige
Kennung und/oder eine weltweit eindeutige Kennung und/oder eine
GUID (Globally Unique Identifier) zugewiesen. Dabei kann es sich
bei der eindeutigen Kennung um eine Kennung handeln, die innerhalb
der Vorrichtung oder innerhalb eines beliebigen gegebenen Systems,
zu dem die Vorrichtung gehört, eindeutig ist. Diese kann
im einfachsten Fall eine Identifikationsnummer, ein Identifikationscode oder
ein einheitlicher Quellenanzeiger bzw. URL (Uniform Resource Locator)
sein. Weltweit eindeutige Kennungen sind von verteilten Computersystemen
her bekannt. Es handelt sich dabei um Kennungen mit einer derart
niedrigen Wahrscheinlichkeit für eine Koinzidenz der Kennungen,
dass eine einzelne Kennung mit sehr hoher Wahrscheinlichkeit auf
der ganzen Welt nur einmal vorkommt und daher als global bzw. weltweit
eindeutig bezeichnet wird. Ein Beispiel für eine weltweit
eindeutige Kennung sind sogenannte Globally Unique Identifier oder
GUID. Mittels eindeutiger Kennungen ist eine eindeutige Adressierung
und Identifizierung eines Datenelements innerhalb der Vorrichtung,
innerhalb eines gegebenen die Vorrichtung umfassenden Systems oder,
bei Verwendung weltweit eindeutiger Kennungen, sogar weltweit möglich.
Außerdem können dadurch Datenelemente verschiedener
Vorrichtungen miteinander gemischt werden, ohne dass dabei Datenelemente
gelöscht würden. Dabei können jeweilige
eindeutige Kennungen und jeweilige Validitätszeiten auch
zu einer Leitkennung zusammengefasst sein. So ist es insbesondere
bei weltweit eindeutigen Kennungen bekannt, einzelne solcher Kennungen
unter Einbeziehung von Zeitstempeln zu erzeugen. Mit einer Leitkennung lässt
sich einerseits eindeutig festlegen, welches Datenelement aus einer
Mehrzahl gespeicherter Datenelemente desselben Attributs bei Zugriffen
auf Datenelemente dieses Attributs ausgelesen werden soll, indem
bestimmt wird, dasjenige Datenelement auszulesen, dessen Leitkennung
die jüngste Validitätszeit aufweist, andererseits
können Datenelemente über die in der Leitkennung
enthaltene eindeutige Kennung darüber hinaus eindeutig
adressiert werden. Weil im Falle einer Leitkennung nur eine einzige
Größe für die Adressierung und die Auswahl
auszulesender Datenelemente statt deren zwei wie bei getrennter
Verwendung von Kennung und Validitätszeit vorgesehen werden
muss, reduziert sich der notwendige Verwaltungsaufwand.
-
Vorteilhafterweise
ist die Vorrichtung eingerichtet, wenigstens ein vorgegebenes Datenelement mit
einer zugewiesenen Validitätszeit durch ein drittes Datenelement
zu ersetzen, indem sie das vorgegebene Datenelement löscht,
das dritte Datenelement speichert und dem dritten Datenelement die
zuvor dem vorgegebenen Datenelement zugewiesene Validitätszeit
zuweist. Mittels einer derartigen Ersetzung können fehlerhaft
gespeicherte Datenelemente korrigiert werden. Zum Beispiel kann
ein Datenelement, bei dem es sich um eine ein Wort oder einen Namen
bezeichnende Zeichenkette handelt, einen Schreib- oder Tippfehler
aufweisen, oder das zu speichernde Datenelement als solches ist
fälschlicherweise mit einem anderen Datenelement verwechselt worden,
das anstatt des richtigen Datenelements unter Zuweisung der für
das richtige Datenelement vorgesehenen Validitätszeit gespeichert
worden ist. Dann kann das fehlerhafte oder falsche Datenelement
auf die beschriebene Weise einfach durch das richtige Datenelement
ersetzt werden.
-
Bevorzugt
wird der dem vorgegebenen Datenelement zugewiesenen Validitätszeit
ein Protokoll zugeordnet, in das bei Ersetzen des vorgegebenen Datenelements
durch das dritte Datenelement die Ersetzung vermerkt wird und dabei
das vorgegebene Datenelement in das Protokoll kopiert wird. Das
Pro tokoll kann insbesondere ein zeichenkodiertes Format oder ein
XML-Format aufweisen. Mit einem solchen Protokoll können
alle vorgenommenen Ersetzungen des vorgegebenen Datenelements nachvollziehbar
festgehalten werden. Ein Protokoll gibt eine schnelle und bequeme Übersicht über
den historischen Verlauf erfolgter Ersetzungen von Datenelementen,
denen die betreffende Validitätszeit zugewiesen worden
ist. Das Protokoll wird vorteilhaft verwendet, um im Falle von Ersetzungen
gespeicherter Datenelemente Datenverluste zu vermeiden, da bei einer
Ersetzung das betreffende vorgegebene bzw. ersetzte Datenelement
tatsächlich gelöscht wird. Weil das vorgegebene
Datenelement in das Protokoll kopiert wird, ist es nach der Ersetzung
außerhalb des Protokolls zwar gelöscht, es tritt
aber trotzdem kein Datenverlust ein, da eine Kopie des gelöschten
Datenelements im Protokoll vorhanden ist. Insbesondere können
in dem Protokoll auch jeweilige Zeiten vermerkt werden, zu denen
eine Ersetzung des vorgegebenen Datenelements stattfand. Darüber
hinaus kann auch eine Person vermerkt werden, welche die Überschreibung
veranlasst hat. Ein Protokoll kann einer Validitätszeit
unmittelbar mit Speichern des Datenelements zugeordnet werden, dem
die Validitätszeit zugewiesen wird. Andererseits kann ein
Protokoll auch erst bei Stattfinden der Ersetzung erzeugt und der
Validitätszeit des vorgegebenen Datenelements zugeordnet
werden. Weil eine Zuordnung des Protokolls zur Validitätszeit
des vorgegebenen Datenelements vorgesehen ist, wird bei einer nachfolgenden Ersetzung
des dritten Datenelements, dem dieselbe Validitätszeit
zugewiesen wird, durch ein weiteres Datenelement diese Ersetzung
zusammen mit einer Kopie des dritten Datenelements im selben Protokoll wie
die vorherige Ersetzung des vorgegebenen Datenelements vermerkt.
Nachfolgende sukzessive Ersetzungen von Datenelementen, denen diese
Validitätszeit zugewiesen wird, werden ebenfalls allesamt im
selben dieser Validitätszeit zugeordneten Protokoll mitsamt
einer Kopie der jeweiligen ersetzten Datenelemente vermerkt. Somit
sind in ein und demselben Protokoll alle stattgefundenen Ersetzungen
von Datenelementen vermerkt, denen diejenige Validitätszeit
zugewiesen wurde, die ursprünglich dem vorgegebenen Datenelement
zugewiesen worden ist.
-
Wird
beim Speichern eines Datenelements dem Datenelement irrtümlich
eine falsche Validitätszeit zugewiesen, so lässt
sich dieser Fehler durch Löschen das gespeicherten Datenelements
mitsamt seiner Validitätszeit und erneutes Speichern des
Datenelements mit korrekter Validitätszeit berichtigen. Sowohl
das Speichern des Datenelements mit der falschen Validitätszeit
als auch das Speichern des Datenelements mit der richtigen Validitätszeit
kann in einem Protokoll, das wie erläutert erzeugt wird,
festgehalten werden. Durch Löschen des Datenelements mit
der falschen Validitätszeit und erneutes Speichern des
Datenelements mit der richtigen Validitätszeit ist gewährleistet,
dass zu jeder Zeit eindeutig bestimmt ist, welchem Datenelement
relativ zur Bezugszeit die jüngste Validitätszeit
zugewiesen ist.
-
Bevorzugt
bilden wenigstens ein Datenelement und die ihm zugewiesene Validitätszeit
oder mehrere Datenelemente und die ihnen zugewiesenen Validitätszeiten
wenigstens ein Datenobjekt. Ist einem Datenelement eine eindeutige
Kennung, eine weltweit eindeutige Kennung oder eine GUID zugewiesen,
oder ist für das Attribut des Datenelements ein Protokoll
vorgesehen, so können diese vorteilhaft ebenfalls vom Datenobjekt
mit umfasst werden. Mit Datenobjekten lassen sich zum Beispiel Datenelemente
mit Attributen, zwischen denen eine logische Beziehung besteht,
gruppieren und einheitlich verwalten. Beispielsweise kann eine Prozedur
wiederholt auf Datenelemente eines ersten Attributs sowie auf Datenelemente
eines zweiten Attributs zugreifen. In einem solchen Fall ist es
vorteilhaft, die Datenelemente des ersten Attributs und die Datenelemente des
zweiten Attributs zu einem Datenobjekt zusammenzufassen und sie
als Datenobjekt einheitlich zu verwalten. Einem Datenobjekt als
solchem kann zu dessen Adressierung wiederum eine eindeutige Kennung
oder eine weltweit eindeutige Kennung oder eine GUID zugeordnet
werden, damit Datenobjekte zwischen Anwendungen oder Modulen geladen
werden können, ohne sich gegenseitig zu überschreiben.
Ferner kann wenigstens eines der Datenelemente wenigstens eines
Datenobjekts eine eindeutige Kennung oder eine weltweit eindeutige
Kennung oder eine GUID eines anderen Datenelements oder eines anderen
Datenobjekts sein, mit dem eine logische Relation des Datenobjekts
besteht, so dass die Kennung des anderen Datenelements oder Datenobjekts
im Datenobjekt wie ein gewöhnliches Datenelement behandelt
wird.
-
Darüber
hinaus ist es möglich, wenigstens einem Datenelement und/oder
wenigstens einem Datenobjekt wenigstens einen Indikator zuzuweisen. Ein
Indikator kann beispielsweise eine einfache binäre Variable
sein, die zur Kennzeichnung bestimmter Zustände benutzt
wird. Ein Indikator kann ferner gesetzt, gelöscht oder
ausgelesen werden. Beispielsweise kann vorgesehen sein, ein Datenelement
zu löschen bzw. physikalisch zu löschen, sofern
wenigstens einer der ihm zugewiesenen Indikatoren einen vorgegebenen
Wert annimmt. Andererseits kann, wenn der Indikator einen bestimmten
Wert annimmt, anstatt das betreffende Datenelement tatsächlich
zu löschen dieses auch nur als gelöscht behandelt
werden, obwohl ein tatsächliches Löschen desselben nicht
stattfindet. Mittels Indikatoren können ferner Zugriffsrechte
bestimmt werden. Zum Beispiel kann ein Indikator festlegen, ob ein
Datenelement oder ein Datenobjekt öffentlich zugänglich
ist oder nicht. Weiter können Indikatoren die Zugehörigkeit
des Datenelements oder des Datenobjekts zur Vorrichtung oder einer
Teileinheit derselben anzeigen. Bei einem Indikator kann es sich
auch um einen solchen handeln, der angibt, dass das betreffende
Datenelement oder Datenobjekt aktuell von einer Applikation benutzt
wird.
-
Bei
einer Ausführungsform der Erfindung ist der Indikator wenigstens
eines Datenelements oder Datenobjekts jedoch eine Validitätsendzeit,
wobei die Vorrichtung nach Überschreiten der Validitätsendzeit von
einem Auslesen dieses Datenelements oder Datenobjekts absieht. Damit
ist es möglich, jedem Datenobjekt oder Datenelement eines
vorgegebenen Attributs eine Art Gültigkeitsdauer vorzugeben,
während der ein Auslesen des Datenobjekts oder Datenelements
bei Zugriffen auf Datenobjekte oder Datenelemente dieses Attributs
möglich ist, wobei nach Ablauf der Gültigkeitsdauer
bzw. nach der Validitätsendzeit ein Auslesen nicht mehr
möglich ist. Insbesondere zeitkritische Be- oder Verarbeitungen
von Datenelementen oder Datenobjekten lassen sich mit einem solchen
Indikator regeln. Für Datenelemente oder Datenobjekte,
die zum Beispiel in periodischen Abständen be- oder verarbeitet
werden, kann der Indikator auch eine Periodendauer sein. Entsprechend kann ähnlich
der Validitätszeit eines Datenelements wenigstens ein Indikator
wenigstens eines Datenobjekts eine Validitätsstartzeit
sein, die angibt, ab wann das betreffende Datenobjekt für
Be- oder Verarbeitungen freigegeben ist.
-
Vorteilhafterweise
weist die Vorrichtung wenigstens ein vererbbares Musterdatenobjekt
mit vorgegebenen Datenelementen auf, wobei die Vorrichtung eingerichtet
ist, für ein durch Vererbung des Musterdatenobjekts erzeugtes
Datenobjekt einen spezifischen Indikator vorzusehen, über
den sich für das so erzeugte Datenobjekt ein Bezug zu dem
Musterdatenobjekt herstellen lässt. Ein solches Musterdatenobjekt
kann für Datenobjekte vorgesehen sein, die in derselben
Form wiederholt erzeugt werden. Dann kann anstatt jedesmal ein neues
Datenobjekt vollständig neu zu generieren das entsprechende Musterdatenobjekt
einfach vererbt werden, wobei die im vererbten Musterdatenobjekt
enthaltenen Datenelemente durch entsprechende Datenelemente des
zu erzeugenden Datenobjekts überschrieben werden, um dadurch
ein Datenobjekt mit den gewünschten Datenelementen zu erhalten.
Dabei wird für die durch Vererbung des Musterdatenobjekts
erzeugten Datenobjekte ein spezifischer Indikator vorgesehen, über den
sich jederzeit für die so erzeugten Datenobjekte ein Bezug
zu dem jeweiligen Musterdatenobjekt, aus dem ein Datenobjekt hervorgegangen
ist, herstellen lässt. Änderungen im Musterobjekt
lassen sich dann über diesen Indikator unmittelbar auf
die aus dem Musterobjekt hervorgegangenen Datenobjekte entsprechend übertragen.
-
Im
Allgemeinen können in einem flüchtigen Arbeitsspeicher
mit kurzen Zugriffszeiten enthaltene Daten schneller bearbeitet
und gelesen werden als in einem Permanentspeicher mit wesentlich
längeren Zugriffszeiten gespeicherte Daten. Aus diesem Grund
umfasst die erfindungsgemäße Vorrichtung bevorzugt
wenigstens einen Permanentspeicher zum Speichern von Datenelementen
und/oder Datenobjekten sowie wenigstens einen Arbeitsspeicher und ist
eingerichtet, gespeicherte Datenelemente und/oder Datenobjekte aus
dem Permanentspeicher auszulesen und in den Arbeitsspeicher zu schreiben und
im Falle einer im Arbeitsspeicher stattfindenden Ersetzung des ausgelesenen Datenelements und/oder
eines vom ausgelesenen Datenobjekt umfassten Datenelements durch
ein viertes Datenelement das zugehörige im Permanentspeicher
gespeicherte Datenelement im Permanentspeicher durch das vierte
Datenelement zu überschreiben. Bei einer solchen Vorrichtung
ist gewährleistet, dass im Falle unvorhergesehener Störungen
während der Bearbeitung des Datenobjekts im Arbeitsspeicher,
wie zum Beispiel einem Systemabsturz, bis dahin erfolgte Änderungen
der im Arbeitsspeicher bearbeiteten Datenelemente oder Datenobjekte
nicht verloren gehen und bei einem Neustart rasch wieder im Arbeitsspeicher
verfügbar sind. Dabei wird vorzugsweise das ausgelesene
Datenobjekt und/oder Datenelement in ein zeichenkodiertes Format
oder ein XML-Format umgewandelt oder binär serialisiert
und das so umgewandelte bzw. serialisierte Datenobjekt und/oder Datenelement
in den Arbeitsspeicher geschrieben, um bestimmten Anwendungsprogrammen
eine Bearbeitung oder ein Lesen des Datenobjekts und/oder Datenelements
zu ermöglichen.
-
Bei
der Vorrichtung kann es sich auch um eine Datenbank handeln. Im
Unterschied zur Festplatte eines gewöhnlichen Computers
ist eine Datenbank speziell für das Speichern von Daten
unter Vermeidung von Datenredundanzen ausgelegt. Insbesondere kann
es sich bei der Datenbank um eine der üblichen verbreiteten
relationalen Datenbanken handeln.
-
Bei
der Vorrichtung kann es sich aber auch um eine Datenverarbeitungseinrichtung
zum Verarbeiten von Daten durch einen oder mehrere Datenverarbeitungsprozesse
handeln, in der wenigstens ein Datenverarbeitungsprozess durch wenigstens zwei
Datenelemente implementiert ist, wobei jeweilige den Datenelementen
zugeordnete Identifikationen spezifische Attribute der Datenelemente
sind, wobei jedes Datenelement eine jeweilige Sequenz von Kalkulationsanweisungen
umfasst und wobei die Datenverarbeitungseinrichtung zum Verarbeiten
von Daten durch den Datenverarbeitungsprozess unter Vorgabe einer
Identifikation eingerichtet ist, indem sie anhand der Identifikation
eines der Datenelemente identifiziert, die Kalkulationsanweisungen
der vom identifizierten Datenelement umfassten Sequenz von Kalkulationsanweisun gen
ausführt und die Daten mit Ausführen der Kalkulationsanweisungen
verarbeitet. Mit einer solchen Datenverarbeitungseinrichtung ist es
nicht mehr länger notwendig, bei einer Änderung des
Datenverarbeitungsprozesses den kompletten Quellcode zu kompilieren,
bzw. das gesamte Maschinenprogramm oder den kompletten Quellcode
in den Speicher der Datenverarbeitungseinrichtung zu übertragen,
da bei Änderungen des Datenverarbeitungsprozesses jeweils
nur eines oder wenige Datenelemente in den Speicher der Datenverarbeitungseinrichtung
zu übertragen sind. Mitunter kann eine Übertragung
von Datenelementen auch vollständig entfallen, sofern die Änderung
des Datenverarbeitungsprozesses beispielsweise im Löschen
einer bestimmten Sequenz von Kalkulationsanweisungen, also eines Datenelements,
besteht. Da kleinere Datenmengen übertragen werden, reduziert
sich der Aufwand bei Änderungen eines Datenverarbeitungsprozesses und Änderungen
können schneller vorgenommen werden. Eine weitere Erhöhung
der Schnelligkeit sowie eine weitere Verringerung des Aufwands bei Änderungen
von Datenverarbeitungsprozessen ergibt sich aus dem Umstand, dass
insbesondere bei länglichen und unübersichtlichen
Quellcodes betreffende zu ändernde Kalkulationsanweisungen
nicht mehr umständlich identifiziert werden müssen.
Die einzelnen Datenelemente erlauben vielmehr einen gezielten Zugriff
auf ein Datenelement mit der zu ändernden Sequenz von Kalkulationsanweisungen.
-
Jeweilige
Sequenzen von Kalkulationsanweisungen wenigstens zweier Datenelemente
können jeweilige Teilprozesse desselben Datenverarbeitungsprozesses
oder zweier verschiedener Datenverarbeitungsprozesse sein, die zur
Ausführung eines Gesamtprozesses sukzessiv auszuführen
sind. Als Ergebnis des Ausführens einer ersten Sequenz von
Kalkulationsanweisungen eines ersten Datenelements kann beispielsweise
eine Identifikation ausgegeben werden, wobei die Identifikation
mit der Identifikation eines zweiten Datenelementes übereinstimmt,
das eine nachfolgend auszuführende zweite Sequenz von Kalkulationsanweisungen
umfasst, um nachfolgend dieses zweite Datenelement zu identifizieren
und die zweite Sequenz von Kalkulationsanweisungen auszuführen.
Daneben können bei der Ausführung der ersten Sequenz
von Kalkulationsanweisungen Daten erzeugt werden, die bei Ausführen der
zweiten Sequenz von Kalkulationsanweisungen wenigstens zum Teil
verarbeitet werden. Auf diese Weise ist bei Vorsehen entsprechender
Datenelemente die sukzessive Ausführung einer beliebigen Anzahl
von Sequenzen von Kalkulationsanweisungen möglich. Insbesondere
bedingte Verzweigungen und Schleifen, wie sie bei herkömmlichen
Computerprogrammen häufig auftreten, lassen sich durch
derartige sukzessiv ausführbare Sequenzen von Kalkulationsanweisungen
ersetzen. Gleichwohl ist das Auftreten bedingter Verzweigungen und
Schleifen jedoch auch innerhalb der Sequenz von Kalkulationsanweisungen
eines einzigen Datenelements möglich. Im Allgemeinen werden
aber bedingte Verzweigungen und Schleifen bevorzugt durch sukzessiv ausführbare
Sequenzen von Kalkulationsanweisungen verschiedener Datenelemente
ersetzt, da dies die Rechengeschwindigkeit der Datenverarbeitungseinrichtung
wesentlich erhöht.
-
Andererseits
kann es sich bei den Sequenzen von Kalkulationsanweisungen wenigstens
zweier Datenelemente desselben Datenverarbeitungsprozesses oder
zweier verschiedener Datenverarbeitungsprozesse auch um Alternativprozesse
handeln, wobei bei Ausführen des Datenverarbeitungsprozesses
oder beider Datenverarbeitungsprozesse genau eine dieser Sequenzen
von Kalkulationsanweisungen ausführbar ist. Ein solcher
Datenverarbeitungsprozess lässt sich beispielsweise an
verschiedene Verarbeitungsmodi anpassen, wobei je nach Verarbeitungsmodus
ein entsprechendes Datenelement identifiziert wird.
-
Bevorzugt
liegen die Kalkulationsanweisungen wenigstens einer Sequenz von
Kalkulationsanweisungen in einem zeichenkodierten Format in dem betreffenden
Datenelement vor. Liegen die Kalkulationsanweisungen in einem zeichenkodierten
Format vor, so entfällt die Notwendigkeit, den Quellcode
zu kompilieren. Ferner ist damit eine vollständige Trennung
von grundlegenden technischen Kalkulationsanweisungen, die als binäre
Maschinenbefehle vorliegen, und Kalkulationsanweisungen, welche
die logische Verarbeitung der Daten betreffen und als Parameter
im zeichenkodierten Format vorliegen, möglich. Bisher notwendige
Programmiertätigkeiten bei Erstellung und War tung von Datenverarbeitungsprozessen
entfallen bei einer solchen Trennung. Besonders bevorzugt liegen
die Kalkulationsanweisungen im XML-Format vor, da dieses ein gängiges
und verbreitetes Format ist. Dateien im XML-Format sind von den
meisten Interpretern lesbar und somit plattformunabhängig.
-
Bei
einer bevorzugten Ausführungsform der Erfindung ist wenigstens
zwei Datenelementen zweier verschiedener Datenverarbeitungsprozesse
die gleiche Identifikation zugeordnet. Bei einer derartigen Ausführungsform
kann insbesondere wenigstens eine vordefinierte Datenverarbeitungskategorie vorgesehen
sein, wobei wenigstens eines der Datenelemente über die
ihm zugeordnete Identifikation wenigstens einer Datenverarbeitungskategorie
zugewiesen ist und die Datenverarbeitungseinrichtung ferner zum
Verarbeiten von Daten unter Vorgabe einer Datenverarbeitungskategorie
eingerichtet ist, wobei die Datenverarbeitungseinrichtung bei Verarbeiten
von Daten mittels eines Datenverarbeitungsprozesses oder mehrerer
unterschiedlicher Datenverarbeitungsprozesse ein jeweiliges Datenelement
nur dann identifiziert, wenn das Datenelement der vorgegebenen Datenverarbeitungskategorie
zugewiesen ist. Die Einrichtung von Datenverarbeitungskategorien
ermöglicht es, dass von den Sequenzen von Kalkulationsanweisungen
mehrerer Datenelemente, die auch von verschiedenen Datenprozessen
stammen können, jeweils nur solche ausgeführt
werden, die logisch zusammenhängen. Dabei kann zwischen
den Datenverarbeitungskategorien eine Hierarchie in Form einer verzweigten
Baumstruktur existieren, so dass beispielsweise einer Datenverarbeitungskategorie
eine oder mehrere in der Hierarchie tiefer gestellte Datenverarbeitungskategorien
zugewiesen sind, und jeder dieser tiefer gestellten Datenverarbeitungskategorien
wiederum eine oder mehrere in der Hierarchie noch tiefer gestellte
Datenverarbeitungskategorien zugewiesen sind, und so weiter. Mittels Datenverarbeitungskategorien
lassen sich auch die von den Datenverarbeitungsprozessen zu verarbeitenden
Daten kategorisieren und dafür sorgen, dass je nach vorgegebener
Datenverarbeitungskategorie entsprechende Daten verarbeitet werden.
Dementsprechend ist eine Datenverarbeitungseinrichtung ganz besonders
bevorzugt, bei der wenigstens ein Teil der zu verarbeitenden Daten
wenigstens einer Datenverarbeitungskategorie zugewiesen ist und
die Datenverarbeitungseinrichtung zum Verarbeiten von Daten unter
Vorgabe einer Datenverarbeitungskategorie eingerichtet ist, indem
sie von den einer Datenverarbeitungskategorie zugewiesenen Daten
wenigstens einen Teil derjenigen Daten verarbeitet, die der vorgegebenen
Datenverarbeitungskategorie zugewiesen sind. Ferner ist es vorteilhaft,
eine Suchfunktion vorzusehen, die bei Vorgabe einer Datenverarbeitungskategorie
alle Datenelemente und/oder Daten anzeigt, die dieser Datenverarbeitungskategorie
zugewiesen sind, um einen schnellen Zugriff auf Datenelemente und
Daten einer bestimmten Datenverarbeitungskategorie zu ermöglichen.
-
Eine
Datenverarbeitungseinrichtung gemäß der vorliegenden
Erfindung kann derart eingerichtet sein, dass sie wenigstens einem
Datenelement oder jedem Datenelement eine jeweils eindeutige Kennung
und/oder eine weltweit eindeutige Kennung und/oder eine GUID zuweist.
Mittels eindeutiger Kennungen ist eine eindeutige Adressierung und
Identifizierung eines Datenelements innerhalb der Datenverarbeitungseinrichtung,
innerhalb eines gegebenen die Datenverarbeitungeinrichtung umfassenden Systems
oder, bei Verwendung weltweit eindeutiger Kennungen, sogar weltweit
möglich. Außerdem können dadurch Datenelemente
verschiedener Vorrichtungen miteinander gemischt werden, ohne dass
dabei Datenelemente gelöscht würden.
-
Die
Vorrichtung kann in jedem beliebigen Computer oder Computersystem
implementiert sein. Ein solches System kann wenigstens zwei oder
mehr miteinander verbundene Computer umfassen. Diese können
durch ein bi- oder multidirektionales Netzwerk oder über
das Internet miteinander verbunden sein. Besonders bevorzugt umfasst
das System wenigstens eine erste erfindungsgemäße
Vorrichtung, bei der es sich um eine Datenbank handelt, und/oder wenigstens
eine zweite erfindungsgemäße Vorrichtung, bei
der es sich um eine Datenverarbeitungseinrichtung handelt.
-
Die
Erfindung wird nachfolgenden anhand von bevorzugten Ausführungsbeispielen
unter Zuhilfenahme von Zeichnungen näher erläutert.
-
Es
zeigen:
-
1 eine
Vorrichtung gemäß der vorliegenden Erfindung;
-
2 ein
Flussdiagramm eines Verfahrens gemäß der vorliegenden
Erfindung;
-
3a) ein Datenelement;
-
3b) Datenelemente nach erfolgter Überschreibung
des Datenelements der 3a);
-
3c) Datenelemente nach einer weiteren Überschreibung
eines Datenelements der 3b);
-
3d) Datenelemente nach einer Ersetzung eines der
Datenelemente der 3c);
-
4 ein
Datenelement mit Indikatoren;
-
5 ein
Datenobjekt;
-
6 das
Datenobjekt der 5 nach Überschreiben
eines Datenelements;
-
7 ein
System mit zwei Vorrichtungen gemäß der vorliegenden
Erfindung;
-
8 eine
Datenverarbeitungseinrichtung;
-
9 eine
Baumstruktur hierarchischer Datenverarbeitungskategorien;
-
10a) ein Datenelement in einer Datenverarbeitungseinrichtung;
-
10b) Datenelemente nach erfolgter Überschreibung
des Datenelements der 10a);
-
10c) Datenelemente nach einer weiteren Überschreibung
eines Datenelements der 10b);
und
-
10d) Datenelemente nach einer Ersetzung eines
der Datenelemente der 10c).
-
1 zeigt
eine Vorrichtung 1 gemäß der vorliegenden
Erfindung. Die Vorrichtung 1 umfasst einen Permanentspeicher 2 und
einen Arbeitsspeicher 3. Sowohl der Vorrichtung 1 als
solcher als auch deren Permanentspeicher 2 ist jeweils
eine GUID zugeordnet, und zwar der Vorrichtung 1 die GUID 4 und dem
Permanentspeicher 3 die GUID 5. In dem Permanentspeicher 2 sind
Datenelemente 6 und Datenobjekte 7 gespeichert,
wobei der Übersichtlichkeit halber jeweils nur ein Datenelement 6 und
ein Datenobjekt 7 dargestellt sind. Jedem Datenelement 6 sind eine
GUID 8 und eine Validitätszeit 9 zugeordnet, während
jedem Datenobjekt 7 eine GUID 10 und eine Validitätsstartzeit 11 zugeordnet
sind.
-
Zum
Bearbeiten und Lesen der im Permanentspeicher 2 gespeicherten
Datenelemente 6 und Datenobjekte 7 kann entweder
direkt auf die im Permanentspeicher 2 gespeicherten Datenelemente 6 und
Datenobjekte 7 zurückgegriffen werden, oder diese
werden aus dem Permanentspeicher 2 ausgelesen, in ein XML-Format
umgewandelt und in den Arbeitsspeicher 3 geschrieben. Im
in der 1 gezeigten Arbeitsspeicher 3 ist mittels
gestrichelter Linien ein Datenelement 12 im XML-Format
dargestellt, das durch Auslesen eines Datenelements 6 aus
dem Permanentspeicher 2 und Umwandeln in ein XML-Format
erzeugt worden ist. Das Auslesen des Datenelements 6 hat
keinen Einfluss auf die Speicherung des Datenelements 6 im
Permanentspeicher 2. Entsprechend ist im Arbeitsspeicher 3 ein
Datenobjekt 13 im XML-Format mittels gestrichelter Linien dargestellt,
das durch Auslesen eines Datenobjekts 7 aus dem Permanentspeicher 2 und
Umwandeln in ein XML-Format erzeugt worden ist, wobei auch hier das
Auslesen des Datenobjekts 7 keinen Einfluss auf den Speicherzustand
des Datenobjekts 7 im Permanentspeicher 2 hat.
-
Im
Folgenden wird ein Verfahren zum Speichern von Datenelementen 6 spezifischer
Attribute und zum Überschreiben von im Permanentspeicher 2 gespeicherten
Datenelementen 6 gemäß der vorliegenden
Erfindung erläutert. 2 zeigt
ein Flussdiagramm des Verfahrens. Nach Beginn des im Flussdiagramm
der 2 dargestellten Verfahrens mit dem Schritt S0
wird im Schritt S1 das in 3a) gezeigte Datenelement 6 im
Permanentspeicher 2 gespeichert. Bei dem Datenelement 6 handelt
es sich um eine Zeichenkette mit den Zeichen „Maier”,
die einen Nachnamen bezeichnet. Weil das Datenelement 6 einen
Nachnamen bezeichnet, handelt es sich bei ihm um ein Datenelement
des Attributs „Nachname”. Dem Datenelement 6 werden
beim Speichern im Schritt S1 die Validitätszeit 9 und
die GUID 8 zugeordnet. Die Validitätszeit 9 hat
im vorliegenden Fall den Wert „24.09.2007” und
entspricht dem Tag, an dem das Datenelement 6 im Permanentspeicher 2 gespeichert
wird. Als GUID 8 wird der Einfachheit halber eine vierstellige
Zahl angenommen, die hier den Wert „7777” hat.
-
Das
Datenelement 6 des Attributs „Nachname” soll
nun durch ein Datenelement 14 desselben Attributs „Nachname” überschrieben
werden, bei dem es sich um eine Zeichenkette mit den Zeichen „Müller” handelt.
Dazu wird im Schritt S2 das Datenelement 14 im Permanentspeicher 2 gespeichert, wobei
ihm die Validitätszeit 15 zugewiesen wird, die dem
Zeitpunkt des Speicherns des Datenelements 14 entspricht
und vorliegend den Wert „13.12.2007” hat. Die
Validitätszeit 15 ist folglich jünger
als die Validitätszeit 9. Zusätzlich
wird dem Datenelement 14 eine eigene GUID 16 mit
dem Wert „7778” zugewiesen. Dabei bleibt das Datenelement 6 unberührt,
d. h. das Datenelement 6 wird weder gelöscht noch
anderweitig verändert, sein Speicherzustand wird vielmehr beibehalten. 3b) zeigt die Situation nach Ausführen
des Schrittes S2: Neben dem Datenelement 6, seiner Validitätszeit 9 und
seiner GUID 8 liegt auch das Datenelement 14 mitsamt
Validitätszeit 15 und GUID 16 im Permanentspeicher 2 gespeichert
vor.
-
Sofern
nach Erfolgen der Überschreibung auf ein Datenelement des
Attributs „Nachname” zugegriffen wird, um dieses
Datenelement in den Arbeitsspeicher 3 auszulesen, wird
im Schritt S3 eine Bezugszeit vorgegeben. Gemäß einem
voreingestellten ersten Arbeitsmodus der Vorrichtung 1 wird automatisch
die aktuelle Zeit des Zugriffs als Bezugszeit gewählt und
vorgegeben. Diese ist naturgemäß jünger
als beide Validitätszeiten 9 und 15.
Damit wird im nachfolgenden Schritt S4 geprüft, ob einem
der im Permanentspeicher 2 gespeicherten Datenelemente 6 und 14 des
Attributs „Nachname” eine Validitätszeit 9 und 15 zugewiesen
ist, die älter ist als die Bezugszeit. Ist dies der Fall,
wird im Schritt S5 dasjenige der beiden im Permanentspeicher 2 gespeicherten
Datenelemente 6 und 14 des Attributs „Nachname” mit der
jüngsten Validitätszeit 15 ausgelesen,
im vorliegenden Beispiel also das Datenelement 14. Das
Verfahren endet mit dem Schritt S6. Stellt die Prüfung
im Schritt S4 dagegen fest, dass keinem der Datenelemente 6 und 14 eine
Validitätszeit 9 und 15 zugewiesen ist,
die älter ist als die Bezugszeit, sieht die Vorrichtung 1 vom
Auslesen der Datenelemente 6, 14 ab und das Verfahren
endet mit dem Schritt S7.
-
Außerhalb
des Permanentspeichers 2 unterscheidet sich die Wirkung
des erfindungsgemäßen Verfahrens somit nicht von
der Wirkung bekannter Verfahren, bei denen gespeicherte Datenelemente überschrieben
und dabei physikalisch gelöscht werden: Bei Zugriffen auf
Datenelemente des betreffenden Attributs wird in beiden Fällen
das jeweils neu gespeicherte Datenelement ausgegeben, mit dem das
ursprüngliche Datenelement überschrieben worden
ist. Innerhalb des Permanentspeichers 2 dagegen bleibt
bei Überschreiben eines Datenelements gemäß dem
erfindungsgemäßen Verfahren das überschriebene
Datenelement unverändert im Permanentspeicher 2 gespeichert,
während es bei bekannten Verfahren unter Umständen
physikalisch gelöscht wird und sein Informationsgehalt
dadurch unwiederbringlich verloren geht. Somit erlaubt es das erfindungsgemäße
Verfahren, auch nach dem Überschreiben bei Bedarf auf das überschriebene
Datenelement zuzugreifen. Sofern dem Datenelement eine eigene Kennung
oder wie im vorliegenden Beispiel eine GUID zugewiesen wird, erleichtert
diese die Adressierung des Datenelements bei einem Zugriff auf dasselbe.
Ein unbeabsichtigtes Löschen von Datenelementen, beispielsweise
bei Aktualisierungen bestehender Datenbestände, ist folglich
grundsätzlich ausgeschlossen.
-
In
einem zweiten Arbeitsmodus der Vorrichtung 1 können
auch andere Bezugszeiten vorgegeben werden. Wird bei einem Zugriff
auf Datenelemente des Attributs „Nachname” beispielsweise
eine zwischen den Validitätszeiten 9 und 15 liegende
Bezugszeit vorgegeben, so liest die Vorrichtung 1 das Datenelement 6 aus,
da dessen Validitätszeit 9 nun die jüngste
derjenigen Validitätszeiten ist, die älter sind
als die Bezugszeit. Gibt man stattdessen eine Bezugszeit vor, die
vor der Validitätszeit 9 liegt bzw. die älter
als die Validitätszeit 9 ist, wird kein Datenelement
ausgelesen, weil keine der Validitätszeiten 9 und 15 älter
ist als die Bezugszeit. Bei Vorgabe einer Bezugszeit, die relativ
zur Zeit des Zugriffs in der Zukunft liegt, wird wiederum das Datenelement 14 ausgelesen,
da dessen Validitätszeit 15 auch in diesem Fall
die jüngste der Validitätszeiten 9 und 15 ist,
die beide älter als die Bezugszeit sind.
-
Bei
einer späteren Überschreibung des Datenelements 14 in
der 3b), welches wie erwähnt bis
dahin dasjenige der beiden Datenelemente 6 und 14 des
Attributs „Nachname” mit der jüngsten
Validitätszeit 15 ist, wird analog verfahren.
Zum Überschreiben des Datenelements 14, beispielsweise durch
ein Datenelement 17 desselben Attributs „Nachname”,
bei dem es sich um die Zeichenkette „Schmidt” handelt,
wird das Datenelement 17 im Permanentspeicher 2 gespeichert,
dabei wird ihm eine Validitätszeit 18, im vorliegenden
Fall „04.03.2008” zugewiesen, bei der es sich
um den Tag handelt, an dem das Datenelement 17 in den Permanentspeicher 2 gespeichert
wurde, und es wird ihm eine GUID 19 zugwiesen, vorliegend
die GUID 19 mit dem Wert „7779”. 3c) zeigt die Situation nach Überschreiben
des Datenelements 14 durch das Datenelement 17.
Nach Erfolgen der Überschreibung wird im ersten Arbeitsmodus
der Vorrichtung 1 bei Zugriffen auf Datenelemente des Attributs „Nachname” dasjenige
der drei gespeicherten Datenelemente 6, 14, 17 ausgelesen,
das nunmehr die jüngste Validitätszeit 18 von
allen Validitätszeiten 9, 15, 18 der
Datenelemente 6, 14, 17 des Attributs „Nachname” hat,
also das Datenelement 17. Im zweiten Arbeitsmodus wird
bei Zugriffen mit Vorgabe einer Bezugszeit, die vor der Validitätszeit 9 liegt,
wie oben erläutert keines der Datenelemente 6, 14, 17 ausgegeben,
bei Vorgabe einer Bezugszeit zwischen der Validitätszeit 9 und
der Validitätszeit 15 wird das Datenelement 6 ausgelesen,
bei Vorgabe einer Bezugszeit zwischen der Validitätszeit 15 und
der Validitätszeit 18 wird das Datenelement 14 ausgelesen,
und bei Vorgabe einer Bezugszeit, die jünger ist als die
Validitätszeit 18, beispielsweise wie im ersten
Arbeitsmodus der Vorrichtung 1 die Zeit, zu der zugegriffen
wird oder einer relativ zum Zugriff in der Zukunft liegenden Zeit,
erfolgt die Ausgabe des Datenelements 17.
-
Im
erläuterten Beispiel kann alternativ statt jeweils getrennte
GUID und Validitätszeiten vorzusehen auch eine Leitkennung
eingerichtet werden, zu der GUID und Validitätszeit zusammengefasst
sind. So könnte zum Beispiel dem Datenelement 6 statt der
GUID 8 und der Validitätszeit 9 eine
Leitkennung mit dem Wert „7777 24092007” zugeordnet
werden, dem Datenelement 14 statt der GUID 16 und
der Validitätszeit 15 eine Leitkennung mit dem
Wert „7778 13122007”, und dem Datenelement 17 statt
der GUID 19 und der Validitätszeit 18 eine
Leitkennung mit dem Wert „7779 04032008”.
-
Unter
gewissen Umständen ist es wünschenswert, ein gespeichertes
Datenelement durch ein anderes Datenelement zu ersetzen, wobei das
ersetzte Datenelement gelöscht wird. Beispielsweise könnte
das Datenelement 14 beim Speichern irrtümlich
mit einem anderen Datenelement verwechselt worden sein, und anstatt
der Zeichenkette „Müller” hätte
richtigerweise die Zeichenkette „Fischer” mit der
Validitätszeit 16 gespeichert werden müssen.
Für solche Fälle ist die Vorrichtung 1 zum
Ersetzen gespeicherter Datenelemente durch andere Datenelemente
eingerichtet. Zur Vermeidung von Informationsverlusten bei der Ersetzung
ist die Vorrichtung 1 darüber hinaus zur Generie rung
eines Protokolls 20 im XML-Format eingerichtet, in welchem
Einzelheiten der Ersetzung vermerkt werden.
-
Ein
Beispiel für eine Ersetzung wird anhand der 3c) und 3d) verdeutlicht.
In der Situation gemäß der 3c) soll
das Datenelement 14 durch ein Datenelement 21 des
Attributs „Nachname”, bei dem es sich um die Zeichenkette „Fischer” handelt, ersetzt
werden, ohne dass ein Informationsverlust befürchtet werden
muss. Dazu wird ein Protokoll 20 erzeugt und der Validitätszeit 15 zugeordnet.
In diesem werden zum Beispiel der Tag und die Uhrzeit der Ersetzung,
eine IP-Adresse eines Computers, von dem aus die Ersetzung getätigt
wurde, der die Ersetzung veranlassende Benutzer der Vorrichtung 1,
eine Kopie der Zeichenkette „Müller” sowie
ein Änderungsvermerk festgehalten. Außerhalb des
Protokolls 20 wird das Datenelement 14 gelöscht
und das Datenelement 21 wird unter Zuweisung der GUID 16 und
der Validitätszeit 15, die zuvor dem Datenelement 14 zugewiesen
waren, gespeichert. Somit ist das Datenelement 21 zwar
außerhalb des Protokolls 20 nicht mehr existent,
gleichwohl ist dessen Informationsgehalt nicht verloren, da die
Zeichenkette „Müller” im Protokoll 20 vermerkt
wurde.
-
Anstatt
ein derartiges Protokoll 20 erst bei Erfolgen einer Ersetzung
eines Datenelements durch ein anderes zu generieren, kann alternativ
bereits beim erstmaligen Speichern eines Datenelements, wenn dem
Datenelement eine Validitätszeit zugewiesen wird, dieser
Validitätszeit ein Protokoll 20 zugeordnet werden.
In diesem Protokoll 20 werden zum Beispiel der Tag und
die Uhrzeit des Speicherns des Datenelements, die nicht notwendigerweise
mit der dem Datenelement zugewiesenen Validitätszeit übereinstimmen
müssen, eine IP-Adresse eines Computers, von dem aus das
Speichern des Datenelements veranlasst wurde, der die Speicherung
des Datenelements veranlassende Benutzer der Vorrichtung 1 und
ein Vermerk über die Speicherung im Protokoll 20 festgehalten.
Wird das Datenelement zu einem späteren Zeitpunkt durch
ein anderes Datenelement ersetzt, so erfolgt wie oben erläutert
ein zusätzlicher entsprechender Vermerk im Protokoll.
-
Für
ein Datenelement können beliebige Indikatoren zum Anzeigen
unterschiedlicher Zustände von Datenelementen vorgesehen
sein. 4 zeigt das Datenelement 6 der 3a) mit verschiedenen Indikatoren 22, 23, 24.
Der Indikator 22 mit dem Wert „2” zeigt
an, dass das Datenelement 6 dem Permanentspeicher 2 zugeordnet
ist. Der Indikator 23 mit dem Wert „P” ermöglicht öffentliche
Zugriffe auf das Datenelement 6. Mittels entsprechender Änderungen des
Indikators 23 lässt sich der Zugriff auf das Datenelement 6 auf
eine einzelne Person oder Personengruppen bzw. bestimmte Applikationen
beschränken. Schließlich bezeichnet der Indikator 24 eine
Validitätsendzeit des Datenelements 6, vorliegend „02.09.2008”,
bei deren Überschreiten das Datenelement 6 seine
Gültigkeit verliert und nicht mehr ausgelesen wird. Weitere
Indikatoren können vorgesehen sein, um beispielsweise anzuzeigen,
dass das betreffende Datenelement zur Löschung vorgesehen
ist. Mit einem solchen Indikator lässt sich das im Permanentspeicher 2 gespeicherte
Gesamtvolumen an Daten reduzieren, indem Datenelemente, an denen
definitiv kein Interesse mehr besteht, durch entsprechendes Setzen
des genannten Indikators zur Löschung freigegeben werden.
Ferner kann ein Indikator eine Periodendauer bezeichnen, die periodisch erfolgende
Zugriffe auf das Datenelement 6 angibt.
-
Die
Indikatoren 22, 23, 24 können
bei einer Überschreibung des Datenelements 6 durch
das neue Datenelement 14 dem neuen Datenelement 14 unverändert
zugewiesen werden, oder dem Datenelement 14 können
einzelne oder alle der Indikatoren 22, 23, 24 mit
neuen Werten zugewiesen werden. Ferner können dem Datenelement 14 weniger
oder mehr Indikatoren 22, 23, 24 als
dem von ihm überschriebenen Datenelement 6 zugewiesen
werden.
-
Praktischerweise
werden zwei oder mehrere Datenelemente, wie in der 1 zu
sehen ist, zwischen denen eine logische Beziehung besteht, zu einem
Datenobjekt 7 zusammengefasst. 5 zeigt Einzelheiten
des Datenobjekts 7. Das Datenobjekt 7 umfasst
das Datenelement 6 der 3a) mit
der ihm zugewiesenen Validitätszeit 9 und der
GUID 8 sowie eine weiteres Datenelement 25 und
dessen Validitätszeit 26 sowie GUID 27.
Das Datenelement 25 ist ein Datenelement des Attributs „Sozialversicherungsnummer” und
ist damit von einem anderen Attribut als das Datenelement 6.
Dem Datenelement 25 ist die Validitätszeit 26 mit
dem Wert „11.02.2007” und die GUID 27 mit
dem Wert „1389” zugeordnet. Dem Datenobjekt 7 als
solchem ist wie oben beschrieben die GUID 10 zugewiesen,
die gemäß 5 den Wert „2425” hat.
Außerdem ist dem Datenobjekt 7 als Indikator die
Validitätsstartzeit 11 zugeordnet, die vorliegend
mit der Validitätszeit 9 koinzidiert. Das Datenobjekt 7 wird
deshalb erst mit Speichern des Datenelements 6 zum Auslesen
freigegeben. Das Datenobjekt 7 kann darüber hinaus
um beliebig viele Datenelemente beliebiger Attribute erweitert werden,
beispielsweise um ein Datenelement des Attributs „Adresse” oder
um ein Datenelement des Attributs „Geburtstag”.
Mit dem Datenobjekt 7 lassen sich somit personenspezifische
Daten einzelner Personen bequem verwalten.
-
6 zeigt
eine Situation, nachdem das Datenelement 6 der Datengruppe 7 durch
das Datenelement 14 wie im Zusammenhang mit der 3b) erläutert überschrieben
wurde. Nach Überschreiben umfasst das Datenobjekt 7 neben
dem Datenelement 6 und dem Datenelement 25 auch
das Datenelement 14. Die GUID 10 des Datenelements 7 und
dessen Validitätsstartzeit 11 sind durch das Überschreiben unverändert
geblieben. Bei Zugriffen auf Datenelemente des Attributs „Nachname” im
Datenobjekt 7 wird wie oben beschrieben nunmehr das Datenelement 14 ausgelesen.
-
Das
Datenobjekt 7 kann auch als Musterdatenobjekt 7 zur
Erzeugung beliebig vieler Datenobjekte zur Verwaltung von Daten
verschiedener Personen verwendet werden. Ein Datenobjekt für
eine bestimmte Person wird dann einfach durch Kopieren des Musterdatenobjekts 7 und Überschreiben
des Datenelements 6 durch den betreffenden Namen der Person
und Überschreiben des Datenelements 25 durch die
entsprechende Sozialversicherungsnummer der jeweiligen Person erzeugt,
wobei dem so erzeugten neuen Datenobjekt eine eigene GUID und eine
eigene Validitätsstartzeit zugewiesen werden. Dabei wird
für das neue Datenobjekt ein Indikator vorgesehen, über
den sich jederzeit ein Bezug des durch Vererbung des Musterdatenobjekts 7 hervorgegan genen
Datenobjekts zum Musterdatenobjekt 7 herstellen lässt.
Ein solcher Indikator lässt ich beispielsweise dazu verwenden,
um Änderungen im Musterdatenobjekt 7 bequem auf
das aus ihm hervorgegangene Datenobjekt zu übertragen.
Wird beispielsweise im Musterdatenobjekt 7 zusätzlich
zu den bereits vorhandenen Datenelementen 9 und 25 ein
weiteres Datenelement des Attributs „Firmenzugehörigkeit” eingefügt,
dann erfolgt eine entsprechende Einfügung auch in allen
bisher als dem Musterdatenobjekt 7 hervorgegangenen und über
den genannten Indikator mit diesem in Beziehung stehenden Datenobjekten.
Sollte für einzelne der Datenobjekte das so eingefügte
Datenelement des Attributs „Firmenzugehörigkeit” nicht
mit den übrigen Datenelementen 9 und 24 kompatibel
sein, so kann das neu eingefügte Datenelement des Attributs „Firmenzugehörigkeit” für
diese einzelnen Datenelemente durch ein jeweils kompatibles Datenelemennt
des Attributs „Firmenzugehörigkeit” auf
die beschriebene Weise überschrieben werden. Insgesamt
reduziert sich dadurch der Arbeitsaufwand beim Einpflegen neuer
Datenelemente in Datenobjekte in solchen Fällen, in denen
eine große Anzahl von Datenobjekten vorliegt und das neu
eingepflegte Datenelement mit den allermeisten der Datenobjekte
kompatibel ist.
-
Ferner
ist die in der 1 dargestellte Vorrichtung 1 eingerichtet,
im Arbeitsspeicher 3 erfolgende Ersetzungen bzw. Überschreibungen
der in den Arbeitsspeicher 3 ausgelesenen Datenelemente 12 oder
von Datenelementen der in den Arbeitsspeicher 3 ausgelesenen
Datenobjekte 13 unmittelbar nach Erfolgen der Ersetzung
oder Überschreibung im Arbeitsspeicher 3 entsprechend
für die im Permanentspeicher 2 gespeicherten zugehörigen
Datenelemente 6 und Datenobjekte 7 nach einem
der beschriebenen Verfahren auszuführen. Dies beugt eventuellen
Informationsverlusten bei Störfällen der Vorrichtung 1 vor,
bei denen im flüchtigen Arbeitsspeicher 3 erfolgte Überschreibungen,
die noch nicht entsprechend im Permanentspeicher 2 gespeichert wurden,
verloren gehen.
-
7 zeigt
die Vorrichtung 1 als Teil eines Systems 28, das
ferner eine Datenverarbeitungseinrichtung 29 und eine Benutzerschnittstelle 30 umfasst.
In diesem System 28 erfüllt die Vorrichtung 1 die
Funktion eines Datenbanksystems. Das System 28 weist eine
Client/Server-Architektur auf, bei der Datenverarbeitungseinrichtung 29,
Vorrichtung 1 und Benutzerschnittstelle 30 jeweils
auf verschiedenen, räumlich voneinander beabstandeten Computern
implementiert sind, wobei die Datenverarbeitungseinrichtung 29 einen
Server 31, die Vorrichtung 1 einen Datenbanksystemserver 32 und
die Benutzerschnittstelle 30 einen Benutzerschnittstellenserver 33 aufweist.
Server 31 ist eingerichtet, um sowohl mit dem Benutzerschnittstellenserver 33 als
auch mit dem Datenbanksystemserver 32 zu kommunizieren.
Darüber hinaus ist eine Kommunikation zwischen dem Datenbanksystemserver 32 und
dem Benutzerschnittstellenserver 33 vorgesehen. Die Kommunikation
zwischen den drei Servern 31, 32 und 33 verläuft asynchron.
Der Benutzerschnittstellenserver 33 kann ferner über
eine synchron arbeitende Kommunikationsverbindung mit einem Client 34 kommunizieren. Bei
der synchronen Kommunikation wartet ein Sender beim Senden von Daten
auf eine Antwort des Empfängers und ist dabei während
der Zeit des Wartens blockiert, während bei der asynchronen
Kommunikation das Senden und Empfangen von Daten zeitlich versetzt
und ohne Warten auf eine Antwort des Empfängers stattfinden.
Um eine voneinander unabhängige Arbeitsweise zu gewährleisten,
wird zwischen den Servern 31, 32, 33 jedoch
eine asynchrone Kommunikation bevorzugt. Dabei kann zwischen den
Servern 31, 32, 33 eine asynchrone Kommunikation
auch dann eingerichtet sein, wenn es sich bei den Servern 31, 32, 33 um
solche handelt, die von der technischen Seite her ausschließlich
für eine synchrone Kommunikation ausgelegt sind, indem vorgesehen
wird, dass die Server 31, 32, 33 beim Empfang
von Daten unmittelbar eine Empfangsbestätigung an den Sender
schicken und nach Beendigung eines durch den Empfang der Daten gestarteten
Prozesses mit dem Sender erneut Verbindung aufnehmen.
-
In
der Datenverarbeitungseinrichtung 29 sind verschiedene
Datenverarbeitungsprozesse zum Verarbeiten von Daten implementiert.
Mittels der Datenverarbeitungsprozesse werden vordefinierte Abfolgen
von Aktivitäten in einer Organisation realisiert, die gemeinhin
als Arbeitsabläufe oder Workflows bezeichnet werden. 8 zeigt
eine schematische Darstellung der Datenve rarbeitungseinrichtung 29,
die neben dem Server 31 ein Rechenwerk oder einen Prozessor 35 und
einen Speicher 36 aufweist. Beispielhaft ist in 8 eine
erste Gruppe mehrerer im Speicher 36 gespeicherter Datenelemente 37 gezeigt,
durch die ein erster Datenverarbeitungsprozess 38 in der
Datenverarbeitungseinrichtung 29 implementiert ist, und
es ist eine zweite Gruppe mehrerer Datenelemente 39 gezeigt,
durch die ein zweiter Datenverarbeitungsprozess 40 in der
Datenverarbeitungseinrichtung 29 implementiert ist. Jedes
der Datenelemente 37, 39 umfasst eine jeweilige
Sequenz von Kalkulationsanweisungen. Ferner liegt jedes der Datenelemente 37, 39 im
XML-Format vor, d. h. die Sequenzen von Kalkulationsanweisungen
liegen in zeichenkodierter Form vor. Sie sind insbesondere nicht
kompiliert und liegen nicht als binäre Maschinenbefehle
oder binäres Maschinenprogramm vor, sondern als Quellcode.
Darüber hinaus ist jedem einzelnen der Datenelemente 37 der
ersten Gruppe eine jeweilige GUID 41 zugeordnet, jedem
einzelnen der Datenelemente 39 der zweiten Gruppe ist eine
GUID 42 zugeordnet, und es ist auch jedem einzelnen der Datenverarbeitungsprozesse 38, 40 eine
jeweilige GUID 43, 44 zugeordnet, und zwar dem
ersten Datenverarbeitungsprozess 38 die GUID 43 und
dem zweiten Datenverarbeitungsprozess 40 die GUID 44. Neben
den gezeigten Datenverarbeitungsprozessen 38, 40 sind
in der Datenverarbeitungseinrichtung 29 weitere, in der 8 nicht
zu sehende, Datenverarbeitungsprozesse durch jeweilige Gruppen von
Datenelementen implementiert, die im Speicher 36 gespeichert
sind. Jedem einzelnen der Datenelemente 37, 39 jeder
Gruppe ist eine jeweilige Identifikation zugeordnet, bei der es
sich um eine einfache Zeichenkette handelt. Dabei ist innerhalb
der Gruppe von Datenelementen 37, 39 eines jeweiligen
der Datenverarbeitungsprozesse 38, 40 die Zuordnung
zwischen Identifikationen und Datenelementen 37, 39 jeweils
eindeutig, d. h. allen Datenelementen 37, 39 desselben
Datenverarbeitungsprozesses 38, 40 sind jeweils
verschiedene Identifikationen eindeutig zugeordnet. Es ist jedoch
möglich, dass einem Datenelement 37 aus der ersten
Gruppe dieselbe Identifikation zugeordnet ist wie einem Datenelement 39 aus der
zweiten Gruppe oder beliebig vielen Datenelementen aus jeweiligen
anderen Gruppen von Datenelementen.
-
Ein
einfaches Beispiel soll diesen Sachverhalt verdeutlichen.
-
Gemäß dem
Beispiel wird das System 28 in der Personalverwaltung einer
Organisation mit Mitarbeitern in zwei verschiedenen Bundesländern
BL1 und BL2 eingesetzt. Jeder dieser Mitarbeiter ist nach genau
einem von drei verschiedenen Tarifverträgen TV1, TV2 und
TV3 zu entlohnen, wobei der Mitarbeiter entweder Angestellter oder
Praktikant sein kann. Mittels des Datenverarbeitungsprozesses 38 soll
nun für einen beliebigen der Mitarbeiter die Differenz
aus dessen Brutto- und Nettolohn berechnet werden. Abhängig
vom Bundesland, in dem der Mitarbeiter beschäftigt ist,
vom für den Mitarbeiter geltenden Tarifvertrag und vom
Status des Mitarbeiters, also davon, ob der Mitarbeiter Angestellter
oder Praktikant ist, berechnet sich diese Differenz jeweils auf
unterschiedliche Weise. Organisiert man die möglichen Kombinationen
aus Bundesland, Tarifvertrag und Status des Mitarbeiters in einer
hierarchisch verzweigten Baumstruktur, so ergibt sich die in der 9 gezeigte Struktur.
Gemäß dieser Struktur bestehen zwölf
verschiedene Alternativen für die Berechnung der Differenz
aus Brutto- und Nettolohn. Für jede einzelne dieser zwölf
Alternativen ist genau ein einziges Datenelement vorgesehen, das
eine entsprechende Sequenz von Kalkulationsanweisungen zur Berechnung der
Differenz aus Brutto- und Nettolohn nach der jeweiligen Alternative
umfasst. Insgesamt liegen somit zwölf verschiedene Datenelemente 37 vor,
die zusammen die erste Gruppe von Datenelementen 37 bilden.
Jedem der zwölf Datenelemente 37 ist innerhalb
der ersten Gruppe eindeutig eine Identifikation zugeordnet. Mit
anderen Worten ist die Abbildung zwischen Datenelementen 37 und
Identifikationen innerhalb der ersten Gruppe bijektiv.
-
Der
zweite Datenverarbeitungsprozess 40 ist für die
Berechnung der Steuerabgaben beliebiger Mitarbeiter eingerichtet.
Da die möglichen Kombinationen aus Bundesländern,
Tarifverträgen und Status des Mitarbeiters dieselben sind
wie im Falle des ersten Datenverarbeitungsprozesses 38,
nämlich die in der Baumstruktur der 9 gezeigten
Kombinationen, gibt es auch für den Datenverarbeitungsprozess 40 zwölf
alternative Möglichkeiten der Berechnung. Folglich ist
auch der Datenverarbeitungsprozess 40 durch zwölf
die zweite Gruppe von Datenelementen bildende Datenelemente 39 mit
jeweiligen den Datenelementen 39 zugeordneten Identifikationen
implementiert, wobei jedes Datenelement 39 entsprechend
einer der zwölf Alternativen eine jeweilige Sequenz von
Kalkulationsanweisungen umfasst. Obwohl auch innerhalb der zweiten
Gruppe von Datenelementen 39 die Zuordnung zwischen Datenelementen 39 und
jeweiligen Identifikationen eineindeutig oder bijektiv ist, sind
die den zwölf Datenelementen 39 der zweiten Gruppe
zugeordneten zwölf Identifikationen mit denjenigen zwölf
Identifikationen identisch, die den zwölf Datenelementen 37 der
ersten Gruppe zugeordnet sind. Dies resultiert aus der Gleichheit
der Kombinationsmöglichkeiten aus Bundesland, Tarifvertrag
und Status des Mitarbeiters, die für beide Datenverarbeitungsprozesse 38 und 40 zu berücksichtigen
sind.
-
Bei
den Identifikationen handelt es sich vorliegend um Zeichenketten,
die aus den in der 9 verwendeten Buchstaben und
Zahlen bestehen, die für ein bestimmtes Datenelement 37, 39 innerhalb der
ihm als Identifikation zugeordneten Zeichenkette in der Reihenfolge
angeordnet sind, wie sie in der 9 bei Verfolgen
eines Pfades innerhalb der Baumstruktur bis zu diesem bestimmten
Datenelement 37, 39 auftreten. So ist beispielsweise
dem äußersten linken Datenelement 37, 39 die
Zeichenkette „BL1TV1A” als Identifikation zugeordnet
und dem äußersten rechten Datenelement 37, 39 ist
die Zeichenkette „BL2TV3P” als Identifikation
zugeordnet. Mit der Zeichenkette „BL1TV1A” als
Identifikation wird demnach ein Datenelement 37, 39 identifiziert,
dessen Sequenz von Kalkulationsanweisungen für einen Mitarbeiter
ausgelegt ist, der im Bundesland BL1 nach dem Tarifvertrag TV1 als
Angestellter beschäftigt ist, während mit der
Zeichenkette „BL2TV3P” als Identifikation ein
Datenelement 37, 39 identifiziert wird, dessen
Sequenz von Kalkulationsanweisungen für einen Mitarbeiter
ausgelegt ist, der im Bundesland BL2 nach dem Tarifvertrag TV3 als
Praktikant beschäftigt ist. Die Identifikationen der dazwischenliegenden
Datenelemente 37, 39 werden entsprechend gebildet.
-
Zur
Inbetriebnahme des Systems 28 werden die Datenverarbeitungsprozesse 28, 40 in
der Datenverarbeitungseinrichtung 29 implementiert, indem
die Da tenelemente 37 und 39 mit den jeweiligen
ihnen zugeordneten Identifikationen im Speicher 36 gespeichert
und gruppenweise zu jeweiligen Datenverarbeitungsprozessen 38, 40 mit
jeweiligen GUIDs 43, 44 zusammengefasst werden.
-
Nachdem
die Datenverarbeitungsprozesse 38, 40 implementiert
worden sind, stellt der Client 34 eine Verbindung mit dem
Benutzerschnittstellenserver 33 her und übermittelt
eine Anfrage an die Benutzerschnittstelle 30. Beispielsweise
kann der Client 34 Daten anfordern, die im Datenbanksystem
bzw. der Vorrichtung 1 gespeichert sind. Um diese Daten
zu liefern, setzt sich der Benutzerschnittstellenserver 33 mit
dem Datenbanksystemserver 32 in Verbindung, die angeforderten
Daten werden aus der Vorrichtung 1 ausgelesen, vom Datenbanksystemserver 32 an den
Benutzerschnittstellenserver 33 gesendet und von diesem
an den Client 34 übertragen.
-
Häufig
erfordert die Anfrage des Clients 34 jedoch eine Verarbeitung
der Daten. Ein solcher Fall liegt beispielsweise vor, wenn die Anfrage
des Clients 34 Informationen über die Steuerabgaben
eines bestimmten Mitarbeiters betrifft. Ohne Beschränkung der
Allgemeinheit sei angenommen, dass der Client 34 eine Anfrage
nach den Steuerabgaben eines im Bundesland BL2 beschäftigten
Mitarbeiters, für den der Tarifvertrag TV2 gilt und der
ein Praktikant P ist, an den Benutzerschnittstellenserver 33 übermittelt. Der
Benutzerschnittstellenserver 33 ermittelt aus diesen Angaben
die Identifikation desjenigen Datenelements 39 des zweiten
Datenverarbeitungsprozesses 40, das die entsprechende Sequenz
an Kalkulationsanweisungen zur Berechnung dieser Steuerabgaben umfasst
und sendet diese Identifikation, bei der es sich um die Zeichenkette „BL2TV2P” handelt,
zusammen mit weiteren Angaben über den Mitarbeiter, wie
zum Beispiel dessen Namen, an den Server 31 der Datenverarbeitungseinrichtung 29.
-
Vom
Datenbanksystemserver 32 fordert der Server 31 die
für die Berechnung notwendigen Daten über das
Einkommen des Mitarbeiters an, die in der Vorrichtung 1 unter
dem Namen des Mitarbeiters gespeichert sind. Die Daten über
das Einkommen des Mitarbeiters werden aus der Vorrichtung 1 ausgelesen
und an den Server 31 übertragen. Der Server 31 übergibt
sowohl die Daten über das Einkommen des Mitarbeiters als
auch die Identifikation an den Prozessor 35. Anschließend
identifiziert der Prozessor 35 anhand der Identifikation
das betreffende Datenelement 39 des Datenverarbeitungsprozesses 40 und führt
die Kalkulationsanweisungen der vom identifizierten Datenelement 39 umfassten
Sequenz von Kalkulationsanweisungen aus. Hierzu liest der Prozessor 35 vergleichbar
einem Interpreter die im XML-Format vorliegende Sequenz von Kalkulationsanweisungen
und verarbeitet mit Ausführen der Kalkulationsanweisungen
die Daten über das Einkommen des Mitarbeiters.
-
Im
Allgemeinen muss die Ausführung eines Datenverarbeitungsprozesses
nicht zwangsläufig zur Erzeugung irgendwelcher Daten als
Resultat des Datenverarbeitungsprozesses führen. Im gewählten Beispiel
werden bei Ausführung des Datenverarbeitungsprozesses 40 jedoch
Daten über die Steuerabgaben des betreffenden Mitarbeiters
erzeugt, die nach Beendigung des Datenverarbeitungsprozesses 40,
was dem Ende der Ausführung der Kalkulationsanweisungen
der Sequenz von Kalkulationsanweisungen des identifizierten Datenelements 39 entspricht,
als dessen Resultat vorliegen. Daher werden diese berechneten Daten
vom Prozessor 35 an den Server 31 übergeben
und von diesem an den Benutzerschnittstellenserver 33 übermittelt,
der sie an den Client 34 weiterleitet. Zusätzlich
können die berechneten Daten im Speicher 36 gespeichert
werden, um sie für eventuelle Ergänzungen der
in der Vorrichtung 1 gespeicherten Daten oder für
die Erstellung von späteren Berichten bereit zu halten.
-
Für
das System 28 ist ein spezieller Betriebsmodus vorgesehen,
der die Vorgabe einer Datenverarbeitungskategorie erfordert. Hierfür
sind die in der Vorrichtung 1 gespeicherten Daten jeweiligen
Datenverarbeitungskategorien zugeordnet. Eine Datenverarbeitungskategorie
kann im vorliegenden Beispiel ein spezifisches Bundesland BL1 oder
BL2, ein spezifischer Tarifvertrag TV1, TV2 und TV3 oder ein spezifischer
Status der Mitarbeiter sein. Wird das System 28 in besagtem
Betriebsmodus betrieben und wird eine bestimmte Daten verarbeitungskategorie
vorgegeben, so erfolgt die Identifizierung eines Datenelements 37, 39 sowie
das Auslesen von Daten aus der Vorrichtung 1 nur dann,
wenn das betreffende Datenelement 37, 39 bzw.
die Daten der vorgegebenen Datenverarbeitungskategorie zugewiesen
ist bzw. sind. Wird beispielsweise als Datenverarbeitungskategorie der
Tarifvertrag TV3 vorgegeben, so kommt es nur dann zur Identifizierung
eines Datenelements 37, 39, wenn dieses für
den Tarifvertrag TV3 vorgesehen ist. Dies ist genau dann der Fall,
wenn die einem Datenelement 37, 39 als Identifikation
zugeordnete Zeichenkette die drei Zeichen „TV3” aufweist,
wobei alle anderen in dieser Zeichenkette vorkommenden Zeichen unerheblich
sind. In der 9 ist dies bei genau vier Datenelementen 37, 39 der
Fall, und zwar bei einem Datenelement, das für einen Mitarbeiter
im Bundesland BL1 vorgesehen ist, der Angestellter A ist, bei einem
Datenelement, das für einen Mitarbeiter im Bundesland BL1
vorgesehen ist, der Praktikant P ist, bei einem Datenelement, das
für einen Mitarbeiter im Bundesland BL2 vorgesehen ist,
der Angestellter ist, und bei einem Datenelement, das für
einen Mitarbeiter im Bundesland BL2 vorgesehen ist, der Praktikant P
ist. Ebenso werden Daten aus der Vorrichtung 1 nur dann
ausgelesen, wenn sie dem Tarifvertrag TV3 zugewiesen sind.
-
Dabei
ist die Datenverarbeitungseinrichtung 29 wie die Vorrichtung 1 zur
erfindungsgemäßen Speicherung der Datenelemente 37, 39 unter
Zuweisung einer Validitätszeit sowie deren datenverlustfreiem Überschreiben
eingerichtet. Als Beispiel zeigt 10a) ein
einzelnes Datenelement 45 mit einer GUID 46 und
einer Validitätszeit 47, die dem Datenelement 45 beim
Speichern desselben in den Speicher 36 zugeordnet wurde.
Die Validitätszeit 47 entspricht im vorliegenden
Fall dem Tagesdatum, an dem das Speichern stattfand. Das Datenelement 45 soll
nun durch ein neues Datenelement mit einer neuen Sequenz von Kalkulationsanweisungen überschrieben werden.
Dazu wird dem Datenverarbeitungsprozess, dem das Datenelement 45 angehört,
ein neues Datenelement 48 hinzugefügt und im Speicher 36 gespeichert,
wobei diesem neuen Datenelement 48 eine neue Validitätszeit 49 zugewiesen
wird, die dem Zeitpunkt des Speicherns des Datenelements 48 entspricht
und folglich jünger als die Validitätszeit 47 ist. Dem
neuen Datenelement 48 wird zudem zwar eine eigene GUID 50 zugewiesen,
es wird ihm aber dieselbe Identifikation zugeordnet wie dem Datenelement 45.
Dabei bleibt das Datenelement 45 unberührt, d.
h. das Datenelement 45 wird weder gelöscht noch
anderweitig verändert, sein Speicherzustand wird vielmehr
beibehalten. 10b) zeigt die Situation nach
Speichern des neuen Datenelements 48: Neben dem Datenelement 45,
seiner Validitätszeit 47 und seiner GUID 46 liegt
nunmehr auch das neue Datenelement 48 mitsamt Validitätszeit 49 und
GUID 50 im Speicher 36 gespeichert vor, wobei
beiden Datenelementen 45 und 48 dieselbe Identifikation
zugeordnet ist und beide Datenelemente 45, 48 zum
selben Datenverarbeitungsprozess gehören.
-
Sofern
nach Erfolgen der Überschreibung der Datenverarbeitungsprozess
ausgeführt werden soll, zu dem die Datenelemente 45 und 48 gehören, und
dabei die den beiden Datenelementen 45, 48 zugeordnete
Identifikation vorgegeben wird, ist zusätzlich die Vorgabe
einer Bezugszeit notwendig, um die Auswahl eines der Datenelemente 45, 48 zu
ermöglichen. Gemäß einem voreingestellten
ersten Arbeitsmodus der Datenverarbeitungseinrichtung 29 wird automatisch
die aktuelle Zeit der Vorgabe der Identifikation als Bezugszeit
gewählt und vorgegeben. Diese ist naturgemäß jünger
als jede der Validitätszeiten 47 und 49.
Damit wird dasjenige der beiden im Speicher 36 gespeicherten
Datenelemente 45 und 48, denen dieselbe Identifikation
zugeordnet ist, mit der jüngsten Validitätszeit 49 ausgelesen,
im vorliegenden Beispiel also das Datenelement 48.
-
Außerhalb
des Speichers 36 unterscheidet sich die Wirkung dieser Überschreibung
somit nicht von der Wirkung herkömmlicher Überschreibungen, bei
denen gespeicherte Datenelemente physikalisch gelöscht
werden: Bei Ausführen des Datenverarbeitungsprozesses,
dem das Datenelement angehört, und bei Vorgabe einer Identifikation,
die dem Datenelement zugeordnet ist, wird in beiden Fällen
das jeweils zuletzt gespeicherte Datenelement ausgegeben, mit dem
das zuvor gespeicherte Datenelement überschrieben worden
ist. Dagegen bleibt bei dem hier beschriebenen datenverlustfreien Überschreiben
eines Datenelements das überschriebene Datenelement unverändert
im Spei cher 36 gespeichert, während es bei anderen
Arten der Überschreibungen unter Umständen physikalisch
gelöscht wird und sein Informationsgehalt dadurch unwiederbringlich
verloren geht. Somit erlaubt es das beschriebene Überschreiben,
auch nach dem Überschreiben bei Bedarf auf das überschriebene
Datenelement zuzugreifen. Da dem Datenelement eine eigene GUID zugewiesen
ist, erleichtert diese die Adressierung des Datenelements bei einem
Zugriff auf dasselbe. Ein unbeabsichtigtes Löschen von
Datenelementen ist folglich grundsätzlich ausgeschlossen.
-
In
einem zweiten Arbeitsmodus der Datenverarbeitungseinrichtung 29 können
auch andere Bezugszeiten vorgegeben werden. Wird bei Ausführen eines
Datenverarbeitungsprozesses beispielsweise eine zwischen den Validitätszeiten 47 und 49 liegende
Bezugszeit vorgegeben, so wählt die Datenverarbeitungseinrichtung 29 das
Datenelement 45 aus, da dessen Validitätszeit 47 nun
die jüngste derjenigen Validitätszeiten ist, die
alter sind als die Bezugszeit. Gibt man stattdessen eine Bezugszeit
vor, die vor der Validitätszeit 47 liegt bzw. älter
als die Validitätszeit 47 ist, wird kein Datenelement
ausgewählt, weil keine der Validitätszeiten 47 und 49 älter
ist als die Bezugszeit. Bei Vorgabe einer Bezugszeit, die relativ
zur Zeit der Vorgabe der Identifikation in der Zukunft liegt, wird
wiederum das Datenelement 48 ausgewählt, da dessen
Validitätszeit 49 auch in diesem Fall die jüngste
der Validitätszeiten 47 und 49 ist, die
beide älter als die Bezugszeit sind.
-
Bei
einer späteren Überschreibung des Datenelements 48 in
der 10b), welches wie erwähnt
bis dahin dasjenige der beiden Datenelemente 45 und 48 desselben
Datenverarbeitungsprozesses und derselben zugeordneten Identifikation
mit der jüngsten Validitätszeit 49 ist,
wird analog verfahren. Zum Überschreiben des Datenelements 48,
beispielsweise durch ein Datenelement 51, wird das Datenelement 51 dem
Datenverarbeitungsprozess der Datenelemente 45 und 48 hinzugefügt
und im Speicher 36 gespeichert. Dabei wird ihm eine Validitätszeit 52 zugewiesen,
bei der es sich um den Tag handelt, an dem das Datenelement 51 in
den Speicher 36 gespeichert wurde, und es wird ihm eine
GUID 53 zugwiesen. Die dem Datenelement 51 zugeordnete Identifi kation
ist mit der Identifikation, die den Datenelementen 45 und 48 zugeordnet
wurde, identisch. 10c) zeigt die Situation nach Überschreiben
des Datenelements 48 durch das Datenelement 51.
Nach Erfolgen der Überschreibung wird bei Ausführen
des Datenverarbeitungsprozesses, dem die drei Datenelemente 45, 48, 51 angehören,
und bei Vorgabe einer Identifikation, die den Datenelementen 45, 48, 51 zugeordnet
ist, dasjenige der drei gespeicherten Datenelemente 45, 48, 51 ausgewählt,
das nunmehr die jüngste Validitätszeit 52 von
allen Validitätszeiten 47 49, 52 der
Datenelemente 45, 48, 51 hat, also das Datenelement 51.
Bei Ausführen des Datenverarbeitungsprozesses, dem die
Datenelemente 45, 48, 51 angehören,
und bei Vorgabe einer Bezugszeit, die vor der Validitätszeit 47 liegt,
wird wie oben erläutert keines der Datenelemente 45, 48, 51 ausgewählt,
bei Vorgabe einer Bezugszeit zwischen der Validitätszeit 47 und
der Validitätszeit 49 wird das Datenelement 45 ausgelesen,
bei Vorgabe einer Bezugszeit zwischen der Validitätszeit 49 und
der Validitätszeit 52 wird das Datenelement 48 ausgewählt,
und bei Vorgabe einer Bezugszeit, die jünger ist als die
Validitätszeit 52, wird das Datenelement 51 ausgewählt.
-
Im
erläuterten Beispiel kann alternativ statt jeweils getrennte
GUID und Validitätszeiten vorzusehen auch eine Leitkennung
eingerichtet werden, zu der GUID und Validitätszeit zusammengefasst
sind.
-
Unter
gewissen Umständen ist es wünschenswert, ein gespeichertes
Datenelement durch ein anderes Datenelement zu ersetzen, wobei das
ersetzte Datenelement gelöscht wird. Beispielsweise könnte
das Datenelement 48 beim Speichern irrtümlich
mit einem anderen Datenelement verwechselt worden sein, das anstatt
des Datenelements 48 hätte gespeichert werden
müssen. Für solche Fälle ist die Datenverarbeitungseinrichtung 29 zum
Ersetzen gespeicherter Datenelemente durch andere Datenelemente
eingerichtet. Zur Vermeidung von Informationsverlusten bei der Ersetzung
ist die Datenverarbeitungseinrichtung 29 darüber
hinaus zur Generierung eines Protokolls im XML-Format eingerichtet,
in welchem Einzelheiten der Ersetzung vermerkt werden.
-
Ein
Beispiel für eine Ersetzung ist in den 10c) und 10d) verdeutlicht.
In der Situation gemäß der 10c) soll
das Datenelement 48 durch ein Datenelement 54 ersetzt
werden, ohne dass ein Informationsverlust befürchtet werden
muss. Dazu wird ein Protokoll 55 erzeugt und der Validitätszeit 49 zugeordnet.
In diesem werden zum Beispiel der Tag und die Uhrzeit der Ersetzung,
eine IP-Adresse eines Computers, von dem aus die Ersetzung getätigt
wurde, der die Ersetzung veranlassende Benutzer des Systems 28 oder
der Datenverarbeitungseinrichtung 29, eine Kopie der vom
Datenelement 48 umfassten Sequenz von Kalkulationsanweisungen
sowie ein Änderungsvermerk festgehalten. Das Datenelement 48 wird
gelöscht und das Datenelement 54 wird unter Zuweisung
der GUID 50 und der Validitätszeit 49,
die zuvor dem Datenelement 54 zugewiesen waren, gespeichert.
Somit ist das Datenelement 48 zwar nicht mehr existent,
gleichwohl ist dessen Informationsgehalt nicht verloren, da die
von ihm umfasste Sequenz von Kalkulationsanweisungen im Protokoll 55 vermerkt
wurde.
-
Anstatt
ein derartiges Protokoll 55 erst bei Erfolgen einer Ersetzung
eines Datenelements durch ein anderes zu generieren, kann alternativ
bereits beim erstmaligen Speichern eines Datenelements, wenn dem
Datenelement eine Validitätszeit zugewiesen wird, dieser
Validitätszeit ein Protokoll 55 zugeordnet werden.
In diesem Protokoll 55 werden zum Beispiel der Tag und
die Uhrzeit des Speicherns des Datenelements, die nicht notwendigerweise
mit der dem Datenelement zugewiesenen Validitätszeit übereinstimmen
müssen, eine IP-Adresse eines Computers, von dem aus das
Speichern des Datenelements veranlasst wurde, der die Speicherung
des Datenelements veranlassende Benutzer und ein Vermerk über
die Speicherung im Protokoll 55 festgehalten. Wird das
Datenelement zu einem späteren Zeitpunkt durch ein anderes
Datenelement ersetzt, so erfolgt wie oben erläutert ein
zusätzlicher entsprechender Vermerk im Protokoll 55.
-
Da
im System 28 sowohl Datenelemente der Vorrichtung 1 als
auch Datenelemente der Datenverarbeitungseinrichtung 29 unter
Zuweisung einer jewei ligen Validitätszeit gespeichert werden,
wird einerseits eine historische Datenhaltung erreicht. Andererseits
kann das System 28 bei Vorgabe einer entsprechenden Bezugszeit
jederzeit mitsamt Datenverarbeitungsprozessen und zu verarbeitenden
Daten in einem Zustand betrieben werden, in dem sich das gesamte
System 28 zur vorgegebenen Bezugszeit befand.
-
- 1
- Vorrichtung
- 2
- Permanentspeicher
- 3
- Arbeitsspeicher
- 4
- GUID
- 5
- GUID
- 6
- Datenelement
- 7
- Datenobjekt
- 8
- GUID
- 9
- Validitätszeit
- 10
- GUID
- 11
- Validitätsstartzeit
- 12
- Datenelement
im XML-Format
- 13
- Datenobjekt
im XML-Format
- 14
- Datenelement
- 15
- Validitätszeit
- 16
- GUID
- 17
- Datenelement
- 18
- Validitätszeit
- 19
- GUID
- 20
- Protokoll
- 21
- Datenelement
- 22
- Indikator
- 23
- Indikator
- 24
- Indikator
- 25
- Datenelement
- 26
- Validitätszeit
- 27
- GUID
- 28
- System
- 29
- Datenverarbeitungseinrichtung
- 30
- Benutzerschnittstelle
- 31
- Server
- 32
- Datenbanksystemserver
- 33
- Benutzerschnittstellenserver
- 34
- Client
- 35
- Prozessor
- 36
- Speicher
- 37
- Datenelement
- 38
- Datenverarbeitungsprozess
- 39
- Datenelement
- 40
- Datenverarbeitungsprozess
- 41
- GUID
- 42
- GUID
- 43
- GUID
- 44
- GUID
- 45
- Datenelement
- 46
- GUID
- 47
- Validitätszeit
- 48
- Datenelement
- 49
- Validitätszeit
- 50
- GUID
- 51
- Datenelement
- 52
- Validitätszeit
- 53
- GUID
- 54
- Datenelement
- 55
- Protokoll
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - WO 2004/102420
A1 [0004]