DE10162495A1 - Erweiterbare Datenbank - Google Patents

Erweiterbare Datenbank

Info

Publication number
DE10162495A1
DE10162495A1 DE10162495A DE10162495A DE10162495A1 DE 10162495 A1 DE10162495 A1 DE 10162495A1 DE 10162495 A DE10162495 A DE 10162495A DE 10162495 A DE10162495 A DE 10162495A DE 10162495 A1 DE10162495 A1 DE 10162495A1
Authority
DE
Germany
Prior art keywords
database
property
data
added
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10162495A
Other languages
English (en)
Inventor
Bruno P Melli
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10162495A1 publication Critical patent/DE10162495A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

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

Abstract

Ein erweiterbares Datenbanksystem zum Speichern von Daten in einer Mehrzahl von getrennten Datenbanken niedrigerer Ebene ist offenbart. Eine Datenbank oberster Ebene wird verwendet, um die Daten zu manipulieren. Die Datenbank oberster Ebene weist ein Eigenschaftswörterbuch auf, das die Namen von Eigenschaften in dem Datenbanksystem zusammen mit Referenzen zu Positionen derselben speichert. Ein Anfangsdatenbanksystem mit einer Mehrzahl von getrennten Datenbanken wird erzeugt, von denen jede ein oder mehrere Felder speichern kann. Referenzen zu jedem Anfangsdatenbanksystem werden in einem Wörterbuch gespeichert. Danach kann eine hinzugefügte Datenbank verwendet werden, um eine Eigenschaft oder ein Feld zu dem Datenbanksystem hinzuzufügen. Der Name des hinzugefügten Feldes wird in dem Wörterbuch zusammen mit einem Adreßzeiger zu der Speicherposition der hinzugefügten Datenbank gespeichert. Um ein Feld zu löschen, wird die Referenz zu diesem Feld von dem Eigenschaftswörterbuch gelöscht und die Felddaten werden von dem Speicher entfernt.

Description

