AT1104U1 - METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE - Google Patents

METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE Download PDF

Info

Publication number
AT1104U1
AT1104U1 AT51795U AT51795U AT1104U1 AT 1104 U1 AT1104 U1 AT 1104U1 AT 51795 U AT51795 U AT 51795U AT 51795 U AT51795 U AT 51795U AT 1104 U1 AT1104 U1 AT 1104U1
Authority
AT
Austria
Prior art keywords
database
objects
description
class
persistent
Prior art date
Application number
AT51795U
Other languages
German (de)
Inventor
Annemarie Mag Schallhart
Karin Dipl Ing Dienstl
Original Assignee
Siemens Ag Oesterreich
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 Siemens Ag Oesterreich filed Critical Siemens Ag Oesterreich
Priority to AT51795U priority Critical patent/AT1104U1/en
Publication of AT1104U1 publication Critical patent/AT1104U1/en

Links

Description

       

   <Desc/Clms Page number 1> 
 



  Verfahren zur Speicherung persistenter Objekte von objektorientierten Anwenderprogrammen in einer   relationalen   Datenbank. 



  Die Erfindung betrifft ein Verfahren zur Speicherung persistenter Objekte von objektorientierten Anwenderprogrammen in einer   relationalen   Datenbank. 



  Objektorientierte Programme stützen sich auf Objekte bzw. Objektgeflechte, das sind komplexe vernetzte Datenstrukturen. Der Inhalt mancher dieser Objekte oder Objektgeflechte muss über die Ablaufdauer eines Programms hinaus erhalten bleiben, das zugehörige Objekt oder Objektgeflecht wird dann als "persistent" bezeichnet. Für die Speicherung persistenter Objekte kommen grundsätzlich Dateien-sogenannte flat files-, objektorientierte Datenbanken oder   relationale   Datenbanken in Frage. 



  Dateien sind für die Speicherung allerdings nicht in jedem Fall geeignet. 



  Objektorientierte Datenbanken sind erst seit kurzem auf dem Markt verfügbar und genügen daher den hohen Zuverlässigkeitsvorschriften industrieller Anwendungen nicht. Man verwendet daher üblicherweise relationale Datenbanken, die den Vorteil haben, dass erprobte und zuverlässige Standardprodukte mit für den Betrieb ausreichenden Zugriffseiten vorhanden sind. 



  Die Zuordnung persistenter Objektstrukturen zu den einfachen Tabellen einer relationalen Datenbank ist jedoch eine komplexe Aufgabe, die aufwendige und kostenintensive Entwicklungen erfordert 

 <Desc/Clms Page number 2> 

 Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren anzugeben, mit dem auf einfache Weise die Verbindung zwischen beliebigen objektorientierten Anwenderprogrammen und relationalen Datenbanken hergestellt werden kann Dies geschieht   erfindungsgemäss   mit dem Verfahren nach Anspruch 1. 



  Mit der erfindungsgemässen Programmlogik werden Zugriffs- und Speichermethoden für die persistenten Objekte der Anwendung bereitgestellt, sodass eine einfache Handhabung durch die Anwenderprogramme gewahrleistet ist. 



  So werden sämtliche objektmodellabhängigen Methoden für den Zugriff auf die Datenbank automatisch generiert. Durch die Ausnutzung spezieller Eigenschaften von relationalen Datenbanksystemen können auch kurze Datenbankzugriffszeiten gewährleistet werden. Es liegt ein beliebig granulares Sperrkonzept vor ; es können sowohl Einzelobjekte als auch Objektmengen zum Zeitpunkt des Auslesen aus der relationalen Datenbank gesperrt werden. 



  Sowohl Datenbank-Sessions als auch Datenbank-Transaktionen können logisch geschachtelt werden. Objektmengen können in Blöcken schrittweise aus der Datenbank gelesen werden. Die Blockgrösse kann   vorrAnwender   definiert werden. Innerhalb von Objektmengen kann beliebig (vorwärts, rückwärts, absolut, first, last) positioniert werden. Die Positionierung kann blockweise oder Objekt für Objekt erfolgen. Das Anwendungsprogramm kann durch Nutzung der vorhandenen Tuningfeatures die Zugriffszeiten auf seine persistenten Objekte beeinflussen. 



  Die Erfindung wird anhand einer Figur näher erläutert, welche beispielhaft ein Struktogramm der erfindungsgemässen Programmlogik zeigt. 



  Das dargestellte Ausführungsbeispiel betrifft ein objektonentiertes Computerprogramm zur Verwaltung einer Bibliothek. 



  Basis eines objektonentlerten Programmes sind Objekte Diesen Objekten   konnen   sowohl Daten (= Attribute) als auch Operationen (= Methoden) 

 <Desc/Clms Page number 3> 

 zugeordnet werden. Weiters können zwischen den Objekten verschiedene Arten von Beziehungen (Vererbung, Points-to-Beziehung, ContainmentBeziehung) bestehen. Die Beschreibung der Objekte inkl. aller ihrer Eigenschaften erfolgt in Form von Klassendefinitionen, eine Klasse ist also die allgemeine Beschreibung eines Objekts. 



  Im vorliegenden Beispiel können von den Bibliotheksmitgliedern Bücher und   CD's     ausgeliehen   werden. Die Bibliotheksmitglieder werden daher mit ihren für die vorliegende Aufgabe relevanten Eigenschaften In der Objektklasse   "Mitglied" erfasst,   Bücher und   CD's   werden hinsichtlich ihrer gemeinsamen Eigenschaften in der abstrakten   Superklasse "entlehnbarer Gegenstand"und   in den konkreten   Blattklassen "Buch"und"CD"erfasst.   Die Eigenschaften der Superklasse werden über Vererbung an die   Blattklassen   weitergegeben. 



  Die einfachen Attribute der genannten Klassen, welche den Eigenschaften der erfassten Objekte entsprechen, werden in der folgenden Tabelle dargestellt. 
 EMI3.1 
 
<tb> 
<tb> 



  Mitglied <SEP> Entlehnbarer <SEP> Gegenstand
