[go: up one dir, main page]

DE69030551T2 - Prozess und Gerät zur Handhabung zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem - Google Patents

Prozess und Gerät zur Handhabung zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem

Info

Publication number
DE69030551T2
DE69030551T2 DE69030551T DE69030551T DE69030551T2 DE 69030551 T2 DE69030551 T2 DE 69030551T2 DE 69030551 T DE69030551 T DE 69030551T DE 69030551 T DE69030551 T DE 69030551T DE 69030551 T2 DE69030551 T2 DE 69030551T2
Authority
DE
Germany
Prior art keywords
query
data
persistent
stream class
list
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.)
Expired - Lifetime
Application number
DE69030551T
Other languages
English (en)
Other versions
DE69030551D1 (de
Inventor
Robert Low Abraham
Michael P Priven
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69030551D1 publication Critical patent/DE69030551D1/de
Application granted granted Critical
Publication of DE69030551T2 publication Critical patent/DE69030551T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

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)
  • Devices For Executing Special Programs (AREA)

Description

  • Die vorliegende Erfindung betrifft ein objekt-orientiertes Datenbankverwaltungssystem, und insbesondere einen Prozeß und ein Gerät zum Behandeln von zeitaufwendigen und wiederverwendbaren Abfragen in einem objektorientierten Datenbankverwaltungssystem.
  • Objektorientierte Programmiersysteme und -prozesse waren schon immer Gegenstand eingehender Untersuchungen und Interesse auf dem Stand der Technik der Datenverarbeitungsumgebungen. Beim objekt-orientierten Programmieren handelt es sich um eine Rechnerprogrammpaketierungstechnik, die nutzungsinvariante und mit Leichtigkeit erweiterbare Programme vorsieht. Im Gegensatz zu bekannten funktionellen Programmierungstechniken, die sich nur schwer an neue funktionelle Forderungen und neue Datentypen anpassen lassen, sind objektorientierte Programme nutzungsinvariant und erweiterbar, wenn neue Forderungen auftauchen. Mit der immer stärker werdenden Komplexität rechnergestützter Systeme gewinnt das objektorientierte Programmieren immer stärkere Bedeutung und muß dementsprechend eingehender untersucht werden.
  • In einem objektorientierten Programmiersystem liegt das Hauptgewicht auf den Daten und nicht auf den Funktionen. Objektorientierte Programmiersysteme setzen sich zusammen aus einer großen Anzahl "Objekte". Ein Objekt ist eine Datenstruktur und ein Satz Operationen oder Funktionen, die auf diese Datenstruktur Zugriff nehmen können. Die Datenstruktur kann dargestellt werden als ein "Datenübertragungsblock". Der Datenübertragungsblock weist viele "Schlitze" auf, die jeweils ein "Attribut" der Daten enthalten. Das Attribut kann ein elementarer Ausdruck (z.B. eine Ganzzahl oder eine Zeichenkette) oder eine Objektreferenz sein, die ein Zeiger auf einen anderen Objektfall bzw. -fälle (in nachstehender Definition) ist. Jede Operation (Funktion), die auf die Datenstruktur zugreifen kann, heißt "Methode".
  • Fig. 1 zeigt eine schematische Darstellung eines Objekts, in dem ein Datenübertragungsblock in seine Methoden eingekapselt ist. Fig. 2 zeigt ein Beispiel für ein Objekt, in dem sich die Datenstruktur auf Angestelltendaten bezieht und eine Anzahl Methoden diese Datenstruktur umgibt. Eine Methode ruft z.B. das Alter der Angestellten ab. Jedes definierte Objekt wird üblicherweise dargestellt mit einer Anzahl "Fälle". Jeder Fall enthält die besondere Datenstruktur für ein bestimmtes Beispiel des Objekts. Z.B. ist ein Objekt für eine bestimmte Angestellte namens Joyce Smith ein Fall des Objekts "Angestellte".
  • Objektorientierte Programmiersysteme sehen zwei Primärmerkmale vor, die die Entwicklung von flexiblen und nutzungsinvarianten Programmen zulassen. Diese Merkmale werden als "Einkapselung" und "Vererbung" bezeichnet. Wie man aus Fig. 1 erkennt, wird der Datenblock von seinen Methoden (Funktionen) eingekapselt. Um jedes Datenstück ist eine Code-Wand errichtet. Der Zugriff auf den Datenblock erfolgt nur über die umgebenden Methoden. Auf diese Weise ist die Datenunabhängigkeit gewährleistet, weil auf die Datenstruktur eines Objekts nur über seine Methoden zugegriffen werden kann. Nur die zugeordneten Methoden kennen die interne Datenstruktur. Das stellt die Datenintegrität sicher.
  • Die Eigenschaft "Vererbung" eines objektorientierten Programmiersystens ermöglicht die Erweiterung bereits früher geschriebener Programme durch Schaffen neuer Überklassen oder Unterklassen von Objekten. Neue Objekte werden dadurch beschrieben, wie sie sich von bereits vorher existierenden Objekten unterscheiden, so daß keine ganzen Programme neu geschrieben werden müssen, um neue Datentypen oder Funktionen zu behandeln.
  • Fig. 3 illustriert die Eigenschaft Vererbung. Zwecks leichterer Darstellung werden die Objekte als Rechtecke anstatt als Kreise dargestellt, wobei der Objektname oben im Rechteck, der Datenblock unter dem Objektnamen und die Methode unter dem Datenblock angegeben ist. In Fig. 3 werden drei Objektklassen dargestellt als "Verkäufer", "Angestellter" und "Person", dabei ist ein "Verkäufer" eine "Art" Angestellter, der eine "Art" Person ist. Mit anderen Worten, "Verkäufer" ist eine Unterklasse von Angestellter, und Angestellter ist die Überklasse von Verkäufer. Auf ähnliche Weise ist Angestellter eine Unterklasse von Person und Person ist die Überklasse von Angestellter. Jede gezeigte Klasse beinhaltet drei Fälle. B.Soutter, W.Tipp und B.G.Blue sind Verkäufer, B.Abraham, K.Yates und R.Moore sind Angestellte, J.McEnro, R.Nader und R.Reagan sind Personen. Mit anderen Worten, ein Fall steht in Verbindung mit seiner Klasse durch die Beziehung "ist ein".
  • Jede Unterklasse "erbt" den Datenblock und die Methoden ihrer Überklasse. So erbt z.B. ein Verkäufer-Datenblock Alter- und Einstellungsdaten-Objekte sowie Beförderungs-Methode von der Angestellten-Überklasse. Verkäufer beinhaltet auch ein Einzelquota-Attribut und eine Provisionszahlungs-Methode.
  • Jeder Fall kann Zugriff nehmen auf alle Methoden und Datenblöcke seiner Überklasse, so daß z.B. B.G.Blue befördert werden kann.
  • In einem objektorientierten System fordert eine Routine auf hoher Stufe ein Objekt auf, daß es eine seiner Methoden durchführt, durch Senden einer "Botschaft" an das Objekt, die dem Objekt sagt, was es tun soll. Das empfangende Objekt reagiert auf die Botschaft durch Anwählen der den Namen der Botschaft implementierende Methode, Durchführen dieser Methode, und dann Zurückgeben der Steuerung zusammen mit den Ergebnissen der Methode an die aufrufende Routine auf hoher Stufe.
  • Objektorientierte Programmiersysteme können als Datenbankverwaltungssysteme eingesetzt werden, die auf einer Großdatenbank arbeiten können und die erweiterbar und anpassungsfähig sind. In einem objektorientierten Datenbankverwaltungssystem sind die Daten in der Datenbank organisiert und in Objektterme eingekapselt, wobei die Fälle der Objekte die Daten in der Datenbank sind. Auf ähnliche Weise kann der Datenbank-Manager als Objektsatz organisiert sein, wobei Datenbankverwaltungsoperationen durch Senden von Botschaften von einem Objekt zu einem anderen ausgeführt werden. Das Zielobjekt führt die angeforderte Aktion an seinen Attributen unter Verwendung seiner Methoden durch.
  • In einem objektorientierten Datenbankverwaltungssystem produziert das Ergebnis einer Datenbankabfrage ein Objekt, das "Datenstrom" genannt wird. Die Attribute eines Datenstroms beinhalten eine Liste der Namen (oder der sonstigen Identifikatoren) aller Objekte in einer Objektklasse, die die Abfrage erfüllen. Mit anderen Worten, die Datenbankattribute enthalten eine Liste der Teilmenge der Klasse, die die Suchkriterien erfüllt. In die Attribute können auch zugeordnete beschreibende Informationen eingeschlossen sein.
  • Wie dem Fachmann bekannt ist, sind Abfragen an sehr große Datenbanken häufig sehr zeitaufwendig. Zum Beispiel kann eine Abfrage eine Objektklasse durchsuchen müssen, die eine Million Fälle enthält, um zwanzig Fälle zu finden, die die Suchkriterien erfüllen. Leider begrenzen solche zeitaufwendigen Suchen die Einsetzbarkeit des Datenbanksystems, weil in der Regel das Datenbanksystem keine weitere Abfrage bearbeiten kann, solange eine zeitaufwendige Abfrage durchgeführt wird.
  • Des weiteren ist dem Fachmann bekannt, daß die Ergebnisse vieler Datenbanksuchen für künftigen Gebrauch bereitgehalten werden müssen. Wenn das Ergebnis einer Suche häufig benutzt wird, ist es erwünscht, die Suche nicht wiederholt durchführen zu müssen, um jedesmal das gleiche Ergebnis zu erhalten. Das gilt besonders für zeitaufwendige Suchen, die die Datenbank während der Suche jedesmal unzugänglich machen.
  • Das Dokument 15th International Conference on very large Databases, August 1989, Amsterdam, S. 433-442, betrifft Suchtechniken, die in objektorientierten Datenbanksystemen eingesetzt werden.
  • Es ist daher eine Aufgabe der Erfindung, einen Prozeß und ein Gerät zum Durchführen von Abfragen in einem objektorientierten Datenbankverwaltungssystem bereitzustellen, und insbesondere zum Durchführen von zeitwaufwendigen Abfragen in einem objektorientierten Datenbankverwaltungssystem.
  • Eine weitere Aufgabe der Erfindung ist es, einen Prozeß und ein Gerät zum Durchführen nutzungsinvarianter Abfragen in einem objektorientierten Datenbankverwaltungs system bereitzustellen.
  • Diese und noch weitere Aufgaben werden gelöst in einem objektorientierten Datenbankverwaltungsverfahren und -gerät gemäß den beiliegenden Ansprüchen durch Vorsehen einer neuen Objektklasse, genannt "Ständiger Datenstrom". Die Klasse Ständiger Datenstrom ist eine Unterklasse der Datenstromklasse, so daß sie alle Attribute und Methoden der Datenstromklasse erbt. Jedoch enthält die Klasse Ständiger Datenstrom eine Methode, die in der Datenstromklasse nicht vorkommt. Diese Methode sieht die Fähigkeit des Fortbestehens vor. Im einzelnen beinhaltet der Ständige Datenstrom eine Methode zum Abspeichern der Ergebnisse einer Datenbankabfrage.
  • Der erfindungsgemäße Ständige Datenstrom ist in der Lage, die Ergebnisse einer Suche abzuspeichern, ist jedoch in allen anderen Aspekten identisch mit normalen Datenströmen, wenn Botschaften gesendet werden, die für einen normalen Datenstrom definiert sind. Dementsprechend kann der Ständige Datenstrom als Parameter benutzt werden durch jede Botschaft, die einen Datenstrom als Ergebnis erwartet. Wenn jedoch eine Abfrage einen Ständigen Datenstrom als Objekt nennt, wird die Suche in einem Hintergrund- oder Stapelmodus durchgeführt und die Ergebnisse werden gespeichert, bis sie benötigt werden. Dabei kann eine zeitaufwendige Suche eingeleitet, im Hintergrund durchgeführt und dann gespeichert werden. Wenn der Ständige Datenstrom dann später angesprochen wird, ist er codeunabhängig für die Zugriffsmethode, ob nun die Suche unmittelbar durchgeführt wird oder bereits früher durchgeführt und gespeichert wurde. Ein ständiger Datenstrom kann auch dann eingesetzt werden, wenn die Ergebnisse einer Suche wiederholt benutzt werden sollen. Eine Botschaft kann auf den Ständigen Datenstrom zugreifen, und es ist für die Zugriffs- methode codeunabhängig, ob die Suche unmittelbar durchgeführt wird oder bereits früher durchgeführt und gespeichert wurde.
  • Insbesondere beinhaltet ein erfindungsgemäßer objektorientierter Datenbankmanager eine Datenstromklasse und eine Ständige Datenstromklasse. Die Datenstromklasse ist eine Objektklasse mit Datenstromattributen und Datenstrommethoden, wobei die Datenstromattribute eine Liste von Datenbankobjekten sind, die ein vorgegebenes Abfragekriterium erfüllen, und die Datenstrommethoden beinhalten Methoden zum Schaffen, Öffnen, Holen, Schließen und Löschen eines Datenstromfalls. Die Ständige Datenstromklasse ist eine Unterklasse der Datenstromklasse, so daß sie die Datenstromattribute und Datenstrommethoden erbt. Jedoch beinhalten die Ständigen Datenstromklassenattribute auch das Suchkriterium, ein Flag zum Zeigen, ob die Ergebnisse der Suche gespeichert sind, und einen Indikator auf die Speicherstelle der Suchergebnisse. Die Datenstromklasse beinhaltet auch eine "Speicherungs"- Methode zum Speichern der Ergebnisse einer Operation auf die Datenbank.
  • Im Betrieb akzeptiert der Datenbankmanager auf der Datenbank durchzuführende Anfragen nach Datenobjekten und es wird bestimmt, ob die akzeptierte Suche sofort durchgeführt wird und die Ergebnisse der Suche gespeichert werden. Der Fachmann versteht hier, daß diese Bestimmung in der Regel vom Anwendungsprogramm getroffen wird, das als Teil oder im Zusammenhang mit dem objektorientierten Datenbankmanager gefahren wird. Wenn die Suche sofort ausgeführt werden soll und die Ergebnisse nicht für späteren Gebrauch abgespeichert werden müssen, wird die Abfragebotschaft an die Datenstromklasse gerichtet. Wenn andererseits die Abfrage nicht sofort durchgeführt werden muß oder wenn die Ergebnisse zur weiteren Verwendung gespeichert werden müssen, schickt der Datenbankmanager die Suchabfrage an die Ständige Datenstromklasse. Die Ständige Datenstromklasse führt die Abfrage genau wie eine Datenstromklasse durch, mit dem Unterschied, daß die Abfrage Ergebnisse im Hintergrund durchführt und abspeichert, z.B. als sequentielle Datei in einer nichtflüchtigen Speichervorrichtung.
  • Dementsprechend kann jede Abfragefunktion entweder einen Ständigen oder einen Nichtständigen Datenstrom schaffen. Ständige Datenströme können im Hintergrund gebildet werden wenn ausreichende Systembetriebsnittel zur Verfügung stehen, und der Anwender kann inzwischen andere Arbeiten durchführen. Dem Arbeitsdurchführungsprozeß kann entweder ein regulärer Datenstrom oder ein Ständiger Datenstrom zugeführt werden. Da Ständige Datenströme genau wie Nichtständige Datenströme auf die Methoden Öffnen, Holen, Schließen und Löschen ansprechen, ist der Datenstromtyp für den Anwender eines objektorientierten Datenbankverwaltungssystems völlig codeunabhängig.
  • Die erfindungsgemäße Ständige Datenstromklasse kann mit einer wiederaufgreifbaren Stapel-Abfrageobjektklasse benutzt werden, die in US-Patent Nr. 425,829, mit dem Titel "Resumable Batch Query for Processing Time Consuming Queries in an Object Oriented Database Management System" beschrieben ist, dessen Offenbarung hier durch Querverweis eingeschlossen ist. Andererseits braucht die wiederaufgreifbare Stapelabfrage nicht benutzt zu werden.
  • Hier nachstehend soll jetzt die Erfindung anhand der beiliegenden Zeichnungen eingehender beschrieben werden.
  • Fig. 1 zeigt eine schematische Darstellung eines Objekts.
  • Fig. 2 illustriert eine schematische Darstellung eines beispielhaften Objekts.
  • Fig. 3 zeigt die Eigenschaft der Vererbung von Objekten.
  • Fig. 4 zeigt ein Blockschaltbild eines objektorientierten Rechnersystems gemäß der vorliegenden Erfindung.
  • Fig. 5 zeigt ein Blockschaltbild eines objektorientierten Programms gemäß der vorliegenden Erfindung.
  • Fig. 6 zeigt beispielhaft einen Datenstrom gemäß der vorliegenden Erfindung.
  • Fig. 7 zeigt einen ersten und einen zweiten Dialogbildschirm zur Durchführung einer Datenbankanfrage unter Verwendung eines Datenstroms.
  • Fig. 8 zeigt einen ständigen Datenstrom gemäß der vorliegenden Erfindung.
  • Fig. 9 zeigt einen ständigen Datenstrom und einen sequentiellen Datensatz gemäß der vorliegenden Erfindung.
  • In einem objektorientierten Rechnersystem wird die Arbeit durchgeführt durch Senden von Aktionsanforderungsbotschaften an ein Objekt, das (gekapselte) Daten enthält. Das Objekt wird die angeforderte Aktion an den Daten gemäß seinen vordefinierten Methoden durchführen. Der Anforderer der Aktion braucht nicht zu wissen, wie die aktuellen Daten aussehen oder wie sie das Objekt handhabt.
  • Eine Objektklasse definiert die Typen und Bedeutungen der Daten- und die Aktionsanforderungen (Botschaften), auf die das Objekt anspricht. Die einzelnen Daten enthaltenden Objekte heißen Fälle der Klasse. Klassen beziehen sich in der Regel auf Dinge der realen Welt. Ein später noch darzulegendes Beispiel spricht "Teile" als eine Klasse an. Die Datenelemente (Schlitze) eines Teils könnten sein eine Teilenummer, ein Status und ein Teiletyp. Die Fälle dieser Klasse stellen Einzelteile dar, jeder mit seiner eigenen Teilenummer, Status und Typinformation. Die Programme, die die angeforderten Aktionen ausführen, heißen Methoden der Klasse.
  • Objektklassen können als Unterklassen anderer Klassen definiert werden. Unterklassen erben alle Datenmerknale und Methoden der augenblicklichen Klasse. Sie können zusätzliche Daten und Methoden hinzufügen, und sie können Datenelemente oder Elemente der Elternklasse überschreiben (neu definieren). Während die meisten Botschaften an Objektfälle gesendet werden, wird die Botschaft, die das Schaffen eines neuen Falls fordert, an eine Objektklasse gesendet. Die Klasse bewirkt, daß ein neuer Fall geschaffen wird, und schickt einen Objektidentifikator zurück, an dem das Objekt erkannt wird.
  • Der Sender einer Aktionsanforderungsbotschaft braucht die genaue Klasse des Objekts, an die er seine Botschaft sendet, nicht zu kennen. Solange das Zielobjekt entweder eine Methode zum Behandeln der Botschaft definiert oder eine Elternklasse hat, die eine solche Methode definiert, wird die Botschaft mit den Daten im Objektfall und mit der Methode in seiner Klasse bzw. seiner Elternklasse behandelt. Es braucht nicht einmal ein unmittelbarer Elter zu sein, sondern kann der Elter eines Elters sein, usw. Der Sender der Methode braucht nur die Objekt-ID des empfangenden Objekts zu kennen. Diese Eigenschaft der objektorientierten Programmierung heißt "Vererbung". In der vorliegenden Erfindung wird die Eigenschaft "Vererbung" benutzt.
  • Nehmen wir jetzt Bezug auf Fig. 4; hier wird ein Blockschaltbild eines objektorientierten Datenbankverwaltungssystems 10 gezeigt. Das System 10 beinhaltet einen Datenprozessor 11, der ein Großrechner, ein Minicomputer oder ein Personalcomputer sein kann. Für größere Datenbanken mit einer Vielzahl von Anwendern wird in der Regel eine Großrechner eingesetzt. Wie dem Fachmann wohlbekannt ist, beinhaltet der Datenprozessor 10 eine flüchtige Datenspeichervorrichtung 13, in der Regel einen Speicher mit wahlfreiem Zugriff (RAM), der einen Arbeitsspeicher für aktive Daten und Zwischenergebnisse bereitstellt. Die Daten im RAM 13 werden gelöscht, wenn der Datenprozessor 11 abgeschaltet wird oder eine neue Anwendersitzung anfängt. System 10 beinhaltet auch eine nichtflüchtige Datenspeichervorrichtung 14 zur permanenten Objektspeicherung. Die Vorrichtung 14 kann eine Speichervorrichtung mit direktem Zugriff (DASD), ein Festplattenspeicher, ein Bandspeicher, eine löschbare Optikplatte oder eine sonstige bekannte Vorrichtung sein. Die nichtflüchtige Datenspeichervorrichtung 14 wird hier auch als "Datenbank" bezeichnet. Die flüchtige Datenspeichervorrichtung 13 wird hier auch als "Speicher" bezeichnet. Eine Daten-Endstation 15 mit einer Kathodenstrahlröhre (CRT) oder einer sonstigen Anzeigevorrichtung und eine Tastatur werden ebenfalls dargestellt.
  • Ein objektorientiertes Programm 12 in der Form eines objektorientierten Datenbankmanagers ist im Datenprozessor 11 ebenfalls enthalten. Der objektorientierte Datenbankmanager kann in objektorientierten Sprachen wie "C" oder "Smalltalk" oder Variationen derselben oder auch in den herkömmlichen Programmiersprachen wie FORTRAN oder COBOL programmiert sein. Die Konstruktion eines objektorientierten Datenbankmanagers ist in Fachkreisen für objektorientierte Programmiersysteme wohlbekannt und wird hier nachstehend nur allgemein beschrieben.
  • Nehmen wir jetzt Bezug auf Fig. 5; hier werden die Hauptkomponenten eines objektorientierten Programms (12, Fig. 4) beschrieben. Eine in weitere Einzelheiten gehende Beschreibung der Konstruktion und des Betriebs eines objektorientierten Programms ist vorgesehen in "Object Oriented Software Construction" von Betrand Meyer, erschienen im Verlag Prentice Hall, 1988, dessen Offenbarung hier durch Querverweis eingeschlossen ist.
  • Nehmen wir Bezug auf Fig. 5; das objektorientierte Programm 12 beinhaltet drei Primärkomponenten: Einen Botschaftsübermittler 51, eine Objektverwaltungstabelle 52 und eine Tabelle für geladene Klassen 53. Der Botschaftsübermittler 51 steuert die Verbindung zwischen den aufrufenden und den aufgerufenen Botschaften, der Objektverwaltungstabelle 52 und der Tabelle für geladene Klassen 53. Die Objektverwaltungstabelle 52 enthält eine Liste der Zeiger auf alle aktiven Objektfälle. Die Tabelle für geladene Klassen 53 enthält eine Liste der Zeiger auf alle Methoden aktiver Objektklassen.
  • Anhand der in Fig. 5 dargestellten Beispiels soll jetzt der Betrieb eines objektorientierten Programms 12 dargestellt werden, wobei Methode A (Block 54) eines Objekts eine Botschaft an Methode B (Block 55) eines Objekts sendet. Methode A sendet eine Botschaft an Methode B durch Aufrufen des Botschaftsübermittlers 51. Die Botschaft enthält (1) eine Objektbezugnahme auf den Fall zum Empfang der Botschaft, (2) die Methode, mit der der Objektfall aufgefordert wird, auf die eingekapselten Daten einzuwirken, und (3) etwaige Parameter, die von der empfangenden Methode benötigt werden. Botschaftsübermittler 51 findet einen Zeiger auf den Datenblock 56 des von Methode A spezifizierten Fallobjekts durch Durchsuchen der Objektverwaltungstabelle 52 nach dem Fallobjekt. Wenn das angegebene Fallobjekt nicht gefunden werden kann, fügt die Objektverwaltungstabelle 52 das Fallobjekt zur Tabelle hinzu und ruft den Fall auf, seine Daten von der Datenbank zu materialisieren. Nach Aufnahme in die Falltabelle gibt die Objektverwaltungstabelle 52 den Zeiger zurück an das materialisierte Fallobjekt.
  • Der Botschaftsüberbringer 51 sucht dann die Adresse für Methode B in der Tabelle für geladene Klassen 53. Wenn die Klasse des Falls nicht geladen ist, lädt ihn die Tabelle für geladene Klassen 53 jetzt, um ihre Daten zu materialisieren. Die Tabelle für geladene Klassen 53 sucht die spezifische Methode (Methode B) und gibt die Adresse der Methode an den Botschaftsüberbringer 51.
  • Dann ruft der Botschaftsüberbringer 51 Methode B auf, weist ihr einen Systemdatenbereich und die Parameter aus dem Aufruf zu, der von Methode A gemacht wurde, einschließlich des Zeigers. Methode B greift über den Zeiger auf den Datenblock 56 zu. Dann gibt Methode B die Steuerung an den Botschaftsüberbringer 51, der die Steuerung an die Methode A weitergibt.
  • Objekte können ständig oder nichtständig sein. Ein ständiges Objekt besteht aus Daten, die in nichtflüchtigen Datenspeichervorrichtungen 14 abgespeichert sind und die in den Prozessorspeicher (RAM 13) geholt werden, wenn sie zum ersten Mal von ihrer Objekt-ID angesprochen werden. Sie werden wieder zurück in die Vorrichtung 14 geschrieben, wenn eine Methode feststellt, daß alle Objektdaten in einem konsistenten Zustand sind. Das heißt dann "Festschreiben" der Daten. Herkömmliche Datenbanksysteme, z.B. D82 der IBM, beinhalten auch eine Festschreibefunktion, um sicherzustellen, daß alle Datenänderungen gleichzeitig wiedergegeben werden. Ständige Objekte werden in der US-Patentanmeldung Nr. 425,824 unter dem Titel "Persistent Data Interface for Object Oriented Programming Systems" beschrieben, deren Offenbarung hier durch Querverweis eingeschlossen ist. Nichtständige Objekte sind solche, deren Daten nicht ständig gespeichert sein müssen, und sind daher in der DASD 14 nicht vertreten.
  • Die vorliegende Erfindung betrifft eine Objektklasse, genannt ein "Datenstrom". Ein Datenstrom ist eine Liste der Identifikatoren aller Objekte in einer gegebenen Objektklasse und kann für jedes Glied der Klasse einige zugeordnete beschreibende Informationen enthalten. Die beschreibende Information repräsentiert in der Regel nur ein paar Attribute der zugrundeliegenden Objekte und wird für ausgedruckte Berichte oder Listen benutzt, die in einem Dialogbildschirm der Datenendstation 15 angezeigt werden. Fig. 6 illustriert eine Beispiel für einen Datenstrom "Teilenummern". Die Objekt-ID (OID) im Datenstrom ist eine Objekt-ID für jedes der aktuellen Objekte, die den Suchkriterien des Datenstroms entsprechen.
  • Ein Datenstrom wird aufgebaut durch eine Anfrage an eine Datenbank (wie z.B. eine relationale Datenbank). Die Anfrage enthält in der Regel Suchkriterien, so daß der Datenstrom eine Liste der Teilmenge der Klasse ist, die den Suchkriterien entspricht. Dieses Aufbauen einer Teilmenge einer Klasse kann ziemlich zeitaufwendig sein, in Abhängigkeit von den Gliedern der Klasse und der Komplexität der Suchkriterien.
  • Bisher waren Datenströme nichtständige Objekte. Sie repräsentieren eine Zusammenfassung von Daten in irgend einer Klasse ständiger Objekte, deren Daten sich daher in der zugrundeliegenden Datenbank finden. Damit werden die Daten im Datenstrom durch wiederholte Anfragen an die Datenbank nach dem nächsten Datensatz, der den Auswahlkriterien entspricht, gebildet. Es gibt keine Grenze für die Größe eines Datenstroms, abgesehen von den Grenzen, die durch das zugrundeliegende Datenbanksystem vorgegeben sind. Ein Datenstrom enthält in der Regel die folgenden Methoden:
  • Create Baut das Skelett des Datenstromobjekts auf und gibt den Datenstrom-Identifikator an die aufrufende Stelle zurück. Es erhält als Parameter alle Suchkriterien, die benutzt werden müssen, um eine Teilmenge der durchsuchten Objektklasse zu schaffen. Eine typische Botschaft zum Anfordern des Aufbaus eines Datenstroms ist:
  • mystream.CREATE (criterial, criteria2,...,return_code)
  • wobei die Werte sind wie folgt:
  • mystream Eine Variable, die für das vorliegende Beispiel willkürlich "mystream" genannt wurde und die durch Erklärung der Klasse des benötigten Datenstroms zugeordnet wird, z.B. durch:
  • mystream: type is part_number_stream;
  • Die Objekt-ID des neugeschaffenen Datenstroms wird in diese Variable gelegt.
  • criterial, etc. Die Suchkriterien, die für den besonderen Datenstromtyp definiert sind.
  • return code eine Variable zum Anzeigen, ob Ausnahmen aufgetreten sind.
  • Die Datenstromobjekt-Einsatzmittel, wie z.B. der flüchtige Speicher (RAM) zum Festhalten der Suchkriterien und sonstiger Datenstrom-Zustandsinformationen werden bei der Durchführung der Methode CREATE zugewiesen.
  • Open Zeigt an, daß der Datenstrom direkt anschließend benutzt wird, und bewirkt, daß der Datenstrom jede erforderliche Aktivität durchführt, um auf die gewünschten Datensätze zuzugreifen. Eine typische Botschaft zum Öffnen eines Datenstroms ist:
  • mystream.OPEN (return_code)
  • wobei die Werte sind wie folgt:
  • mystream Die Objekt-ID des von CREATE erzeugten Datenstroms.
  • return_code Eine Variable zum Anzeigen, ob eine Ausnahme vorgekommen ist.
  • Wenn eine OPEN-Methode aufgerufen wird, werden dem Datenstrom Datenbankbetriebsmittel zugeordnet, möglicherweise unter Aussperrung anderer Benutzer dieses Teils der Datenbank.
  • Get Gibt den nächsten Datensatz an den Anforderer. Eine typische Botschaft zum Abrufen eines Datensatzes ist:
  • mystrean.GET (stream_element, return_code)
  • wobei die Werte sind wie folgt:
  • mystream Die Objekt-ID des von CREATE erzeugten Datenstroms.
  • stream_element Eine Variable, die als zugehörig zu dem Typ definiert ist, der eine einzige Zeile des besonderen Datenstromtyps repräsentiert, wie z.B. eine Zeile des Datenstroms in Fig. 6.
  • return_code Eine Variable zum Anzeigen, ob eine Ausnahme vorgekommen ist. End-of- stream ist eine solche Ausnahme.
  • Wenn eine Methode GET aufgerufen wird, werden aktuelle Datenbank-Datensätze in der nichtflüchtigen Speichervorrichtung 14 (Fig. 4) gesucht und in den Speicher (RAM 13) gebracht.
  • Close Setzt die Datenbank wieder frei und entfernt alle Konzepte der Datenstromposition (laufende Datensatznummer) aus dem Datenstrom. Wenn dementsprechend später ein geschlossener Datenstrom wieder geöffnet wird, beginnt er am Anfang und nicht mit den "nächsten" Datensatz. Ein typisches Beispiel zum Schließen des Datenstroms ist:
  • mystream.CLOSE (return_code)
  • wobei die Werte sind wie folgt:
  • mystream Die Objekt-ID des von CREATE erzeugten Datenstroms.
  • return_code Eine variable zum Anzeigen, ob eine Ausnahme vorgekommen ist.
  • Wenn eine Methode CLOSE aufgerufen wird, werden die Datenbank-Einsatzmittel freigegeben.
  • Delete Setzt alle von Datenstrom verbrauchten Einsatzmittel frei. Eine typische Botschaft zum Löschen des Datenstroms ist:
  • mystream.DELETE (return_code)
  • dabei sind die Werte wie folgt:
  • mystream Die Objekt-ID des von CREATE erzeugten Datenstroms.
  • return_code Eine variable zum Anzeigen, ob eine Ausnahme vorgekommen ist.
  • Wenn die Methode DELETE aufgerufen wird, werden die Objekt-Einsatzmittel im RAM freigesetzt und die Objekt-ID des Datenstroms gilt nicht mehr.
  • BEISPIEL 1--DATENBANKANFRAGE OHNE STÄNDIGEN DATENSTROM
  • Jetzt soll eine Datenbankanfrage beschrieben werden, die nicht den ständigen Datenstrom der vorliegenden Erfindung verwendet. Am Beginn der Abfrage steht die Operation Create. In der Regel wird die Operation Create von einer Arbeitserfassungsfunktion angefordert wie z.B. von einem interaktiven Dialog. Der daraus entstehende Datenstrom wird dann an die Funktion weitergegeben, die den Datenstrom bearbeitet (Aufbau von Listenbildschirmen, Drucken von Datensätzen, Durchführen von Überprüfungen usw.). Ein typisches Szenario wäre z.B. ein Paar interaktive Dialogbildschirme im Anzeigeterminal 15, wie in Fig. 7 dargestellt ist.
  • Nehmen wir jetzt Bezug auf Fig. 7; der erste Dialogbildschirm fordert die Eingabe der Auswahlkriterien vom Anwender des Terminal. Nehmen wir für dieses Beispiel an, der Anwender habe keine Informationen für "Part#" und "Status", wohl aber "Plastic" für "Type" zur Suche eingegeben. Das würde eine Suche nach allen Kunststoffteilen bedeuten. Der erste Dialogbildschirm erzeugt den Datenstrom durch Weitergeben der folgenden Suchkriterien:
  • mystream.CREATE ("*", "*", "Plastic",myrcode)
  • Die Sterne werden als Joker benutzt, um anzugeben, daß für die beiden ersten Suchkriterien alle Werte gewünscht werden. Jetzt übernimmt der Datenstrom einfach die Suchkriterien aus dem Speicher (RAM), die dem Datenstromobjekt zugeordnet sind. Dann ruft der erste Dialogbildschirm den zweiten Dialogbildschirm auf und übergibt ihm die Objekt-ID des Datenstroms wie folgt:
  • panel2.CREATE(mystream)
  • Weiter unter Bezugnahme auf Fig. 7 öffnet (OPEN) der zweite Dialogbildschirm den Datenstrom und benutzt die Funktion GET zum Aufbauen einer Liste von Objekten (wie "parts"), die der Anwender behandeln (edit, delete, promote, print, usw.) kann je nach den Bedürfnissen dieser besonderen Anwendung. Die Methode OPEN stellt die Verbindung zur Datenbank her und identifiziert die zu suchenden Daten und die für die Suche benutzten Kriterien:
  • mystream.OPEN(myrcode)
  • Die Methode GET holt dann die Datensätze aus der Datenbank:
  • mystream.GET(mybuffer,myrcode)
  • Dieses GET kann möglicherweise eine lange Zeit in Anspruch nehmen, wenn eine große Anzahl Datenbankdatensätze durchsucht werden müssen, um die verhältnismäßig wenigen zu finden, die die Suchkriterien erfüllen.
  • Nachdem GET die Datensätze aus der Datenbank geholt hat, kann der Anwender die Arbeit ausführen, zu deren Durchführung der zweite Dialogbildschirm entworfen wurde. Z.B. kann der Anwender die Liste durchlaufen lassen und damit weitere GET Anforderungen an den Datenstrom stellen. Wenn immer der Anwender Befehle an die im Bildschirm aufgelisteten Objekte ausgibt, wird die ID des betroffenen Objekts benutzt, um die Aktionsanforderung an dieses betroffene Objekt zu schicken. In der Regel werden diese IDS dem Anwender nicht 4ezeigt, weil sie für den Anwender nicht verständlich zu sein brauchen - sie werden nur dazu benutzt, die betroffenen Objekte aufzufinden. Wenn sich der Anwender entschließt, den zweiten Bildschirm zu verlassen, schließt (CLOSE) der Dialog den Datenstrom, um die Datenbankbetriebsmittel freizugeben:
  • mystream.CLOSE(myrcode)
  • Der zweite Dialog kehrt dann zu seinem Aufrufer zurück, der der erste Dialog war.
  • Da der erste Dialog den Datenstrom geschaffen hat, muß er ihn jetzt auch wieder löschen (DELETE), um die Objekteinsatzmittel wieder freizugeben, wie folgt:
  • mystream.DELETE(myrcode)
  • Der Anwender kann die oben beschriebene Aktivität mit der gleichen oder einer anderen Abfrage wiederholen oder kann aus diesem Bildschirm aussteigen, um zu seinem Aufrufer zurückzukehren.
  • Jetzt soll die Ständige-Datenstrom-Klasse (Persistent Stream Class) der vorliegenden Erfindung beschrieben werden. Ein ständiger Datenstrom ist eine datenstromähnliche Objektklasse, die die Fähigkeit hat, die Ergebnisse einer Suche abzuspeichern, und die doch identisch mit den normalen Datenströmen erscheint, wenn Aktionsanforderungen geschickt werden, die in der normalen Datenstromspezifikation definiert sind. Die Ständige-Datenstrom-Klasse weist alle Merkmale eines Datenstroms auf, kann aber auch als Ständiges Objekt gespeichert werden. In der objektorientierten Terminologie handelt es such um eine Unterklasse von Datenströmen: Sie erbt alle Attribute und Methoden der Datenströme und sieht eine zusätzliche Funktion vor, d.i. die Fähigkeit weiterzubestehen.
  • Der Ständige Datenstrom der vorliegenden Erfindung kann von Anwendungen benutzt werden, die normale Datenströme erwarten, die zeitaufwendigen Datenbankdurchsuchungen können jedoch in einer Hintergrundumgebung (Stapel) durchgeführt werden. Der Ständige Datenstrom kann auch für Suchen benutzt werden, die in einer interaktiven Umgebung (Vordergrund) durchgeführt werden, deren Ergebnisse jedoch für künftige Anwendungen bereitgehalten werden müssen.
  • Ständige Datenströme beinhalten die gleichen Methoden wie normale Datenströme, plus eine neue Methode, genannt SAVE (Abspeichern). Für Ständige Datenströme sind die Methoden definiert wie folgt:
  • Create Ständige Datenströme reagieren auf die gleiche Botschaft CREATE wie normale Datenströme:
  • mystream.CREATE(criteria1, criteria2,...,return_code) mit dem Unterschied, daß die Variable "mystream" als erforderliche Ständige-Datenstrom-Klasse erklärt wird, wie:
  • mystream:type is part_number_persistent_stream;
  • Die Methode CREATE schafft ein Ständiges Objekt und speichert dieses Objekt in der Datenbank. Dieses Ständige Objekt wird benutzt, um die Suchkriterien zu speichern und um aufzuzeichnen, ob die Aktion SAVE durchgeführt wurde und wo die Ergebnisse der Suche abgespeichert sind. Die Ergebnisse der Suche können in jedem beliebigen nichtflüchtigen sequentiellen Speichermedium gespeichert werden, z.B. in der sequentiellen Datenspeichervorrichtung 14 (Fig. 4). Fig. 8 illustriert den Ständigen Datenstrom, der eben geschaffen wurde, und dessen Objekt-ID in "mystream" steht. Das Ständige-Datenstrom-Objekt hat eine zugewiesene und gespeicherte Objekt-ID, so daß es gefunden werden kann. Die Suchkriterien werden gespeichert, das Flag zeigt an, daß kein SAVE ausgeführt wurde und daß es noch keine sequentielle Datenmenge gibt.
  • Save Führt die ganze Suche durch und setzt die Ergebnisse in eine sequentielle Datenmenge. Diese Methode ist neu für Ständige Datenströme. Eine typische Botschaft zum Speichern (SAVE) eines Datenstroms ist:
  • mystream.SAVE(return_code)
  • wobei die Werte sind wie folgt:
  • mystream Die Objekt-ID des von CREATE erzeugten Datenstroms.
  • return_code Eine Variable zum Anzeigen, ob eine Ausnahme vorgekommen ist.
  • Vor dem SAVE sieht der Ständige-Datenstrom aus wie in Fig. 8 gezeigt ist. Die Methode SAVE weist die sequentielle Datenmenge zu und setzt ihren Namen (oder sonstigen Identifikator) in das Ständige- Datenstrom-Objekt. Dann führt sie das Aquivalent zum OPEN des normalen Datenstroms durch mit Anbinden der Datenbank zur Suche. Als nächstes führt sie wiederholte GETs von der Datenbank durch, um den nächsten Suchdatensatz abzurufen, und schreibt diesen Datensatz in die sequentielle Datenmenge. Wiederholte GETs werden durchgeführt, bis die Datenbank anzeigt, daß der letzte Suchdatensatz geholt wurde. Die Methode SAVE schließt dann die sequentielle Datenmenge und setzt den Indikator in das Ständige-Datentrom-Objekt, um anzuzeigen daß ein SAVE durchgeführt wurde. Der Ständige-Datenstrom und die sequentielle Datenmenge sehen jetzt aus wie in Fig. 9 gezeigt wird.
  • Open Ständige-Datenströme reagieren auf die gleiche GET Botschaft wie normale Datenströme:
  • mystream.GET(stream_element,return_code)
  • Wenn für diesen Ständigen-Datenstrom-Fall die Operation SAVE durchgeführt wurde, liest die Methode GET von der sequentiellen Datenmenge anstatt von der Datenbank. Das erfordert in der Regel viel weniger Aufwand als das Holen von der Datenbank. Wenn für diesen Ständigen-Datenstrom noch keine Operation SAVE durchgeführt wurde, verhält sich GET genau so wie bei normalen Datenströmen und ruft aus der Datenbank ab.
  • Close Ständige-Datenströme reagieren auf die gleiche CLOSE Botschaft wie normale Datenströme:
  • mystream.CLOSE(return_code)
  • Wenn die Operation SAVE für diesen Ständigen-Datenstrom-Fall bereits durchgeführt wurde, schaltet die Aktion CLOSE von der sequentiellen Datenmenge ab anstatt von der Datenbank. Wenn die Operation SAVE für diesen Ständigen-Datenstrom noch nicht durchgeführt wurde, verhält sich CLOSE genau so wie bei normalen Datenströmen und schaltet die Datenbankbetriebsmittel ab.
  • Delete Ständige Datenströme reagieren auf die gleiche DELETE Botschaft wie normale Datenströme:
  • mystream.DELETE(return_code)
  • Wenn die Operation SAVE für diesen Ständigen-Datenstrom-Fall durchgeführt wurde, löscht die Aktion DELETE die sequentielle Datenmenge und löscht dann die Ständigen-Datenstrom-Objekt-Betriebsmittel selbst. Wenn für diesen Ständigen-Datenstrom keine Operation SAVE durchgeführt wurde, verhält sich DELETE genau so wie bei normalen Datenströmen und löscht die Ständigen-Datenstrom-Objekt-Betriebsmittel. Jetzt werden die Objekteinsatzmittel freigesetzt und die Datenstrom-Objekt-ID ist nicht mehr gültig.
  • BEISPIEL 2--DATENBANKANFRAGE MIT STANDIGEM DATENSTROM
  • Jetzt wird die Datenbankabfrage der Fig. 7 beschrieben unter Verwendung von Ständigen-Datenströmen, um die Vorteile der vorliegenden Erfindung gegenüber herkömmlichen Datenströmen zu zeigen. Wie in Fig. 7 dargestellt ist, fordert der erste Dialogbildschirm die Auswahlkriterien vom Anwender der Datenendstation an und schafft (CREATE) den Datenstrom unter Weitergabe der gleichen Suchkriterien:
  • mystream.CREATE ("*", "*", "Plastic",myrcode)
  • Diesmal wurde jedoch "mystream" als Ständiger-Datenstrom erklärt und die Botschaft CREATE wird zur Ausführung in die Klasse der ständigen Datenströme geführt. Die Sterne sind wieder Joker. Für diesen neuen Fall eines Ständigen Datenstroms wird ein Datenbankdatensatz eingeschoben und seine Objekt-ID, die drei Suchkriterien, das Flag SAVED=No und ein sequentieller Datenmengen-Nullzeiger werden in den neuen Datensatz geschrieben, wie in Fig. 8 illustriert wird.
  • Dann bewirkt der erste Dialogbildschirm, daß die Abfrage des ersten Ständigen-Datenstroms gefahren wird. Hier muß verstanden werden, daß die Abfräge auf unterschiedliche Weise gefahren werden kann, in Abhängigkeit von dem Grund, warum ein Ständiger-Datenstrom benutzt wird. Wenn z.B. die Ergebnisse der Abfrage mehr als einmal benutzt werden, kann die Anfrage des Ständigen-Datenstroms interaktiv betrieben werden. Der Anwender kann aufgefordert werden, anzugeben, ob die Ergebnisse der Anfrage mehr als einmal benutzt werden sollen. Oder aber, wenn die Abfrageoperation eine lange Zeit erfordert, kann ein Stapel-Job (Hintergrund) gefahren werden, der die Anfrage außerhalb der Stoßzeiten durchführt. Der Anwender kann aufgefordert werden, anzugeben, ob es sich um eine zeitaufwendige Anfrage handelt. Als Alternative kann die Abfrage geprüft und eine geschätzte Durchlaufzeit berechnet werden. Wenn die geschätzte Durchlaufzeit länger als eine vorgegebene Zeit ist, kann automatisch eine Stapelabfrage ausgeführt werden.
  • Wenn immer die Abfrage läuft, wird eine Botschaft an den Ständigen-Datenstrom geschickt, damit er seine Methode SAVE ausführt:
  • mystream.SAVE(myrcode)
  • Wie oben beschrieben, weist die Methode SAVE eine sequentielle Datenmenge zu, setzt ihren Namen in die Datenbank, fährt die Abfrage, schreibt die Ergebnisse in die sequentielle Datenmenge und stellt das Flag auf SAVED=Yes. Eine Technik zum Implementieren der Methode SAVE ist die Anwendung der Methoden OPEN, GET und CLOSE der Eltern-Objektklasse (normale Datenströme), um zu vermeiden, daß diese Programme zweimal geschrieben werden müssen.
  • Als nächstes wird der zweite Dialogbildschirm in Fig. 7 aufgerufen. Wenn die Anfrage vom ersten Dialog interaktiv gefahren wurde, wird der zweite Dialog identisch mit Beispiel 1 aufgerufen. Wenn ein Hintergrund-Job die Abfrage fährt, wird typischerweise ein "job done" Dialog den zweiten Dialogbildschirm aufrufen. In jedem dieser Fälle wird der zweite Dialogbildschirm mit der gleichen Botschaft aufgerufen wie im Szenario, das ein normales Datenstrombeispiel zeigt:
  • panel2.CREATE(mystream)
  • Gemäß der Erfindung weiß der zweite Dialog nicht, daß er einen Ständigen-Datenstrom anstatt eines normalen Datenstroms erhält. Wie in Beispiel 1, öffnet (OPEN) der zweite Dialogbildschirm den Datenstrom und benutzt die Funktion GET zum Erstellen einer Liste von Objekten, die der Anwender behandeln kann:
  • mystream.OPEN(myrcode)
  • Für den Ständigen-Datenstrom frägt die Methode OPEN das SAVED-Flag in seinem Datensatz der Datenbank ab. Da SAVE durchgeführt wurde, schließt es die sequentielle Datenbank an, deren Identifikator auch in der Datenbank steht. GET holt dann die Abfrage-Datensätzte:
  • mystream.GET(mybuffer,myrcode)
  • Da der Ständige-Datenstrom abgespeichert ist, werden die Abfrageresultate aus der sequentiellen Datenmenge abgelesen. Da in dieser Datenmenge nur Datensätze enthalten sind, die der Abfrage entsprechen, ist der Aufwand für die Bearbeitung bei "Datenstromzeit" typisch erheblich geringer als für die Abfrage, die die Ergebnisse produziert hat.
  • Wenn für den Ständigen-Datenstrom noch keine SAVE-Methode durchgeführt wurde, wird zu diesem Zeitpunkt eine Abfrage gefahren. Zu diesem Zweck können verschiedene Techniken eingesetzt werden. Zum Beispiel kann der Abfrage-Code als Teil des Ständigen-Datenstroms vorgesehen sein. Als Alternative kann die Abfrageanforderung zu den (Normaldatenstrom) Methoden OPEN, GET und CLOSE des Elter umgeleitet werden. Alternativ dazu kann auch implizit ein SAVE als Teil der Implementierung des OPEN für den Ständigen-Datenstrom gefahren werden.
  • Wenn der Anwender dann den zweiten Bildschirm verläßt, schließt (CLOSE) der zweite Dialog den Datenstrom:
  • mystream.CLOSE(myrcode)
  • Bei abgespeicherten (SAVE) Ständigen-Datenströmen schaltet das von der sequentiellen Datenmenge ab. Der zweite Dialog kann dann zu seinem Aufrufer zurückkehren. Da die Ständigen- Datenströme ständig sind, ist es möglich, daß der Aufrufer die Datenströme zu diesem Zeitpunkt nicht immer löschen will. Wenn jedoch die Anwendung und/oder der Anwender beschließt, daß der Ständige-Datenstrom nicht mehr gebraucht wird, wird an den Datenstrom eine DELETE-Botschaft geschickt:
  • mystream.DELETE(myrcode)
  • Die sequentielle Datenmenge wird selbst gelöscht, der Datenbankdatensatz wird gelöscht und alle anderen Einsatzmittel werden freigegeben.
  • Wie oben beschrieben, sieht die Klasse der Ständigen-Datenströme der vorliegenden Erfindung die Möglichkeit vor, Abfrageergebnisse so abzuspeichern, daß die Ständigkeit bzw. Nichtständigkeit des Abfrageergebnisses für das etwaige arbeitausführende Programm, das diese Abfrageergebnisse benutzt, codeunabhängig ist. Ständige-Datenströme können im Hintergrund abgespeichert (SAVE) werden, wenn reichlich Systemeinsatzmittel vorhanden sind, wobei der interaktive Anwender im Vordergrund andere Arbeiten durchführen kann. Dem arbeitausführenden Prozeß kann entweder ein regulärer Datenstrom oder ein Ständiger-Datenstrom zugeführt werden. Er schickt die gleichen Botschaften an den Datenstrom, unabhängig davon, was für ein Datenstrom sie empfängt. Da Ständige-Datenströme auf gleiche Weise auf Open-, Get-, Close- und Delete-Botschaften reagieren wie normale Datenströme, ist die Art des Stroms für den Anwender des Datenstroms völlig codeunabhängig, wodurch vermieden wird, daß der Programmcode für unterschiedliche Datenguellentypen mehrfach geschrieben werden muß.