Die vorliegende Erfindung bezieht sich allgemein auf Compu­ tersoftware. Insbesondere bezieht sich dieselbe auf Daten­ speicherung und Datenbanken.
Auf dem Gebiet der Datenspeicherung ist es wünschenswert, Datensätze in einer durchsuchbaren Datenbank zu halten, die auf einem Computersystem gespeichert ist. Datenbanken sind weit verbreitete Einrichtungen zum Speichern von verschie­ denen Daten, wie z. B. Angestellten-Datensätzen in einem Matrixtyp-Format. Eine Datenbank kann mehrere Felder für unterschiedliche Datenelemente aufweisen. Bei dem Beispiel einer Datenbank für Angestellten-Datensätze können die Fel­ der den Namen, das Geburtsdatum, die Sozialversicherungs­ nummer, die Adresse usw. eines Angestellten umfassen. Um eine Datenbank zu erzeugen, spezifiziert der Benutzer Fel­ der und gibt für jeden Eintrag in diese Felder Daten ein.
Datenbanken werden häufig durch Erzeugen und Festlegen der Anzahl und des Typs von Datenbankfeldern kundenspezifisch angepaßt. Dies erzeugt ein Problem, wenn es erforderlich ist, daß die Datenbank durch Hinzufügen neuer Felder erwei­ tert wird. Beispielsweise kann ein Benutzer bei einer Da­ tenbank für Angestellten-Datensätzen entscheiden, daß zu­ sätzliche Informationen über Angestellte aufgenommen werden sollen, wie z. B. das Eintrittdatum eines Angestellten, die Art des Fahrzeugs, Fahrzeugkennzeichen, usw.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfah­ ren zum Speichern von Daten in Datenbanksystemen mit ver­ besserten Charakteristika zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 ge­ löst.
Es ist ein erweiterbares Datenbanksystem zum Speichern von Daten in einer Mehrzahl von getrennten Datenbanken niedri­ gerer Ebene offenbart. Eine Datenbank höchster Ebene wird verwendet, um die Daten zu manipulieren. Die Datenbank höchster Ebene weist ein Eigenschaftswörterbuch auf, das die Namen von Eigenschaften in dem Datenbanksystem zusammen mit Referenzen zu deren Positionen speichert. Ein Anfangs­ datenbanksystem, das eine Mehrzahl von getrennten Datenban­ ken aufweist, wird erzeugt, von denen jede ein oder mehrere Felder speichern kann. Referenzen zu jeder der Anfangsda­ tenbanken werden in dem Wörterbuch gespeichert. Danach kann eine hinzugefügte Datenbank verwendet werden, um eine Ei­ genschaft oder ein Feld zu dem Datenbanksystem hinzuzufü­ gen. Der Name des hinzugefügten Felds wird zusammen mit ei­ nem Adreßzeiger oder einer anderen Referenz zu dem Spei­ cherplatz der hinzugefügten Datenbank in dem Wörterbuch ge­ speichert. Um ein Feld zu löschen, wird die Referenz zu diesem Feld von dem Eigenschaftswörterbuch gelöscht, und die Felddaten werden von dem Speicher entfernt.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1A und 1B Blockdiagramme des erweiterbaren Daten­ banksystems.
Fig. 2 ein Blockdiagramm eines Computersystems, das das erweiterbare Datenbanksystem verwendet.
Fig. 3 ein Flußdiagramm eines Verfahrens zum Erzeugen eines erweiterbaren Datenbanksystems.
Fig. 4 ein Flußdiagramm einer Schnittstelle zum Erzeugen einer Datenbank.
Fig. 5 ein Flußdiagramm einer Schnittstelle zum Öffnen einer Datenbank.
Fig. 6 ein Flußdiagramm einer Schnittstelle zum Schlie­ ßen einer Datenbank.
Fig. 7 ein Flußdiagramm einer Schnittstelle zum Hinzufü­ gen einer Eigenschaft zu einer Datenbank.
Fig. 8 ein Flußdiagramm einer Schnittstelle zum Löschen einer Eigenschaft von einer Datenbank.
Fig. 9 ein Flußdiagramm einer Schnittstelle zum Wieder­ gewinnen einer Eigenschaft von einer Datenbank.
Fig. 10 ein Flußdiagramm einer Schnittstelle zum Hinzufü­ gen eines Eintrags zu einer Datenbank.
Fig. 11 ein Flußdiagramm einer Schnittstelle zum Löschen eines Eintrags von einer Datenbank.
Fig. 12 ein Flußdiagramm einer Schnittstelle zum Wieder­ gewinnen eines Eintrags von einer Datenbank.
Fig. 1A zeigt ein Blockdiagramm eines erweiterbaren Daten­ banksystems 10, das eine Datenbank höchster Ebene 20 auf­ weist, die auf eine oder mehrere Anfangsdatenbanken in ei­ nem Anfangsdatenbanksystem 30 und auf eine oder mehrere hinzugefügte Datenbanken 40, 40', 40", 40''' zugreift. Wie hierin verwendet bezieht sich Datenbank niedrigerer Ebene entweder auf eine hinzugefügte Datenbank oder das Anfangs­ datenbanksystem 30. Das erweiterbare Datenbanksystem 10 ist eine Sammlung von herkömmlichen Datenbanken, die Daten speichern, die mit einer Datenbank höchster Ebene 20 ver­ bunden sind. Bei einem Ausführungsbeispiel werden herkömm­ liche Datenbanken mit einem Feld verwendet. Die Datenbank höchster Ebene 20 weist eine Eigenschaftswörterbuchdatei 22 auf, die Informationen über die Felder oder Eigenschaften speichert, die von dem System 10 verwendet werden.
Fig. 1B zeigt ein detaillierteres Blockdiagramm des erwei­ terbaren Datenbanksystems von Fig. 1A. Das Datenbanksystem 10 verwaltet die Bestandteil-Datenbanken, so daß Datenfel­ der 42 durch Hinzufügen einer neuen Datenbank 40 hinzuge­ fügt werden können. Die Datenbank höchster Ebene 20 verwal­ tet die darunterliegenden Datenbanken 30, 40 unter Verwen­ dung einer Wörterbuchdatei 22, die eine Beschreibung der Felder 32, 34, 36, 42, die in den darunterliegenden Daten­ banken 30, 40 gespeichert sind, und Adreßzeiger zu diesen Datenbanken 30, 40 speichert.
Das Anfangsdatenbanksystem 30 ist eine Sammlung von her­ kömmlichen Datenbanken, die Felder 32, 34, 36 aufweisen, die bezeichnet werden, wenn das Datenbanksystem 30 anfangs erzeugt wird. Bei dem in Fig. 1B gezeigten Ausführungsbei­ spiel umfaßt das Anfangsdatenbanksystem 30 Felder für Ange­ stelltendatensätze, und die Felder 32, 34, 36 in dem An­ fangsdatenbanksystem 30 umfassen den Namen 32, die Sozial­ versicherungsnummer 34 und das Geburtsdatum 36 eines Ange­ stellten. Bei dem gezeigten Ausführungsbeispiel weist jedes getrennte Feld 32, 34, 36 in dem Anfangsdatenbanksystem 30 seine eigene Ein-Feld-Datenbank 32, 34, 36, 40 auf. Das An­ fangsdatenbanksystem 30 kann zahlreiche Datensätze 50 oder Einträge 50 aufweisen. Bei dem Beispiel von Fig. 1B sind Einträge von Angestellten-Datensätzen 50, 50', 50" für die Angestellten Brian, John und Jane gezeigt.
Bei der Verwendung wird durch die Datenbank höchster Ebene 20 auf das Datenbanksystem 10 zugegriffen. Die Datenbank höchster Ebene 20 weist eine Wörterbuchdatei 22 auf, die eine Liste von Feldern 32, 34, 36, 42 enthält, die durch die Datenbank höchster Ebene 20 unterstützt werden. Die Wörterbuchdatei 22 enthält außerdem Informationen über den Status (offen, geschlossen) und die Position der darunter­ liegenden Datenbanken 30, 40. Die Datenbank höchster Ebene 20 unterstützt die üblichen Operationen, die jedes Datenbanksystem unterstützen soll, wie z. B. Hinzufügen, Löschen und Nachschlagen von Datensätzen. Zusätzlich unterstützt das Datenbanksystem 10 Hinzufügen, Löschen, Nachschlagen und Auflisten von Einträgen in der Wörterbuchdatei 22. Um einen vollständigen Datensatz gemäß einem Schlüssel wiederzugewinnen, gewinnt die Datenbank höchster Ebene 20 einzelne Einträge 50 von den darunterliegenden Datenbanken 32, 34, 36, 40 unter Verwendung des gleichen Schlüssels wieder und baut einen Datensatz mit den wiedergewonnen Daten auf. Zusätzlich können Teildatensätze aufgebaut werden, falls der vollständige Datensatz nicht benötigt wird.
Zusätzliche Felder 42 können durch Erzeugen einer hinzuge­ fügten Datenbank 40 mit dem neuen Feld/den neuen Feldern 42 verwendet werden. Beispielsweise möchte ein Benutzer des in Fig. 1 gezeigten Datenbanksystems 10 vielleicht ein Feld 42 für die Daten, an denen die Angestellten angefangen haben, für den Arbeitgeber zu arbeiten, hinzufügen. Statt dem Neu­ konfigurieren der Anfangsdatenbank 30 wird eine neue hinzu­ gefügte Datenbank 40 erzeugt, die die neuen Felder 42 mit den neuen Daten für die Einträge 50 aufweist. Ein neuer Eintrag wird zu der Wörterbuchdatei 22 hinzugefügt, und zeigt an, daß die Datenbank höchster Ebene 20 nun ein zu­ sätzliches Feld "Eintrittsdatum" unterstützt. Das Datenwör­ terbuch 22 wiederum erzeugt eine neue Datenbank niedrigerer Ebene 40, die die Eintrittsdaten über die Angestellten ent­ hält. Das Datenwörterbuch 22 enthält außerdem einen Zeiger oder einen anderen Referenztyp zu der neuen Datenbank nied­ rigerer Ebene 40 und ordnet diesen Zeiger dem passenden Wörterbucheintrag zu. Die hinzugefügte Datenbank 40 wird in die Wörterbuchdatei 22 eingegeben, und für jeden Datenein­ trag 50 oder Schlüsselwert 60 wird ein Adreßzeiger 62' er­ zeugt, um auf die Position in dem Speicher der neuen Daten zu verweisen, die in der hinzugefügten Datenbank 40 posi­ tioniert sind. Bei dem Beispiel von Fig. 1B wäre das Ein­ trittsdatum 42 des Angestellten Brian in der hinzugefügten Datenbank 40 in dem Eintrag 50 positioniert, der dem Schlüsselwert von Brian entspricht. Eine Implementierung verwendet Adreßzeiger 62', die zu dem Speicherplatz des An­ fangs der hinzugefügten Datenbank 40 gerichtet sind, wobei Offset-Indizes vorhanden sind, die auf die Schlüsselwerte 60 von jedem Dateneintrag 50 bezogen sind.
Fig. 2 zeigt ein Blockdiagramm eines Computersystems 400 mit einem Prozessor 410, der mit einem Eingabegerät 420 und einem Anzeigegerät 430 verbunden ist. Der Prozessor 410 greift auf den Speicher 440 in dem Computersystem 400 zu, der das erweiterbare Datenbanksystem 10 speichert. Der Speicher 440 kann die Datenbank höchster Ebene 20 mit der Wörterbuchdatei 22, der Anfangsdatenbank 30 und jeder hin­ zugefügten Datenbank nach Bedarf speichern. Bei der Verwen­ dung empfängt das Eingabegerät 420 Befehle, die den Prozes­ sor 410 anweisen, das Datenbanksystem 10 zu manipulieren. Beispielsweise kann der Prozessor 410 Befehle verarbeiten, um eine neue Datenbank 40 hinzuzufügen, oder um bestehende Daten zu entfernen. Das Anzeigegerät 430 kann Befehle an­ zeigen, die durch das Eingabegerät 420 eingegeben werden, und Ergebnisse, die von dem Prozessor 410 zurückgesendet werden. Bei einem Ausführungsbeispiel können sich die Da­ tenbanken niedrigerer Ebene 30, 40 und das Wörterbuch 22 in einem Nur-Lese-Speicher-(ROM-)Abschnitt des Speichers 440, wie z. B. eine Festplatte, befinden, und die Datenbank höchster Ebene 20 kann sich in einem Direktzugriffsspeicher (RAM) befinden.
Fig. 3 zeigt ein Flußdiagramm des Verfahrens zum Erzeugen eines erweiterbaren Datenbanksystems 10. Das Verfahren kann beispielsweise in dem in Fig. 2 gezeigten Computersystem 400 durchgeführt werden. Ein Anfangsdatenbanksystem wird erzeugt 200, mit einer Mehrzahl von Feldern 32, 34, 36, von denen jedes eine getrennte Datenbank sein kann, die eine Eigenschaft 32, 34, 36 und Dateneinträge 50 hält. Eine Da­ tenbank höchster Ebene 20 ist erzeugt 210, um mit dem Pro­ zessor 410 eine Schnittstelle zu bilden. Die Datenbank höchster 20 Ebene weist eine Wörterbuchdatei 22 auf, die Informationen über die darunterliegenden Datenbanken 30, 40 speichert. Die Namen der Datenbanken 32, 34, 36 in dem An­ fangsdatenbanksystem 30 werden in dem Wörterbuch 22 gespei­ chert 220. Adreßzeiger 62 werden in dem Wörterbuch 22 ge­ speichert 230, um die Position der entsprechenden Datenban­ ken niedrigerer Ebene 32, 34, 36 in dem Speicher 440 anzu­ zeigen. Um ein zusätzliches Feld oder Felder zu erzeugen, wird eine neue Datenbank 40 mit einem oder mehreren neuen Feldern 42 erzeugt 240. Die gleichen Informationen, die für die Anfangsdatenbank 30 gespeichert sind, werden in der hinzugefügten Datenbank 40 gespeichert 250, einschließlich der neuen Felder 42 und der Zeiger 62 oder anderen Refe­ renztypen. Durch Verwenden des zeigerbasierten Systems er­ möglicht es die erweiterbare Datenbank 10, daß unterschied­ liche darunterliegende Datenbanken 30, 40 an unterschiedli­ chen Positionen in dem Speicher 440 gespeichert werden.
Fig. 4 bis 12 zeigen Flußdiagramme von verschiedenen Schnittstellen, die durch das System 10 verwendet werden, um Daten zu manipulieren. Die Schnittstellen können bei­ spielsweise in Software zur Ausführung durch einen Prozes­ sor 410 implementiert werden. Die Schnittstellen können beispielsweise als Befehlseingaben in das Eingabegerät 420 durch einen Benutzer empfangen werden. Die Ergebnisse der Datenmanipulation können durch den Prozessor 410 zurückge­ sendet werden und auf dem Anzeigegerät 430 angezeigt wer­ den.
Fig. 4 zeigt ein Schnittstellenverfahren zum Erzeugen eines Datenbanksystems 10, das in der Form "Erzeu­ ge(Verzeichnisname)" ("create(directoryName)") sein kann, wobei Verzeichnisname der Name des Verzeichnisses ist, wo die Datenbank gespeichert wird. Das System 10 bestimmt 100, ob das spezifizierte Verzeichnis bereits existiert. Falls es noch nicht existiert wird das Verzeichnis erzeugt 102. Ein leeres Eigenschaftswörterbuch 22 wird dann erzeugt 104. Das System 10 überprüft 106, um zu sehen, ob eine Elternda­ tenbank spezifiziert ist. Falls ein Elternverzeichnis spe­ zifiziert ist, wird die neue Datenbank mit dem Elternver­ zeichnis verbunden 108.
Fig. 5 zeigt ein Schnittstellenverfahren zum Öffnen eines Datenbanksystems 10, das mit dem Befehl "Öff­ ne(Verzeichnisname)" ("open(directoryName)") durchgeführt werden kann, wobei Verzeichnisname der Name des Verzeich­ nisses der Datenbank ist, das geöffnet werden soll. Das Sy­ stem 10 bestimmt 110, ob das spezifizierte Verzeichnis be­ reits existiert. Falls es nicht existiert wird ein Fehler ausgegeben 112. Falls das Verzeichnis besteht, wird das be­ stehende Wörterbuch 22 für dieses Verzeichnis gelesen 114. Falls eine Elterndatenbank in dem Wörterbuch 22 spezifi­ ziert wird 116, dann verbindet 118 das System 10 die aktu­ elle Datenbank mit der Elterndatenbank derselben.
Fig. 6 zeigt ein Schnittstellenverfahren zum Schließen ei­ nes Datenbanksystems 10, das mit dem Befehl "Schlie­ ße(optionaler Name)" ("close(optional name)") durchgeführt werden kann, wobei der optionale Name der Name der zu schließenden Datenbank ist. Falls ein Name spezifiziert ist, kann die Datenbank unter diesem Namen gespeichert wer­ den, andernfalls wird ein neuer Name erzeugt. Das System 10 bestimmt 120, ob das spezifizierte Verzeichnis offen ist. Falls das Verzeichnis, von dem angenommen wurde, daß es ge­ schlossen ist, nicht offen ist, weiß das System 10, daß keine Änderung durchgeführt wurde und keine weitere Aktion erforderlich ist. Falls das Verzeichnis offen ist, wird das alte Wörterbuch 22 für das Verzeichnis gespeichert 124. Ei­ ne neue Wörterbuchdatei 22' wird erzeugt 126, und alle da­ runterliegenden Datenbanken werden geschlossen 128. Die neue Wörterbuchdatei 22' wird dann mit Informationen über die geschlossene Datenbank geschrieben 130.
Fig. 7 zeigt ein Schnittstellenverfahren zum Hinzufügen ei­ ner neuen Eigenschaft, die auch als ein Feld bezeichnet wird, zu einem Datenbanksystem 10, das mit dem Befehl "füge Eigenschafts(Name) hinzu" ("addProperty (name)") wobei Name der Name der Eigenschaft ist, die zu dem Datenbanksystem 10 hinzugefügt werden soll. Falls die spezifizierte Eigen­ schaft bereits existiert 132, gibt das System einen Fehler aus 134. Andernfalls wird eine neue Datenbank niedrigerer Ebene 40 erzeugt 136. Ein Eigenschaftsdatensatz 62' wird für diese Datenbank 40 erzeugt 138. Der neue Eigenschafts­ datensatz 62' wird dann in dem Wörterbuch 22 gespeichert 140. Der Eigenschaftsdatensatz kann in der Form eines Adreßzeigers 62' zu der hinzugefügten Datenbank niedrigerer Ebene 40 sein.
Fig. 8 zeigt ein Schnittstellenverfahren zum Löschen einer Eigenschaft von dem Datenbanksystem 10, das mit dem Befehl "Lösche(Eigenschaftsname)" ("delete(propertyName)"), wobei Eigenschaftsname der Name der Eigenschaft ist, die von dem System 10 gelöscht werden soll. Das System 10 bestimmt 142, ob die spezifizierte Eigenschaft bereits existiert. Falls dieselbe nicht existiert, wird ein Fehler ausgegeben 144. Andernfalls entfernt 146 das System die Eigenschaft von dem Eigenschaftswörterbuch 22 und entfernt 148 die Datenbank niedrigerer Ebene 40, die diese Eigenschaft speichert.
Fig. 9 zeigt ein Schnittstellenverfahren zum Wiedergewinnen einer Liste der Eigenschaften, die in dem System 10 verwen­ det werden, das mit dem Befehl "Eigenschaftsliste erhal­ ten()" ("getPropertyList()") durchgeführt werden kann. Falls das Wörterbuch 22 leer ist 150, (d. h. wenn keine Ei­ genschaften in denselben gespeichert sind) dann sendet, 152 das System 10 einen Null-Bericht. Andernfalls wird ein Puf­ fer in dem Speicher 440 erzeugt 154, um wiedergewonnene Ei­ genschaftsinformationen zu speichern. Der Puffer wird dann mit den Eigenschaftsinformationen gefüllt 156, und zu dem Benutzer zurückgesendet, 158.
Fig. 10 zeigt ein Schnittstellenverfahren zum Hinzufügen eines Eintrags 50 zu dem Datenbanksystem 10, das mit dem Befehl "Eintrag(Schlüssel, Eigenschaft, Daten, Größe) hin­ zufügen" ("addEntry (key, property, data, size)"). Das Ar­ gument "Schlüssel" bezieht sich auf den Schlüsselwert des hinzuzufügenden Dateneintrags, Eigenschaft bezieht sich auf die Datei (Datenbank niedrigerer Ebene 30, 40) in der die Daten gespeichert werden sollen, Daten sind die Daten, die zu dem Eintrag hinzugefügt werden sollen und Größe ist die Größe des Speichers, die erforderlich ist, um den Datenein­ trag zu speichern. Falls die spezifizierte Eigenschaft in dem System 10 nicht existiert 160, wird ein Fehler ausgege­ ben 162. Andernfalls bestimmt 164 das System 10, ob eine Datenbank niedrigerer Ebene 40 geschlossen ist. Falls die­ selbe geschlossen ist, öffnet 166 das System 10 dieselbe. Die Daten werden dann in der Datenbank niedrigerer Ebene 40 in den jeweiligen Feldern 32, 34, 36, 42 gespeichert, 168.
Fig. 11 zeigt ein Schnittstellenverfahren zum Löschen eines Eintrags 50 in dem Datenbanksystem 10, das mit dem Befehl "Eintrag (Schlüssel, Eigenschaft, regulärer Ausdruck) ("de­ leteEntry (key, property, Regular Expression)"). Von dem regulären Ausdruck wird eine Liste passender Eigenschaften erzeugt 170. Falls eine Eigenschaft, die in dem Befehl spe­ zifiziert wird, nicht in der Eigenschaftsliste 172 er­ scheint, wird ein Fehler ausgegeben 174. Für jede Eigen­ schaft, die in der Liste gefunden wird, werden Daten, die der Eigenschaft entsprechen, von einer Datenbank niedrige­ rer Ebene 30, 40 entfernt 176. Dieser Prozeß setzt sich fort, bis jede spezifizierte Eigenschaft gelöscht ist 178.
Fig. 12 zeigt ein Schnittstellenverfahren zum Nachschlagen eines Eintrags in dem Datenbanksystem 10, das mit dem Be­ fehl "Eintrag (Schlüssel, Eigenschaft, regulärer Ausdruck) laden" ("getEntry (key, property, Regular Expression)") durchgeführt werden kann. Von dem regulären Ausdruck wird eine Liste von passenden Eigenschaften erzeugt 180. Für je­ de Eigenschaft werden Daten von einer Datenbank niedrigerer Ebene 30, 40, die der Eigenschaft 32, 34, 36, 42 ent­ spricht, extrahiert 182. Falls Daten nicht gefunden werden und die Datenbank 30, 40 eine Elterndatenbank 184 aufweist, wird die Anfrage zu dem Elternverzeichnis weitergeleitet 186. Die Daten werden zu einem Datensatz hinzugefügt 188, der zu dem Benutzer zurückgesendet werden soll. Dieser Pro­ zeß 182, 184, 186, 188 setzt sich fort, bis jede Eigen­ schaft verarbeitet ist 190. Dann wird ein Datensatz mit diesen Informationen zu dem Benutzer zurückgesendet 192.
Obwohl die vorliegende Erfindung bezüglich spezieller Aus­ führungsbeispiele derselben beschrieben wurde, sind Varia­ tionen möglich. Die vorliegende Erfindung kann in spezifi­ schen Formen dargestellt werden, ohne von der Wesensart oder den Eigenschaften derselben abzuweichen. Obwohl Aspek­ te einer Implementierung, die mit der vorliegenden Erfin­ dung übereinstimmen als in einem Speicher gespeichert be­ schrieben sind, kann ein Fachmann auf diesem Gebiet außer­ dem erkennen, daß diese Aspekte außerdem auf anderen Typen von Computerprogrammprodukten oder computerlesbaren Medien, wie z. B. Sekundärspeichergeräten, einschließlich Festplat­ ten, Disketten oder CD-ROM, einer Trägerwelle von dem In­ ternet oder einem anderen Netzwerk, oder anderen Formen von RAM oder Nur-Lese-Speicher (ROM) gespeichert sein können oder von denselben gelesen werden können. Bei einem Ausfüh­ rungsbeispiel kann ein Abschnitt des Systems, wie z. B. die Datenbanken niedrigerer Ebene 30, 40, in einem ROM- Abschnitt des Speichers 440 gespeichert werden, während ein anderer Abschnitt des Systems, wie z. B. die Datenbank höchster Ebene 20 in einem RAM-Abschnitt des Speichers 440 gespeichert werden kann.

