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 DatenbankenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational 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.
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) |
-
2002
- 2002-03-28 DE DE10214261A patent/DE10214261A1/de not_active Withdrawn
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 |