Claims (16)

1. Ein Prozeß zur Handhabung zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem, das umfaßt:
eine Datenspeichervorrichtung (Fig. 4, 14),
eine Datenbank mit Datenobjekten, die in der Datenspeichervorrichtung abgespeichert sind,
einen Datenprozessor (Fig. 4, 11), der mit der Datenspeichervorrichtung verbunden ist, und
eine objekt-orientierte Datenbankverwaltung (Fig. 4, 12), die in dem Datenprozessor arbeitet, um Abfragen nach den Datenobjekten in der Datenbank durchzuführen,
wobei dieser Prozeß dadurch gekennzeichnet ist, daß er die folgenden Schritte umfaßt:
Vorsehen einer Datenstromklasse von Objekten enthaltend eine Vielzahl von Datenstromklasse-Attributen und wenigstens eine Datenstromklassemethode, die die Operationen definiert, die an den Objekten als Reaktion auf die Abfrage ausgeführt werden können, wobei die Datenstrom klasse-Attribute eine Liste von Datenobjekten enthalten, die sich aus einer Abfrage ergeben, die von der objektorientierten Datenbankverwaltung durchgeführt wurde,
Vorsehen einer ständigen Datenstromklasse von Objekten, die als Unterklasse der Datenstromklasse organisiert ist, um dabei die Datenstromklasse-Attribute und die wenigstens eine Datenstromklassemethode zu übernehmen, und eine Vielzahl ständiger Datenstromklasse-Attribute und wenigstens eine ständige Datenstromklassemethode enthält, und diese ständigen Datenstromklasse-Attribute ferner eine Liste mit Abfragekriterien für eine Abfrage enthalten, die wenigstens eine ständige Datenstromklassemethode und wenigstens eine Methode zum Erzeugen und Speichern ständiger Objekte in der Datenspeichervorrichtung und zum Sichern der Liste der Datenobjekte, die sich aus einer Abfrage ergeben, die durch die objektorientierte Datenbankverwaltung in der Datenspeichervorrichtung durchgeführt wurde, enthält.
2. Der Prozeß gemäß Anspruch 1, dadurch gekennzeichnet, daß diese Sicherungsmethode die folgenden Schritte durchführt:
Zuweisen einer Speicherstelle in der Datenspeichervorrichtung zum dort Sichern der Liste der sich aus einer Abfrage ergebenden Datenobjekte,
Gewinnen der Liste der sich aus einer Abfrage ergebenden Datenobjekte, und
Sichern der Liste der sich aus einer Abfrage ergebenden Datenobjekte an der zugewiesenen Stelle, und
Anzeigen, daß die Liste der sich aus einer Abfrage ergebenden Datenobjekte gewonnen und gesichert ist.
3. Der Prozeß gemäß Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die ständigen Datenstromklasse-Attribute ferner ein erstes Kennzeichen dafür, ob die Liste der sich aus einer Abfrage ergebenden Datenobjekte, in der Datenspeichervorrichtung gesichert wurden, und ein zweites Kennzeichen für die Stelle in der Speichervorrichtung, an der die Liste der sich aus einer Abfrage ergebenden Datenobjekte gesichert wurde, umfassen, wobei der Anzeigeschritt die Schritte Setzen des ersten Kennzeichens und Einsetzen der zugewiesenen Stelle in das zweite Kennzeichnen enthalten.
4. Der Prozeß gemäß Anspruch 2, dadurch gekennzeichnet, daß dieser Schritt des Gewinnens folgende Schritte umfaßt:
der Reihe nach Gewinnen jedes sich aus der Abfrage ergebenden Datenobjekts in der Datenbank, und
Sichern jedes sich aus der Abfrage ergebenden Datenobjekts in der Datenbank an der zugewiesenen Stelle in der Datenspeichervorrichtung.
5. Der Prozeß gemäß Anspruch 1, dadurch gekennzeichnet, daß er ferner folgende Schritte umfaßt:
Übernehmen einer Abfrage, die in der Datenbank der Datenobjekte durchzuführen ist,
Bestimmen, ob eine übernommene Abfrage gesichert werden soll,
Senden einer Abfragemeldung an das ständige Datenstrom klasseobjekt, wenn eine übernommene Abfrage gesichert werden soll, und
Senden einer Abfrageneldung an die Datenstromklasse, wenn eine übernommene Abfrage nicht gesichert werden soll.
6. Der Prozeß gemäß Anspruch 5, dadurch gekennzeichnet, daß der Schritt des Bestimmens die folgenden Schritte umfaßt:
Übernehmen einer Anzeige, daß eine übernommene Abfrage unverzüglich auszuführen ist, und
Bestimmen, daß eine übernommene Abfrage nicht gesichert werden soll, wenn sie unverzüglich auszuführen ist.
7. Der Prozeß gemäß Anspruch 6, dadurch gekennzeichnet, daß der Schritt des Bestimmens die folgenden Schritte umfaßt:
Übernehmen einer Anzeige, daß eine übernommene Abfrage wiederzuverwenden ist, und
Bestimmen, daß eine übernommene Abfrage zu sichern ist, wenn die übernommene Abfrage wiederzuverwenden ist.
8. Der Prozeß gemäß Anspruch 5, dadurch gekennzeichnet, daß der Schritt des Bestimmens die folgenden Schritte umfaßt:
Abschätzen der für die Bearbeitung einer übernommenen Abfrage erforderlichen Zeit, und
Bestimmen, daß eine übernommene Abfrage zu sichern ist, wenn die geschätzte Bearbeitungszeit eine vorgegebene Zeitspanne überschreitet.
9. Eine Vorrichtung zum Behandeln zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem, enthaltend:
eine Datenspeichervorrichtung (Fig. 4, 14),
eine Datenbank mit Datenobjekten, die in der Datenspeichervorrichtung abgespeichert sind,
einen Datenprozessor (Fig. 4, 11), der mit der Datenspeichervorrichtung verbunden ist, und
eine objekt-orientierte Datenbankverwaltung (Fig. 4, 12), die in dem Datenprozessor arbeitet, um Abfragen der Datenbank der Datenobjekte durchzuführen, wobei die Datenbankverwaltung eine Datenstromklasse von Objekten umfaßt, die eine Vielzahl von Datenstromklasse-Attributen und wenigstens eine Datenstromklassemethode beinhaltet, die die Operationen definiert, die als Reaktion auf die Abfrage an den Objekten ausgeführt werden können, wobei die Datenstromklasse-Attribute eine Liste von Datenobjekten beinhalten, die sich aus einer Abfrage ergeben, die von der objekt-orientierten Datenbankverwaltung durchgeführt wird,
wobei diese Vorrichtung dadurch gekennzeichnet ist, daß die objekt-orientierte Datenbankverwaltung eine ständige Datenstromklasse von Objekten beinhaltet, wobei diese ständige Klasse von Objekten umfaßt:
eine Vielzahl ständiger Datenstromklasse-Attribute und wenigstens eine ständige Datenstromklassemethode, und diese ständige Datenstromklasse als Unterklasse der ständigen Datenstromklasse organisiert ist um dadurch die Datenstromklasse-Attribute zu übernehmen, die ständigen Datenstromklasse-Attribute dabei ferner eine Liste der Abfragekriterien für eine Abfrage enthalten und die wenigstens eine ständige Datenstromklassemethode ferner eine Sicherungsmethode zum Erzeugen und Abspeichern eines ständigen Objekts in der Datenspeichervorrichtung und zum Sichern der Liste der sich aus einer Abfrage ergebenden Datenobjekte enthält, die aus einer durch die objektorientierte Datenbankverwaltung in der Datenspeichervorrichtung durchgeführten Abfrage entstehen.
10. Die Vorrichtung gemäß Anspruch 9, dadurch gekennzeichnet, daß die Sicherungsmethode umfaßt:
Mittel zum Zuweisen einer Speicherstelle in der Speichervorrichtung zum dort Sichern der Liste der sich aus einer Abfrage ergebenden Datenobjekte,
Mittel zum Gewinnen der Liste der sich aus einer Abfrage ergebenden Datenobjekte, und
Mittel zum Sichern der Liste der sich aus einer Abfrage ergebenden Datenobjekte an der zugewiesenen Stelle, und
Mittel zum Anzeigen, daß die Liste der sich aus einer Abfrage ergebenden Datenobjekte aufgestellt und gesichert ist.
11. Die Vorrichtung gemäß Anspruch 9 oder Anspruch 12, dadurch gekennzeichnet, daß diese ständigen Datenstromklasse-Attribute ferner ein erstes Kennzeichen dafür, ob die Liste der sich aus einer Abfrage ergebenden Datenobjekte an der Datenspeicherstelle gesichert wurden, und ein zweites Kennzeichen für die Stelle in der Speichervorrichtung, an der die Liste der sich aus einer Abfrage ergebenden Datenobjekte gesichert wurde, umfassen.
12. Die Vorrichtung gemäß Anspruch 10, dadurch gekennzeichnet, daß die Mittel zum Gewinnen umfassen
Mittel zum seriellen Gewinnen jedes sich aus der Abfrage ergebenden Datenobjekts in der Datenbank, und
die Mittel zum Sichern Mittel zum Sichern jedes sich aus der Abfrage ergebenden Datenobjekts in der Datenbank an der zugewiesenen Stelle in der Datenspeichervorrichtung beinhalten.
13. Die Vorrichtung gemäß Anspruch 9, dadurch gekennzeichnet, daß die Datenbankverwaltung ferner umfaßt:
Mittel zum Übernehmen einer Abfrage, die an der Datenbank der Datenobjekte durchzuführen ist,
Mittel zum Bestimmen, ob eine übernommene Abfrage gesichert werden soll,
Mittel zum Senden einer Abfragemeldung an das ständigen Datenstromklasseobjekt, wenn eine übernommene Abfrage zu sichern ist, und
Mittel zum Senden einer Abfragemeldung an die Datenstromklasse, wenn eine übergenommene Abfrage nicht gesichert werden soll.
14. Die Vorrichtung gemäß Anspruch 13, dadurch gekennzeichnet, daß die Mittel zum Bestimmen umfassen:
Mittel zur Übernahme einer Anzeige, daß eine übernommene Abfrage unverzüglich auszuführen ist, und
Mittel zum Bestimmen, daß eine übernommene Abfrage nicht zu sichern ist, wenn die übernommene Abfrage unverzüglich auszuführen ist.
15. Die Vorrichtung gemäß Anspruch 13, dadurch gekennzeichmet, daß die Mittel zum Bestimmen umfassen:
Mittel zur Übernahme einer Anzeige, daß die übernommene Abfrage wiederzuverwenden ist, und
Mittel zum Bestimmen, daß eine übernommene Abfrage zu sichern ist, wenn die übernommene Abfrage wiederzuverwenden ist.
16. Die Vorrichtung gemäß Anspruch 13, dadurch gekennzeichnet, daß die Mittel zum Bestimmen umfassen:
Mittel zum Abschätzen der für die Bearbeitung einer übernommenen Abfrage erforderlichen Zeit, und
Mittel zum Bestimmen, daß eine übernommene Abfrage zu sichern ist, wenn die geschätzte Bearbeitungszeit eine vorgegebene Zeitspanne überschreitet.
DE69030551T 1989-10-23 1990-09-04 Prozess und Gerät zur Handhabung zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem Expired - Lifetime DE69030551T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/425,747 US5161225A (en) 1989-10-23 1989-10-23 Persistent stream for processing time consuming and reusable queries in an object oriented database management system