Claims (20)

1. Verfahren zum Speichern von Daten, das folgende Schritte umfaßt:
Erzeugen (100) eines Anfangsdatenbanksystems (30) mit zumindest einer Datenbank (32), die eine Mehrzahl von Dateneinträgen (50) und eine Eigenschaft aufweist;
Erzeugen (110) einer Datenbank oberster Ebene (20), die auf das Anfangsdatenbanksystem (30) zugreift, wo­ bei die Datenbank oberster Ebene (20) eine Wörterbuch­ datei (22) aufweist; und
Speichern (120) eines Namens der Eigenschaft in der zumindest einen Datenbank (32) und einer Referenz zu einer Position, die die Eigenschaft speichert, in der Wörterbuchdatei (22).
2. Verfahren gemäß Anspruch 1, bei dem der Schritt des Erzeugens eines Anfangsdatenbanksystems (30) das Er­ zeugen einer Mehrzahl von Anfangsdatenbanken (32, 34, 36) umfaßt, von denen jede eine Eigenschaft und eine Mehrzahl von Dateneinträgen (50) speichert.
3. Verfahren gemäß Anspruch 1 oder 2, das ferner folgende Schritte umfaßt:
Erzeugen (140) einer hinzugefügten Datenbank (40) mit einer hinzugefügten Eigenschaft (42); und
Speichern (150) des Namens der hinzugefügten Eigen­ schaft (42) und einer Referenz zu einer Position, die die hinzugefügte Eigenschaft (42) speichert, in der Wörterbuchdatei (22).
4. Verfahren gemäß einem der Ansprüche 1 bis 3, das fer­ ner das Speichern eines Schlüsselwerts für jeden der Einträge (50) in der Wörterbuchdatei (22) umfaßt, und bei dem die Referenz ein Adreßzeiger zu Speicher- Datenadressen ist.
5. Verfahren gemäß Anspruch 4, bei dem der Adreßzeiger auf Positionen in einem Speicher (440)verweist, und einen Offset-Index verwendet, um Daten für einen Da­ teneintrag auf der Basis des Schlüsselwerts für den Dateneintrag zu identifizieren.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, das fer­ ner das Verwenden einer Mehrzahl von Anwendungspro­ grammschnittstellen umfaßt, um Daten zu manipulieren, die unter Verwendung der Datenbank oberster Ebene (20) in den Dateneinträgen gespeichert sind, wobei die Schnittstellen folgende Merkmale umfassen:
eine erste Schnittstelle zum Hinzufügen einer Eigen­ schaft durch Erzeugen (140) einer hinzugefügten Daten­ bank und Speichern einer Referenz zu der hinzugefügten Eigenschaft (42) in der Wörterbuchdatei (22);
eine zweite Schnittstelle zum Löschen einer Eigen­ schaft durch Löschen (148) einer Datenbank niedrigerer Ebene, die Informationen über die gelöschte Eigen­ schaft speichert, und Entfernen (146) einer Referenz zu der gelöschten Eigenschaft von der Wörterbuchdatei (22);
eine dritte Schnittstelle zum Hinzufügen eines Daten­ eintrags (50); und
eine vierte Schnittstelle zum Löschen eines Datenein­ trags (50).
7. Verfahren gemäß Anspruch 6, bei dem die Schnittstellen ferner folgende Merkmale umfassen:
eine fünfte Schnittstelle zum Wiedergewinnen einer Li­ ste von Eigenschaften durch Zugreifen auf die Wörter­ buchdatei (22); und
eine sechste Schnittstelle zum Wiedergewinnen eines Dateneintrags durch Zugreifen auf die Wörterbuchdatei (22).
8. Computerlesbares Medium, auf dem eine Datenstruktur gespeichert ist, die folgende Merkmale umfaßt:
eine Mehrzahl von Datenbanken niedrigerer Ebene (32, 34, 36) mit einer. Mehrzahl von Dateneinträgen und Eigenschaften; und
eine Datenbank oberster Ebene (20) mit einer Wörter­ buchdatei (22), die Namen der Eigenschaften und Refe­ renzen zu Daten in der Mehrzahl von Datenbanken nied­ rigerer Ebene (30, 40) umfaßt.
9. Medium gemäß Anspruch 8, bei dem die Mehrzahl von Da­ tenbanken niedrigerer Ebene (30, 40) ferner eine hin­ zugefügte Datenbank (40) mit einer hinzugefügten Ei­ genschaft umfaßt, und bei dem die Wörterbuchdatei (22) einen Namen der hinzugefügten Eigenschaft (42) spei­ chert und eine Referenz zu Daten in der hinzugefügten Datenbank (40) speichert.
10. Medium gemäß Anspruch 8 oder 9, bei dem die Mehrzahl von Datenbanken niedrigerer Ebene (30, 40) eine Mehr­ zahl von Datenbanken umfaßt, die jeweils eine Eigen­ schaft aufweisen.
11. Medium gemäß einem der Ansprüche 8 bis 10, bei dem die Wörterbuchdatei (22) einen Schlüsselwert für jeden der Einträge (50) speichert, und bei dem die Referenzen zu Daten in der Anfangsdatenbank Adreßzeiger zu Speicher- Datenadressen sind, und bei dem die Adreßzeiger auf Positionen in einem Speicher (440) verweisen und einen Offset-Index verwenden, um Daten für einen Datenein­ trag (50) auf der Basis des Schlüsselwerts für den Da­ teneintrag (50) zu identifizieren.
12. Medium gemäß einem der Ansprüche 8 bis 11, das ferner eine Mehrzahl von Anwendungsprogrammschnittstellen um­ faßt, um Daten zu manipulieren, die in den Datenein­ trägen gespeichert sind, unter Verwendung der Daten­ bank höchster Ebene (20), wobei die Schnittstellen folgende Merkmale umfassen:
eine erste Schnittstelle zum Hinzufügen einer Eigen­ schaft durch Erzeugen (136) einer hinzugefügten Daten­ bank (42) und Speichern (140) einer Referenz zu der hinzugefügten Eigenschaft (42) in der Wörterbuchdatei (22); und
eine zweite Schnittstelle zum Löschen einer Eigen­ schaft durch Löschen (148) einer Datenbank niedrigerer Ebene (30, 40), die Informationen über die gelöschte Eigenschaft speichert, und Entfernen (146) einer Refe­ renz zu der gelöschten Eigenschaft von der Wörterbuch­ datei (22).
13. Medium gemäß Anspruch 12, bei dem die Schnittstellen ferner folgende Merkmale umfassen:
eine dritte Schnittstelle zum Hinzufügen eines Daten­ eintrags (50) zu der Mehrzahl von Datenbanken niedri­ gerer Ebene (30, 40); und
eine vierte Schnittstelle zum Löschen eines Datenein­ trags (50) von der Mehrzahl von Datenbanken niedrige­ rer Ebene (30, 40).
14. Verfahren gemäß Anspruch 13, bei dem die Schnittstel­ len ferner folgende Merkmale umfassen:
eine fünfte Schnittstelle zum Wiedergewinnen einer Li­ ste von Eigenschaften durch Zugreifen auf die Wörter­ buchdatei (22); und
eine sechste Schnittstelle zum Wiedergewinnen eines Dateneintrags durch Zugreifen auf die Wörterbuchdatei (22).
15. Computersystem (400) zum Erzeugen einer erweiterbaren Datenbank (10), das folgende Merkmale umfaßt:
ein Speichermedium (440); und
einen Prozessor (410) zum Ausführen eines Softwarepro­ gramms, das auf dem Speichermedium (440) gespeichert ist, zum Erzeugen einer erweiterbaren Datenbank (10), wobei die Software einen Satz von Anweisung umfaßt zum:
Erzeugen (200) einer Mehrzahl von Datenbanken niedrigerer Ebene (30, 40) mit einer Mehrzahl von Dateneinträgen (50) und einer Eigenschaft;
Erzeugen (210) einer Datenbank oberster Ebene (20), die auf die Mehrzahl von Datenbanken nied­ rigerer Ebene zugreift, wobei die Datenbank ober­ ster Ebene (20) eine Wörterbuchdatei (22) auf­ weist; und
Speichern (220) eines Namens der Eigenschaft in den Datenbanken niedrigerer Ebene (30, 40) und von Referenzen zu Datenspeicherpositionen der Da­ tenbanken niedrigerer Ebene (30, 40) in der Wör­ terbuchdatei (22).
16. System gemäß Anspruch 15, bei dem die Software ferner Anweisungen zum Erzeugen (240) einer hinzugefügten Da­ tenbank mit zumindest einer hinzugefügten Eigenschaft umfaßt, und zum Speichern des Namens der zumindest ei­ nen hinzugefügten Eigenschaft und zum Speichern von Referenzen zu Daten in der hinzugefügten Datenbank in der Wörterbuchdatei (22).
17. System gemäß Anspruch 15 oder 16, bei dem die Software ferner Anweisungen zum Speichern eines Schlüsselwerts für jeden der Einträge (50) in der Wörterbuchdatei (22) umfaßt, und bei dem die Referenzen Zeiger (62) zu Speicheradressen von Daten sind.
18. System gemäß Anspruch 17, bei dem die Adreßzeiger (62) auf Positionen in einem Speicher (440) verweisen und einen Offset-Index verwenden, um Daten für einen Da­ teneintrag auf der Basis des Schlüsselwerts für den Dateneintrag zu identifizieren.
19. System gemäß einem der Ansprüche 15 bis 18, bei dem der Schritt des Erzeugens (200) einer Mehrzahl von Da­ tenbanken niedrigerer Ebene (30, 40) das Erzeugen der Datenbanken niedrigerer Ebene (30, 40) in einem Nur- Lese-Speicher-(ROM-)Abschnitt des Speichermediums (440) umfaßt, und bei dem der Schritt des Erzeugens (210) einer Datenbank oberster Ebene (20) das Erzeugen einer Datenbank oberster Ebene (20) in einem Direkt­ zugriffsspeicher (RAM) umfaßt.
20. System gemäß einem der Ansprüche 15 bis 19, bei dem die Software ferner eine Mehrzahl von Anwendungspro­ grammschnittstellen umfaßt, um Daten zu manipulieren, die in den Dateneinträgen (50) unter Verwendung der Datenbank oberster Ebene gespeichert sind, wobei die Schnittstelle folgende Merkmale umfaßt:
eine erste Schnittstelle zum Hinzufügen einer Eigen­ schaft durch Erzeugen (138) einer hinzugefügten Daten­ bank (40) und Speichern einer Referenz zu der hinzuge­ fügten Eigenschaft in der Wörterbuchdatei (22); und
eine zweite Schnittstelle zum Löschen einer Eigen­ schaft durch Löschen (148) einer Datenbank niedrigerer Ebene (40), die Informationen über die gelöschte Ei­ genschaft speichert, und Entfernen einer Referenz zu der gelöschten Eigenschaft von der Wörterbuchdatei (22).
DE10162495A 2001-02-09 2001-12-19 Erweiterbare Datenbank Withdrawn DE10162495A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/780,227 US6804680B2 (en) 2001-02-09 2001-02-09 Extensible database