<tb> Mitgliedsnummer <SEP> Kennung
<tb> Nachname <SEP> Titel
<tb> Vorname <SEP> Herausgeber
<tb> Geburtsjahr <SEP> Regalnummer
<tb> CD <SEP> Buch <SEP> 
<tb> Komponist <SEP> Autor
<tb> Interpret
<tb> 
 Entlehnungen werden als 1 : n Beziehungen zwischen Mitgliedern und entlehnbaren Gegenständen abgebildet. 



  Erfindungsgemäss werden nun die Objektklassen mittels vorgegebener   Schlusseiwörter hinsichtlich   ihrer persistenten und translenten Eigenschaften und Beziehungen beschrieben Im folgenden eine Beschreibung der Klassen des   Ausfuhrungsbelsplels   

 <Desc/Clms Page number 4> 

   #MODULE¯SECTION #VERSION&commat;(#) Mitglied M, /main/1, NO¯LABELS;   Mon, 03. 07. 95, 14 : 15 :

   51 &num;DATUM 03. 07. 95 &num;KOMPONENTE BIB &num;KENNUNG M &num;AUTOR1 Schallhart   #AUTOR2   &num;HISTORIE   &num;END¯MODULE¯SECTION &num;INCLUDE¯SECTION #include < DbRoot.H > #END¯INCLUDE¯SECTION #CLASS¯SECTION   &num;CLASS Mitglied &num;LEVEL Conceptual &num;SUPER DbRoot &num;OBJECTNAME ein &num;DESCRIPTION &num;USES &num;FLAGS concrete &num;STATES   &num;ATTRIBUTES #ATTRIBUTE mitgliedsNr &num;DOMAIN Int #ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent &num;ATTRIBUTE nachname   #DOMAIN   Stnng25 
 EMI4.1 
    &num;ATTRIBUTE¯DESCRIPTION&num;ATTRIBUTE¯FLAGS   protected persistent   #ATTRIBUTE vomame   &num;DOMAIN String25   &num;ATTRIBUTE¯DESCRIPTION      &num;

  ATTRIBUTE¯FLAGS   protected persistent   &num;ATTRIBUTE   geburtsjahr &num;DOMAIN Short   &num;ATTRIBUTE¯DESCRIPTION   
 EMI4.2 
   entlehnungen &num;MULTIVALUED&num;ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent &num;METHODS &num;METHOD   #END¯CLASS¯SECTION   

 <Desc/Clms Page number 5> 

   #MODULE¯SECTION #VERSION &commat;(#) EntlehnbarerGegenstand.M., /main/1; NO¯LABELS,   Mon, 03. 07. 95, 14 : 16 : 40 &num;DATUM 03. 07. 95 &num;KOMPONENTE BIB &num;KENNUNG E &num;AUTOR1 Schallhart   &num;AUTOR2   &num;HISTORIE   &num;END¯MODULE¯SECTION &num;INCLUDE¯SECTION     #include   < DbRoot.

   H >   &num;END¯INCLUDE¯SECTION &num;CLASS¯SECTION #CLASS EntlehnbarerGegenstand   &num;LEVEL Conceptual &num;SUPER DbRoot &num;OBJECTNAME ein   &num;DESCRIPTION   &num;USES &num;FLAGS abstract &num;STATES   &num;ATTRIBUTES   &num;ATTRIBUTE id   #DOMAIN Int &num;ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent   &num;ATTRIBUTE titel #DOMAIN String100 &num;ATTRIBUTE¯DESCRIPTION     #ATTRIBUTE¯FLAGS   protected persistent   &num;ATTRIBUTE   herausgeber &num;DOMAIN String60   &num;ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent   #ATTRIBUTE regalNr   &num;DOMAIN Short   &num;

  ATTRIBUTE¯DESCRIPTION     #ATTRIBUTE¯FLAGS   protected persistent &num;METHODS   &num;METHOD. 



  #END¯CLASS¯SECTION   
 EMI5.1 
   &commat;(&num;) Buch. M,/main/l, NO-LABELS ; Mon, 03. 07. 95, 14 16 57&num;DATUM 030795   &num;KOMPONENTE BIB &num;KENNUNG B 

 <Desc/Clms Page number 6> 

 &num;AUTOR1 Schallhart   #AUTOR2   &num;HISTORIE   &num;END¯MODULE¯SECTION &num;INCLUDE¯SECTION    &num;include    < EntlehnbarerGegenstand.

   H >      #END¯INCLUDE¯SECTION   
 EMI6.1 
   &num;#CLASS Buch   &num;LEVEL Conceptual &num;SUPER EntlehnbarerGegenstand &num;OBJECTNAME ein   &num;DESCRIPTION   &num;USES &num;FLAGS concrete &num;STATES   &num;ATTRIBUTES     &num;ATTRIBUTE   autor 
 EMI6.2 
   Strin#ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent &num;METHODS   &num;METHOD... 



  #END¯CLASS¯SECTION   
 EMI6.3 
   SECTION&num;DATUM 03. 07. 95    &num;KOMPONENTE BIB &num;KENNUNG C &num;AUTOR1   Schailhart     &num;AUTOR2   &num;HISTORIE   &num;END¯MODULE¯SECTION #INCLUDE¯SECTION   &num;include    < EntlehnbarerGegenstand.

   H >      &num;END¯INCLUDE¯SECTION #CLASS¯SECTION   &num;CLASS CD &num;LEVEL Conceptual   #SUPER EntlehnbarerGegenstand   &num;OBJECTNAME eine   &num;DESCRIPTION   &num;USES &num;FLAGS concrete &num;STATES 

 <Desc/Clms Page number 7> 

   &num;ATTRIBUTES     &num;ATTRIBUTE   komponist &num;DOMAIN Stnng40   #ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent   &num;ATTRIBUTE interpret #DOMAIN String40 &num;ATTRIBUTE¯DESCRIPTION     &num;ATTRIBUTE¯FLAGS   protected persistent &num;METHODS   &num;METHOD... 



  &num;END¯CLASS¯SECTION   Aus dieser Beschreibung 1 (Klassen-Template) werden durch Aufruf eines Template-Umsetzer-Modules 2 einerseits Datenfiles 3 mit Persistenzinformation entsprechend den im folgenden angeführten 
 EMI7.1 
 



   CLASS Mitglied