Publications (2)

Publication Number Publication Date
DE69030551D1 DE69030551D1 (de) 1997-05-28
DE69030551T2 true DE69030551T2 (de) 1997-11-13

Family

ID=23687851

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69030551T Expired - Lifetime DE69030551T2 (de) 1989-10-23 1990-09-04 Prozess und Gerät zur Handhabung zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem

Country Status (4)

Country Link
US (1) US5161225A (de)
EP (1) EP0425412B1 (de)
JP (1) JPH0792778B2 (de)
DE (1) DE69030551T2 (de)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH047640A (ja) * 1990-04-25 1992-01-13 Hitachi Ltd クラス継承解決処理方法
US5412774A (en) * 1990-08-29 1995-05-02 At&T Corp. Apparatus for and method of displaying a data item of a database using the display function of a selected data item
US5291593A (en) 1990-10-24 1994-03-01 International Business Machines Corp. System for persistent and delayed allocation object reference in an object oriented environment
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
US5822590A (en) * 1991-10-31 1998-10-13 Texas Instruments Incorporated dbX: a persistent programming language model
US5805885A (en) 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
JPH06214865A (ja) * 1993-01-12 1994-08-05 Fujitsu Ltd オブジェクト・ベース・データ処理装置
US5437025A (en) * 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5497491A (en) * 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5613099A (en) * 1993-02-17 1997-03-18 International Business Machines Corporation Persistent object storage system with modifiable group skeletal formats
US5446903A (en) * 1993-05-04 1995-08-29 International Business Machines Corporation Method and apparatus for controlling access to data elements in a data processing system based on status of an industrial process by mapping user's security categories and industrial process steps
US5911138A (en) * 1993-06-04 1999-06-08 International Business Machines Corporation Database search facility having improved user interface
US5608899A (en) * 1993-06-04 1997-03-04 International Business Machines Corporation Method and apparatus for searching a database by interactively modifying a database query
US5797007A (en) * 1993-06-14 1998-08-18 International Business Machines Corporation Persistent object storage system with default object encoder/decoder
US6567838B1 (en) * 1993-07-13 2003-05-20 International Business Machines Corporation Method, system and program for executing a predicted operation in a computer system after a predetermined period elapses since a user activity
JP2986051B2 (ja) * 1993-08-04 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US5473741A (en) * 1993-08-30 1995-12-05 Graphic Systems Technology, Inc. Method for determining the time to perform raster image processing
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5623657A (en) * 1993-12-30 1997-04-22 International Business Machines Corporation System for processing application programs including a language independent context management technique
EP0667586A3 (de) * 1994-02-14 1996-08-28 Digital Equipment Corp System zur Erzeugung von Datenbanken.
US5467472A (en) * 1994-04-15 1995-11-14 Microsoft Corporation Method and system for generating and maintaining property sets with unique format identifiers
US6301581B1 (en) * 1994-08-01 2001-10-09 Texas Instruments Incorporated Method and system for managing access to a plurality of data objects
US5592600A (en) * 1994-09-27 1997-01-07 International Business Machines Corporation Animated display showing execution of object-oriented programs
US5542078A (en) * 1994-09-29 1996-07-30 Ontos, Inc. Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US5680615A (en) * 1994-11-04 1997-10-21 International Business Machines Corporation Desktop management of host applications
EP0823092A1 (de) 1995-04-24 1998-02-11 Aspect Development, Inc. Modellierung von objekt-orientierten datenbankstrukturen, übersetzung in relationelle datenbankstrukturen und dynamische wiederauffindung damit
US5710917A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for deriving data mappings and data aliases
US5732263A (en) * 1995-10-03 1998-03-24 International Business Machines Corporation Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time
US5822587A (en) * 1995-10-20 1998-10-13 Design Intelligence, Inc. Method and system for implementing software objects
US5809506A (en) * 1996-01-22 1998-09-15 International Business Machines Corporation Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto
US6269407B1 (en) 1996-03-14 2001-07-31 International Business Machines Corporation Method and system for data filtering within an object-oriented data
US5715413A (en) * 1996-06-25 1998-02-03 International Business Machines Corporation Dragging and dropping with an instantiation object
US6012081A (en) * 1996-07-03 2000-01-04 Siemens Aktiengesellschaft Service and event synchronous/asynchronous manager
US6275871B1 (en) 1996-07-03 2001-08-14 Siemens Aktiengesellschaft Asynchronous transport optimizing observer-pattern-like system supporting several modes for an interface definition language-less communication subsystem
US5813014A (en) * 1996-07-10 1998-09-22 Survivors Of The Shoah Visual History Foundation Method and apparatus for management of multimedia assets
US6434567B1 (en) * 1996-07-30 2002-08-13 Carlos De La Huerga Method for specifying enterprise-wide database address formats
US5897632A (en) * 1996-08-27 1999-04-27 At&T Corp Method and system for using materialized views to evaluate queries involving aggregation
US5765163A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for using queryable persistent identifiers to locate data for datastore persistent objects in non-object-oriented datastores
US5809509A (en) * 1996-10-25 1998-09-15 International Business Machines Corporation Method for using a non-object-oriented datastore as a generic persistent datastore for persistent objects
US5765161A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for encapsulating data from non-object-oriented datastores as datastore persistent objects
US5799313A (en) * 1996-10-25 1998-08-25 International Business Machines Corporation Framework for object-oriented access to non-object-oriented datastores
US5737598A (en) * 1996-10-25 1998-04-07 International Business Machines Corporation Method for capturing and cataloging specifications for datastore persistent classes
US5809508A (en) * 1996-10-25 1998-09-15 International Business Machines Corporation Method for capturing and cataloging datastore characteristics to define datastore persistent objects
US5761671A (en) * 1996-10-25 1998-06-02 International Business Machines Corporation Method for interfacing queryable datestore persistent objects to non-relational, non-object-oriented datastores
US5778379A (en) * 1996-10-25 1998-07-07 International Business Machines Corporation Query syntax for accessing non-relational, non-object-oriented datastores
US5778358A (en) * 1996-10-25 1998-07-07 International Business Machines Corporation Query parser for accessing non-relational, non-object-oriented datastores
US5765162A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for managing queryable datastore persistent objects and queryable datastore collections in an object-oriented environment
US5787436A (en) * 1996-10-25 1998-07-28 International Business Machines Corporation Method for using a datastore cursor for the incremental presentation of query results when traversing implied collections in non-object-oriented datastores
US5794247A (en) * 1996-10-25 1998-08-11 International Business Machines Corporation Method for representing data from non-relational, non-object-oriented datastores as queryable datastore persistent objects
US5764979A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for capturing and cataloging program characteristics for the usage of datastore persistent classes
US5781907A (en) * 1996-10-25 1998-07-14 International Business Machines Corporation Method for the incremental presentation of non-object-oriented datastores using an object-oriented queryable datastore collection
US5737597A (en) 1996-10-25 1998-04-07 International Business Machines Corporation Method for cataloging datastore characteristics and defining and generating datastore persistent objects
US5794248A (en) * 1996-10-25 1998-08-11 International Business Machines Corporation Method for representing non-object-oriented datastores using a collection of collections data model
US5937402A (en) * 1997-06-19 1999-08-10 Ontos, Inc. System for enabling access to a relational database from an object oriented program
US6076092A (en) * 1997-08-19 2000-06-13 Sun Microsystems, Inc. System and process for providing improved database interfacing using query objects
US6728699B1 (en) * 1997-09-23 2004-04-27 Unisys Corporation Method and apparatus for using prior results when processing successive database requests
US6128622A (en) * 1997-11-26 2000-10-03 International Business Machines Corporation IMS web studio taskguide
US6128611A (en) * 1998-04-30 2000-10-03 International Business Machines Corporation Internet-enabled generic application program for accessing hierarchical data
US6202069B1 (en) 1998-04-30 2001-03-13 International Business Machines Corporation Execution paradigm for accessing hierarchical data using an object framework
US6128619A (en) * 1998-04-30 2000-10-03 International Business Machines Corporation Generating an internet application for accessing a hierarchical database
US6529914B1 (en) 1998-04-30 2003-03-04 International Business Machines Corporation Object-oriented programming model for accessing hierarchical databases
US6360229B2 (en) 1998-04-30 2002-03-19 International Business Machines Corporation Generic execution model for isolating applications from underlying databases
US6430571B1 (en) 1998-07-16 2002-08-06 International Business Machines Corporation Multi-frame output form that facilitates internet search and update in a hierarchical database
US6141660A (en) * 1998-07-16 2000-10-31 International Business Machines Corporation Command line interface for creating business objects for accessing a hierarchical database
US6769124B1 (en) * 1998-07-22 2004-07-27 Cisco Technology, Inc. Persistent storage of information objects
US6505211B1 (en) 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US6584464B1 (en) 1999-03-19 2003-06-24 Ask Jeeves, Inc. Grammar template query system
US6466931B1 (en) 1999-07-30 2002-10-15 International Business Machines Corporation Method and system for transparently caching and reusing query execution plans efficiently
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
AU3638401A (en) * 1999-11-01 2001-05-14 Ita Software, Inc. Method and apparatus for providing availability of airline seats
WO2001071492A1 (en) * 2000-03-20 2001-09-27 Net Magic T:Mi Method and system for data management in an object-oriented system
US7216085B1 (en) * 2000-07-13 2007-05-08 Ita Software, Inc. Competitive availability tools
EP1199645A1 (de) * 2000-10-16 2002-04-24 Helde Enterprises Limited Informationssystem unter Berücksichtigung von Bewertungen
US6912541B1 (en) * 2000-12-01 2005-06-28 Unisys Corporation Method and apparatus for implementing persistent data in object oriented programs
US6633889B2 (en) 2001-01-17 2003-10-14 International Business Machines Corporation Mapping persistent data in multiple data sources into a single object-oriented component
US6901409B2 (en) 2001-01-17 2005-05-31 International Business Machines Corporation Mapping data from multiple data sources into a single software component
US7412457B2 (en) 2001-01-17 2008-08-12 International Business Machines Corporation Mapping data from multiple data sources into a single or multiple reusable software components
US7213013B1 (en) 2001-06-18 2007-05-01 Siebel Systems, Inc. Method, apparatus, and system for remote client search indexing
US7233937B2 (en) 2001-06-18 2007-06-19 Siebel Systems, Inc. Method, apparatus, and system for searching based on filter search specification
US7293014B2 (en) * 2001-06-18 2007-11-06 Siebel Systems, Inc. System and method to enable searching across multiple databases and files using a single search
US7464072B1 (en) 2001-06-18 2008-12-09 Siebel Systems, Inc. Method, apparatus, and system for searching based on search visibility rules
US7546287B2 (en) * 2001-06-18 2009-06-09 Siebel Systems, Inc. System and method to search a database for records matching user-selected search criteria and to maintain persistency of the matched records
US20060184554A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation System and method for extensible metadata architecture for digital images using in-place editing
US7979457B1 (en) * 2005-03-02 2011-07-12 Kayak Software Corporation Efficient search of supplier servers based on stored search results
US20080091733A1 (en) * 2006-10-16 2008-04-17 Scott Shelton Reusable data query language statements
US20090083238A1 (en) * 2007-09-21 2009-03-26 Microsoft Corporation Stop-and-restart style execution for long running decision support queries
US20090100091A1 (en) * 2007-10-15 2009-04-16 Srikanth Chandru Method and system for providing a process object framework for processing a request-type process
US8069172B2 (en) * 2008-11-05 2011-11-29 Oracle International Corporation Re-executing query objects without affecting transaction data in an application development framework not providing for creation of multiple instances of the same query object
US20110219037A1 (en) * 2010-03-04 2011-09-08 Src, Inc. High-Performance Persistence Framework
CN102455902B (zh) * 2010-10-29 2015-09-16 国际商业机器公司 用于对象持久化的方法以及计算机系统
US20140222885A1 (en) * 2013-02-04 2014-08-07 Uni-B Solutions Llc System for real-time data processing
DE102015117668B4 (de) * 2015-10-16 2017-10-26 Frank Sax Verfahren zur Ablage von Daten und zur Abfrage derselben

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509119A (en) * 1982-06-24 1985-04-02 International Business Machines Corporation Method for managing a buffer pool referenced by batch and interactive processes
US4506326A (en) * 1983-02-28 1985-03-19 International Business Machines Corporation Apparatus and method for synthesizing a query for accessing a relational data base
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
US4604686A (en) * 1984-01-27 1986-08-05 Martin Marietta Corporation Associative data access method (ADAM) and its means of implementation
US4642762A (en) * 1984-05-25 1987-02-10 American Chemical Society Storage and retrieval of generic chemical structure representations
US4791550A (en) * 1985-02-13 1988-12-13 Rational Higher order language-directed computer
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US4747072A (en) * 1985-08-13 1988-05-24 Fairchild Camera And Instrument Corporation Pattern addressable memory
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4841433A (en) * 1986-11-26 1989-06-20 American Telephone And Telegraph Company, At&T Bell Laboratories Method and apparatus for accessing data from data attribute tables
US4811199A (en) * 1987-05-08 1989-03-07 Kuechler William L System for storing and manipulating information in an information base
US4866634A (en) * 1987-08-10 1989-09-12 Syntelligence Data-driven, functional expert system shell
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system