Publications (1)

Publication Number Publication Date
DE10162495A1 true DE10162495A1 (de) 2002-08-29

Family

ID=25118994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10162495A Withdrawn DE10162495A1 (de) 2001-02-09 2001-12-19 Erweiterbare Datenbank

Country Status (2)

Country Link
US (1) US6804680B2 (de)
DE (1) DE10162495A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254570B2 (en) * 2001-03-21 2007-08-07 Nokia Corporation Query resolution system and service
US7028079B2 (en) * 2001-05-25 2006-04-11 Lenovo (Singapore) Pte, Ltd. Method and apparatus for the automatic migration of applications and their associated data and configuration files
US6976039B2 (en) * 2001-05-25 2005-12-13 International Business Machines Corporation Method and system for processing backup data associated with application, querying metadata files describing files accessed by the application
US7016920B2 (en) * 2001-05-25 2006-03-21 International Business Machines Corporation Method for tracking relationships between specified file name and particular program used for subsequent access in a database
US6976036B2 (en) * 2001-11-06 2005-12-13 Science Applications International Corporation Database management system
US20030154197A1 (en) * 2002-02-13 2003-08-14 Permutta Technologies Flexible relational data storage method and apparatus
GB0207749D0 (en) * 2002-04-03 2002-05-15 Biowisdom Ltd Database searching method and system
US8543566B2 (en) 2003-09-23 2013-09-24 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US7779039B2 (en) * 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7529728B2 (en) 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US7313572B2 (en) * 2003-09-30 2007-12-25 Oracle International Corporation Attribute partitioning for user extensibility
US7693856B2 (en) * 2004-06-25 2010-04-06 Apple Inc. Methods and systems for managing data
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7693889B1 (en) 2005-12-28 2010-04-06 Emc Corporation Automated backup and recovery for content repository
US7574461B1 (en) * 2005-12-28 2009-08-11 Emc Corporation Dividing data for multi-thread backup
US20070156502A1 (en) * 2005-12-31 2007-07-05 Zagros Bigvand Tracking and managing contacts through a structured hierarchy
US7866542B2 (en) * 2006-06-08 2011-01-11 International Business Machines Corporation System and method for resolving identities that are indefinitely resolvable
US20080010239A1 (en) * 2006-07-10 2008-01-10 Sap Ag Systems and methods of managing product tracking data
US9112886B2 (en) * 2007-12-27 2015-08-18 Verizon Patent And Licensing Inc. Method and system for providing centralized data field encryption, and distributed storage and retrieval
US20090313270A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Semantic frame store
US8407205B2 (en) * 2008-09-11 2013-03-26 Salesforce.Com, Inc. Automating sharing data between users of a multi-tenant database service
US8706715B2 (en) 2009-10-05 2014-04-22 Salesforce.Com, Inc. Methods and systems for joining indexes for query optimization in a multi-tenant database
US10229157B2 (en) 2009-10-05 2019-03-12 Salesforce.Com, Inc. Implementing composite custom indices in a multi-tenant database
CN104541297B (zh) * 2012-07-02 2018-06-12 甲骨文国际公司 提供销售预测器spe的可扩展性的方法、系统和介质
TWI453692B (zh) * 2013-11-01 2014-09-21 Chih Cheng Lin 動力車輛之車上端資料庫管理系統
US9336196B2 (en) 2013-12-06 2016-05-10 Sap Se Methods, systems, and apparatus for optimization using statistical estimation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0798669A (ja) * 1993-08-05 1995-04-11 Hitachi Ltd 分散データベース管理システム
US5974407A (en) * 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6016497A (en) * 1997-12-24 2000-01-18 Microsoft Corporation Methods and system for storing and accessing embedded information in object-relational databases
US6112209A (en) * 1998-06-17 2000-08-29 Gusack; Mark David Associative database model for electronic-based informational assemblies
US6587856B1 (en) * 1998-12-07 2003-07-01 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US20020038308A1 (en) * 1999-05-27 2002-03-28 Michael Cappi System and method for creating a virtual data warehouse

