DE10214261A1 - Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken - Google Patents

Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken

Info

Publication number
DE10214261A1
DE10214261A1 DE10214261A DE10214261A DE10214261A1 DE 10214261 A1 DE10214261 A1 DE 10214261A1 DE 10214261 A DE10214261 A DE 10214261A DE 10214261 A DE10214261 A DE 10214261A DE 10214261 A1 DE10214261 A1 DE 10214261A1
Authority
DE
Germany
Prior art keywords
sub
data object
introspection
database
name
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
DE10214261A
Other languages
English (en)
Inventor
Sylvia Maczey
Rolf Merte
Jin Shen
Oliver Gramberg
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.)
ABB Research Ltd Switzerland
Original Assignee
ABB Research Ltd Switzerland
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 ABB Research Ltd Switzerland filed Critical ABB Research Ltd Switzerland
Priority to DE10214261A priority Critical patent/DE10214261A1/de
Publication of DE10214261A1 publication Critical patent/DE10214261A1/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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

Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten (1, 20, 33) in relationalen Datenbanken (2), wobei mittels wenigstens einer Datenverarbeitungseinrichtung (3) mit einer beschränkten Anzahl vorbestimmter funktionaler Einheiten (6) und wenigstens einer funktionalen Einheit (6) mit Mitteln (7) zur Introspektion, durch Introspektion der strukturierten Datenobjekte (1, 20, 33) und Verwertung der durch Introspektion erlangten Struktur- und Klasseninformationen (10), automatisiert individuelle Anweisungen und Anfragen (11) generiert, an die auf einem Datenträger (9) abgelegte relationale Datenbank (2) abgesetzt und ausgeführt werden und somit eine generische Ablage und Wiedergewinnung strukturierter Datenobjekte (1, 20, 33) erreicht wird.