Also Published As

Publication number Publication date
DE69030551D1 (de) 1997-05-28
EP0425412B1 (de) 1997-04-23
JPH0792778B2 (ja) 1995-10-09
EP0425412A2 (de) 1991-05-02
EP0425412A3 (en) 1993-04-21
US5161225A (en) 1992-11-03
JPH03138734A (ja) 1991-06-13

Similar Documents

Publication Publication Date Title
DE69030551T2 (de) Prozess und Gerät zur Handhabung zeitaufwendiger und wiederverwendbarer Abfragen in einem objekt-orientierten Datenbankverwaltungssystem
DE69032390T2 (de) Verfahren und Vorrichtung zur Handhabung eines unbegrenzten Datenstromes in einem objektorientierten Programmiersystem
DE69032389T2 (de) Prozess und Gerät zur Erhaltung der Datenintegrität einer Datenbank
DE69425548T2 (de) Verfahren und Vorrichtung zur dynamischen Objektverbindungserzeugung
DE69425699T2 (de) Integrierung von Systemverwaltungsdiensten mit einem unterliegenden Systemobjektmodell
DE69130028T2 (de) Hierarchische Prozessablaufsteuerung zwischen Fenstern
DE69617511T2 (de) Verfahren und Gerät zum Verwalten von Objekten in einer verteilten Objektbetriebsumgebung
DE69426446T2 (de) Modellsystem zur informationskontrolle
DE69533786T2 (de) Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren
DE69533530T2 (de) Verfahren und System zur dynamischen Aggregation von Objekten
DE69131745T2 (de) Verfahren und Gerät zum Verschaffen einer Kundenschnittstelle zu einem objektorientierten Aufruf eines Anwendungsprogramms
DE69131245T2 (de) Verfahren und Gerät zum Verschaffen von dynamischen Aufrufen von Anwendungsprogrammen in einer verteilten heterogenen Umgebung
DE69229453T2 (de) Verfahren und Anordnung zum Zugriff auf eine relationelle Datenbank, ohne eine objektorientierte Umgebung verlassen zu müssen
DE69230842T2 (de) Verfahren und Gerät zur Verwaltung von erweiterbaren Verbindungen zwischen Anwendungsprogrammen
DE69516727T2 (de) Verfahren und system um auf daten zuzugreifen
DE69606184T2 (de) Klient-server-brücke
DE3855475T2 (de) Software-Verwaltungsstruktur
DE69425318T2 (de) Verfahren und System für Fernausführung von Codes
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE69617509T2 (de) Vorrichtung und Verfahren zur Feststellung von Objekttypen in einem verteilten Objektsystem
DE19782227B4 (de) Verfahren zum Verteilen von Indexdaten unter einer Mehrzahl vernetzter Knoten und System zum Verwalten eines Index
DE69601149T2 (de) Systen und Verfahren zum Implementieren einer hierarchischen Politik für die Administration eines Computersystems
DE69509118T2 (de) Implementierungsunabhängige erweiterbare abfragearchitektur für systeme zur informationswiederauffindung
DE69818135T2 (de) Verfahren zum Zugriff auf Datenbankinformation
DE69519904T2 (de) Verfahren und Vorrichtung zur Bereitstellung einer zusammenhängenden Navigation in historischen Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)