-
Die Erfindung betrifft ein Verfahren zum Speichern von mindestens zwei miteinander in einer Beziehung stehenden Daten in einer eine Mehrzahl von Speicherplätzen umfassenden Datenbank. Die Erfindung betrifft ferner eine Datenbank zum Speichern von mindestens zwei miteinander in einer Beziehung stehenden Daten. Die Erfindung betrifft auch ein Computerprogramm, das auf einem Computer ausführbar ist.
-
Es sind eine Vielzahl unterschiedliche Datenbanken und Datenbanksysteme bekannt. Diese bestehen aus einem in bestimmter Weise organisierten Speicher und einer diesen Speicher verwaltende Software. Der Speicher wird häufig als Datenbank und die Software als Datenbankmanagementsystem bezeichnet. Für die Eingabe und Ausgabe sowie die Verwaltung der in der Datenbank abgespeicherten Daten ist in der Regel eine Datenbanksprache vorgesehen, die insbesondere einen klar definierten Zugriff auf den Inhalt der Datenbank ermöglicht.
-
Datenbanksysteme sind häufig als relationale Datenbank ausgebildet. Relationale Datenbanken sind als eine Vielzahl von Tabellen organisiert, wobei jede Zeile einer Tabelle einen Datensatz beschreibt. Die Anzahl der Tabellen sowie die Anzahl der jeweiligen Felder in einem Datensatz einer Tabelle werden vorab in Abhängigkeit von dem geplanten Einsatzzweck durch die Vorgabe eines Datenbankschemas festgelegt. Durch geeignete Verknüpfungen können Beziehungen zwischen den einzelnen Tabellen ausgedrückt werden. Die grundlegende Struktur einer relationalen Datenbank besteht darin, dass die Daten, die miteinander in Beziehung stehen, innerhalb einer Zeile einer Tabelle abgespeichert werden.
-
Eine Erweiterung des Anwendungsbereichs einer bestehenden relationalen Datenbank zur Aufnahme anders gearteter Daten ist meist nur mit relativ großem Aufwand realisierbar, da die ursprünglich festgelegten Tabellen beziehungsweise die einzelnen Datensätze darin häufig durch die Aufnahme weiterer Attribute erweitert werden müssen. Häufig ist dies jedoch nur durch einen kompletten Neuaufbau der Datenbank möglich.
-
Ein Erhöhung der Verarbeitungsgeschwindigkeit einer relationalen Datenbank kann dadurch erreicht werden, dass die relationale Struktur, also die einzelnen Tabellen, direkt in Hardware abgebildet sind. Eine Erweiterung der einmal festgelegten Struktur ist dann aber meist nicht mehr möglich.
-
Von einem abstrakten Standpunkt aus betrachtet wird in einer Datenbank ein Ausschnitt der realen Welt abgespeichert. Um formal eine Definition der in einer Datenbank abgespeicherten Daten zu ermöglichen, wird häufig das sogenannte Entity-Relationship-Modell (ERM) verwendet. Dieses Modell ermöglicht es, einerseits die Beziehungen von in einer Datenbank abgespeicherten Daten formal vorzugeben und andererseits bei einer Eingabe von Daten deren Korrektheit zu überprüfen. Mittels eines ERMs lassen sich sehr komplexe Datenbank-Designs erstellen, die den durch das ERM vorgegebenen Regeln entsprechen. Insbesondere lassen sich damit vorab sehr komplexe Beziehungen von bei der Nutzung der Datenbank einzugebenden Daten definieren.
-
Die bestehenden Datenbanksysteme haben den Nachteil, dass deren Flexibilität mit zunehmender Anzahl der abgespeicherten Daten beziehungsweise der vorab vorgegebenen möglichen Beziehungen eingeschränkt ist.
-
Aufgabe der Erfindung ist es, eine Möglichkeit für das Abspeichern von Daten und deren Beziehungen zu schaffen, die unabhängig vom Einsatzzweck ist und eine möglichst große Anzahl unterschiedlichster Daten innerhalb derselben Struktur abzuspeichern vermag. Ferner soll erreicht werden, dass die Datenbankstruktur möglichst effizient in einer Software basierten Lösung, aber insbesondere auch in einer Hardware basierten Lösung realisierbar ist.
-
Die Aufgabe wird durch ein Verfahren mit den Merkmalen des unabhängigen Patentanspruchs 1 gelöst. Die Aufgabe wird ferner durch eine Speicheranordnung und durch ein Computerprogramm gemäß den weiteren unabhängigen Patentansprüchen gelöst.
-
Erfindungsgemäß werden also einerseits Beziehungen von jeweils zwei Daten und andererseits die Daten selbst abgespeichert. Dies ist unabhängig von einer konkreten Anwendung und unabhängig von der Anzahl der zu speichernden Daten bzw. der zu speichernden Beziehungen. Lediglich die Größe des jeweiligen Speicherplatzes wird zweckmäßigerweise vorgegeben werden.
-
Ein besonderes Merkmal der vorliegenden Erfindung ist, dass die Daten und die Beziehungen zwischen einzelnen dieser Daten getrennt abgespeichert werden. Durch dieses strukturelle Merkmal lassen sich eine Vielzahl von Vorteilen erreichen, wie weiter unten beschrieben werden wird.
-
Vorzugsweise wird vor dem Abspeichern eines Datums geprüft, ob dieses bereits abgespeichert worden ist. Nur wenn dies nicht der Fall ist, wird es abgespeichert. Damit wird erreicht, dass keine Datenredundanz auftritt, wodurch wiederum eine besonders effiziente Nutzung des Speichers möglich ist.
-
Besonders vorteilhaft ist es, wenn Beziehungen der Daten dadurch abgespeichert werden, dass an den jeweiligen Speicherplätzen ein Verweis abgespeichert wird.
Hierbei werden die Beziehungen durch die Verweise derart gebildet, dass die Beziehungen einer Mehrzahl von miteinander in Beziehung stehender Daten abgespeichert werden kann, obwohl diese Beziehungen jeweils nur paarweise abgespeichert werden. Dies kann in unterschiedlichen Ausführungsformen realisiert werden, wie ebenfalls weiter unten beschrieben wird.
-
Ein Verweis kann insbesondere eine Speicheradresse sein, die einen Speicherplatz bezeichnet, an welcher sich ein Datum befindet oder an welcher eine andere Beziehung abgespeichert ist, die zumindest mittelbar das jeweilige Datum betrifft. Mittelbar bedeutet hierbei, dass eine Kette von möglicherweise hierarchisch geordneten Beziehungen schließlich zu dem betreffenden Datum führen kann. Durch die Verwendung von Speicheradressen als Verweise wird eine besonders schnelle Suche innerhalb der Datenbank und damit eine effiziente Auflösung von Beziehungen ermöglicht.
-
Die Begriffe „Datum“ und „Beziehung“ können in Bezug zu der vorliegenden Erfindung sehr weit verstanden werden. Weder ist festgelegt, welcher Art eine Beziehung ist, noch, welcher Art ein Datum ist. Die Erfindung erlaubt es sogar, ein Datum wie eine Beziehung zu behandeln bzw. eine Beziehung wie ein Datum zu behandeln. Damit wird sichergestellt, dass das erfindungsgemäße Speicherverfahren und die erfindungsgemäße Datenbank für eine Vielzahl unterschiedlichster Anwendungen einsetzbar sind. Beispielsweise kann in Abhängigkeit von dem jeweiligen Kontext bzw. der jeweiligen Anwendung, in welcher die Erfindung eingesetzt wird, ein Definitionsbereich des Begriffs „Datum“ und des Begriffs „Beziehung“ bestimmt werden. Somit lässt sich die Erfindung beispielsweise in einer mehrere Ebenen umfassenden hierarchischen Struktur realisieren, wobei Beziehungen einer Ebene in einer anderen Ebene als Daten behandelt werden und umgekehrt.
-
Vorteilhafterweise ist der Speicherplatz, an welchem eine Beziehung abgespeichert wird, ebenfalls adressierbar, wobei in einem ersten Teilbereich ein erster Verweis und in einem zweiten Teilbereich ein zweiter Verweis abgespeichert wird. Diese Verweise werden vorzugsweise durch Speicheradressen realisiert, die ihrerseits auf Speicherplätze verweisen, an denen entweder jeweils ein Datum oder eine weitere Beziehung abgespeichert wird.
-
Durch die erfindungsgemäße Art des Speicherns der Daten und Beziehungen, welche ihrerseits Abstraktionen der realen Welt darstellten, in ein vorgegebenes Adresssystem steht jede Beziehung und jedes Datum in Verbindung mit einer eindeutigen Adresse. Dies bedeutet, dass mit einer einzigen Adresse jede Beziehung und jedes Datum eindeutig lokalisiert und damit auch wieder abgerufen werden kann. Insbesondere kann für eine bestimmte Adresse auch angegeben werden, welche Beziehungen auf diese Adresse referenzieren und/oder es kann die Bedeutung bzw. das dieser Adresse zugeordnete Datum wiedergegeben werden.
-
Ein besonderer Vorteil der Erfindung ist, dass für eine Änderung einer einmal erstellten Datenbank keine Änderung der tatsächlich abgespeicherten Daten notwendig ist. Jedem einmal abgespeicherten Datum ist eine eindeutige Adresse zugeordnet, welche bestehen bleiben kann. Soll eine Änderung des Inhalts erfolgen, so genügt es, eine oder mehrere Beziehungen zu ergänzen oder zu entfernen.
-
Im Unterschied zu relationalen Datenbanken kann bei der vorliegenden Erfindung nicht mehr von „Datensätzen“ gesprochen werden, da erfindungsgemäß zusammengehörige Datenelemente durch deren Beziehungen untereinander bestimmt werden. Dies kann völlig ohne die feste vorgegebene Struktur eines „Datensatzes“ erfolgen. Damit wird außerdem das Auftreten von leeren Datensätzen verhindert.
-
Durch die erfindungsgemäße Art des Speicherns von Beziehungen und Daten werden keine starren Vorgaben wie bei herkömmlichen Definitionen von Tabellen bzw. Indizes und Schlüsseln benötigt. Vielmehr wird eine völlige Flexibilität dadurch erreicht, dass die Menge an Daten, auf welche eine bestimmte Speicheradresse verweist, nicht fest vorgegeben ist. So kann eine bestimmte Adresse einem einzelnen Datum zugeordnet sein, wohingegen eine andere Adresse - durch das Auflösen von Beziehungen - zumindest indirekt auf eine Vielzahl von einzelnen, miteinander in Beziehung stehenden Daten verweist.
-
Gemäß einer ersten möglichen Ausführungsform werden die Beziehungen und die Daten in demselben Speicherbereich abgespeichert, wobei für das Abspeichern der Beziehungen für jede Adresse mindestens zwei Teilbereiche vorgesehen sind und für das Abspeichern der Daten ein dritter Teilbereich vorgesehen ist. Vorteilhafterweise wird an einer bestimmten Adresse entweder eine Beziehung unter Verwendung der ersten beiden Teilbereiche oder ein Datum unter Verwenden des dritten Teilbereichs abgespeichert. Damit lässt sich die gesamte Speicherstruktur dadurch realisieren, dass der Speicher adressierbare Zeilen enthält, wobei jede Zeile drei Teilbereiche umfasst. Jeweils zwei fest bestimmte Teilbereiche, beispielsweise stets die ersten beiden, sind für das Abspeichern einer Beziehung vorgesehen und ein dritter Teilbereich ist für das Abspeichern eines Datums reserviert. Ob die Adresse einer Zeile nun eine Beziehung oder ein Datum repräsentiert richtet sich danach, was darin abgespeichert ist. Sind die beiden Speicherplätze belegt, die für das Abspeichern von einer Beziehung vorgesehen sind, so darf gemäß einer möglichen Ausführungsform, in dem dritten Teilbereich kein Datum abgespeichert werden. Es handelt sich dann also eindeutig um einen Speicherplatz bzw. eine Speicherzeile, deren Adresse eine Beziehung repräsentiert.
-
Wird gemäß dieser Ausführungsform ein Datum in dem dritten Teilbereich einer Zeile abgelegt, so werden in den anderen beiden Teilbereichen keine eine Beziehung realisierende Verweise abgespeichert. In diesem Fall würde die Adresse des Speicherplatzes bzw. der Speicherzeile also ein Datum bezeichnen. Bei einer hierarchisch aufgebauten Realisierung der Erfindung könnte diese Adresse jedoch auch einen Verweis zu einer Beziehung zu einem Datum bzw. zu einer weiteren Beziehung bezeichnen.
-
Diese Ausführungsform hat also den Vorteil, dass für das Abspeichern aller möglichen Daten und Beziehungen nur eine einzige Speicherstruktur verwendet wird. Das Einschreiben in die Datenbank kann dann derart erfolgen, dass stets die nächste freie Zeile in dem Speicher verwendet wird. Soll eine Beziehung abgespeichert werden, so werden die beiden hierfür vorgesehenen Teilbereiche verwendet. Soll hingegen ein Datum abgespeichert werden, so wird hierzu der dritte Teilbereich verwendet.
-
Gemäß einer verbesserten Ausführungsform werden für das Speichern der Daten und das Speichern von Beziehungen jeweils Zeilen verwendet, die hierfür lediglich zwei Teilbereiche umfassen. Wird eine Beziehung abgespeichert, so werden beide Teilbereich für das Abspeichern des jeweiligen Verweises verwendet. Wird hingegen ein Datum abgespeichert, so wird nur einer der beiden Teilbereiche beschrieben. Bei dieser Ausführungsform wird dieselbe Funktionalität wie bei der zuvor beschrieben Ausführungsform erreicht, jedoch wird weniger Speicherplatz benötigt.
-
Gemäß einer besonders vorteilhaften Ausführungsform wird für das Abspeichern von Beziehungen in der Datenbank ein gesonderter Speicherbereich, im folgenden als Beziehungsspeicherbereich bezeichnet, verwendet und für das Abspeichern der Daten mindestens ein anderer gesonderter Speicherbereich, der im folgenden als Datenspeicherbereich bezeichnet wird, verwendet. Der Beziehungsspeicherbereich umfasst eine Mehrzahl von adressierbaren Speicherplätzen und jeder dieser adressierbaren Speicherplätze umfasst mindestens zwei Teilbereiche für das Abspeichern der beiden eine Beziehung realisierende Verweise bzw. Speicheradressen. Vorzugsweise umfasst der Datenspeicherbereich eine Mehrzahl von adressierbaren Speicherplätzen und jeder dieser adressierbaren Speicherplätze umfasst vorzugsweise ebenfalls mindestens zwei Teilbereiche. Soll nun ein Datum abgespeichert werden, so wird dieses in den für das Abspeichern von Daten innerhalb der betreffenden Zeile des Datenspeicherbereichs vorgesehenen Teilbereich abgelegt. Die Breite dieses Teilbereichs ist an die Breite der Daten angepasst, die abgespeichert werden sollen. Zumindest bei einem erstmaligen Abspeichern eines Datums in dem Datenspeicherbereich wird nun zusätzlich eine Adresse in dem Beziehungsspeicherbereich reserviert. Diese Adresse wird in dem zweiten Teilbereich derjenigen Zeile des Datenspeicherbereichs abgespeichert, in welcher auch das Datum selbst abgespeichert ist. Diese Ausführungsform und die sich hieraus ergebenden Vorteile werden weiter unten näher erläutert.
-
In einer erfindungsgemäßen Datenbank kann eine Mehrzahl von Datenspeicherbereichen vorhanden sein. Unterschiedliche Datenspeicherbereiche können dann an die zu erwartenden Daten angepasst werden.
-
Vorzugsweise sind für die Dateneingabe Eingabemodule vorgesehen, wobei die Eingabemodule die jeweilige Anwendung und/oder die zu erwartende Datenart berücksichtigen. Erst in den Eingabemodulen ist also eine Spezialisierung des Datenbanksystems für eine konkrete Anwendung vorgesehen. Die dahinter stehende Datenbank selbst ist jedoch weitestgehend unabhängig von der konkreten Anwendung und der Datenart. In einer Ausführungsform kann vorgesehen sein, die Datenspeicherbereiche in Abhängigkeit von den Eingabemodulen zu wählen. Beispielsweise kann jedem Eingabemodul ein separater Datenspeicherbereich zugeordnet sein oder es kann vorgesehen sein, den Eingabemodulen, die zu eine bestimmten Anwendung gehören, jeweils einen Datenspeicherbereich zuzuordnen. Es ist auch vorstellbar, die Datenspeicherbereiche in Abhängigkeit von der Art der Daten zu realisieren. Beispielsweise kann vorgesehen sein, Multimediainhalte in einem anderen Datenbereich abzuspeichern als Meßwerte, die zu einer bestimmten Anwendung gehören.
-
Vorzugsweise wird für jedes verfügbare Eingabemodul jeweils eine Adresse des Beziehungsspeicherbereichs reserviert. Damit wird erreicht, dass auch Beziehungen zwischen Daten und einem Eingabemodul innerhalb der Datenbank abspeicherbar sind. Selbstverständlich sind auch Beziehungen zwischen Eingabemodulen innerhalb der Datenbank abspeicherbar. Dadurch, dass ein Datum einem Eingabemodul zugeordnet werden kann, ist hierdurch implizit weiteres Wissen zu den Daten verfügbar. Dieses Wissen ermöglicht beispielsweise eine Interpretation einzelner Daten und kann möglicherweise für eine Weiterverarbeitung von ausgelesenen Daten herangezogen werden.
-
Für die Datenausgabe sind vorzugsweise Ausgabemodule vorgesehen. Diese können analog zu den Eingabemodulen innerhalb der Datenbank behandelt werden. Die Ausgabemodule können also ebenfalls Daten zugeordnet werden, indem sie sowohl zu Daten als auch zu Beziehungen und natürlich auch zu Eingabemodulen eine Beziehung aufweisen können. Derartige Beziehungen werden innerhalb der Datenbank genauso abgespeichert, wie Beziehungen zwischen Daten oder zwischen eine Datum und einer Beziehung.
-
Die eingangs genannte Aufgabe wird insbesondere auch durch ein Computerprogramm gelöst, das auf einem Computersystem ablauffähig ist und zur Durchführung des erfindungsgemäßen Verfahrens programmiert ist. Dabei stellt das Computerprogramm durch die einzelnen Verfahrensschritte ebenso die Erfindung dar wie das Verfahren selbst.
-
Weitere vorteilhafte Merkmale der Erfindung sind den in den Figuren dargestellten und im Folgenden beschriebenen Ausführungsbeispielen entnehmbar.
- 1 zeigt ein Blockschaltbild, das eine zur Durchführung des erfindungsgemäßen Verfahrens geeignete Speicherstruktur gemäß einem ersten Ausführungsbeispiel;
- 2 zeigt ein Blockschaltbild, das eine zur Durchführung des erfindungsgemäßen Verfahrens geeignete Speicherstruktur gemäß einem zweiten Ausführungsbeispiel;
- 3 zeigt ein Blockschaltbild, das eine zur Durchführung des erfindungsgemäßen Verfahrens geeignete Speicherstruktur gemäß einem dritten Ausführungsbeispiel;
- 4 zeigt in einem Ablaufdiagramm das Einschreiben von Daten in die erfindungsgemäße Datenbank gemäß einem Ausführungsbeispiel;
- 5 zeigt mittels eines Diagramms die der erfindungsgemäßen Datenbank zugrunde liegende Struktur für das Abspeichern von Beziehungen;
- 6 zeigt ein bevorzugtes Ausführungsbeispiel einer in Hardware realisierten erfindungsgemäßen Datenbank anhand eines Blockdiagramms.
-
1 zeigt eine Speicherstruktur gemäß einem möglichen Ausführungsbeispiel. Ein Speicher 1 umfasst eine Mehrzahl von Zeilen 2, wobei jede Zeile 2 einen ersten Teilbereich 3, einen zweiten Teilbereich 4 und einen dritten Teilbereich 5 umfasst. Der erste Teilbereich 3 und der zweite Teilbereich 4 sind für das Speichern von Verweisen vorgesehen. Diese Verweise realisieren Beziehungen. Die Gesamtheit der ersten Teilbereiche 3 und der zweiten Teilbereiche 4 bilden somit einen Beziehungsspeicher 6. Der dritte Teilbereich 5 ist für das Abspeichern von Daten vorgesehen. Die Gesamtheit der dritten Teilbereiche bildet einen Datenspeicher 7.
-
Jeder Zeile 2 ist eine eindeutige Adresse A1, A2, ... zugeordnet. Mittels dieser Adressen ist jede der Zeilen 2 in bekannter Weise ansprechbar und ermöglicht damit insbesondere einen lesenden und schreibenden Zugriff auf die Zeilen 2 bzw. die darin jeweils enthaltenen Teilbereiche.
-
Der erste Teilbereich 3 und der zweite Teilbereich 4 des Beziehungsspeichers 6 sind derart dimensioniert, dass darin jeweils eine Speicheradresse A1, A2, ... abgespeichert werden kann. Der dritte Teilbereich 5 des Datenspeichers 7 ist in Abhängigkeit von den darin jeweils abzuspeichernden Daten derart dimensioniert, dass das Abspeichern eines einzelnen Datums sichergestellt ist. Sollte während des Betriebs einer einmal konfigurierten Datenbank innerhalb des Speichers 1 dennoch ein Datum abzuspeichern sein, welches größer ist als die Breite des dritten Teilsbereichs, so können hierfür Mechanismen vorgesehen sein, die bspw. ein Aufteilen (Splitten) des jeweiligen Datums umfassen, so dass das Datum auf eine Mehrzahl von dritten Teilbereichen aufgeteilt wird, wobei der erste Teilbereich und der zweite Teilbereich der jeweiligen Zeilen dann als Verweise verwendet werden können, die eine zumindest einfach verkettete Liste realisieren und ein Abspeichern und Wiederzusammensetzen des Datums ermöglichen. Insbesondere kann jedoch auch vorgesehen sein, die einzelnen Teile eines Datums wie einzelne Daten abzuspeichern, die eine Beziehung zueinander aufweisen. Durch ein Auflösen der Beziehungen kann dann das ursprüngliche Datum wieder hergestellt werden.
-
Gemäß dem in 1 gezeigten Ausführungsbeispiel werden also der Beziehungsspeicher 6 und der Datenspeicher 7 innerhalb eines Speicherelements realisiert, wobei ein abzuspeicherndes Datum stets in dem dritten Teilbereich einer Zeile abgespeichert wird. In einer solchen Zeile sind dann in dem ersten Teilbereich und dem zweiten Teilbereich keine eine Beziehung realisierende Verweise abgespeichert.
-
Eine Beziehung wird dadurch abgespeichert, dass in einer Zeile in dem ersten Teilbereich 3 und dem zweiten Teilbereich 4 jeweils ein Verweis auf eine andere Zeile abgespeichert ist.
-
Ein solcher Verweis kann insbesondere die Adresse der betreffenden Zeile sein. Wird bspw. in einer Zeile eine Beziehung zwischen zwei Daten abgespeichert, so wird in dem ersten Teilbereich dieser Zeile die Adresse des ersten Datums und in dem zweiten Teilbereich die Adresse des zweiten Datums abgespeichert.
-
Von besonderer Bedeutung für die Gesamterfindung ist es, dass mittels der erfindungsgemäßen Speicherstruktur nicht nur Beziehungen zwischen Daten, sondern insbesondere auch Beziehungen zwischen einzelnen Beziehungen und Beziehungen zwischen einer Beziehung und einem Datum in derselben Struktur abgespeichert werden können. Sind bspw. unter den Adressen A1 und A2 jeweils Beziehungen abgespeichert, so kann zwischen diesen beiden Beziehungen wieder eine Beziehung dadurch hergestellt werden, dass in einer anderen Speicherzeile in deren ersten Teilbereich der Wert A1 und in deren zweiten Teilbereich der Wert A2 abgespeichert wird. Wie später noch detailliert beschrieben werden wird, ist es mit diesem generischen Speicherprinzip möglich, eine Vielzahl unterschiedlichster Beziehungen abzuspeichern. Erfindungsgemäß wird die Bedeutung, die eine Beziehung in der Realität hat, beim Speichern in dem Beziehungsspeicher nicht explizit berücksichtigt. Damit ist das erfindungsgemäße Speicherprinzip bzw. die erfindungsgemäße Datenbank für das Abspeichern jedweder Beziehungen und Daten grundsätzlich geeignet.
-
In 2 ist eine weitere mögliche Ausführungsform gezeigt. In dieser sind in jeder Zeile 2 nur zwei Teilbereiche ausgebildet. Soll in einer Zeile eine Beziehung abgespeichert werden, so werden die entsprechenden Verweise bzw. Adressen in den beiden Teilbereichen abgespeichert. Soll in einer Zeile dagegen ein Datum abgespeichert werden, so wird hierzu der zweite Teilbereich verwendet. Dieser ist in der Regel breiter als der erste Teilbereich, da davon ausgegangen wird, dass die abzuspeichernden Daten größer sind als die abzuspeichernden Adressen. Ob eine Zeile dem Beziehungsspeicher 6 oder dem Datenspeicher 7 zuzuordnen ist ergibt sich daraus, ob in dem ersten Teilbereich ein Wert abgelegt ist. Ist dies der Fall, so ist die betreffende Zeile Teil des Beziehungsspeichers 6. Ist dies nicht der Fall, und ist nur in dem zweiten Teilbereich ein Wert abgespeichert, so ist die betreffende Zeile dem Datenspeicher 7 zuzuordnen. Bei dieser Ausführungsform ist sind also der Datenspeicher 6 und der Datenspeicher 7 innerhalb eines gemeinsamen Speichers 6-7 ausgebildet. Gegenüber dem in 1 gezeigten Ausführungsbeispiel hat das in 2 gezeigte Ausführungsbeispiel den Vorteil, dass pro Zeile 2 lediglich zwei Teilbereiche statt drei Teilbereichen benötigt wird, was den Gesamtspeicherbedarf reduziert.
-
In 3 ist ein besonders bevorzugtes Ausführungsbeispiel einer möglichen Speicherstruktur zur Realisierung der Erfindung dargestellt. 3 zeigt einen Beziehungsspeicher 6, der eine Mehrzahl von Zeilen 2 umfasst. Jede der Zeilen 2 umfasst einen ersten Teilbereich 3 und einen zweiten Teilbereich 4. In diesem Beziehungsspeicher 6 werden wie bereits beschrieben Beziehungen durch jeweils zwei abgespeicherte Verweise realisiert, wobei diese Verweise vorzugsweise Speicheradressen darstellen.
-
In der 3 ist ferner eine Mehrzahl von Datenspeichern 7 gezeigt. Jeder der Datenspeicher 7 umfasst in bekannter Weise eine Mehrzahl von Zeilen. Jeder der Zeilen weist einen ersten Teilbereich 7-1 und einen zweiten Teilbereich 7-2 auf. In dem ersten Teilbereich 7-1 werden Adressen des Beziehungsspeichers 6 abgelegt. In dem zweiten Teilbereich 7-2 werden die eigentlichen Daten abgespeichert. Gemäß einer möglichen Ausführungsform werden in dem ersten Teilbereich 7-1 des Datenspeichers Adressen abgespeichert, die sich auf den Beziehungsspeicher 6 beziehen. Wird ein Datum abgespeichert, so wird dieses in dem zweiten Teilbereich einer freien Zeile eines Datenspeichers 7 abgelegt. Außerdem wird in dem Beziehungsspeicher 6 eine Zeile 2 diesem Datum zugeordnet. In dem Beziehungsspeicher 6 selbst wird kein Wert in dieser dem Datum zugeordneten Zeile 2 abgespeichert. Jedoch wird die Adresse der zugeordneten Zeile 2 des Beziehungsspeichers 6 in einem Teilbereich 7-1 des Datenspeichers 7 abgespeichert. Dies erfolgt in dem Teilbereich 7-1 derjenigen Zeile des Datenspeichers 7, in welcher in dem zweiten Teilbereich 7-2 das Datenwort abgespeichert worden ist. Soll ein Datum in dem Datenspeicher abgespeichert werden, so wird bspw. hierfür die mit der Adresse A1 adressierbare Zeile des Beziehungsspeichers diesem Datum zugeordnet. Es wird dann die Adresse A1 in eine leere Zeile des Datenspeichers 7 in dem ersten Teilbereich 7-1 eingeschrieben und es wird in den zweiten Teilbereich 7-2 dieser Zeile das eigentliche Datum abgespeichert.
-
Die in 3 gezeigte Speicherstruktur hat den Vorteil, dass der Beziehungsspeicher 6 vollständig von dem Datenspeicher 7 getrennt ist. In dem Beziehungsspeicher 6 sind folglich lediglich Beziehungen abgespeichert. Diese Beziehungen sind vollständig unabhängig von der Art und dem Inhalt eines einzelnen Datums. Das Datum selbst wird in einem Datenspeicher 7 oder in mehreren Datenspeichern 7 abgespeichert. Dadurch, dass in dem Beziehungsspeicher 6 lediglich Beziehungen abgespeichert sind, kann der Beziehungsspeicher 6 sehr effizient genutzt werden. Insbesondere führt diese strikte Trennung zwischen Beziehungsspeicher und Datenspeicher zu einer deutlichen Reduzierung von Speicherplatz dadurch, dass jede Beziehung nur einmal abgespeichert werden muss. Bspw. gibt es Daten, die denselben Inhalt bzw. dieselbe Bedeutung haben, jedoch in unterschiedlichen Worten und/oder Sprachen und/oder durch unterschiedliche Ausdrucksmittel wie Text, Sprache, Graphik, etc. ausgedrückt werden können und in mehreren Repräsentationen abgespeichert werden sollen. In diesem Fall ist also die konkrete Realisierung des Datums unabhängig von dessen Beziehungen innerhalb der Datenbank. Mittels der erfindungsgemäßen Datenbank ist es möglich, die konkreten Realisierungen eines Datums, das unterschiedlich ausgedrückt und/oder abgespeichert werden soll, jeweils in einem anderen Datenspeicher 7 abzulegen. Bspw. kann in einem ersten Datenspeicher ein Datum in Textform abgelegt werden und in einem zweiten Datenspeicher eine Wiedergabe dieses Datums als gesprochene Datei. Jeder der Datenspeicher 7 kann für die besondere Art der Wiedergabe bzw. das Abspeichern von Daten optimiert sein bzgl. der Länge des jeweils zweiten Teilbereichs 7-2 und auch bzgl. möglicher Verfahren zum Einschreiben und Auslesen der Daten, inklusive möglicherweise vorteilhafter Vor- und Nachbearbeitungen, wie bspw. ein Komprimieren einzelner Daten. Für die konkrete Ausgabe kann dann der entsprechende Datenspeicher 7 ausgewählt werden.
-
Gemäß einer möglichen Ausführungsform ist jedem Datum, unabhängig von seiner Repräsentation, in jedem Datenspeicher 7 dieselbe Adresse des Beziehungsspeichers 6 zugeordnet und in dem ersten Teilbereich 7-1 der jeweiligen Zeile abgespeichert. Der Beziehungsspeicher 6 abstrahiert also vollständig von einer eigentlichen Repräsentation der abzuspeichernden Daten. Je nach gewünschter Ein- und/oder Ausgabe kann der entsprechende Datenspeicher 7 gewählt werden.
-
Bei der in 3 gezeigten Ausführungsform können besonders vorteilhaft Eingabemodule und Ausgabemodule realisiert werden. Bspw. kann vorgesehen sein, dass jedem Eingabemodul ein spezieller Datenspeicher zugeordnet ist. Ebenso kann vorgesehen sein, dass jedem Ausgabemodul mindestens ein Datenspeicher zugeordnet ist. Wird mit der Datenbank nun in Form von textbasierter Ein- und Ausgabe kommuniziert, so geschieht dies über ein hierfür vorgesehenes Eingabe- und Ausgabemodul. Wird mit der Datenbank hingegen mittels akustischer Informationen kommuniziert, so können hierfür spezialisierte Eingabe- und Ausgabemodule vorgesehen sein. Die Eingabe und Ausgabe von Daten erfolgt dann in einem für die jeweilige Ein- und Ausgabeform optimierten Datenspeicher 7. Der eigentliche Beziehungsspeicher 6 bleibt hiervon jedoch unberührt. Dies gewährleistet eine Konsistenz der Beziehungen. Wird nun bspw. eine textuelle Repräsentation eines speziellen Datums eingegeben und werden hierdurch Beziehungen innerhalb des Beziehungsspeichers 6 verändert, so wird damit automatisch der Beziehungsspeicher 6 für alle anderen möglichen Repräsentationen dieses Datums aktualisiert.
-
Besonders die in 3 dargestellte Ausführungsform zeigt deutlich, dass erfindungsgemäß eine Trennung des Beziehungsspeichers 6 von einem oder mehreren Datenspeichern 7 realisiert wird, die einerseits eine hohe Datenkonsistenz garantiert und andererseits eine Optimierung der Datenbank bezüglich Ein- und Ausgabegeschwindigkeit und des benötigten Speicherplatzes ermöglicht.
-
In 4 ist ein vereinfachtes Ablaufdiagramm für eine mögliche Ausführungsform des erfindungsgemäßen Verfahrens im Hinblick auf das Abspeichern von Daten und Beziehungen skizziert. In einem Schritt 100 wird zunächst ein Eingabemodul gewählt. Das Modul kann bspw. in Form einer Eingabemaske realisiert sein, mittels der bspw. Kundendaten in einem Unternehmen abgespeichert werden sollen. In diesem Formular sind einzelne Textfelder für die Eingabe vorgesehen. Diese Textfelder stehen miteinander in Beziehung. Bspw. besteht eine Beziehung zwischen dem Oberbegriff „Adresse“ und einem „Namen“, einer „Straße“, einem „Wohnort“, einer „Telefonnummer“, einer Person. Diese Beziehungen sind in der erfindungsgemäßen Datenbank abgespeichert und werden beim Aufruf des Eingabemoduls aus der Datenbank ausgelesen, sofern das Eingabemodul bereits vorhanden ist. Dieses Vorhandensein wird in einem Verfahrensschritt 101 zunächst geprüft. Ist das Eingabemodul noch nicht vorhanden bzw. noch nicht bei der Datenbank angemeldet, so wird dies in einem Schritt 102 durchgeführt. Bspw. wird hierzu für das Eingabemodul ein Datenspeicher initialisiert und es wird in dem Beziehungsspeicher eine Zeile diesem Eingabemodul zugeordnet. Das Eingabemodul wird folglich aus der Sicht des Beziehungsspeichers genauso behandelt wie ein Datum.
-
In einem Schritt 103 wird nun die dem Eingabemodul zugeordnete Adresse des Beziehungsspeichers 6 als Ausgangspunkt innerhalb des Beziehungsspeichers 6 gewählt. Hierzu kann ein Register vorgesehen sein, in welchem stets eine für die Bearbeitung aktuelle Adresse innerhalb des Datenspeichers 6 abgespeichert ist.
-
In einem Schritt 104 erfolgt nun die Dateneingabe bspw. mittels des Eingabeformulars. Ist die Eingabe beendet, so werden die Daten an die Datenbank übersandt. In der Datenbank werden nun die Daten und die Beziehungen auf deren Vorhandensein geprüft. Wenn eine Beziehung oder ein Datum nicht vorhanden ist, so wird ein entsprechender Eintrag vorgenommen. Hierbei ist es denkbar, dass die Datenbank eine Prüfung vornimmt um festzustellen, ob ein Datum oder eine Beziehung möglicherweise fehlerhaft ist. Bspw. prüft die Datenbank zunächst in einem Schritt 105, ob ein bestimmtes Datum bereits vorhanden ist. Ist dies der Fall, so werden in einem Schritt 106 mögliche Beziehungen dieses Datums herausgesucht, um eine Prüfung auf Korrektheit zu ermöglichen. Es kann auch vorgesehen sein, lediglich einen aktuellen Zeiger auf die diesem Datum zugeordnete Zeile in dem Beziehungsspeicher 6 zu setzen.
-
Ist das Datum noch nicht vorhanden, so wird in einem Schritt 107 zunächst eine freie Speicherzeile des Beziehungsspeichers 6 diesem Datum zugeordnet und die Adresse dieser Speicherzeile wird in dem diesem Eingabemodul zugeordneten Datenspeicher 7 an einer freien Stelle in dem ersten Teilbereich 7-1 abgespeichert. Das eigentliche Repräsentation des Datums wird dann in dem zweiten Teilbereich 7-2 dieser Zeile abgespeichert.
-
In einem Schritt 108 wird nun geprüft, ob weitere Daten mittels des Eingabemoduls übergeben worden sind und deshalb bearbeitet werden müssen. Ist dies der Fall, so wird zu dem Schritt 105 zurückverzweigt und es werden weitere Daten bearbeitet. Ist dies nicht der Fall, so wird in einem Schritt 109 geprüft, ob mittels des Eingabemoduls eine neue Beziehung angegeben wurde, bspw. dadurch, dass das Eingabemodul verändert worden ist. In dem Schritt 109 kann ferner vorgesehen sein, innerhalb des Datenspeichers 6 zu prüfen, ob aufgrund der bisher erfolgten Dateneingabe eine Aktualisierung der internen Beziehungen erfolgen soll. Dies kann an dem vorgenannten Beispiel dann auftreten, wenn ein Name oder eine Adresse eingegeben worden ist, die bereits mit einem anderen Eingabemodul ebenfalls abgespeichert worden ist. Dies bedeutet, dass die einzelnen Adressdaten eine Beziehung zu einem anderen Eingabemodul in dem Beziehungsspeicher 6 haben. Sind bei der bereits mittels eines anderen Eingabemoduls eingegebenen Adresse weitere Daten oder leicht abweichende Daten vorhanden, so kann dies einem Benutzer der Datenbank angezeigt werden und er kann zur Korrektur oder Übernahme der Daten aufgefordert werden.
-
Wurde mittels des Eingabemoduls keine neue Beziehung eingegeben und ist keine Beziehung zu aktualisieren, so kann das Verfahren in einem Schritt 114 beendet werden. Ist jedoch eine Beziehung zu aktualisieren, so wird in einem Schritt 110 zunächst geprüft, ob diese Beziehung bereits vorhanden ist. Diese Prüfung kann - wie vorhin beschrieben - ebensogut auch in dem Schritt 109 erfolgen. Ist eine Beziehung noch nicht vorhanden, so wird diese nun erzeugt. Eine Beziehung wird dadurch realisiert, dass zwei Speicheradressen zusammen in einer Zeile des Beziehungsspeichers 6 abgespeichert werden. Dies ermöglicht eine vollständig abstrakte Darstellung von Beziehungen innerhalb der Datenbank. Es hat sich gezeigt, dass eine Mehrzahl der Beziehungen in dem Beziehungsspeicher Beziehungen zwischen anderen Beziehungen sind. Es entsteht damit folglich ein multidimensionaler Beziehungsbaum, der in dem Beziehungsspeicher 6 abgebildet ist. Um festzustellen, ob ein Datum mit einem anderen in Beziehung steht, kann dieser Baum untersucht werden. Eine besonders schnelle Suche lässt sich durch die erfindungsgemäße Vorrichtung realisieren, in welcher die erfindungsgemäße Speicherstruktur in Hardware nachgebildet wird.
-
In 5 ist ein vereinfachtes Diagramm gezeigt, das die der Datenbank zugrundeliegende Struktur skizziert. Der grundlegende Gedanke der erfindungsgemäßen Datenbank ist, Beziehungen als ein Tupel von drei Elementen darzustellen, wobei ein Element die jeweilige Beziehung identifiziert. Diese ID der Beziehung entspricht vorzugsweise der Adresse der Zeile innerhalb des Beziehungsspeichers, die dieser Beziehung zugeordnet ist. Die beiden anderen Einträge des drei Elemente umfassenden Tupels sind die Adressen derjenigen Speicherzeilen, zwischen denen eine Verbindung besteht. Bspw. ist die Adresse A1 einem bestimmten Eingabemodul zugeordnet. Durch die Zeile mit der Adresse A1 in dem Beziehungsspeicher 6 wird eine Beziehung zwischen den Speicherzeilen mit den Adressen A2 und A3 hergestellt. Dies ist in 5 durch die entsprechenden Einträge in dem Beziehungsspeicher 6 beispielhaft gezeigt. Die Speicherzeile mit der Adresse A2 beinhaltet eine Beziehung zwischen den Speicherzeilen A4 und A5. In den Speicherzeilen mit den Adressen A4 und A5 sind keine Einträge vorhanden. Dies bedeutet, dass hier keine weiteren Beziehungen mehr anknüpfen, sondern dass diese nun direkt Daten repräsentieren. Diese Daten sind in dem dem betreffenden Eingabemodul zugeordneten Datenspeicher 7 abgespeichert. Dies ist ebenfalls in 5 grafisch veranschaulicht. Dort ist ein erstes Datum Datal abgespeichert. Diesem Datum Datal ist die Speicherzeile mit der Adresse A4 zugeordnet. Ein weiteres Datum Data2 ist ebenfalls in dem Datenspeicher 7 abgespeichert. Diesem Datum ist die Speicherzeile mit der Adresse A5 in dem Beziehungsspeicher zugeordnet. Diese beiden Daten stehen folglich miteinander in Beziehung und stehen ebenfalls mit den Beziehungen an den Adressen A1 und A2 in Beziehung.
-
Die mit der Adresse A2 in Beziehung stehende Speicheradresse A3 hat wiederum eine Beziehung zum Inhalt. Dort ist eine Beziehung zwischen den Speicherzeilen mit den Adressen A6 und A7 abgespeichert.
-
Die ID mit der Adresse A6 repräsentiert ein weiteres Datum Data3, welches ebenfalls in dem Datenspeicher 7 abgespeichert ist.
-
In der Speicherzeile mit der Adresse A7 ist eine Beziehung zwischen den Speicherzeilen mit den Adressen A8 und A9 abgespeichert. Die Speicherzeilen mit den Adressen A8 und A9 repräsentieren weitere Daten Data4 und Data5, die miteinander in Beziehung stehen.
-
Mit der in 5 gezeigten Struktur ist eine Vielzahl von Beziehungen aus der realen Welt, die in eine Datenbank abgespeichert und damit in der Datenbank abgebildet werden sollen, beschreibbar. Diese sehr abstrakte Art der Beschreibung von Beziehungen wird erfindungsgemäß durch das Verfahren und die Vorrichtung, die sowohl in Software als auch in Hardware realisiert sein kann, ermöglicht. Dadurch wird eine vollständige Trennung von den Beziehungen einerseits und den eigentlichen Daten andererseits erreicht.
-
Ein weiterer Vorteil der Trennung zwischen den eigentlichen Daten und den Beziehungen sowie der Realisierung der Beziehungen durch Adressen besteht darin, dass jeder beliebige Punkt innerhalb der durch die Beziehungen realisierten mehrdimensionale Struktur als Startpunkt herangezogen werden kann, um innerhalb der Datenbank einen Eintrag zu suchen, einen Zusammenhang herzustellen oder eine neue Beziehung bzw. ein neues Datum abzuspeichern. Die einheitliche Struktur ermöglicht es auch auf besonders effiziente Weise, über den Beziehungen Mengen zu bilden, beispielsweise Vereinigungsmengen, Schnittmengen, Ähnlichkeitsmengen und/oder Wahrscheinlichkeitsmengen.
-
Sowohl im Datenspeicher als auch in dem Beziehungsspeicher lassen sich aufgrund der abstrakten Struktur mittels allgemeingültiger Berechnungen Aussagen erzeugen, neues Wissen generieren und/oder abgespeicherte Daten und Beziehungen verifizieren. Ausgehend von dem in 4 gezeigten Beispiel könnte beispielsweise nach oder während der Eingabe von Daten, welche eine andere Person betreffen, vorgesehen sein, Gemeinsamkeiten und/oder Unterschiede der jeweiligen Daten und/oder der jeweiligen Beziehungen zu ermitteln und somit Korrekturvorschläge anzubieten bzw. sogar bereits bei der Dateneingabe Werte und/oder Beziehungen vorzuschlagen, welche mit hoher Wahrscheinlichkeit den einzugebenden Daten und/oder Beziehungen entsprechen.
-
Eine besonders vorteilhafte Ausführungsform der erfindungsgemäßen Vorrichtung ermöglicht eine Abbildung der Speicherstruktur direkt in Hardware. Dies erhöht deutlich die Verarbeitungsgeschwindigkeit innerhalb der Datenbank, da die hierzu notwendigen einzelnen Speicherbausteine sehr direkt mit einander kommunizieren können. Die notwendige Logik kann sehr klein gehalten werden, was eine sehr schnelle Suche innerhalb der Datenbank sowie ein sehr schnelles Abspeichern und Abfragen von Daten ermöglicht.
-
In 6 ist ein Ausführungsbeispiel einer in Hardware realisierten erfindungsgemäßen Datenbank gemäß einer Ausführungsform gezeigt, welche bezüglich der grundlegenden Funktionalität dem in 3 gezeigten Ausführungsbeispiel entspricht. Der in 6 gezeigte Beziehungsspeicher 6 umfasst zwei adressierbare Speicherelemente M3, M4, mit welchen die Funktionalität der beiden Teilbereiche 3 und 4 des Beziehungsspeichers 6 realisiert werden. Als adressierbare Speicherelemente M3, M4 können beispielsweise Festplatten oder sogenannte RAM-Laufwerke eingesetzt werden. Gemäß der in den 6 und 7 gezeigten Ausführungsbeispiele werden als Speicherelemente RAM-Bausteine verwendet, welche eine besonders kurze Zugriffszeit aufweisen. Die maximale Anzahl der adressierbaren Daten wird durch die Adressbreite, also der maximalen Anzahl möglicher Adressen bestimmt. Über eine Adressleitung 8 und eine Datenleitung 9 sind die Speicherelemente bzw. die RAM-Bausteine M3, M4 des Beziehungsspeichers 6 mit einem Logikelement 10 verbunden. Da in dem Beziehungsspeicher 6 die Beziehungen in Form von Speicheradressen A1, A2, ... abgespeichert werden, sind die RAM-Bausteine M3, M4 quadratisch aufgebaut, sodass die Datenbreite der Adressbreite entspricht.
-
6 zeigt ferner eine Mehrzahl von Datenspeichern 7, welche ebenfalls jeweils zwei RAM-Bausteine M7-1 und M7-2 aufweisen. Die Funktionalität der Datenspeicher 7 entspricht der in 3 gezeigten Ausführungsform. Jeder Datenspeicher 7 bzw. jeder Teilbereich 7-1 und 7-2, welcher durch die jeweiligen RAM-Bausteine M7-1 und M7-2 realisiert wird, ist ebenfalls über eine Adressleitung 8 und eine Datenleitung 9 mit dem Logikelement 10 verbunden. Gemäß einem möglichen Ausführungsbeispiel besitzen sämtliche RAM-Bausteine (M3, M4, M7-1, M7-2 dieselbe Adress- bzw. Datenbreite. Dies ermöglicht eine besonders effiziente Realisierung des Logikelements 10.
-
Das Logikelement 10 weist ferner eine Datenleitung für einen Dateneingang 11 und eine Datenleitung für einen Datenausgang 12 auf. Soll ein Datum oder eine Beziehung abgespeichert werden, so überprüft das Logikelement 10 zunächst, ob dieses über den Dateneingang 11 erhaltene Datum bzw. diese Beziehung bereits vorhanden ist. Falls dies nicht der Fall ist, ermittelt das Logikelement 10 die Adresse A1, A2, ... einer freien Speicherzeile 2 in dem Beziehungsspeicher 6. Falls eine Beziehung abgespeichert werden soll, so erfolgt dies in den beiden RAM-Bausteinen M3 und M4 an der durch das Logikelement 10 ermittelten Adresse. Falls ein Datum abgespeichert werden soll, so veranlasst das Logikelement 10, dass die ermittelte Adresse in dem den ersten Teilbereich 7-1 realisierenden RAM M7-1 des Datenspeichers 7 und das eigentliche Datum in dem den zweiten Teilbereich 7-2 realisierenden RAM M7-2 abgespeichert wird. Die Wahl des Datenspeichers 7 erfolgt - wie weiter oben bereits beschrieben - beispielsweise in Abhängigkeit von dem jeweiligen Eingabemodul. Außerdem kann in Abhängigkeit von dem aktuellen Eingabemodul eine Startadresse in dem Beziehungsspeicher 6 gewählt werden um zu überprüfen, ob eine abzuspeichernde Beziehung bereits vorhanden ist.
-
In 7 ist eine weitere mögliche Ausführungsform einer Realisierung der Erfindung in Hardware gezeigt. Diese Ausführungsform entspricht zunächst konzeptionell der in 2 gezeigten Ausführungsform, bei welcher sowohl die Daten als auch die Beziehungen in demselben Speicherbereich abgespeichert werden. weist jedoch zusätzlich ein Index-Register 14 auf. Das Index-Register 14 weist drei RAM-Bausteine 15, 16, 17 auf, welche über eine Adressleitung 8 und eine Datenleitung 9 mit einem Teilbereich 10-2 des Logikelements 10 verbunden sind. Mittels des Index-Registers 14 kann für jeden Speicherplatz des Beziehungsspeichers 6 (welcher durch eine Adresse bestimmt wird) die jeweils vorausgehende Adresse (also ein Speicherplatz, welcher auf diesen bestimmten Speicherplatz verweist) sowie eine nachfolgende Adresse abgespeichert werden, wodurch eine verkettete Liste realisiert wird. Ausgehend von dem in 5 gezeigten Beispiel könnte beispielsweise für die Adresse A3 des Beziehungsspeichers in dem RAM-Baustein 16 die Adresse abgespeichert werden, welche auf den Speicherplatz A3 verweist. Dies ist die Adresse A1. In dem RAM Baustein 17 könnte diejenige Adresse des Beziehungsspeichers 6 abgelegt werden, auf welche von der Adresse A3 verwiesen wird. Dies wäre also die Adresse A7. Damit realisieren die beiden RAM-Bausteine 16 und 17 also die doppelt verkettete Liste.
-
Bei der in 7 gezeigten Ausführungsform weist das Index-Register 14 zusätzlich RAM-Bausteine 15 und 18 auf. Ferner ist dem Beziehungsspeicher 6 zusätzlich ein RAM-Baustein 13 zugeordnet. Damit wird folgendes erreicht: Mittels des RAM-Bausteins 13 wird jeder Adresse des Beziehungsspeichers 6 eine freie Speicherstelle in dem Index-Register 14 zugeordnet. Werden Daten oder Beziehungen in dem Beziehungsspeicher 6 und ggfs. in dem Datenspeicher 7 abgelegt, welche auf eine bestimmte Adresse innerhalb des Beziehungsspeichers 6 verweisen, so wird in dem Index-Register 14 eine neue Speicherstelle innerhalb des RAM-Bausteins 15 reserviert und es wird die Ursprungsadresse darin abgelegt. Der RAM-Baustein 18, welcher über eine Datenleitung 19 mit dem Teilbereich 10-2 des Logikelements 10 verbunden ist, realisiert ein sogenanntes Flag-Array und gibt für jede in dem RAM-Baustein 15 abgelegte Adresse an, ob es sich hierbei um einen Verweis bezüglich des ersten Teilbereichs 3 oder des zweiten Teilbereichs 4 des Beziehungsspeichers 6 handelt.
-
Sowohl die in den 1 bis 5 als auch die in den 6 und 7 gezeigten Ausführungsformen sind lediglich Ausführungsbeispiele zu verstehen. Beispielsweise könnten vorgesehen sein, den explizit in den 6 und 7 dargestellten Datenspeicher 7 analog zu der in 2 gezeigten implizit in den Beziehungsspeicher 6 zu integrieren, wobei im Falle eines abzuspeichernden Datums dieses Datum dann beispielsweise stets in den RAM-Baustein 4 abgespeichert wird.
-
Ferner kann in der Speicherstruktur für den Datenspeicher 6 und ggfs. für das Index-Register 14 ein Zuweisungsspeicher vorgesehen sein, der auf Anfrage die nächste freie Adresse in dem Datenspeicher 6 bzw. dem Index-Register 14 zurückliefert. Hierdurch wird das Logikelement 10 entlastet und ein nochmals schnelleres Einschreiben und Löschen von Daten und Beziehungen erreicht.