Description

  • Die Erfindung betrifft ein Verfahren zur automatisierten Ablage und Wiedergewinnung von strukturierten Datenobjekten in elektronischen, relationalen Datenbanken. Außerdem wird eine Computerprogrammkomponente sowie ein System zur Durchführung des erfindungsgemäßen Verfahrens beansprucht.
  • Gebräuchlicherweise wird zur Ablage von strukturierten Datenobjekten in einer Datenbank für jede Klasse von Datenobjekten eine eigene Programmfunktion implementiert, die beschreibt, auf welche Weise ein Objekt dieser betreffenden Klasse in der Datenbank gespeichert wird. Die Implementierung wird hierbei manuell durchgeführt.
  • Für jede Klasse von Datenobjekten kann alternativ anhand einer Beschreibung dieser Klasse eine entsprechende Programmfunktion generiert werden. Die Programmfunktionsgenerierung erfolgt teilautomatisch, wenn die Beschreibung der Klasse von Hand erstellt werden muß und vollautomatisch, wenn sich die Klassenbeschreibung direkt aus dem Quellprogramm ergibt.
  • Nachteilig muß hierbei jedoch für jede Klasse ein entsprechender Programmcode vom jeweiligen Programmierer geschrieben oder automatisiert erzeugt werden, wobei im Falle der Erzeugung gegebenenfalls zusätzlich noch eine zugrunde zulegende Klassenbeschreibung erstellt werden muß. Zu einem späteren Zeitpunkt erforderlich werdende Klassenänderungen oder -modifikationen bedingen Änderungen bzw. Modifikationen sowohl der Beschreibung, soweit vorhanden, als auch des Programmcodes. Darüber hinaus erhöhen sich mit steigendem Umfang bzw. Länge des erstellten bzw. generierten Programmcodes auch die Übersetzungszeiten sowie die Größe bzw. Länge des übersetzten Programmes und damit auch dessen Speichergröße bzw. dessen Speicherplatzbedarf. Eine Erhöhung der Speichergröße des Programmes führt jedoch nachteilig zu einer Vergrößerung der Programmlade- und/oder Laufzeiten.
  • Der Erfindung liegt die Aufgabe zugrunde ein Ablegen und Wiedergewinnen von strukturierten Datenobjekten aller möglichen Datenobjektklassen einer relationalen Datenbank mit möglichst geringem Aufwand und unter Vermeidung vorgenannter Nachteile zu ermöglichen.
  • Diese Aufgabe wird durch ein Verfahren zum Ablegen und Aufrufen bzw. Wiedergewinnen von strukturierten Datenobjekten in einer relationalen Datenbank gelöst, welches die im Anspruch 1 angegebenen Merkmale aufweist. Vorteilhafte Ausgestaltungen des Verfahrens sowie eine entsprechende Computerprogrammkomponente sowie ein System zur Durchführung des erfindungsgemäßen Verfahrens sind in weiteren Ansprüchen und der nachfolgenden Beschreibung angegeben.
  • Das Verfahren erlaubt unter Verwendung einer Datenverarbeitungseinrichtung mit einer Anzeige- und Eingabevorrichtung sowie einer vorbestimmten, vorzugsweise jedoch möglichst geringen Anzahl funktionaler Einheiten, wobei wenigstens eine funktionale Einheit Mittel zur Introspektion von Datenobjekten aufweist, automatisiert ein generisches, d. h. für alle möglichen Datenobjektklassen einer Datenbank, Ablegen und Wiedergewinnen von Datenobjekten in einer relationalen Datenbank, ohne manuelle Anpassung bzw. Änderung der funktionalen Einheiten bei Änderung und/oder Erweiterung der Datenobjektklassen der Datenbank. Unter Introspektion ist hierbei die Möglichkeit und oder Fähigkeit zu verstehen Datenobjekte hinsichtlich ihrer internen bzw. inneren Struktur zu betrachten, zu untersuchen bzw. zu analysieren und/oder offenzulegen und das erlangte Wissen bzw. die erlangten Informationen über zugrundeliegende Datenobjektstrukturen zu verwerten und/oder zu nutzen.
  • Die Durchführung des erfindungsgemäßen Verfahrens und damit das Ablegen und Wiedergewinnen von strukturierten Datenobjekten in einer relationalen Datenbank erfolgt unter Verwendung eines Systems mit wenigstens einer Datenverarbeitungsvorrichtung mit einer Anzeige- und Eingabevorrichtung, mit wenigstens einer funktionalen Einheit mit Mitteln zur Introspektion von Datenobjekten, einer Anzeige- und Eingabevorrichtung sowie gegebenenfalls mit Netzwerk- und/oder Internetanbindung. Darüber hinaus ist wenigstens ein Datenspeicher mit relationaler Datenbank vorhanden, die mit der wenigstens einer Datenverarbeitungsvorrichtung zusammenwirkt. Die wenigstens eine funktionale Einheit ist hierbei in festverdrahteter Form, unter Verwendung analoger und/oder digitaler Bauelemente und Mikroprozessoren und/oder im Rahmen eines auf einem Datenträger bzw. -speicher gespeicherten Computerprogrammes mit entsprechenden Programmcodemitteln zur Ausführung auf mindestens einer Datenverarbeitungseinrichtung realisierbar.
  • Eine Computerprogrammkomponente zur Ausführung auf einer entsprechend eingerichteten Datenverarbeitungseinrichtung, die die Merkmale des erfindungsgemäßen Verfahrens aufweist, führt zu einer bevorzugten Ausführungsform des erfindungsgemäßen Systems. Eine Computerprogrammkomponente, insbesondere ein auf einem Datenträger gespeichertes Computerprogramm, das die Merkmale des erfindungsgemäßen Verfahrens aufweist, wird daher ausdrücklich in den Offenbarungsgehalt der vorliegenden Anmeldung einbezogen.
  • Herkömmliche Computerprogrammcodeübersetzungen resultieren aus Geschwindigkeits- und Speicherplatzgründen üblicherweise in einem Maschinenprogrammcode, der nachteilig jedoch nur noch sehr wenige Ursprungsinformationen aus dem Quellcode enthält, da im Rahmen der Übersetzung Datenobjekte zu Speicheradressen und Zugriffe auf Unterelemente eines Objekts zu Zugriffen auf Speicherzellen reduziert werden. Die Speicherzellen können hierbei in gewisser Entfernung von der Anfangsadresse des von dem Objekt belegten Speicherbereichs liegen. Vorteilhaft werden verfahrensgemäß Mittel zur Introspektion eingesetzt, die die Möglichkeit eröffnen eigene Datenobjekte zu betrachten, ihre interne Struktur zu untersuchen bzw. zu analysieren und/oder offenzulegen und das erlangte Wissen über die Datenobjektstrukturen zu verwerten und/oder zu nutzen. Möglichkeiten zur Introspektion auf der Basis von zur Laufzeit erhalten gebliebenen Informationen aus dem Quellprogramm oder -code bieten beispielsweise auch zeitgemäße Computerprogrammiersprachen, insbesondere Java.
  • Zur Ablage von strukturierten Datenobjekten in einer relationalen Datenbank wird mittels wenigstens einer funktionalen Einheit per Introspektion der Name der Klasse des jeweilig abzulegenden Datenobjektes bestimmt, aus dem Klassennamen der Name derjenigen Tabelle der Datenbank generiert, in der das Datenobjekt abgelegt werden soll, automatisiert sowohl die Identität des jeweiligen Datenobjektes als auch die Tabellenzeile, in welcher das Datenobjekt gespeichert werden soll, bestimmt und automatisiert überprüft, ob das betreffende Objekt bereits in der Datenbank vorhanden ist. Ist das gesuchte Datenobjekt nicht in der Datenbank vorhanden, so wird eine Anweisung zum Anlegen einer Tabellenzeile an die Datenbank abgesetzt und dort ausgeführt. Daraufhin wird verfahrensgemäß durch Introspektion des jeweilig abzulegenden, strukturierten Datenobjektes zunächst ein erstes Unterelement des Datenobjektes bestimmt und überprüft, ob das betreffende Unterelement des Datenobjektes öffentlich und nicht flüchtig ist. Ist das betreffende Unterelement nicht öffentlich und/oder flüchtig, so wird solange zyklisch per Introspektion ein nächstes Unterelement des Datenobjektes bestimmt und auf Öffentlichkeit und Flüchtigkeit überprüft, bis ein öffentliches und gleichzeitig nicht flüchtiges Unterelement gefunden ist und/oder alle Unterelemente des Datenobjektes bestimmt sind. Ist ein öffentliches und gleichzeitig nicht flüchtiges Unterelement gefunden, so wird mittels wenigstens einer funktionalen Einheit per Introspektion der Name des Unterelementes bestimmt und darauf basierend der Name derjenigen Tabellenspalte der Datenbank generiert, in der das Unterelement abgelegt werden soll. Dann wird mittels Introspektion der jeweilige Wert des Unterelementes ausgelesen und eine Anweisung zum Ablegen des ausgelesenen Wertes erzeugt, an die Datenbank abgesetzt und dort durchgeführt. Falls vorhanden, wird zyklisch ein nächstes Unterelement bestimmt und mit diesem entsprechend verfahren, bis alle weiteren öffentlichen und gleichzeitig nicht flüchtigen Unterelemente des jeweiligen Datenobjektes bestimmt und in der Datenbank abgelegt sind.
  • Zur Wiedergewinnung von strukturierten Datenobjekten in einer relationalen Datenbank wird mittels wenigstens einer funktionalen Einheit ein leeres Datenobjekt sowie ein zugehöriger Schlüsselwert bestimmt. Durch Introspektion wird die Objektklasse bestimmt, der das leere Datenobjekt angehört und die Klasse auf ihre jeweilige Struktur hin untersucht. Basierend auf den gewonnenen Strukturinformationen wird bestimmt, aus welcher Tabelle der Datenbank das Datenobjekt aufgerufen bzw. wiedergewonnen werden soll. So kann beispielsweise aus dem Klassennamen des Datenobjektes der Tabellenname generiert werden. Mittels wenigstens einer funktionalen Verarbeitungseinheit wird bestimmt, welche Unterelemente des Datenobjektes aus der Tabelle aufgerufen bzw. gewonnen werden können. Für jedes aufrufbare Unterelement wird bestimmt, aus welcher Tabellenspalte es aufzurufen ist. Anhand des zugehörigen Schlüsselwertes wird bestimmt, aus welcher Tabellenzeile das Datenobjekt aufzurufen ist. Basierend auf den gewonnenen Informationen, insbesondere dem Tabellennamen, dem Tabellenspaltennamen und dem Schlüssel der Tabellenzeile, wird mittels wenigstens einer funktionalen Verarbeitungseinheit eine Anfrage bzw. Anweisung generiert, an die Datenbank abgesetzt und dort durch- bzw. ausgeführt. Die aus der Datenbank ausgelesenen Werte werden in den zugehörigen Unterelementen des leeren Datenobjektes abgelegt.
  • Vorteilhaft kann bei der Wiedergewinnung von Datenobjekten statt der Übergabe eines leeren Datenobjektes auch die Objektklasse oder der Objektklassenname übergeben werden. Statt eines leeren Datenobjektes und eines separaten Schlüssels kann auch ein Datenobjekt übergeben werden, in dessen wenigstens einem Unterelement der Schlüssel auslesbar abgelegt ist.
  • Die weitere Darlegung des Erfindungsgegenstandes erfolgt anhand von einigen Figuren und Ausführungsbeispielen.
  • Weitere vorteilhafte Ausgestaltungen sind den Figurenbeschreibungen und den abhängigen Ansprüchen entnehmbar.
  • Es zeigen:
  • Fig. 1 Beispielhafter Aufbau eines Systems zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken mit Netzwerkanbindung
  • Fig. 2 Verfahrensablauf bei Ablage eines strukturierten Datenobjektes in einer relationalen Datenbank
  • Fig. 3 Verfahrensablauf bei Wiedergewinnung eines strukturierten Datenobjektes aus einer relationalen Datenbank
  • In Fig. 1 ist ein beispielhaftes System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten 1 in einer relationalen Datenbank 2 gezeigt, welches wenigstens eine Datenverarbeitungsvorrichtung 3 mit einer Anzeige- 4 und Eingabevorrichtung 5, mit wenigstens einer funktionalen Einheit 6 mit Mitteln zur Introspektion 7 von Datenobjekten 1, sowie gegebenenfalls mit Netzwerk- 8, insbesondere eine WAN- und/oder LAN- und/oder Internetanbindung, besitzt. Darüber hinaus ist wenigstens ein Datenspeicher 9 mit relationaler Datenbank 2 vorhanden, die mit der wenigstens einen Datenverarbeitungsvorrichtung 3 zusammenwirkt. Die wenigstens eine funktionale Einheit 7 der Datenverarbeitungseinrichtung 3 ist hierbei in festverdrahteter Form, unter Verwendung analoger und/oder digitaler Bauelemente und Mikroprozessoren und/oder im Rahmen eines auf einem mit der Datenverarbeitungsvorrichtung zusammenwirkenden Datenträgers bzw. -speichers 9 gespeicherten Computerprogrammes mit entsprechenden Programmcodemitteln zur Ausführung auf mindestens einer Datenverarbeitungseinrichtung 3 realisierbar.
  • Vorgenanntes System ist dafür eingerichtet, mittels der wenigstens einen funktionalen Einheit 6 durch Introspektion der strukturierten Datenobjekte 1 und Verwertung der durch Introspektion erlangten Struktur- und Klasseninformationen 10, automatisiert individuelle Anweisungen und Anfragen 11 zu generieren, an die relationale Datenbank 2 abzusetzen und auszuführen. Durch die strukturabhängige Generierung individueller Anfragen und Anweisungen an die Datenbank 2 wird eine generische Ablage und Wiedergewinnung strukturierter Datenobjekte 1 ermöglicht und durchgeführt. Eine generische Ablage und Wiedergewinnung bedeutet hierbei eine Ablage und Wiedergewinnung strukturierter Datenobjekte 1 aller möglichen Objektklassen einer relationalen Datenbank 2, wobei bei Erweiterung des Objektklassenbestandes der Datenbank vorteilhaft keinerlei manuelle Anpassung der eingesetzten funktionalen Einheit 6 erforderlich ist.
  • Zur Ablage von strukturierten Datenobjekten 20 in einer elektronischen Datenbank wird, wie in Fig. 2 gezeigt, in einem ersten Schritt 21 per Introspektion mittels wenigstens einer funktionalen Einheit der Name der Klasse des jeweilig abzulegenden Datenobjektes bestimmt. Die Realisierung der funktionalen Einheit zur Bestimmung des Klassennamen erfolgt beispielsweise mittels der Computerprogrammiersprache "Java" und der Anweisung "String className = object.getClass().getName();".
  • In einem zweiten Schritt 22 wird, wie in Fig. 2 gezeigt, aus dem Klassennamen der Name derjenigen Tabelle der Datenbank generiert, in der das Datenobjekt abgelegt werden soll. So kann beispielsweise der Name der Klasse des Datenobjektes 20 direkt als Name der Tabelle eingesetzt werden. In Java wird dies durch die Anweisung "String dbTableName = className;" realisiert.
  • In einem dritten Schritt 23 wird die Identität des jeweiligen Datenobjektes 20 bestimmt und entschieden, in welcher Zeile der Tabelle das Datenobjekt 20 zu speichern ist, wobei in der Tabelle wenigstens eine Spalte als Schlüsselspalte definiert ist und somit eindeutige Werte enthält. Als Schlüssel ist beispielsweise die Identität, wobei es sich hierbei um eine vom Laufzeitsystem vergebene, eindeutige Bezeichnung des Datenobjekts handelt, die Speicheradresse oder der Inhalt eines geeigneten Unterelementes des Datenobjekts verwendbar. So kann beispielsweise der Wert eines Unterelementes des Datenobjektes 20 mit Namen "ID" als Schlüssel für eine gleichnamige, als Schlüsselspalte definierte Tabellenspalte verwendet werden. Der Wert des jeweiligen Schlüssels wird per Introspektion oder - falls möglich - auf direktem Wege ausgelesen. Das Auslesen des Schlüsselwertes erfolgt in Java beispielsweise über die Anweisung "long dbKey = object.getID();".
  • Wie in Fig. 2 gezeigt, wird in einem vierten Schritt 24 überprüft, ob das betreffende Objekt 20 bereits in der Datenbank 2 (Fig. 1) vorhanden ist. Dazu wird eine Suchanfrage, mit der in der Schlüsselspalte nach dem entsprechenden Schlüsselwert gesucht wird, erzeugt, diese an die Datenbank 2 abgesetzt und dort durch- bzw. ausgeführt. Resultiert aus der Suchanfrage eine nicht-leere Ergebnismenge, so ist das betreffende Objekt 20 bereits in der Datenbank vorhanden. Beispielsweise kann aus dem Klassennamen "Kundenadresse", bestimmt und gespeichert in der Variablen "dbTableName", und dem Unterelement "ID" mit dem Wert "31948", gespeichert in der Variablen "dbKey", eine entsprechende SQL-Anfrage mit dem Wortlaut "SELECT * FROM Kundenadresse WHERE ID = 31948" erzeugt werden. Ist das gesuchte Datenobjekt nicht in der Datenbank vorhanden, das heißt eine leere Suchergebnismenge liegt vor, so wird in einem weiteren Schritt 24a eine Anweisung zum Anlegen einer Tabellenzeile an die Datenbank abgesetzt und dort ausgeführt. Aus dem Klassennamen "Kundenadresse" und Unterelement "ID" mit einem Wert "31948" kann beispielsweise die SQL-Anfrage "INSERT INTO Kundenadresse (ID) VALUES (31948)" erzeugt werden.
  • In einem fünften Schritt 25 wird per Introspektion ein erstes Unterelement des Datenobjektes 20 bestimmt. Dieses kann in der Programmiersprache Java beispielsweise mittels den Anweisungen "Field allFields = object.getFields(); Field oneField = all- Fields[0]" erreicht werden.
  • Ausgehend von dem im fünften Schritt 25 ermittelten ersten Unterelement wird in Fig. 2 in einem sechsten Schritt 26 mittels Introspektion überprüft, ob das betreffende Unterelement öffentlich ist, das heißt ob sein Wert auslesbar ist. Dies wird in Java beispielsweise durch die Anweisung "boolean isPublic = Modifiers.isPublic(oneField.getModifiers());" erreicht. Ist das Unterelement nicht öffentlich, so wird in einem weiteren Schritt 32 zunächst überprüft, ob weitere Unterelemente vorhanden sind, und falls ja, in Schritt 25 ein nächstes Unterelement bestimmt und mit diesem entsprechend dem sechsten Schritt 26 verfahren. Die Schritte fünf 25 und sechs 26 werden zyklisch solange durchlaufen, bis ein öffentliches Unterelement gefunden ist oder alle vorhandenen Unterelemente bestimmt wurden.
  • Ist ein öffentliches Unterelement gefunden worden, so wird in einem siebten Schritt 27 mittels Introspektion überprüft, ob das ermittelte öffentliche Unterelement auch flüchtig ist, das heißt, ob sein Wert nicht speicherungswürdig ist. In der Programmiersprache Java erfolgt dies beispielsweise durch die Anweisung "boolean isVolatile = Modifiers.isVolatile(oneField.getModifiers());". Ist das ermittelte öffentliche Unterelement auch flüchtig, so wird in einem weiteren Schritt 32 zunächst überprüft, ob weitere Unterelemente vorhanden sind, und falls ja, in Schritt 25 ein nächstes Unterelement bestimmt und auf Öffentlichkeit und gegebenenfalls Flüchtigkeit geprüft. Die fünften 25, sechsten 26 und siebten 27 Schritte werden zyklisch solange durchlaufen, bis ein öffentliches, nicht flüchtiges Unterelement gefunden ist und/oder alle Unterelemente bestimmt sind.
  • Mittels Introspektion wird, wie in Fig. 2 gezeigt, in einem achten Schritt 28 der Name des jeweiligen Unterelementes bestimmt. Dies erfolgt in Java beispielsweise durch die Anweisung "String fieldName = field.getName();".
  • In einem neunten Schritt 29 wird anhand des Namens des Unterelementes der Name derjenigen Tabellenspalte der Datenbank generiert, in der das Unterelement abgelegt werden soll. So kann vorteilhaft der Name des Unterelementes direkt als Name der Tabellenspalte verwendet werden. In der Programmiersprache Java ist dies beispielsweise mittels der Anweisung "String dbColumnName = fieldName;" durchführbar.
  • In einem zehnten Schritt 30 wird nun per Introspektion der Wert des Unterelementes ausgelesen. Hierzu eignet sich in Java beispielsweise die Anweisung "String fieldValue = (String) oneField.get(object);".
  • Eine Anweisung 11 (Fig. 1) zum Ablegen des ausgelesenen Wertes wird in einem elften Schritt 31 erzeugt, an die Datenbank 2 (Fig. 1) abgesetzt und dort durchgeführt. Beispielsweise könnte aus dem Namen eines Unterelementes "PLZ", und seinem zugehörigen Wert "22043", eine entsprechende Anfrage in SQL (Structured Query Language) lautend "UPDATE Kundenadresse SET PLZ=22043 WHERE ID=31948" erzeugt werden, wobei auch hier beispielhaft der Klassenname "Kundenadresse" als Tabellenname und das Unterelement "ID" mit dem Wert "31948" als Schlüssel verwendet werden.
  • In einem zwölften Schritt 32 wird überprüft, ob weitere, nicht-bestimmte Unterelemente vorhanden sind, und bei Vorliegen nicht-bestimmter Unterelemente die fünften bis zwölften Schritte 25 bis 32 solange zyklisch durchlaufen, bis alle Unterelemente des Datenobjektes 20 bestimmt und gegebenenfalls abgelegt sind.
  • Vorteilhaft können, statt für jedes Unterelement eine eigene Anfrage zu stellen, alle öffentlichen, nicht flüchtigen Unterelemente mittels einer gemeinsamen Anfrage bzw. Anweisung 11 (Fig. 1) in der Datenbank 2 (Fig. 1) abgelegt werden. Beispielsweise mittels der SQL-Abfrage "UPDATE Kundenadresse SET PLZ=22043, Ort='Hamburg' WHERE ID=31948".
  • Ist ein Datenobjekt 20 noch nicht in der Datenbank existent und muß demgemäß neu angelegt werden, so kann vorteilhaft, statt einer sequentiellen Trennung zwischen dem Anlegen einer Zeile und dem nachfolgenden Ablegen der in den Unterelementen des Datenobjektes 20 enthaltenen Werte, eine gemeinsame Anfrage für beide Prozesse gestellt werden. Diese Anfrage könnte in SQL beispielhaft wie folgt lauten: "INSERT INTO Kundenadresse (ID, PLZ, Ort) VALUES 31948, 22043, 'Hamburg'".
  • Ist die Struktur eines Datenobjektes 20 geändert worden, kann der Fall eintreten, daß Unterelemente des Datenobjektes 20 nicht mehr zu Tabellenspalten zuordenbar sind. Bei gewissen einfachen Änderungen - etwa reinem Hinzufügungen von Unterelementen - ist die Struktur der Tabelle automatisiert an die Struktur des Datenobjektes 20 anpaßbar. Beispielhaft wird für ein neu hinzugekommenes Unterelement "Faxnummer" der SQL-Befehl "ALTER TABLE Kundenadresse ADD COLUMN Faxnummer CHAR(30)" abgesetzt.
  • Ist ein Datenobjekt 20 keiner Datenbanktabelle zuordenbar, wird vorteilhafter Weise für diese Klasse von Datenobjekten 20 automatisiert eine neue Tabelle angelegt. Beispielsweise wird auf diese Weise aus dem Klassennamen "Kundenadresse" der SQL- Befehl "CREATE TABLE Kundenadresse" erzeugt. Die Spalten dieser neuen Tabelle können nun fakultativ jede einzeln oder alle auf einmal hinzugefügt oder bei der Erzeugung der Tabelle mit spezifiziert werden.
  • In entsprechender Weise wird bei der Wiedergewinnung von Datenobjekten 1 (Fig. 1) in bzw. aus einer elektronischen Datenbank 2 (Fig. 1) verfahren. Wie in Fig. 3 gezeigt, wird zur Wiedergewinnung eines gesuchten Datenobjektes 33 in einer relationalen Datenbank 2 (Fig. 1) in einem ersten Schritt 34 ein dem gesuchten Datenobjekt 33 entsprechendes leeres Datenobjekt sowie ein zugehöriger Schlüsselwert bestimmt. In einem zweiten Schritt 36 wird dann mittels Introspektion die dem leeren Datenobjekt zugehörige Objektklasse ermittelt und die jeweilige Objektklasse bezüglich ihrer Struktur untersucht. In einem dritten Schritt 38 wird anhand der aus der Introspektion zugänglichen Strukturinformationen des Datenobjektes 33 ermittelt, aus welcher Tabelle der Datenbank 2 (Fig. 1) das Datenobjekt 33 aufgerufen oder wiedergewonnen werden kann. Mittels Introspektion wird daraufhin in einem vierten Schritt 40 untersucht und bestimmt, welche Unterelemente des leeren Datenobjektes 33 aus der zuvor bestimmten Tabelle aufgerufen bzw. gewonnen werden können, und für jedes aufrufbare Unterelement in einem fünften Schritt 42 diejenige Tabellenspalte bestimmt, aus der es aufgerufen werden kann. Anhand des zugehörigen Schlüsselwertes wird in einem sechsten Schritt 44 diejenige Tabellenzeile der jeweiligen Tabelle bestimmt, aus der das Datenobjekt 33 aufgerufen werden kann. In einem siebten Schritt 46 wird dann basierend auf den bisherig ermittelten Informationen, insbesondere dem Tabellennamen, dem Namen der Tabellenspalte und dem Schlüssel der Tabellenzeile, automatisiert eine entsprechende Anfrage 11 (Fig. 1) zum Auslesen des jeweiligen Unterelementes generiert, an die Datenbank 2 abgesetzt und dort ausgeführt. Die aus der Datenbank 2 (Fig. 1) ausgelesenen Werte werden in einem achten Schritt 48 mittels Introspektion in den zugehörigen Unterelementen des leeren Datenobjektes abgelegt und somit das gesuchte Datenobjekt 33 wiedergewonnen.