ATTRIBUTE Int mitgliedsNr
ATTRIBUTE String25 nachname
ATTRIBUTE String25 vomame
ATTRIBUTE Short geburtsjahr
REFERS EntlehnbarerGegenstand entlehnungen    MULTIVALUED  
ENDCLASS   EntlehnbarerGegenstand. dat :    
 EMI7.2 
   CLASS EntlehnbarerGegenstandATTRIBUTE String100 titel   
ATTRIBUTE String60 herausgeber
ATTRIBUTE Short   regalNr  
ENDCLASS 
Buch dat. 



   CLASS Buch : EntlehnbarerGegenstand
ATTRIBUTE String40 autor
ENDCLASS 
CD. dat :
CLASS CD : EntlehnbarerGegenstand
ATTRIBUTE String40 komponist
ATTRIBUTE String40 interpret
ENDCLASS und Zusatzfiles 4 mit   programmiersprachenspezifischer Information genenert   

 <Desc/Clms Page number 8> 

 Die programmiersprachenspezifische Klassendeklaration im   ZusatzFile   4 enthält sämtliche Attribute und Methoden It. Klassen-Template 1 und zusätzlich die Deklaration (= Schnittstellenbeschreibung) aller klassenspezifischen Persistenz-Methoden. 



  Im folgenden ein Auszug aus dem   C++-Zusatzfe   4 für die Klasse "Mitglied" :    #ifndef¯Mitglied¯h #define¯Mitglied¯h   //------------------------------------------- //Dateiname :Mitglied.H //..... 



    1/Includes   &num;include < DbRoot. H > 
1/Ende Includes 
1/Import class Mitglied ; 
 EMI8.1 
 class   DbContainer (Mitglied) ;   1/Ende Import //Deklarationen class Mitglied : public DbRoot { public :
