WO2005081845A2 | 2005-09-09 |
US20160048517A1 | 2016-02-18 |
DANIEL ABADI: "The Design and Implementation of Modern Column-Oriented Database Systems", FOUNDATIONS AND TRENDS IN DATABASES, vol. 5, no. 3, 4 December 2013 (2013-12-04), pages 197 - 280, XP055104257, ISSN: 1931-7883, DOI: 10.1561/1900000024
"Multimedia Database Management Systems", vol. 4, 1 January 1997, SPRINGER US, Boston, MA, ISBN: 978-1-46-156149-1, article PHILIP BOHANNON ET AL: "The Architecture of the Dal? Main-Memory Storage Manager", pages: 23 - 59, XP055120645, DOI: 10.1007/978-1-4615-6149-1_3
Patentansprüche 1. Verfahren zum Speichern von mindestens zwei miteinander in Beziehung stehenden Daten (Datal, Data2, ...) in einer eine Mehrzahl von Speicherplätzen umfassenden Datenbank (1) , dadurch gekennzeichnet, dass das erste Datum (Datal) in einem ersten Speicherplatz (5; 7-2 ) abgespeichert wird, das zweite Datum (Data2) in einem zweiten Speicherplatz (5; 7-2) abgespeichert wird und die Beziehung der Daten in zwei einander zugeordneten Speicherplätzen (3, 4) dadurch abgespeichert wird, dass in einem Speicherplatz (3) der beiden einander zugeordneten Speicherplätze ein Verweis auf das erste Datum (Datal) oder auf eine Beziehung, die zumindest mittelbar mit dem ersten Datum (Datal) in Beziehung steht, abgespeichert wird und in dem zweiten Speicherplatz (4) der beiden einander zugeordneten Speicherplätze ein Verweis auf das zweite Datum (Data2) oder auf eine Beziehung, die zumindest mittelbar mit dem zweiten Datum (Data2) in Beziehung steht, abgespeichert wird. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass vor dem Abspeichern eines Datums (Datal, Data2, ...) geprüft wird, ob dieses Datum (Datal, Data2, ...) bereits abgespeichert ist und falls dies der Fall ist und falls eine Beziehung zu einem anderen Datum gespeichert werden soll geprüft wird, ob diese Beziehung bereits abgespeichert ist. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die beiden einander zugeordneten Speicherplätze (3, 4) , an denen jeweils eine Beziehung abgespeichert wird, einen ersten Teilbereich (3) und einen zweiten Teilbereich (4) derselben adressierbaren Speicherzelle (2) bilden und als Verweis auf eine andere Beziehung die Adresse (Al, A2, ...) der Speicherzelle (2), in welcher diese Beziehung abgespeichert ist, eingesetzt wird. 4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der Speicherplatz (5; 7-2) , an welchem ein Datum abgespeichert wird, ein Teilbereich einer adressierbaren Speicherzeile (2) ist und als Verweis auf ein Datum (Datal, Data2, ...) die Adresse (Al, A2, ...) der Speicherzelle (2), in welcher das Datum abgespeichert ist, eingesetzt wird oder beim Abspeichern eines Datums in einer Speicherzelle (2) dem Datum (Datal, Data2, ...) eine weitere Speicherzelle (2) zugeordnet wird und als Verweis auf dieses Datum {Datal, Data2, ...) die Adresse (Al, A2, ...) der zugeordneten Speicherzelle (2) eingesetzt wird. 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Beziehungen und die Daten (Datal, Data2, ...) in adressierbaren Speicherzellen (2) desselben Speicherbereichs abgespeichert werden, wobei für das Abspeichern der Beziehungen jede dieser Speicherzellen (2) mindestens zwei Teilbereiche (3, 4) aufweist und für das Abspeichern der Daten ein dritter Teilbereich (5) in diesen Speicherzellen (2) ausgebildet ist, wobei in jeder dieser Speicherzellen (2) entweder eine Beziehung unter Verwendung der ersten beiden Teilbereiche (3, 4) oder ein Datum (Datal, Data2, ...) unter Verwendung des dritten Teilbereichs (5) abgespeichert wird. 6. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Beziehungen und die Daten (Datal, Data2, ...) in jeweils zwei Teilbereiche (3, 4) umfassende Speicherzellen (2) desselben Speicherbereichs abgespeichert werden, wobei in jeder Speicherzeile (2) entweder eine Beziehung unter Verwendung der beiden Teilbereiche (3, 4) oder ein Datum (Datal, Data2, ...) unter Verwendung des zweiten Teilbereichs (4) abgespeichert wird. 7. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass für das Abspeichern der Beziehungen in der Datenbank ein Beziehungsspeicher (6) und für das Abspeichern der Daten (Datal, Data2, ...) mindestens ein Datenspeicher (7) ausgebildet ist, wobei der Beziehungsspeicher (6) eine Mehrzahl von adressierbaren Speicherzellen (2) umfasst und jede dieser adressierbaren Speicherzellen (2) mindestens zwei Teilbereiche (3, 4) umfasst und wobei zumindest bei einem erstmaligen Abspeichern eines Datums (Datal, Data2, ...) in dem Datenspeicher (7) eine Speicherzelle (2) des Beziehungsspeichers (6) diesem Datum (Datal, Data2, ...) zugeordnet wird und in dem Datenspeicher (7) das Datum (Datal, Data2, ...) dadurch abgespeichert wird, dass in einem ersten Teilbereich (7-1 ) einer Speicherzelle (2) des Datenspeichers (7) die Adresse (Al, A2, ...) der diesem Datum (Datal, Data2, ...) zugeordneten Speicherzelle (2) des Beziehungsspeichers (6) abgespeichert wird und in einem zweiten Teilbereich (7-2) dieser Speicherzelle (2) des Datenspeichers (7) eine Repräsentation des Datums (Datal, Data2) abgespeichert wird. 8. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für die Eingabe mindestens eines Datums (Datal, Data2) ein Eingabemodul vorgesehen ist und zumindest bei einer ersten Dateneingabe mittels des Eingabemoduls eine Adresse (Al, A2, ...) des Beziehungsspeichers (6) diesem Eingabemodul zugeordnet wird. 9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass mittels des Eingabemoduls mindestens eine Beziehung zwischen eingebbaren Daten (Datal, Data2, ...) eingebbar ist . 10 Verfahren nach einem der Ansprüche 8 oder 9, dadurch gekennzeichnet, dass für jedes abgespeicherte Datum (Datal, Data2, ...) die Beziehung zu mindestens einem Eingabemodul , mittels dem die Eingabe erfolgt ist, zumindest indirekt abgespeichert wird. 11 . Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Beziehung in der Datenbank nur dann abgespeichert wird, falls sie nicht bereits abgespeichert ist. 12. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für die Ausgabe mindestens eines Datums (Datal, Data2, ...) ein Ausgabemodul vorgesehen ist und zumindest bei einer ersten Datenausgabe mittels des Ausgabemoduls die Adresse einer Speicherzelle (2) des Beziehungsspeichers 6) dem Ausgabemodul zugeordnet wird. 13. Speicherstruktur zum Speichern von mindestens zwei miteinander in einer (hierarchischen) Beziehung stehenden Daten, dadurch gekennzeichnet, dass die Speicherstruktur umfasst : - zumindest Teilbereiche (5; 7-2) innerhalb von Speicherzellen (2) zum Abspeichern des jeweiligen Datums (Datal, Data2, ...) ; - mindestens zwei einander zugeordnete Teilbereiche (3, 4 ) innerhalb einer Speicherzelle (2), die ein Abspeichern der Beziehung der Daten (Datal, Data2, ...) derart ermöglicht, dass in dem ersten Teilbereich (3) ein Verweis auf das erste Datum (Datal) und in dem zweiten Teilbereich (4) ein Verweis auf das zweite Datum (Data2) abgespeichert wird. 14. Speicherstruktur gemäß Anspruch 13, dadurch gekennzeichnet, dass die Speicherstruktur Mittel zur Realisierung eines Verfahrens nach einem der Ansprüche 1 bis 12 aufweist. 15. SpeicherStruktur nach einem der Ansprüche 13 oder 14, dadurch gekennzeichnet , dass die Speicherstruktur für die sich jeweils entsprechenden Teilbereiche (3, 4, 7-1, 7-2) der Speicherzellen (2) jeweils einen Speicherbaustein (M3, M4, M7-1, M7-2) aufweist, wobei für eine bestimmte Speicherzeile (2) die jeweiligen Teilbereiche (3, 4, 7-1, 7-2) mit derselben Adresse (Al, A2, innerhalb des jeweiligen Speicherbausteins (M3, M4, M7-1, M7-2) adressierbar sind. 16. Speicherstruktur nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, dass die Speicherstruktur ein Index-Register (14) aufweist, wobei das Index-Register (14) mindestens zwei Speicherbausteine (Ml6, M17) zur Realisierung einer doppelt verketteten Liste umfasst und für eine bestimmte Speicherzelle des Beziehungsspeichers (6) in einem der Speicherbausteine (Ml6, M17) die Adresse (Al, A2, ...) einer auf diese bestimmte Speicherzelle (2) verweisende andere Speicherzelle (2) und in dem anderen Speicherbaustein (Ml6, Ml7) die Adresse einer weiteren Speicherzelle (2), auf die die bestimmte Speicherzelle (2) verweist, speicherbar ist. 17. Speicherstruktur nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, dass die Speicherbausteine durch RAM-Bausteine realisiert sind. 18. Computerprogramm, das auf einem Computer ausführbar ist, dadurch gekennzeichnet, dass das Computerprogramm derart programmiert ist, dass ein Verfahren nach einem der Ansprüche 1 bis 12 durchgeführt wird, wenn das Computerprogramm auf dem Computer ausgeführt wird. 19. Speichermedium zum Abspeichern eines Computerprogramms, dadurch gekennzeichnet, dass auf dem Speichermedium ein Computerprogramm nach Anspruch 18 abgespeichert ist. |
Beschreibung
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 Speieheranordnung 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 Äbspeichern 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
Speicherzelle, 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 Speicherzelle 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.
Figur 1 zeigt ein Blockschaltbild, das eine zur Durchführung des erfindungsgemäßen Verfahrens geeignete Speicherstruktur gemäß einem ersten
Ausführungsbeispiel;
Figur 2 zeigt ein Blockschaltbild, das eine zur Durchführung des erfindungsgemäßen Verfahrens geeignete Speicherstruktur gemäß einem zweiten
Ausführungsbeispiel ;
Figur 3 zeigt ein Blockschaltbild, das eine zur Durchführung des erfindungsgemäßen Verfahrens geeignete
Speicherstruktur gemäß einem dritten
Ausführungsbeispiel ;
Figur 4 zeigt in einem Ablaufdiagramm das Einschreiben von
Daten in die erfindungsgemäße Datenbank gemäß einem Ausführungsbeispiel;
Figur 5 zeigt mittels eines Diagramms die der
erfindungsgemäßen Datenbank zugrunde liegende
Struktur für das Abspeichern von Beziehungen; Figur 6 zeigt ein bevorzugtes Ausführungsbeispiel einer in
Hardware realisierten erfindungsgemäßen Datenbank anhand eines Blockdiagramms.
Figur 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 Al, 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 Al, 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 Figur 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 Al 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 Al 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 Figur 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 Figur 1 gezeigten
Ausführungsbeispiel hat das in Figur 2 gezeigte
Ausführungsbeispiel den Vorteil, dass pro Zeile 2 lediglich zwei Teilbereiche statt drei Teilbereichen benötigt wird, was den Gesamtspeicherbedarf reduziert.
In Figur 3 ist ein besonders bevorzugtes Ausführungsbeispiel einer möglichen Speicherstruktur zur Realisierung der
Erfindung dargestellt. Figur 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 Figur 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 Al adressierbare Zeile des BeziehungsSpeichers diesem Datum zugeordnet. Es wird dann die Adresse Al 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 Figur 3 gezeigte Speicherstruktur hat den Vorteil, dass der Beziehungsspeicher 6 vollständig von dem Datenspeicher 7 getrennt ist. In dem Beziehungsspeieher 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 Figur 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 Figur 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 Figur 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 Speicherzelle des Beziehungsspeichers 6 diesem Datum zugeordnet und die Adresse dieser Speicherzelle 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 Figur 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
Speicherzellen, zwischen denen eine Verbindung besteht. Bspw. ist die Adresse Al einem bestimmten Eingabemodul zugeordnet. Durch die Zeile mit der Adresse Al in dem Beziehungsspeicher 6 wird eine Beziehung zwischen den Speicherzellen mit den
Adressen A2 und A3 hergestellt. Dies ist in Figur 5 durch die entsprechenden Einträge in dem Beziehungsspeicher 6
beispielhaft gezeigt. Die Speicherzelle mit der Adresse A2 beinhaltet eine Beziehung zwischen den Speicherzellen A4 und A5. In den Speicherzellen 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 Figur 5 grafisch
veranschaulicht . Dort ist ein erstes Datum Datal
abgespeichert. Diesem Datum Datal ist die Speicherzelle mit der Adresse A4 zugeordnet . Ein weiteres Datum Data2 ist ebenfalls in dem Datenspeicher 7 abgespeichert . Diesem Datum ist die Speicherzelle 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 Al 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 Speicherzellen 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 Speicherzelle mit der Adresse A7 ist eine Beziehung zwischen den Speicherzellen mit den Adressen A8 und A9 abgespeichert . Die Speicherzellen mit den Adressen A8 und A9 repräsentieren weitere Daten Data4 und DataS, die miteinander in Beziehung stehen.
Mit der in Figur 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 Figur 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 Figur 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 Figur 3 gezeigten Ausführungsbeispiel entspricht. Der in Figur 6 gezeigte Beziehungsspeieher 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 Figuren 6 und 7 gezeigten Ausführungsbeispiele werden als Speicherelernente 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. Ober 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 Al, A2, ... abgespeichert werden, sind die RAM-
Bausteine M3, M4 quadratisch aufgebaut, sodass die Datenbreite der Adressbreite entspricht.
Figur 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 Figur 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 Al, 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 Figur 7 ist eine weitere mögliche Ausführungsform einer
Realisierung der Erfindung in Hardware gezeigt. Diese
Ausführungsform entspricht zunächst konzeptionell der in Figur
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 Figur 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 Al. 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 Figur 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 Figuren 1 bis 5 als auch die in den Figuren 6 und 7 gezeigten Ausführungsformen sind lediglich
Ausführungsbeispiele zu verstehen. Beispielsweise könnten vorgesehen sein, den explizit in den Figuren 6 und 7
dargestellten Datenspeicher 7 analog zu der in Figur 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 .