Claims (29)

1. Verfahren zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten (1, 20, 33) in relationalen Datenbanken, wobei mittels einer Datenverarbeitungseinrichtung (3) mit einer beschränkten Anzahl vorbestimmter funktionaler Einheiten (6) und wenigstens einer funktionalen Einheit (6) mit Mitteln zur Introspektion (7), durch Introspektion der strukturierten Datenobjekte (1, 20, 33) und Verwertung der durch Introspektion erlangten Struktur- und Klasseninformationen (10), automatisiert individuelle Anweisungen und Anfragen (11) generiert, an die relationale Datenbank (2) abgesetzt und dort ausgeführt werden und eine generische Ablage und Wiedergewinnung strukturierter Datenobjekte (1, 20, 33) erreicht wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (1, 20) in einer relationalen Datenbank (2)
- in einem ersten Schritt (21) per Introspektion der Name der Klasse des jeweilig abzulegenden Datenobjektes (20) bestimmt wird,
- in einem zweiten Schritt (22) aus dem Klassennamen der Name derjenigen Tabelle der Datenbank (2) generiert wird, in der das Datenobjekt (20) abgelegt werden soll,
- in einem dritten Schritt (23) automatisiert sowohl die Identität des jeweiligen Datenobjektes (20) als auch die Tabellenzeile, in welcher das Datenobjekt (20) gespeichert werden soll, bestimmt wird,
- in einem vierten Schritt (24) automatisiert überprüft wird, ob das betreffende Objekt (20) bereits in der Datenbank (2) vorhanden ist,
- bei Nichtvorhandensein des Objektes (20) in einem Zwischenschritt (24a) eine Anweisung zum Anlegen einer Tabellenzeile an die Datenbank (2) abgesetzt und dort ausgeführt wird,
- in einem fünften Schritt (25) per Introspektion ein erstes bzw. nächstes Unterelement des Datenobjektes (20) bestimmt wird,
- in einem sechsten Schritt (26) mittels Introspektion überprüft wird, ob das betreffende Unterelement des Datenobjektes (20) öffentlich ist, das heißt ob sein Wert auslesbar ist,
- bei Vorliegen eines öffentlichen Unterelementes, in einem siebten Schritt (27) mittels Introspektion überprüft wird, ob das öffentliche Unterelement auch flüchtig ist, das heißt ob sein Wert nicht speicherungswürdig ist,
- bei Vorliegen eines öffentlichen und gleichzeitig nicht flüchtigen Unterelementes per Introspektion in einem achten Schritt (28) der Name des jeweiligen Unterelementes bestimmt wird,
- in einem neunten Schritt (29) anhand des Namens des Unterelementes der Name derjenigen Tabellenspalte der Datenbank (2) generiert wird, in der das Unterelement abgelegt werden soll,
- in einem zehnten Schritt (30) mittels Introspektion der Wert des jeweiligen Unterelementes ausgelesen wird und
- in einem elften Schritt (31) eine Anweisung zum Ablegen des ausgelesenen Wertes erzeugt, an die Datenbank (2) abgesetzt und dort durch- bzw. ausgeführt wird,
- in einem zwölften Schritt (32) überprüft wird, ob weitere nicht-bestimmte Unterelemente vorhanden sind und
- bei Vorliegen nicht-bestimmter Unterelemente die fünften bis zwölften Schritte (25 bis 32) zyklisch solange durchlaufen werden, bis alle Unterelemente des Datenobjektes bestimmt und gegebenenfalls abgelegt sind.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der fünfte (25) und sechste (26) Schritt solange zyklisch durchlaufen werden, bis ein öffentliches Unterelement gefunden ist oder alle Unterelemente des Datenobjektes bestimmt wurden.
4. Verfahren nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, daß bei Vorliegen eines flüchtigen Unterelementes zyklisch jeweils ein nächstes öffentliches Unterelement bestimmt und auf Flüchtigkeit überprüft wird, bis entweder ein öffentliches und gleichzeitig nicht flüchtiges Unterelement gefunden ist oder aber alle Unterelemente des Datenobjektes (20) bestimmt sind.
5. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (20) in einer relationalen Datenbank (2) der Name der Klasse des jeweiligen Datenobjektes (20) direkt als Name derjenigen Tabelle verwendet wird, in der das Datenobjekt (20) abgelegt werden soll.
6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (20) in einer relationalen Datenbank (2) alle Unterelemente mittels einer gemeinsamen Anfrage bzw. Anweisung in der Datenbank (2) abgelegt werden.
7. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (20) in einer relationalen Datenbank (2) bei Neuanlage eines Datenbankobjektes statt einer sequentiellen Trennung zwischen dem Anlegen einer Zeile und dem Ablegen der in den Unterelementen des Datenobjektes enthaltenen Werte, eine gemeinsame Anfrage und/oder Anweisung für beide Prozesse generiert und gestellt wird.
8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (20) in einer relationalen Datenbank (2) bei Nicht-Zuordenbarkeit von Unterelementen des Datenobjektes (20) zu Tabellenspalten, insbesondere reines Hinzufügen von Unterelementen, aufgrund von Strukturänderungen des Datenobjektes (20) die Struktur der Tabelle automatisiert an die Struktur des Datenobjektes (20) angepaßt wird.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zur Wiedergewinnung von strukturierten Datenobjekten (33) in einer relationalen Datenbank
- in einem ersten Schritt (34) ein leeres Datenobjekt sowie ein zugehöriger Schlüsselwert bestimmt werden,
- in einem zweiten Schritt (36) durch Introspektion die jeweilige Objektklasse, der das leere Datenobjekt angehört, bestimmt und die Klasse auf ihre jeweilige Struktur hin untersucht wird,
- in einem dritten Schritt (38), anhand der durch Introspektion ermittelten Strukturinformationen, bestimmt wird, aus welcher Tabelle der Datenbank (2) das Datenobjekt (33) aufzurufen oder wiederzugewinnen ist,
- in einem vierten Schritt (40) mittels Introspektion bestimmt wird, welche Unterelemente des Datenobjektes (33) aus der vorherig bestimmten Tabelle aufrufbar oder gewinnbar sind,
- für jedes aufrufbare Unterelement in einem fünften Schritt (42) bestimmt wird, aus welcher Tabellenspalte es aufzurufen ist,
- anhand des zugehörigen Schlüsselwertes in einem sechsten Schritt (44) bestimmt wird, aus welcher Tabellenzeile das Datenobjekt (33) aufzurufen ist,
- in einem siebten Schritt (46), basierend auf den ermittelten Informationen, insbesondere dem Tabellennamen, dem Tabellenspaltennamen und dem Schlüssel der Tabellenzeile, eine Anfrage zum Auslesen generiert, an die Datenbank abgesetzt und dort ausgeführt wird und
- die aus der Datenbank ausgelesenen Werte in einem achten Schritt (48) mittels Introspektion in den zugehörigen Unterelementen des leeren Datenobjektes abgelegt werden und somit das gesuchte Datenobjekt (33) wiedergewonnen wird.
10. Verfahren nach einem der Ansprüche 1 oder 9, dadurch gekennzeichnet, daß zur Wiedergewinnung von strukturierten Datenobjekten (1, 33) in einer relationalen Datenbank (2) aus dem Klassennamen des gesuchten Datenobjektes (33) der Tabellenname generiert wird.
11. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, daß wenigstens eine Tabellenspalte der relationalen Datenbank (2) als Schlüsselspalte definiert ist und eindeutige Werte enthält.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß als Schlüssel fakultativ die Identität, als eine vom Laufzeitsystem vergebene eindeutige Bezeichnung des Datenobjekts (1, 20, 33), oder die Speicheradresse oder der Inhalt eines geeigneten Unterelementes des Datenobjektes (1, 20, 33) verwendet wird.
13. Verfahren nach einem der Ansprüche 11 oder 12, dadurch gekennzeichnet, daß der Wert des jeweiligen Schlüssels per Introspektion ausgelesen wird.
14. Programmkomponente zur Ausführung auf einer Datenverarbeitungseinrichtung (3) mit Programmcode-Mitteln, um alle Schritte gemäß einem der Ansprüche 1 bis 4 oder 9 durchzuführen, wenn die Programmkomponente auf einer Datenverarbeitungseinrichtung (3) ausgeführt wird.
15. Programmkomponente zur Ausführung auf einer Datenverarbeitungseinrichtung (3) mit Programmcode-Mitteln gemäß Anspruch 14, die auf einem von einer Datenverarbeitungseinrichtung (3) lesbaren Datenträger oder -speicher (9) gespeichert ist.
16. System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten (1, 20, 33) in relationalen Datenbanken (2), das eine Datenverarbeitungseinrichtung (3) mit einer beschränkten Anzahl vorbestimmter funktionaler Einheiten (6) und wenigstens einer funktionalen Einheit (6) mit Mitteln (7) zur Introspektion aufweist und dafür eingerichtet ist, durch Introspektion der strukturierten Datenobjekte (1, 20, 33) und Verwertung der durch Introspektion erlangten Struktur- und Klasseninformationen (10), automatisiert individuelle Anweisungen und Anfragen (11) zu generieren, an die relationale Datenbank (2) abzusetzen und dort auszuführen und eine generische Ablage und Wiedergewinnung strukturierter Datenobjekte (1, 20, 33) zu erreichen.
17. System nach Anspruch 16, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (1, 20) in einer relationalen (2) Datenbank wenigstens eine funktionale Einheit (6) vorhanden ist, die Mittel (7) aufweist um
- in einem ersten Schritt (21) per Introspektion den Namen der Klasse des jeweilig abzulegenden Datenobjektes (20) zu bestimmen,
- in einem zweiten Schritt (22) aus dem Klassennamen den Namen derjenigen Tabelle der Datenbank (2) zu generieren, in der das Datenobjekt (20) abgelegt werden soll,
- in einem dritten Schritt (23) automatisiert sowohl die Identität des jeweiligen Datenobjektes (20) als auch die Tabellenzeile, in welcher das Datenobjekt (20) gespeichert werden soll, zu bestimmen,
- in einem vierten Schritt (24) automatisiert zu überprüfen, ob das betreffende Objekt (20) bereits in der Datenbank (2) vorhanden ist,
- bei Nichtvorhandensein des Objektes (20) in einem Zwischenschritt (24a) eine Anweisung zum Anlegen einer Tabellenzeile an die Datenbank abzusetzen und dort auszuführen,
- in einem fünften Schritt (25) per Introspektion ein erstes bzw. nächstes Unterelement des Datenobjektes (20) zu bestimmen,
- in einem sechsten Schritt (26) mittels Introspektion zu überprüfen, ob das betreffende Unterelement des Datenobjektes (20) öffentlich ist, das heißt ob sein Wert auslesbar ist,
- bei Vorliegen eines öffentlichen Unterelementes in einem siebten Schritt (27) mittels Introspektion zu überprüfen, ob das öffentliche Unterelement auch flüchtig ist, das heißt ob sein Wert nicht speicherungswürdig ist,
- bei Vorliegen eines öffentlichen und gleichzeitig nicht flüchtigen Unterelementes per Introspektion in einem achten Schritt (28) den Namen des jeweiligen Unterelementes zu bestimmen,
- in einem neunten Schritt (29) anhand des Namens des Unterelementes den Namen derjenigen Tabellenspalte der Datenbank (2) zu generieren, in der das Unterelement abgelegt werden soll,
- in einem zehnten Schritt (30) mittels Introspektion den Wert des jeweiligen Unterelementes auszulesen und
- in einem elften Schritt (31) eine Anweisung zum Ablegen des ausgelesenen Wertes zu erzeugen, an die Datenbank abzusetzen und dort durch- bzw. auszuführen,
- in einem zwölften Schritt (32) überprüft wird, ob weitere nicht-bestimmte Unterelemente vorhanden sind und
- bei Vorliegen nicht-bestimmter Unterelemente die fünften bis zwölften Schritte (25 bis 32) zyklisch solange durchlaufen werden, bis alle Unterelemente des Datenobjektes bestimmt und gegebenenfalls abgelegt sind.
18. System nach Anspruch 17, dadurch gekennzeichnet, daß wenigstens eine funktionale Einheit (6) mit Mitteln (7) zur Introspektion vorhanden ist, die dafür eingerichtet ist, den fünften (25) und sechsten (26) Schritt solange zyklisch zu durchlaufen, bis ein öffentliches Unterelement gefunden ist und/oder alle Unterelemente des Datenobjektes (20) bestimmt sind.
19. System nach einem der Ansprüche 17 oder 18, dadurch gekennzeichnet, daß wenigstens eine funktionale Einheit (6) mit Mitteln (7) zur Introspektion vorhanden ist, die dafür eingerichtet ist bei Vorliegen eines flüchtigen Unterelementes zyklisch jeweils ein nächstes öffentliches Unterelement zu bestimmen und auf Flüchtigkeit zu überprüfen, bis entweder ein öffentliches und gleichzeitig nicht flüchtiges Unterelement gefunden ist oder aber alle Unterelemente des Datenobjektes (20) bestimmt sind.
20. System nach einem der Ansprüche 16 bis 19, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (1, 20, 33) in einer relationalen Datenbank (2) wenigstens eine funktionale Einheit (6) vorhanden ist, die dafür eingerichtet ist, den Namen der Klasse des jeweilig abzulegenden Datenobjektes (20) direkt als Namen derjenigen Tabelle zu verwenden, in der das Datenobjekt (20) abgelegt werden soll.
21. System nach einem der Ansprüche 16 bis 20, dadurch gekennzeichnet, daß wenigstens eine funktionale Einheit (6) vorhanden ist, die dafür eingerichtet ist, zur Ablage von strukturierten Datenobjekten (1, 20) in einer relationalen Datenbank (2) alle Unterelemente mittels einer gemeinsamen Anfrage bzw. Anweisung in der Datenbank (2) abzulegen.
22. System nach einem der Ansprüche 16 bis 21, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (1, 20) in einer relationalen Datenbank (2) wenigstens eine funktionale Einheit (6) vorhanden ist, die dafür eingerichtet ist, bei Neuanlage eines Datenbankobjektes statt einer sequentiellen Trennung zwischen dem Anlegen einer Zeile und dem Ablegen der in den Unterelementen des Datenobjektes (20) enthaltenen Werte eine gemeinsame Anfrage und/oder Anweisung für beide Prozesse zu generieren und zu stellen.
23. System nach einem der Ansprüche 16 bis 22, dadurch gekennzeichnet, daß zur Ablage von strukturierten Datenobjekten (1, 20) in einer relationalen Datenbank (2) wenigstens eine funktionale Einheit (6) vorhanden ist, die dafür eingerichtet, ist bei Nicht- Zuordenbarkeit von Unterelementen des Datenobjektes (20) zu Tabellenspalten, insbesondere bei reinem Hinzufügen von Unterelementen, die Struktur der Tabelle automatisiert an die Struktur des Datenobjektes (20) anzupassen.
24. System nach Anspruch 16, dadurch gekennzeichnet, daß zur Wiedergewinnung von strukturierten Datenobjekten (1, 33) in einer relationalen Datenbank (2) wenigstens eine funktionale Einheit (6) vorhanden ist, die Mittel (7) aufweist, um
- in einem ersten Schritt (34) ein leeres Datenobjekt sowie einen zugehörigen Schlüsselwert zu bestimmen,
- in einem zweiten Schritt (36) durch Introspektion die jeweilige Objektklasse, der das leere Datenobjekt angehört, zu bestimmen und die Klasse auf ihre jeweilige Struktur hin zu untersuchen,
- in einem dritten Schritt (38), anhand der durch Introspektion ermittelten Strukturinformationen (10), zu bestimmen, aus welcher Tabelle der Datenbank (2) das Datenobjekt (33) aufzurufen oder wiederzugewinnen ist,
- in einem vierten Schritt (40) mittels Introspektion zu bestimmen, welche Unterelemente des Datenobjektes (33) aus der vorherig bestimmten Tabelle aufrufbar oder gewinnbar sind,
- für jedes aufrufbare Unterelement in einem fünften Schritt (42) zu bestimmen, aus welcher Tabellenspalte es aufzurufen ist,
- anhand des zugehörigen Schlüsselwertes in einem sechsten Schritt (44) zu bestimmen, aus welcher Tabellenzeile das Datenobjekt (33) aufzurufen ist,
- in einem siebten Schritt (46), basierend auf den ermittelten Informationen (10), insbesondere dem Tabellennamen, dem Tabellenspaltennamen und dem Schlüssel der Tabellenzeile, eine Anfrage (11) zu generieren, an die Datenbank (2) abzusetzen und dort auszuführen und
- die aus der Datenbank (2) ausgelesenen Werte in einem achten Schritt (48) mittels Introspektion in den zugehörigen Unterelementen des leeren Datenobjektes abzulegen.
25. System nach einem der Ansprüche 16 oder 24, dadurch gekennzeichnet, daß zur Wiedergewinnung von strukturierten Datenobjekten (1, 33) in einer relationalen Datenbank (2) wenigstens eine funktionale Einheit (6) vorhanden ist, die Mittel (7) aufweist, um aus dem Klassennamen des Datenobjektes (33) den Tabellennamen zu generieren.
26. System nach einem der Ansprüche 16 bis 25, dadurch gekennzeichnet, daß wenigstens eine Tabellenspalte der relationalen Datenbank (2) als Schlüsselspalte definiert ist und eindeutige Werte enthält.
27. System nach Anspruch 26, dadurch gekennzeichnet, daß als Schlüssel fakultativ die Identität, als eine vom Laufzeitsystem vergebene eindeutige Bezeichnung des Datenobjekts (1, 20, 33), oder die Speicheradresse oder der Inhalt eines geeigneten Unterelementes eines Datenobjektes (1, 20, 33) eingesetzt ist.
28. System nach einem der Ansprüche 26 oder 27, dadurch gekennzeichnet, daß wenigstens eine funktionale Einheit (6) vorhanden ist, die Mittel (7) aufweist, um den Wert des jeweiligen Schlüssels per Introspektion auszulesen.
DE10214261A 2002-03-28 2002-03-28 Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken Withdrawn DE10214261A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10214261A DE10214261A1 (de) 2002-03-28 2002-03-28 Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10214261A DE10214261A1 (de) 2002-03-28 2002-03-28 Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken

Publications (1)

Publication Number Publication Date
DE10214261A1 true DE10214261A1 (de) 2003-10-16

Family

ID=28050988

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10214261A Withdrawn DE10214261A1 (de) 2002-03-28 2002-03-28 Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken

Country Status (1)

Country Link
DE (1) DE10214261A1 (de)

Similar Documents

Publication Publication Date Title
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69615231T2 (de) Relationales Datenbanksystem und Verfahren mit grosser Kompilierverfügbarkeit von SQL-Programmen
DE69130793T2 (de) Datenbank Suchprozessor
DE69031319T2 (de) Übersetzungssystem von mehreren Sprachen
DE69229056T2 (de) Offene verzeichnis-datenbankansichten
EP0502857B1 (de) Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
DE2423194C2 (de) Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage
DE69615230T2 (de) Relationales Datenbanksystem und Verfahren mit grosser Verfügbarkeit der Daten bei der Umstrukturierung von Tabellendaten
DE69227948T2 (de) Verfahren und Gerät um ein dynamisches Lexikon in ein Textinformationsauffindungssystem zu integrieren
EP0910829B1 (de) Datenbanksystem
DE102007037646B4 (de) Computerspeichersystem und Verfahren zum Indizieren, Durchsuchen und zur Datenwiedergewinnung von Datenbanken
DE102013224331A1 (de) System und Verfahren zur Bereitstellung prädiktiver Anfragen
DE69909360T2 (de) Verfahren und System um Dokumente über eine elektronische Datei wiederaufzufinden
DE3518818A1 (de) Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen
EP1330740B1 (de) Verfahren zum zugriff auf eine speichereinheit bei der suche nach teilzeichenfolgen sowie zugehörige speichereinheit
DE10214261A1 (de) Verfahren, Computerprogrammkomponente und System zum Ablegen und Wiedergewinnen von strukturierten Datenobjekten in relationalen Datenbanken
DE102016114265A1 (de) Verfahren zum zumindest teilweise maschinellen Transferieren einer in einer Quellsprache abgefassten Wortfolge in eine Wortfolge einer Zielsprache
DE69903572T2 (de) Verfahren und programmprodukt zur dynamischen einbettung von zusatzaufgabeprozessen mit kernaufgabeprozessen
EP1094405A2 (de) Verfahren zum Erzeugen einer dynamischen Auswahlmaske für den Abruf von Daten aus einer Datenbank
DE10261839A1 (de) Verfahren und Einrichtung zur Durchführung einer elektronischen Recherche
EP3622414A1 (de) Datenbank mit feldbezogenen zeitstempeln
DE102018104437A1 (de) Computerimplementiertes Verfahren zum Abfragen von Daten
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE112014002696T5 (de) Verfahren und System für effizientes Sortieren in einer relationalen Datenbank
DE10215852B4 (de) Verfahren zum Vergleich zweier Datenbankabfragen aufweisenden Quelldateien und Vergleichsvorrichtung

Legal Events

Date Code Title Description
OR8 Request for search as to paragraph 43 lit. 1 sentence 1 patent law
8105 Search report available
8139 Disposal/non-payment of the annual fee