CREATE (Mitglied) static Db : : ErrorCode lesenObjekte (   DbZeigerListe (Mitglied) & ,    const char*   se) Stat   = 0,
Db::LockType lockMode =   Db : : OBJUNLOCK,   const char* dbTabName = 0,
ListLaenge contGroesse = AKTCONTGROESSE, int anzKeyCont = 0 
 EMI8.2 
 ;Db : : ErrorCode zaehlenObjekte ( int & treffer, const char* = 0,
Db::LevelType levelMode = Db : : SHALLOW 
 EMI8.3 
 



  (
DbContainer(Mitglied) & , const char*   Stat   = 0,
Db : LockType lockMode = Db : : OBJUNLOCK,
ListLaenge contGroesse   = AKTCONTGROESSE,   int anzKeyCont = 0 
 EMI8.4 
 

 <Desc/Clms Page number 9> 

 ;virtual   Db : : ErrorCode lesenObjekt   ( const char* = 0,
Db::LockType lockMode =   Db : : OBJUNLOCK   
 EMI9.1 
    ;Db : : ErrorCode   passivieren (
Db : : LevelType levelMode = Db : : SHALLOW,
Db ::TransTypetransMode=Db::TRANS 
 EMI9.2 
 void setStoreRequestAll (   Db : : StoreType storeMode = Db : : NOREQUEST    
 EMI9.3 
 ( const char* = 0,
DB::LockType lockMode =   Db : :

   OBJUNLOCK   
 EMI9.4 
 ;protected :   Int mitgliedsNr,   
String nachname ;
String   vomame ;  
Short geburtsjahr, 
 EMI9.5 
 (EntlDB::ErrorCodeaendemDb();
DB ::ErrorCodeloeschenDb(); private : 
 EMI9.6 
 ;INSERT (Mitgiied, DbRoot) //EndeDeklarationen //Inlines   #include "mitglied. iC"   //EndeInlines &num;endif 

 <Desc/Clms Page number 10> 

 Die Generierung des Datenbankschemas mittels Datenbankgenerator 5 erfolgt nach den folgenden   Grundsätzen :     *     Für jede Klasse,   die persistente Objekte (=Instanzen) ausbilden kann, wird eine Datenbanktabelle erzeugt. Für abstrakte Klassen (wie z. B. 



   "Entlehnbarer Gegenstand") gibt es keine Entsprechung als Tabelle. 



    Jede Datenbanktabelle erhäít zusÅatzíich   zu den über das Template 1 definierten persistenten Attributen eine erste Spalte zur eindeutigen
Objektidentifikation und eine zweite Spalte zur Prüfung der Objektaktualität bei konkurrierenden Zugriffen. 



    *   Die Vererbung zwischen den Klassen wird im relationalen Datenbanksystem
14 dadurch berücksichtigt, dass geerbte Attribute in der Datenbanktabelle der jeweiligen Blattklasse aufgenommen werden. Die   Tabelle "Buch" enthält   die daher neben der Spalte "Autor" auch die   Spalten "Kennung",'Titel",   "Herausgeber" und"Regalnummer", welche den von der abstrakten
Superklasse "EntlehnbarerGegenstand" geerbten persistenten Attributen entsprechen. 



  Einfache Attribute werden im Datenbanksystem 14 durch genau eine
Datenbankspalte repräsentiert. Dem Attribut "Mitgliedsnummer" entspricht die Datenbankspalte"Mitgliedsnummer". 



  Bei Objekt-Objekt-Beziehungen (Containment- und Points-to-Bezlehungen) handelt es sich um komplexe Attribute. Eingebettete (Containment) und referenzierte (Points-to-Beziehung) Objekte werden in einer eigenen Tabelle der jeweiligen Klasse abgelegt. Die Beziehung als solche wird dann im Datenbanksystem 14 durch   Fremdschlüssel   abgebildet.

   So wird für das komplexe Attribut "Entlehnungen" in den Datenbanktabellen "Buch" und "CD" eine   Spalte "Entlehnungen"gebildet.   Wenn ein Buch oder eine CD ausgeliehen wird, wird in diese Spalte der   Klasse "Buch"oder nCD"der   Wert der ersten Spalte zur Objektidentifikation des jeweiligen Objektes der Klasse Mitglied eingetragen Bel Rückgabe wird der   Fremdschlüssel wieder geloscht.   

 <Desc/Clms Page number 11> 

 Die folgende Tabelle zeigt das Schema der Datenbanktabellen des vorliegenden Ausführungsbeispiels 
 EMI11.1 
 
<tb> 
<tb> Tabellenname <SEP> Mitglied <SEP> Buch <SEP> CD
<tb> erste <SEP> Spalte <SEP> zur <SEP> sysKey <SEP> sysKey <SEP> sysKey
<tb> Objektidentifikat.
<tb> zweite <SEP> Spalte <SEP> zur <SEP> IfNr <SEP> IfNr <SEP> IfNr <SEP> 
<tb> Objektaktualität
<tb> DB-Spafte <SEP> (n)

   <SEP> f.-Kennung <SEP> Kennung
<tb> geerbte <SEP> Attribute <SEP> Titel <SEP> Titel
<tb> Herausgeber <SEP> Herausgeber
<tb> Regalnummer <SEP> Regalnummer
<tb> DB-Spalte <SEP> (n) <SEP> f. <SEP> Mitgliedsnummer <SEP> Autor <SEP> Komponist
<tb> eigene <SEP> Attribute <SEP> Nachname <SEP> Interpret
<tb> Vorname
<tb> Geburtsjahr
<tb> DB-Spalte <SEP> (n) <SEP> für <SEP> - <SEP> Entlehnungen <SEP> Entlehnungen
<tb> Fremdschlüssel
<tb> 
 Über key-files 6 können für persistente Attribute und Attributkombinationen Anwenderschlüssel und-indizes definiert werden, die beim Generierungslauf in das Datenbankschema übernommen werden. 



  Als Beispiel eines key-files 6 :   Mitglied. key-.    



   CLASS Mitglied
KEY mitgliedsNr
ENDCLASS Ausgehend von den Datenfiles 3 und den key-files 6 erzeugt der Datenbankgenerator 5 eine Beschreibung des Datenbankschemas 9 in der Datenbankabfragesprache SQL (SQL-Script). Dieses SQL-Script dient als 

 <Desc/Clms Page number 12> 

 Eingangsinformation für das SQL-Werkzeug 11 des jeweiligen StandardDatenbanksystems, über das die Datenbank 14 erzeugt wird Die Anwenderschnittstelle 12 der erfindungsgemässen Programmlogik stellt sämtliche Methoden für das Persistenz-Handling zur Verfügung. Diese lassen sich in drei Gruppen teilen :   Controler-,     Klassenspezifische-,   und Container-Methoden. 



  Controler-Klassen 10 bieten Methoden für das Öffnen und Schliessen der Datenbank (geschachteltes Sessionhandling), für das Transaktionshandling (Offnen, Commit, Rollback, geschachtelte Transaktionen) und für die Fehlerbehandlung an. 



  Klassenspezifische Methoden 8 werden durch den Datenbankgenerator 5 für jede - über Templates 1 definierte - persistente Klasse von Objekten erzeugt. 



  Dabei werden folgende Funktionsgruppen unterschieden :      Aktivieren (Auslesen aus der Datenbank) Dazu werden Lese- und Dereferenzier-Methoden generiert. Dabei wird das Prinzip der   lazy evaluation verfolgt, d. h. Objektgeflechte   werden Schritt für Schritt aktiviert. 



  Bel Aktivierung eines Objektes werden alle einfachen persistenten Attribute aus der DB ausgelesen. Für die Aktivierung komplexer Attribute werden 
 EMI12.1 
 Durch spezielle   Schlùsselwörte   in der Template-Definition kann die Generierung von Tuningfeatures angefordert werden wie   z. B.   die Zusammenfassung von Datenbankzugriffen, wodurch verminderte Client-ServerKommunikation und Zugriffsoptimierung bel   Points-to-Bezlehungen   erreicht wird 

 <Desc/Clms Page number 13> 

 Bei Aktivierung eines Objektes bzw. eines Objektgeflechtes kann über die Aufrufschnittstelle der Lese- bzw. Dereferenzier-Methode auch eine   Sperrmöglichkeit   mitgeliefert werden. 



    . Passivieren (Insert,   Update und Delete) Für den Schreibvorgang werden Marier- un Passivier-Methoden angeboten. 



  Soll ein Objekt bzw. ein Objektgeflecht passiviert,   d. h   in die Datenbank geschrieben werden, so muss es entsprechend markiert werden. Dabei wird über eine Markier-Methode die Art der Passivierungwünsche   bekanntgegeben ;   es wird mitgeteilt, ob das Objekt eingefügt, aktualisiert oder gelöscht werden soll. 



  Innerhalb eines Objektgeflechts können dabei verschiedene Passivierungswünsche beliebig gemischt werden.   o   Zählen von Objekten Mittels Methodenaufruf kann die Anzahl der Objekte ermittelt werden, die einem bestimmten Kriterium genügen. 



  Für das Handling der Objektmengen, werden weiterhin verschiedene Container-Methoden 10 bzw. Listen-Klassen angeboten : A) Homogene Listen, in die nur Objekte einer Klasse eingehängt werden, und B) Heterogene Listen, In die Objekte verschiedener Klassen, die zueinander in einer Vererbungshierarchie stehen, eingehängt werden. Die Objekte können einer Superklasse oder einer ihrer Subklassen angehoren. 



  Alle Container- bzw. Listen-Klassen bieten Methoden für folgende Funktionsgruppen :   .   Aktivieren (Auslesen aus der Datenbank) Uber Methodenaufruf werden Objekte aktiviert, die einem übergebenen Kriterium entsprechen Das Aktivieren kann   geblokt   werden, wobei die gewünschte   Blockgrösse   über die Aufrufschnittstelle mitgeteilt werden kann 

 <Desc/Clms Page number 14> 

 Über die Aufrufschnittstelle der Aktivierungmethode können diezu aktivierenden Objekte auch gesperrt werden. 



    * ! terieren/Positionieren    Über die Objektmenge von Listen kann Objekt für Objekt und blockweise vorwärts und rückwärts positioniert werden. 



    Passivieren (Insert,   Update und Delete) Nachdem   die - beliebig mischbaren - Passivierungswünsche   für die Objekte einer Liste bekanntgegeben wurden, kann die gesamte Liste durch Methodenaufruf passiviert werden. 



    . Zählen   von Objekten Mittels Methodenaufruf kann die Anzahl der Objekte einer Liste ermittelt werden. 



  Alle beschriebenen Methoden werden als Anwenderschnittstelle von der erfindungsgemässen Programmlogik in Library-Form angeboten. 



  Der Datenbankgenerator 5 erzeugt ausgehend von den Datenfiles 3, die sämtliche klassenspezifische Informationen enthalten, und klassenneutralen Prototypen 7, die eine klassenunabhängige Ablaufbeschreibung für Methoden darstellen, den Programm-Code für alle klassenspezifischen PersistenzMethoden. 



  Zusammen mit dem Programm-Code 10 für Controler- und Container-Klassen werden die generierten klassenspezifischen Methoden 8 unter Einbindung der Zusatzfiles durch entsprechende Mittel 12 in Maschinen-Code übersetzt und als Bibliothek 13 bereitgestellt.



   <Desc / Clms Page number 1>
 



  Method for storing persistent objects from object-oriented user programs in a relational database.



  The invention relates to a method for storing persistent objects of object-oriented user programs in a relational database.



  Object-oriented programs are based on objects or object networks, which are complex networked data structures. The content of some of these objects or network of objects must be retained beyond the duration of a program; the associated object or network of objects is then referred to as "persistent". Basically, files - so-called flat files -, object-oriented databases or relational databases can be used to store persistent objects.



  However, files are not always suitable for storage.



  Object-oriented databases have only recently become available on the market and therefore do not meet the high reliability requirements of industrial applications. Relational databases are therefore usually used, which have the advantage that tried-and-tested and reliable standard products with access pages sufficient for operation are available.



  The assignment of persistent object structures to the simple tables of a relational database is, however, a complex task that requires complex and costly developments

 <Desc / Clms Page number 2>

 The invention is therefore based on the object of specifying a method with which the connection between any object-oriented user programs and relational databases can be established in a simple manner.



  The program logic according to the invention provides access and storage methods for the persistent objects of the application, so that simple handling by the user programs is ensured.



  In this way, all object model-dependent methods for accessing the database are generated automatically. By using special properties of relational database systems, short database access times can also be guaranteed. There is an arbitrarily granular locking concept; Both individual objects and object sets can be locked at the time of reading from the relational database.



  Both database sessions and database transactions can be logically nested. Object sets can be read in blocks from the database step by step. The block size can be defined in advance. Any number of objects can be positioned (forward, backward, absolute, first, last). The positioning can be done in blocks or object by object. The application program can influence the access times to its persistent objects by using the existing tuning features.



  The invention is explained in more detail with reference to a figure, which shows an example of a structure diagram of the program logic according to the invention.



  The exemplary embodiment shown relates to an object-based computer program for managing a library.



  The basis of an object-developed program are objects. These objects can contain both data (= attributes) and operations (= methods).

 <Desc / Clms Page number 3>

 be assigned. Furthermore, different types of relationships (inheritance, points-to-relationship, containment relationship) can exist between the objects. The description of the objects including all of their properties is in the form of class definitions, so a class is the general description of an object.



  In this example, library members can borrow books and CDs. The library members are therefore recorded with their properties relevant to the present task in the object class "member", books and CDs are recorded with regard to their common properties in the abstract super class "borrowable object" and in the specific sheet classes "book" and "CD". The properties of the super class are passed on to the leaf classes via inheritance.



  The simple attributes of the classes mentioned, which correspond to the properties of the detected objects, are shown in the following table.
 EMI3.1
 
<tb>
<tb>



  Member <SEP> Borrowable <SEP> item
<tb> Member number <SEP> identifier
<tb> Surname <SEP> title
<tb> first name <SEP> publisher
<tb> Year of birth <SEP> shelf number
<tb> CD <SEP> book <SEP>
<tb> Composer <SEP> author
<tb> interpreter
<tb>
 Loans are mapped as 1: n relationships between members and borrowable items.



  According to the invention, the object classes are now described by means of predetermined key words with regard to their persistent and translucent properties and relationships. The following is a description of the classes of the exemplary embodiment

 <Desc / Clms Page number 4>

   # MODULE¯SECTION # VERSION comm (#) member M, / main / 1, NO¯LABELS; Mon, 07/07/95, 14:15:

   51 # DATE 07/03/95 # COMPONENT BIB # ID M # AUTHOR1 Schallhart # AUTHOR2 # HISTORY # END¯MODULE¯SECTION # INCLUDE¯SECTION #include <DbRoot.H> # END¯INCLUDE¯ SECTION # CLASS¯SECTION # CLASS Member # LEVEL Conceptual # SUPER DbRoot # OBJECTNAME a # DESCRIPTION # USES # FLAGS concrete # STATES # ATTRIBUTES #ATTRIBUTE member # # DOMAIN Int # ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent &num; ATTRIBUTE last name #DOMAIN Stnng25
 EMI4.1
    &num; ATTRIBUTE¯DESCRIPTION &num; ATTRIBUTE¯FLAGS protected persistent #ATTRIBUTE vomame &num; DOMAIN String25 &num; ATTRIBUTE¯DESCRIPTION &num;

  ATTRIBUTE¯FLAGS protected persistent AT ATTRIBUTE year of birth A DOMAIN Short num ATTRIBUTE¯DESCRIPTION
 EMI4.2
   borrowings # MULTIVALUED # ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent # METHODS # METHOD # END¯CLASS¯SECTION

 <Desc / Clms Page number 5>

   # MODULE¯SECTION #VERSION® (#) Borrowable item.M., / Main / 1; NO¯LABELS, Mon, 07/03/95, 14:16:40 # DATE 07/03/95 # COMPONENT BIB # ID E # AUTHOR1 Schallhart # AUTOR2 # HISTORY # END¯MODULE¯SECTION &num; INCLUDE¯SECTION #include <DbRoot.

   H> EN END¯INCLUDE¯SECTION num CLASS¯SECTION #CLASS Lentable item num LEVEL Conceptual SUP SUPER DbRoot OB OBJECTNAME a DESCRIPTION DESCRIPTION num USES FL FLAGS abstract ST STATES num ATTRIBUTES num ATTRIBUTE id # DOMAIN Int # ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent # ATTRIBUTE title #DOMAIN String100 # ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent # ATTRIBUTE publisher # DOMAIN String60 # ATTRIBUTE ATTRIBUTESIBES protected persistent #ATTRIBUTE regalNr &num; DOMAIN Short &num;

  ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent # METHODS # METHOD.



  # END¯CLASS¯SECTION
 EMI5.1
   comm (num) book. M, / main / l, NO-LABELS; Mon, 07/03/95, 14 16 57 DATE 030795 COMPONENT BIB ID B

 <Desc / Clms Page number 6>

 # AUTHOR1 Schallhart # AUTHOR2 # HISTORY # END¯MODULE¯SECTION # INCLUDE¯SECTION # include <Borrowable item.

   H> # END¯INCLUDE¯SECTION
 EMI6.1
   # #CLASS Book # LEVEL Conceptual # SUPER Loanable Object # OBJECTNAME a # DESCRIPTION # USES # FLAGS concrete # STATES # ATTRIBUTES # ATTRIBUTE author
 EMI6.2
   Strin # ATTRIBUTE¯DESCRIPTION & ATTRIBUTE¯FLAGS protected persistent & METHODS & METHOD ...



  # END¯CLASS¯SECTION
 EMI6.3
   SECTION # DATE 07/03/95 # COMPONENT BIB ID # C # AUTHOR1 Schailhart # AUTHOR2 # HISTORY # END¯MODULE¯SECTION # INCLUDE¯SECTION # include <Borrowable item.

   H> EN END IN INCLUDE S SECTION # CLASS S SECTION CLASS CLASS CD LE LEVEL Conceptual #SUPER Borrowable item DESCRIPTION OBJECTNAME a DESCRIPTION DESCRIPTION num USES FL FLAGS concrete ST STATES

 <Desc / Clms Page number 7>

   # ATTRIBUTES # ATTRIBUTE composer # DOMAIN Stnng40 # ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent # ATTRIBUTE interpret #DOMAIN String40 # ATTRIBUTE¯DESCRIPTION # ATTRIBUTE¯FLAGS protected persistent # METHOD ...



  &num; END¯CLASS¯SECTION From this description 1 (class template), by calling up a template converter module 2, data files 3 with persistence information corresponding to those listed below are made
 EMI7.1
 



   CLASS member
ATTRIBUTE Int member no
ATTRIBUTE String25 last name
ATTRIBUTE String25 vomame
ATTRIBUTE Short year of birth
REFERS Borrowable Item Borrowings MULTIVALUED
ENDCLASS Borrowable item. dat:
 EMI7.2
   CLASS Borrowable Item ATTRIBUTE String100 title
ATTRIBUTE String60 publisher
ATTRIBUTE Short shelf no
ENDCLASS
Book dat.



   CLASS book: borrowable item
ATTRIBUTE String40 author
ENDCLASS
CD. dat:
CLASS CD: Borrowable item
ATTRIBUTE String40 composer
ATTRIBUTE String40 interpret
ENDCLASS and additional files 4 with programming language-specific information

 <Desc / Clms Page number 8>

 The programming language-specific class declaration in the additional file 4 contains all attributes and methods It. Class template 1 and additionally the declaration (= interface description) of all class-specific persistence methods.



  The following is an excerpt from the C ++ additional Fe 4 for the class "member": # ifndef¯Mitglied¯h # define¯Mitglied¯h // ------------------- ------------------------ // Filename: Member.H // .....



    1 / Includes &num; include <DbRoot. H>
1 / end includes
1 / Import class member;
 EMI8.1
 class DbContainer (member); 1 / end of import // declarations class member: public DbRoot {public:
CREATE (member) static Db:: Read ErrorCodeObjects (DbZeigerListe (member) &, const char * se) Stat = 0,
Db :: LockType lockMode = Db:: OBJUNLOCK, const char * dbTabName = 0,
ListLaenge contGroesse = AKTCONTGROESSE, int anzKeyCont = 0
 EMI8.2
 ; Db:: ErrorCode count objects (int & hit, const char * = 0,
Db :: LevelType levelMode = Db:: SHALLOW
 EMI8.3
 



  (
DbContainer (member) &, const char * Stat = 0,
Db: LockType lockMode = Db:: OBJUNLOCK,
ListLaenge contGroesse = AKTCONTGROESSE, int anzKeyCont = 0
 EMI8.4
 

 <Desc / Clms Page number 9>

 ; virtual Db:: Read error code Object (const char * = 0,
Db :: LockType lockMode = Db:: OBJUNLOCK
 EMI9.1
    ; Db:: passivate error code (
Db:: LevelType levelMode = Db:: SHALLOW,
Db :: TransTypetransMode = Db :: TRANS
 EMI9.2
 void setStoreRequestAll (Db:: StoreType storeMode = Db:: NOREQUEST
 EMI9.3
 (const char * = 0,
DB :: LockType lockMode = Db::

   OBJUNLOCK
 EMI9.4
 ; protected: Int member number,
String last name;
String vomame;
Short birth year,
 EMI9.5
 (EntlDB :: ErrorCodeaendemDb ();
DB :: ErrorCodeloeschenDb (); private:
 EMI9.6
 ; INSERT (Member, DbRoot) // EndDeclarations // Inlines #include "member. IC" // EndInlines &num; endif

 <Desc / Clms Page number 10>

 The database schema is generated using the database generator 5 according to the following principles: * A database table is generated for each class that can form persistent objects (= instances). For abstract classes (such as



   "Borrowable item") there is no equivalent as a table.



    In addition to the persistent attributes defined via template 1, each database table is given a first column for clear identification
Object identification and a second column to check the object's current status for competing accesses.



    * Inheritance between classes is in the relational database system
14 takes into account that inherited attributes are included in the database table of the respective leaf class. In addition to the "Author" column, the "Book" table also contains the "Identification", "Title", "Publisher" and "Shelf number" columns, which correspond to those of the abstract
Superclass Borrowable Item match inherited persistent attributes.



  Simple attributes are identified in database system 14 by exactly one
Represents database column. The "Member number" database column corresponds to the "Member number" attribute.



  Object-object relationships (containment and points-to-relationships) are complex attributes. Embedded (containment) and referenced (points-to-relationship) objects are stored in a separate table for each class. The relationship as such is then mapped in the database system 14 using foreign keys.

   For example, a column "Loans" is created for the complex attribute "Loans" in the database tables "Book" and "CD". If a book or CD is borrowed, the value of the first column for object identification of the respective object of the member class is entered in this column of the "Book" or nCD class. The foreign key is deleted again on return.

 <Desc / Clms Page number 11>

 The following table shows the diagram of the database tables of the present exemplary embodiment
 EMI11.1
 
<tb>
<tb> table name <SEP> member <SEP> book <SEP> CD
<tb> first <SEP> column <SEP> to <SEP> sysKey <SEP> sysKey <SEP> sysKey
<tb> object identifier.
<tb> second <SEP> column <SEP> to <SEP> IfNr <SEP> IfNr <SEP> IfNr <SEP>
<tb> Object topicality
<tb> DB-Spafte <SEP> (n)

   <SEP> f. Identifier <SEP> identifier
<tb> inherited <SEP> attributes <SEP> title <SEP> title
<tb> editor <SEP> editor
<tb> shelf number <SEP> shelf number
<tb> DB column <SEP> (n) <SEP> f. <SEP> member number <SEP> author <SEP> composer
<tb> own <SEP> attributes <SEP> last name <SEP> interpreter
<tb> first name
<tb> year of birth
<tb> DB column <SEP> (n) <SEP> for <SEP> - <SEP> borrowings <SEP> borrowings
<tb> Foreign key
<tb>
 Key-files 6 can be used to define user keys and indices for persistent attributes and attribute combinations, which are transferred to the database schema during the generation run.



  As an example of a key file 6: member. key-.



   CLASS member
KEY member no
ENDCLASS Based on the data files 3 and the key files 6, the database generator 5 generates a description of the database scheme 9 in the database query language SQL (SQL script). This SQL script serves as

 <Desc / Clms Page number 12>

 Input information for the SQL tool 11 of the respective standard database system, via which the database 14 is generated. The user interface 12 of the program logic according to the invention provides all methods for persistence handling. These can be divided into three groups: controller, class-specific, and container methods.



  Controler classes 10 offer methods for opening and closing the database (nested session handling), for transaction handling (open, commit, rollback, nested transactions) and for error handling.



  Class-specific methods 8 are generated by the database generator 5 for each persistent class of objects - defined via templates 1.



  A distinction is made between the following function groups: Activate (reading from the database) For this purpose, reading and dereferencing methods are generated. The principle of lazy evaluation is followed, i. H. Object meshes are activated step by step.



  When an object is activated, all simple persistent attributes are read from the DB. For the activation of complex attributes
 EMI12.1
 Using special keywords in the template definition, the generation of tuning features can be requested, such as: B. the combination of database accesses, whereby reduced client-server communication and access optimization is achieved at points-to-lendings

 <Desc / Clms Page number 13>

 When activating an object or a network of objects, a blocking option can also be provided via the call interface of the reading or dereferencing method.



    . Passivation (insert, update and delete) Marier and passivation methods are offered for the write process.



  If an object or an object network is to be passivated, i. h are written to the database, it must be marked accordingly. The type of passivation requests is announced using a marking method; it is informed whether the object should be inserted, updated or deleted.



  Different passivation requests can be mixed as desired within a network of objects. o Counting objects The method can be used to determine the number of objects that meet a certain criterion.



  Various container methods 10 and list classes are still offered for the handling of object sets: A) Homogeneous lists, in which only objects of one class are inserted, and B) Heterogeneous lists, In the objects of different classes, which are in one another Inheritance hierarchy are available, can be mounted. The objects can belong to a superclass or one of its subclasses.



  All container and list classes offer methods for the following function groups:. Activate (read out from the database) Objects that correspond to a passed criterion are activated via method call. Activation can be blocked, whereby the desired block size can be communicated via the call interface

 <Desc / Clms Page number 14>

 The objects to be activated can also be blocked via the call interface of the activation method.



    *! terieren / Positionieren Via the object set of lists, object by object and blocks can be positioned forward and backward.



    Passivation (insert, update and delete) After the passivation requests for the objects in a list, which can be mixed as required, have been announced, the entire list can be passivated by calling the method.



    . Counting objects The number of objects in a list can be determined by calling the method.



  All the methods described are offered as a user interface by the program logic according to the invention in library form.



  Starting from the data files 3, which contain all class-specific information, and class-neutral prototypes 7, which represent a class-independent process description for methods, the database generator 5 generates the program code for all class-specific persistence methods.



  Together with the program code 10 for controller and container classes, the generated class-specific methods 8 are translated into machine code by means of appropriate means 12 with the inclusion of the additional files and made available as library 13.


    

Claims (3)

Ansprüche 1) Verfahren zur Speicherung persistenter Objekte von objektorientierten Anwenderprogrammen in einer relationalen Datenbank, dadurch gekennzeichnet, dass während der Erstellung des objektorientierten Anwenderprogrammes die Objektklassen mittels vorgegebener Schlüsselwörter hinsichtlich ihrer persistenten und transienten Eigenschaften und Beziehungen beschrieben werden, dass für jede Klasse von Objekten, die persistente Objekte ausbilden kann, eine Datenbanktabelle angelegt wird, dass jede Datenbanktabelle neben je einer Spalte für eine bestimmte Art von persistenten Daten eine erste Spalte zur eindeutigen Identifikation der Objekte und eine zweite Spalte zur Prüfung der Objektaktualität aufweist,  Expectations 1) Method for storing persistent objects from object-oriented User programs in a relational database, characterized in that during the creation of the object-oriented User program, the object classes are described by means of predetermined keywords with regard to their persistent and transient properties and relationships, that for each class of objects that can form persistent objects, a database table is created, that each Database table next to a column for a certain type of persistent Data has a first column for unambiguous identification of the objects and a second column for checking the object topicality, und dass Beziehungen der Objekte untereinander durch Fremdschlüssel enthaltende Spalten der Datenbanktabellen dargestellt werden.  and that relationships of the objects with one another by means of columns of the foreign key Database tables are displayed. 2) Programmlogik zur Steuerung des Verfahrens nach Anspruch 1, dadurch g e k e n n z e i c h n e t , dass ein Template-Umsetzer-Modul (2) zur Umwandlung der Beschreibung der Objekte (1) in Datenfiles (3) mit Persistenzinformation und Zusatzfiles (4) mit programmiersprachenspezifischer Information vorgesehen ist, dass ein Datenbankgenerator (5) vorgesehen Ist, der aufgrund der in den Datenfiles (3) und den Zusatzfiles (4) enthaltenen Information eine Beschreibung der Datenbanktabellen (9) und der Zugriffsmögttchketten (8) darauf in einer vorgegebenen Datenbanksprache erzeugt, dass ein Datenbanksprachen-spezifisches Werkzeug (11) zur Umsetzung der Beschreibung der Datenbanktabellen (9) in die relationale Datenbank (14) vorgesehen ist und dass Mittel (12) zur Übersetzung der Beschreibung der Zugriffsmöglichkeiten (8) 2) Program logic for controlling the method according to claim 1, characterized in that a template converter module (2) for Conversion of the description of the objects (1) into data files (3) with Persistence information and additional files (4) with programming language-specific Information is provided that a database generator (5) is provided, which is contained in the data files (3) and the additional files (4) Information a description of the database tables (9) and the access chains (8) thereon in a predetermined database language that a database language-specific tool (11) for Implementation of the description of the database tables (9) in the relational Database (14) is provided and that means (12) for translating the Description of the access possibilities (8) in eine Anwenderschnittstelle (13) vorgesehen sind.  are provided in a user interface (13). 3) ProgrammlogiknachAnspruch2, dadurch gekennzeichnet, dass die Beschreibung der Datenbanktabellen In der Datenbankabfragesprache SQL erfolgt  3) Program logic according to claim 2, characterized in that the description of the database tables in the database query language SQL is done
AT51795U 1995-09-26 1995-09-26 METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE AT1104U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AT51795U AT1104U1 (en) 1995-09-26 1995-09-26 METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AT51795U AT1104U1 (en) 1995-09-26 1995-09-26 METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE

Publications (1)

Publication Number Publication Date
AT1104U1 true AT1104U1 (en) 1996-10-25

Family

ID=3492716

Family Applications (1)

Application Number Title Priority Date Filing Date
AT51795U AT1104U1 (en) 1995-09-26 1995-09-26 METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE

Country Status (1)

Country Link
AT (1) AT1104U1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
US5499371A (en) * 1993-07-21 1996-03-12 Persistence Software, Inc. Method and apparatus for automatic generation of object oriented code for mapping relational data to objects

Similar Documents

Publication Publication Date Title
DE69736748T2 (en) EDITING ENVIRONMENT FOR OBJECT MODELS AND METHOD FOR THEIR APPLICATION
DE69533786T2 (en) Device for creating object-oriented interfaces for relational databases and method performed by this device
DE69906488T2 (en) Procedure for synchronizing a database schema with its representation in an object-oriented repository
DE19734413C1 (en) Procedure for upgrading a database
DE60306663T2 (en) Methods, apparatus and programs for controlling access to data objects using locks
EP1088280A1 (en) Method and system for fast memory-resident processing of transaction data
DE10104043A1 (en) Method and system for improving the use of in-built macro-languages makes it possible for existing applications to use languages other than their in-built macro-languages without changing an existing application.
WO2002021327A2 (en) Method and computer program for generating files for a database system for a business management user program
DE102012001406A1 (en) Automatic configuration of a product data management system
DE19534819A1 (en) Configuring database or section
EP1276056A1 (en) Method for managing a Database
DE112010004185B4 (en) Synchronize a database with non-database resources
DE19715723A1 (en) Array method
DE10218905B4 (en) Method and data structure for access control in knowledge networks
DE10063514A1 (en) Accessing database involves index generator calling up stored procedure to access index configuration data in remote database management system for optimal index configuration
AT1104U1 (en) METHOD FOR STORING PERSISTED OBJECTS OF OBJECT-ORIENTED USER PROGRAMS IN A RELATIONAL DATABASE
DE60032563T2 (en) System for using an electronic catalog for the creation and restoration of a subset of the electronic catalog and for the free subdivision of the electronic catalog
DE60315030T2 (en) AVOIDING DATA LOSS WHEN UPDATING A DATA WAREHOUSE
DE112011100951T5 (en) Sophisticated functional behaviors in a database management system
EP3622414B1 (en) Database with field-related timestamps
EP0603228B1 (en) Process for searching for an object similar or identical to a search object in an object library
DE10032016A1 (en) Multi-purpose resource manager method for hierarchical data filing systems, requires the given transaction program unit to cooperate with the filing system and must comprise a transaction function for changing the filing system
DE10331817A1 (en) Automatic data location within a database configured as a semantic network, whereby object instances are selected after input of search criteria and the object instances are then linked to find the shortest relationship chain
WO2023041692A1 (en) Computer-implemented database method, data-processing system, computer programme product, and computer-readable storage medium
EP3531301A1 (en) Computer-implemented method for querying data

Legal Events

Date Code Title Description
MN9K Cancelled due to lapse of time