Also Published As

Publication number Publication date
US6804680B2 (en) 2004-10-12
US20020111981A1 (en) 2002-08-15

Similar Documents

Publication Publication Date Title
DE10162495A1 (de) Erweiterbare Datenbank
DE69530595T2 (de) System und verfahren für die x.500-datenbanknorm
DE60310255T2 (de) Skalierbarer datenzugang in einem beliebig grossen dokument
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
DE69533786T2 (de) Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren
EP0855062B1 (de) Informationssystem und verfahren zur speicherung von daten in einem informationssystem
EP1088280B1 (de) Verfahren und system zur schnellen speicherresidenten verarbeitung von transaktionsdaten
EP1258812B1 (de) Virtuelle Datenbank heterogener Datenstrukturen
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE69730657T2 (de) Verfahren und System für gleichmässigen Zugriff auf mehrere Verzeichnisdienste
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE3743890A1 (de) Verfahren zum schnellen eroeffnen von plattendateien
DE60030872T2 (de) Verfahren und anordnung um atomische aktualisierungen durchzuführen durch verwendung eines logischen flaschspeichergerätes
DE102005028675A1 (de) Aktualisierungs- und Transformationssystem für strukturierte Daten
DE4428060A1 (de) Dokumentations-Schnittstellensystem in einem Informationsverwaltungssystem
DE19926116A1 (de) Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank
DE102007037646B4 (de) Computerspeichersystem und Verfahren zum Indizieren, Durchsuchen und zur Datenwiedergewinnung von Datenbanken
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE10040987B4 (de) Verfahren und Vorrichtung für übereinstimmende Aktualisierungen von redundanten Daten in relationalen Datenbanken
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE112019005881T5 (de) Kryptografische überprüfung von datenbanktransaktionen
DE69932147T2 (de) Kommunikationseinheit und Kommunikationsverfahren mit Profilverwaltung
EP1276056B1 (de) Verfahren zum Verwalten einer Datenbank
DE102013200030A1 (de) Hash-basiertes verwalten von speicher-ids
DE202014010948U1 (de) Nicht-kollaborative Filter in einem kollaborativen Dokument

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8130 Withdrawal