EP1430425A2 - Method and device for storing hierarchically dependent data - Google Patents

Method and device for storing hierarchically dependent data

Info

Publication number
EP1430425A2
EP1430425A2 EP02776708A EP02776708A EP1430425A2 EP 1430425 A2 EP1430425 A2 EP 1430425A2 EP 02776708 A EP02776708 A EP 02776708A EP 02776708 A EP02776708 A EP 02776708A EP 1430425 A2 EP1430425 A2 EP 1430425A2
Authority
EP
European Patent Office
Prior art keywords
data
data objects
objects
stored
data object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP02776708A
Other languages
German (de)
French (fr)
Inventor
Giovanni Rabaioli
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.)
Siemens AG
Original Assignee
Siemens AG
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 filed Critical Siemens AG
Publication of EP1430425A2 publication Critical patent/EP1430425A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof

Definitions

  • index-sequential access methods or relational database systems is known for managing such data.
  • the hierarchical structure of directory data is insufficiently taken into account.
  • hierarchically dependent data are stored divided into data objects comprising first useful data and second data objects which have references to first and second data objects.
  • This subdivision usually means that the first data objects contain large amounts of data on object attributes without hierarchical dependency.
  • the second data objects are used to map hierarchical dependencies and allow a description of the structure of a directory tree.
  • FIG. 1 shows a directory tree with hierarchically dependent data

Landscapes

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

Abstract

According to the invention, hierarchically dependent data is divided into first data objects containing useful data, and second data objects containing references to first and/or second data objects, and is stored in at least one memory unit.

Description

Beschreibungdescription
Verfahren und Anordnung zur Speichefung hierarchisch abhängiger DatenMethod and arrangement for storing hierarchically dependent data
Verzeichnisse weisen üblicherweise eine hierarchische Struktur auf. In einem Verzeichnis erfaßte Informationen werden dabei durch Untergliederung in Hierarchieebenen verwaltet. Beispielsweise erfolgt eine derartige Unterteilung zuerst nach Ländern, anschließend nach Organisationen, Organisationseinheiten und schließlich nach Personen.Directories usually have a hierarchical structure. Information recorded in a directory is managed by subdivision into hierarchy levels. For example, such a subdivision occurs first by country, then by organization, organizational unit and finally by person.
Bei einer Implementierung von Verzeichnissen mittels Datenverarbeitungsanlagen ist deren Funktionsweise zu berücksich- tigen, insbesondere die Art der Verwaltung von Verzeichnisdaten mittels elektronischer Speichermedien. Zur Verwaltung solcher Daten ist eine Verwendung von Index-sequentiellen Zugriffsmethoden oder relationalen Datenbanksystemen bekannt. Dabei wird der hierarchischen Struktur von Verzeichnisdaten nur unzureichend Rechnung getragen. Index-sequentielleWhen implementing directories using data processing systems, their mode of operation must be taken into account, in particular the type of administration of directory data using electronic storage media. The use of index-sequential access methods or relational database systems is known for managing such data. The hierarchical structure of directory data is insufficiently taken into account. Index-sequential
Zugriffsmethoden verwalten Daten in sortierter Form ohne Berücksichtigung hierarchischer Abhängigkeiten. Mit relationalen Datenbanksystemen sind lediglich lineare Relationen abbildbar. Weder eine Verwendung Index-sequentieller Zugriffs- methoden noch eine Verwendung relationaler Datenbanksysteme ermöglichen eine effektive Optimierung von Schreib- und Lesevorgängen bei hierarchisch abhängigen Daten. Im Vergleich zu Rechenprozessen erweisen sich Schreib- und Lesevorgänge bei hierarchisch abhängigen Daten sogar als überaus zeitintensiv.Access methods manage data in sorted form without taking hierarchical dependencies into account. With relational database systems, only linear relations can be mapped. Neither the use of index-sequential access methods nor the use of relational database systems enable an effective optimization of write and read processes for hierarchically dependent data. Compared to computing processes, write and read processes for hierarchically dependent data even prove to be extremely time-consuming.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Anordnung zu einer hinsichtlich Schreib- und Lesevorgängen optimierten Verwaltung von hierarchisch abhängigen Daten anzugeben.The present invention has for its object to provide a method and an arrangement for a management of hierarchically dependent data.
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren mit den in Anspruch 1 und durch eine Anordnung mit den in Anspruch 10 angegebenen Merkmalen gelöst. Weiterbildungen des erfindungsgemäßen Verfahrens sind in den abhängigen Ansprüchen angegeben.According to the invention, this object is achieved by a method having the features specified in claim 1 and by an arrangement having the features specified in claim 10. Further developments of the method according to the invention are specified in the dependent claims.
Erfindungsgemäß werden hierarchisch abhängige Daten in erste Nutzdaten umfassende Datenobjekte und zweite Datenobjekte unterteilt abgespeichert, die Verweise auf erste bzw. zweite Datenobjekte aufweisen. Üblicherweise ergibt sich aus dieser Unterteilung, daß die ersten Datenobjekte große Datenmengen an Objektattributen ohne hierarchische Abhängigkeit aufnehmen. Dagegen dienen die zweiten Datenobjekte der Abbildung hierarchischer Abhängigkeiten und ermöglichen eine Beschreibung der Struktur eines Verzeichnisbaums .According to the invention, hierarchically dependent data are stored divided into data objects comprising first useful data and second data objects which have references to first and second data objects. This subdivision usually means that the first data objects contain large amounts of data on object attributes without hierarchical dependency. In contrast, the second data objects are used to map hierarchical dependencies and allow a description of the structure of a directory tree.
Im Vergleich zu den ersten Datenob ekten sind die zweiten Datenobjekte deutlich weniger speicherintensiv. Außerdem ist die Nutzungshäufigkeit der zweiten Datenobjekte im Vergleich zu den ersten Datenobjekten deutlich höher. Dies ergibt sich daraus, daß in Verzeichnissystemen Lese- bzw. Suchvorgänge die mit Abstand am häufigsten Zugriffsarten darstellen.Compared to the first data objects, the second data objects are significantly less memory-intensive. In addition, the frequency of use of the second data objects is significantly higher than that of the first data objects. This results from the fact that reading and searching processes are by far the most common types of access in directory systems.
Bei Lese- bzw. Suchvorgängen wird zunächst der durch die zweiten Datenobjekte beschriebene Verzeichnisbaum bis zu einem Knoten durchsucht, der vorgegebene Suchkriterien erfüllt. Abschließend werden durch den ermittelten Knoten referenzier- te Nutzdaten ausgelesen und der Lese- bzw. Suchvorgang beendet. Im Idealfall wird bei einem Lese- bzw. Suchvorgang auf eine Vielzahl von zweiten Datenobjekten zurückgegriffen, wäh- rend lediglich ein einziges erstes Datenobjekt ausgelesen wird. Aus der Speicherintensität und der Nutzungshäufigkeit der ersten und zweiten Datenobjekte folgt, daß die Wahrscheinlichkeit für ein erstes Datenobjekt, in einen Arbeits- Speicher oder Cache einer Datenverarbeitungsanlage geladen zu sein, eher gering ist. Dagegen ist die Wahrscheinlichkeit für ein zweites Datenobjekt tendziell sehr hoch.In the case of read or search processes, the directory tree described by the second data objects is first searched up to a node which fulfills predetermined search criteria. Finally, referenced useful data are read out by the determined node and the reading or search process is ended. Ideally, a large number of second data objects are used during a read or search process, while rend only a single first data object is read out. It follows from the memory intensity and the frequency of use of the first and second data objects that the probability for a first data object to be loaded into a main memory or cache of a data processing system is rather low. In contrast, the probability of a second data object tends to be very high.
Eine optimierte Verwaltung hierarchisch abhängiger Daten er- gibt sich erfindungsgemäß daraus, daß aufgrund der oben beschriebenen Unterteilung häufig genutzte Datenobjekte mit hoher Wahrscheinlichkeit in einem Speichermedium mit hohen Zugriffsgeschwindigkeiten verfügbar sind. Zudem nehmen Zugriffe auf einen Arbeitsspeicher oder eine Cache um Zehner- potenzen weniger Zeit in Anspruch als Zugriffe auf Massenda- tenspeichermedien, wie Festplatten oder CD-Rom.An optimized management of hierarchically dependent data results according to the invention from the fact that frequently used data objects are available with high probability in a storage medium with high access speeds due to the division described above. In addition, access to a working memory or a cache takes ten times less time than access to mass data storage media such as hard disks or CD-Roms.
Die vorliegende Erfindung wird nachfolgend an einem Ausführungsbeispiel anhand der Zeichnung näher erläutert. Es zeigt,The present invention is explained in more detail below using an exemplary embodiment with reference to the drawing. It shows,
Figur 1 einen Verzeichnisbaum mit hierarchisch abhängigen Daten,FIG. 1 shows a directory tree with hierarchically dependent data,
Figur 2 eine aus einer Anwendung eines Verfahrens zur Spei- cherung hierarchisch abhängiger Daten resultierendeFIG. 2 shows a result of using a method for storing hierarchically dependent data
Speicherstruktur.Memory structure.
Der in Figur 1 dargestellte Verzeichnisbaum weist eine Vielzahl von Knoten 101 und Verweisen 102 auf. Die Verweise 102 sind von jeweils einem Knoten 101 aus auf einen oder mehrereThe directory tree shown in FIG. 1 has a large number of nodes 101 and references 102. The references 102 are each from a node 101 to one or more
Knoten 101 gerichtet, die einer dem verweisenden Knoten 101 direkt untergeordneten Hierarchieebene 103 zugeordnet sind. Die höchste Hierarchieebene 103 des Verzeichnisbaums wird alsNode 101 directed, which are assigned to a hierarchy level 103 directly subordinate to the referring node 101. The highest hierarchical level 103 of the directory tree is called
"Wurzel" bezeichnet. Untergeordnete Hierarchieebenen 103 sind im vorliegenden Beispiel die Hierarchieebenen "Land", "Netz", "Subnetz", "Organisation", "Standort", "Nachname" und "Vorna- me". Die Knoten 101 in der untersten Hierarchieebene 103 "Vorname" weisen zusätzliche Attribute 104 auf, welche die durch die Knoten 101 repräsentierten Objekte kennzeichnen. Grundsätzlich können alle Knoten 101 unabhängig von der jeweiligen Hierarchieebene 103 Attribute 104 aufweisen. Im Sin- ne einer einfach verständlichen Darstellungsweise wird auf eine explizite Darstellung der Attribute 104 der einzelnen Knoten 101 mit Ausnahme der Attribute 104 der Knoten 101 in der untersten Hierarchieebene 103 verzichtet.Inscribed "root". In the present example, subordinate hierarchy levels 103 are the hierarchy levels "Country", "Network", "Subnet", "Organization", "Location", "Last Name" and "Name". The nodes 101 in the lowest hierarchy level 103 "first name" have additional attributes 104 which identify the objects represented by the nodes 101. In principle, all nodes 101 can have attributes 104 regardless of the respective hierarchy level 103. In the interest of an easily understandable representation, an explicit representation of the attributes 104 of the individual nodes 101 with the exception of the attributes 104 of the nodes 101 in the lowest hierarchical level 103 is dispensed with.
Ein Knoten 101 wird .eindeutig identifiziert über die Angabe eines Pfades von der "Wurzel" zum jeweiligen Knoten 101 unter Nennung sämtlicher Knoten 101 entsprechend ihrer Reihenfolge entlang des Pfades. Eine derartige Pfadangabe bildet damit einen eindeutigen Schlüssel für einen Knoten 101. Jeder Kno- ten 101 weist zudem einen eindeutigen relativen Schlüssel in bezug auf den jeweils unmittelbar übergeordneten Knoten 101 auf. Im vorliegenden Beispiel stellen in den einzelnen Knoten 101 dargestellte Bezeichnungen die jeweiligen relativen Schlüssel dar.A node 101 is uniquely identified by specifying a path from the "root" to the respective node 101 and naming all nodes 101 in accordance with their sequence along the path. Such a path specification thus forms a unique key for a node 101. Each node 101 also has a unique relative key in relation to the node 101 which is immediately superior. In the present example, the designations shown in the individual nodes 101 represent the respective relative keys.
Ein durch einen Knoten 101 repräsentiertes Objekt kann neben üblichen Attributen, wie "Telefonnummer", "Faxnummer", "Raumnummer" usw. , auch Verweise auf andere Objekte als Attribut 104 aufweisen. Durch einen solchen Verweis kann beispielswei- se ein erster Mitarbeiter "Klaus" eine zweite Mitarbeiterin "Erika" als seine Stellvertreterin referenzieren. Derartige Verweise sind grundsätzlich auch zwischen Knoten 101 unterschiedlicher Hierarchieebenen 103 möglich. Die in Figur 2 dargestellte Speicherstruktur spiegelt die Verwaltung der in Figur 1 dargestellten hierarchisch abhängigen Daten nach Anwendung eines Verfahrens zur Speicherung hierarchisch abhängiger Daten wieder. Durch ein solches Verfahren werden hierarchisch abhängige Daten im Nutzdaten aufweisende erste Datenobjekte 201 und in zweite Datenobjekte 202, die durch Pfeile symbolisierte Verweise auf erste 201 bzw. zweite Datenobjekte 202 aufweisen, unterteilt abgespei- chert. Die ersten Datenobjekte 201 werden dabei als Datenblöcke in einer ersten Speichereinheit 205 abgespeichert, während die zweiten Datenobjekte 202 als Datenblöcke in einer zweiten Speichereinheit 206 abgespeichert werden. Die Speicherung in zwei getrennten Speichereinheiten 205, 206 bietet den Vorteil einer verbesserten Parallelisierung von Schreibund Lesevorgängen. Die Speichereinheiten 205, 206 werden üblicherweise durch Dateien oder Speicherplatten gebildet, die einer in Figur 2 nicht expliziten Datenverarbeitungsanlage zugeordnet sind, durch welche das beschriebene Verfahren zur Speicherung hierarchisch abhängiger Daten ausgeführt wird.An object represented by a node 101 can also have references to other objects as the attribute 104 in addition to the usual attributes such as "telephone number", "fax number", "room number" etc. With such a reference, for example, a first employee "Klaus" can refer to a second employee "Erika" as his deputy. Such references are in principle also possible between nodes 101 of different hierarchy levels 103. The memory structure shown in FIG. 2 reflects the management of the hierarchically dependent data shown in FIG. 1 after using a method for storing hierarchically dependent data. By means of such a method, hierarchically dependent data are stored in subdivided form in the first data objects 201 having useful data and in second data objects 202 which have arrows symbolized references to first 201 and second data objects 202. The first data objects 201 are stored as data blocks in a first storage unit 205, while the second data objects 202 are stored as data blocks in a second storage unit 206. Storage in two separate storage units 205, 206 offers the advantage of improved parallelization of write and read processes. The storage units 205, 206 are usually formed by files or storage disks which are assigned to a data processing system which is not explicit in FIG. 2 and by which the described method for storing hierarchically dependent data is carried out.
Neben Datenblöcken mit zweiten Datenobjekten 202 umfaßt die zweite Speichereinheit 206 Datenblöcke mit dritten 203 und vierten Datenblöcken 204, auf deren Bedeutung noch näher ein- gegangen wird. Die durch die ersten Datenobjekte 201 umfaßten Nutzdaten werden in einem für Attribute vorgesehenen Feld 211 des jeweiligen Datenblocks abgespeichert. Durch die mittels Pfeilen symbolisierten Verweise auf erste 201 bzw. zweite Datenobjekte 202 in den zweiten Dateiobjekten 202 werden die entsprechend Figur 1 zwischen den Daten bestehenden hierarchischen Abhängigkeiten abgebildet. Im Sinne einer einfachen und verständlichen Darstellung werden in Figur 2 lediglich die Hierarchieebenen 103 "Wurzel", "Land", "Standort", "Nachname" und "Vorname" berücksichtigt. Die Abbildung der Hierarchieebenen von "Wurzel" bis "Nachna- me" erfolgt durch zweite Datenobjekte 202, während die Abbildung der untersten Hierarchieebene 103 "Vorname" durch erste Datenobjekte 201 erfolgt. Im Sinne einer vereinfachten Darstellung wird nämlich für die Hierarchieebenen 103 "Wurzel" bis "Nachname" angenommen, wie bereits oben erwähnt, daß die- sen Hierarchieebenen 103 zugeordnete Knoten 101 keine Attribute 104 aufweisen. Außerdem wird für die nachfolgenden Betrachtungen vereinfachend angenommen, daß Blocknummern der Datenobjekte 201 bis 204 den Adressen der jeweiligen Datenblöcke entsprechen.In addition to data blocks with second data objects 202, the second storage unit 206 includes data blocks with third 203 and fourth data blocks 204, the meaning of which will be discussed in more detail below. The useful data comprised by the first data objects 201 are stored in a field 211 of the respective data block provided for attributes. The references to first 201 and second data objects 202 in the second file objects 202 symbolized by arrows represent the hierarchical dependencies between the data corresponding to FIG. 1. In the sense of a simple and understandable representation, only the hierarchy levels 103 "root", "country", "location", "last name" and "first name" are taken into account in FIG. The hierarchy levels from "root" to "surname" are mapped by second data objects 202, while the lowest hierarchy level 103 "first name" is mapped by first data objects 201. In the sense of a simplified representation, it is assumed for the hierarchy levels 103 "root" to "last name", as already mentioned above, that nodes 101 assigned to these hierarchy levels 103 have no attributes 104. In addition, for the following considerations, it is assumed in a simplified manner that block numbers of the data objects 201 to 204 correspond to the addresses of the respective data blocks.
Neben dem für Attribute vorgesehenen Feld 211 weisen die Datenblöcke für die ersten Datenobjekte 201 ein Feld 212 für einen relativen Schlüssel (RDN - Relative Distinguishing Name) , ein Feld 213 für einen Verweis auf ein weiteres erstes Datenobjekt 201 (RAD - Reference Address) , ein Feld 214 für einen Verweis auf ein unmittelbar übergeordnetes zweites Datenobjekt 202 (PAD - Parent Address) sowie jeweils ein Feld 215, 216 für ein Start-Flag und ein End-Flag auf. Ein Datenblock für ein erstes Datenobjekt 201 ist über die Blocknummer eindeutig identifizierbar, die in VerzeichnisSystemen auch als Directory Service Identification bezeichnet wird.In addition to the field 211 provided for attributes, the data blocks for the first data objects 201 have a field 212 for a relative key (RDN - Relative Distinguishing Name), a field 213 for a reference to a further first data object 201 (RAD - Reference Address) Field 214 for a reference to an immediately superordinate second data object 202 (PAD - Parent Address) as well as fields 215, 216 for a start flag and an end flag. A data block for a first data object 201 can be uniquely identified via the block number, which is also referred to as directory service identification in directory systems.
Datenblöcke für zweite Datenobjekte 202 weisen eine Liste 221 mit unmittelbar untergeordneten ersten 201 bzw. zweiten Da- tenobjekten 202 (CH - Child) auf. Eine solche Liste 221 ist beispielsweise durch eine Hash-Tabelle implementiert. Mittels einer Hash-Tabelle wird jedem möglichem Schlüssel eines zweiten Datenobjekts 202, der in Verzeichnissystem auch als Distinguishing Name bekannt ist, die Blocknummer für das jeweilige erste 201 oder zweite Datenobjekt 202 eindeutig zugeordnet. In der Liste 221 für unmittelbar untergeordnete erste 201 bzw. zweite Datenobjekte 202 sind Felder 222 für die re- lativen Schlüssel und Felder 223 für die Blocknummern der untergeordneten Datenobjekte 201, 202 vorgesehen. Der Grund für die im Prinzip redundante Speicherung von relativen Schlüsseln einerseits und Blocknummern andererseits besteht in einer Leistungsoptimierung. Für eine Auflösung von aus mitein- ander verketteten relativen Schlüsseln zusammengesetztenData blocks for second data objects 202 have a list 221 with directly subordinate first 201 and second data objects 202 (CH - Child). Such a list 221 is implemented, for example, by a hash table. By means of a hash table, each possible key of a second data object 202, which in the directory system is also called Distinguishing name is known, the block number for the respective first 201 or second data object 202 is uniquely assigned. Fields 222 for the relative keys and fields 223 for the block numbers of the subordinate data objects 201, 202 are provided in the list 221 for immediately subordinate first 201 or second data objects 202. The reason for the basically redundant storage of relative keys on the one hand and block numbers on the other hand is due to a performance optimization. For a resolution of relative keys that are chained together
Schlüsseln ist nämlich eine schnelle Zugreifbarkeit von relativen Schlüsseln vorteilhaft. Eine schnelle Verfügbarkeit von Blocknummern bietet für einen physikalischen Zugriff auf die jeweiligen Datenobjekte Leistungsvorteile.Keys are quick access to relative keys advantageous. The rapid availability of block numbers offers performance advantages for physical access to the respective data objects.
Dritte Datenobjekte 203 werden für einen Verweis von einem referenzierenden ersten Datenobjekt 201 auf ein referenzier- tes erstes Datenobjekt 201 erzeugt und in der zweiten Speichereinheit 206 abgespeichert. Das jeweilige dritte Datenob- jekt 203 weist einen Verweis auf das referenzierte erste Datenobjekt 201 auf. Außerdem wird in dem Feld 213 in einem Datenblock eines referenzierenden ersten Datenobjekts 201 eine Blocknummer eines dritten Datenobjekts 203 abgespeichert, das einen Platzhalter für ein jeweils referenziertes erstes Da- tenobjekts 201 darstellt.Third data objects 203 are generated for reference from a referencing first data object 201 to a referenced first data object 201 and stored in the second storage unit 206. The respective third data object 203 has a reference to the referenced first data object 201. In addition, a block number of a third data object 203, which represents a placeholder for a respectively referenced first data object 201, is stored in the field 213 in a data block of a referencing first data object 201.
Im konkreten Fall wird in dem für Verweise auf weitere erste Datenobjekte 201 vorgesehenen Feld 213 im Datenblock des ersten Datenobjekts 201 mit dem relativen Schlüssel "Klaus" die Blocknummer eines dritten Datenobjekts 203 abgespeichert, das wiederum auf das referenzierte erste Datenobjekts 201 mit dem relativen Schlüssel "Erika" verweist. Hierzu enthält das besagte dritte Datenobjekt 203 die Blocknummer des ersten Da- tenobjekts 201 mit dem relativen Schlüssel "Erika". Auf dieseIn the specific case, the block number of a third data object 203 is stored in the field 213 provided for references to further first data objects 201 in the data block of the first data object 201 with the relative key "Klaus", which in turn refers to the referenced first data object 201 with the relative key " Erika "refers. For this purpose, said third data object 203 contains the block number of the first data tenobjjekt 201 with the relative key "Erika". To this
Weise wird der in Figur 1 beschriebene Verweis zur Abbildung eines Stellvertretungsattributes realisiert. Bei einer Änderung an einem referenzierten ersten Datenobjekt 201 kann es in Folge des Auslesens und des Neuabspeicherns des jeweiligen Datenblocks zu einer Blocknummernänderung für des referen- zierte erste Datenobjekt 201 kommen. Ohne Verwendung dritter Datenobjekte 203 hätte dies für die referenzierenden ersten Datenobjekte 201 zur Folge, daß die Blocknummernänderung bei allen referenzierenden ersten Datenobjekten 201 nachvollzogen werden müßte. Dies wäre im Einzelfall mit einer erheblichen Anzahl an Änderungsvorgängen für referenzierende erste Datenobjekte 201 verbunden. Mit der Einführung dritter Datenobjekte 203 muß lediglich die geänderte Blocknummer des geänderten referenzierten ersten Datenobjekts 201 im jeweils zugeordneten dritten Datenobjekt 203 nachvollzogen werden. Es ist leicht nachvollziehbar, daß die mit erheblich weniger Aufwand verbunden ist. Zu dem verbrauchen dritte Datenobjekte 203 wenig Speicherressourcen. Daher weisen dritte Datenobjekte 203 eine hohe Wahrscheinlichkeit auf, in einem Arbeitsspeicher bzw. einem Cache einer Datenverarbeitungsanlage gepuffert zu sein, was den Zugriff auf solche dritte Datenobjekte 203 erheblich beschleunigt.The reference to the depiction of a substitute attribute described in FIG. 1 is implemented. If a change is made to a referenced first data object 201, the block number for the referenced first data object 201 may be changed as a result of reading out and resaving the respective data block. Without the use of third data objects 203, this would have the consequence for the referencing first data objects 201 that the block number change would have to be followed for all referencing first data objects 201. In individual cases, this would be associated with a considerable number of change processes for referencing first data objects 201. With the introduction of third data objects 203, only the changed block number of the modified referenced first data object 201 in the respectively assigned third data object 203 has to be reproduced. It is easy to understand that this is associated with considerably less effort. In addition, third data objects 203 consume little memory resources. Therefore, third data objects 203 have a high probability of being buffered in a working memory or a cache of a data processing system, which considerably accelerates access to such third data objects 203.
Alternativ zu der in Figur 2 dargestellten Lösung können in einem dritten Datenobjekt 203 auch die Blocknummer eines dem referenzierten ersten Datenobjekt übergeordneten zweiten Datenobjekts 202 und der relative Schlüssel des referenzierten ersten Datenobjekts 201 gespeichert sein. In diesem Fall wür- de das dritte Datenobjekt 203 indirekt über das dem referenzierten ersten Datenobjekt 201 übergeordnete zweite Datenobjekt 202 auf das referenzierte erste Datenobjekt 201 verweisen. Für eine Erzeugung von vierten Datenobjekten 204 werden von einem ausgewählten zweiten Datenobjekt 202 hierarchisch abhängige zweite Datenobjekte 202 und diesen durch Verweise zu- geordnete erste Datenobjekte 201 ermittelt. Außerdem werden Speicherorte der ermittelten ersten Datenobjekte 201 innerhalb der ersten Speichereinheit 205 kennzeichnende Positionen ermittelt, die in dem vierten Datenobjekt 204 abgespeichert werden. Das jeweilige vierte Datenobjekt 204 ist dabei einem dem Beginn eines entsprechenden Unterbaums repräsentierenden zweiten Datenobjekts 202 zugeordnet. Die ermittelten Positionen der ersten Datenobjekte 201 werden in jeweiligem Datenobjekt 204 als Bitmuster zusammengefaßt abgespeichert. Dabei repräsentiert ein Bit innerhalb des Bildmusters einen Spei- cherort innerhalb der ersten Speichereinheit 205. Die Einführung von vierten Datenobjekten 204 ermöglicht eine einfache Behandlung von Suchabfragen, die lediglich auf ausgewählte Unterbäume eines Verzeichnisbaums beschränkt sind. Hierzu wird der gesamte Suchbaum entsprechend der Suchabfrage durch- sucht und die Positionen der ermittelten ersten Datenobjekte 201 werden analogerweise als Abfrage-Bitmuster abgespeichert. Zur Beschränkung der Abfrage auf einen ausgewählten Unterbaum erfolgt dann eine logische Und-Verknüpfung zwischen dem Ab- frage-Bitmuster und dem Bitmuster, das in einem vierten Da- tenobjekts 204 abgespeichert ist, das einem den Beginn des entsprechenden Unterbaums darstellenden zweiten Datenobjekts 202 zugeordnet ist. Auf diese Weise läßt sich eine sehr einfache Beschränkung von Suchabfragen auf ausgewählte Unterbäume realisieren.As an alternative to the solution shown in FIG. 2, the block number of a second data object 202 superior to the referenced first data object and the relative key of the referenced first data object 201 can also be stored in a third data object 203. In this case, the third data object 203 would refer indirectly to the referenced first data object 201 via the second data object 202 superordinate to the referenced first data object 201. In order to generate fourth data objects 204, second data objects 202 which are hierarchically dependent on a selected second data object 202 and first data objects 201 assigned to them by references are determined. In addition, storage locations of the determined first data objects 201 within the first storage unit 205 are used to identify positions that are stored in the fourth data object 204. The respective fourth data object 204 is assigned to a second data object 202 that represents the start of a corresponding subtree. The determined positions of the first data objects 201 are stored in a combined manner as a bit pattern in the respective data object 204. In this case, a bit within the image pattern represents a storage location within the first storage unit 205. The introduction of fourth data objects 204 enables simple handling of search queries which are limited only to selected subtrees of a directory tree. For this purpose, the entire search tree is searched in accordance with the search query and the positions of the determined first data objects 201 are stored analogously as a query bit pattern. In order to limit the query to a selected subtree, there is then a logical AND link between the query bit pattern and the bit pattern which is stored in a fourth data object 204 which is assigned to a second data object 202 which represents the beginning of the corresponding subtree , In this way, a very simple restriction of search queries to selected subtrees can be realized.
In der praktischen Anwendung wird eine Mehrzahl von in der zweiten Speichereinrichtung 206 gespeicherten Datenobjekten 202 bis 204 eines Typs in einem Datenblock zusammengefaßt. Damit lassen sich die in der zweiten Speichereinheit 206 zurIn practical use, a plurality of data objects 202 to 204 of one type stored in the second storage device 206 are combined in one data block. In this way, the data stored in the second storage unit 206
Verfügung stehenden Speicherressourcen noch effektiver ausnutzen. Vorteilhafterweise sollten dabei nur solche Datenobjekte 202 bis 204 eines Typs in einem gemeinsamen Datenblock zusammengefasst werden, die dasselbe nächst übergeordnete zweite Datenobjekt 202 aufweisen. Dies bedeutet, das die in einem Datenblock zusammengefassten Datenobjekte 202 bis 204 derselben Hierarchieebene 103 zugeordnet sind. Eine derartige Zusammenfassung von Datenobjekten 202 bis 204 in einem Daten- block vermeidet Probleme, die sich infolge von Satzsperren und durch diese bewirkte gegenseitige Blockierungen ergeben könnten.Use available storage resources even more effectively. Advantageously, only those data objects 202 to 204 of one type that have the same next higher second data object 202 should be combined in a common data block. This means that the data objects 202 to 204 combined in a data block are assigned to the same hierarchy level 103. Such a combination of data objects 202 to 204 in a data block avoids problems that could arise as a result of record locks and mutual blockages caused by them.
Zur Beschleunigung von Lese- bzw. Suchvorgängen wird der In- halt der zweiten Speichereinheit 206 zumindest teilweise in einen Arbeitsspeicher bzw. einem Cache einer nicht näher dargestellten Datenverarbeitungsanlage geladen. Aufgrund der geringen Datenblockgröße und einer hohen Nutzungshäufigkeit der in der zweiten Speichereinheit 206 abgespeicherten Datenob- jekte 202 bis 204 ist die Wahrscheinlichkeit groß, daß diese Datenobjekte im Arbeitsspeicher bzw. im Cache gehalten bleiben.In order to accelerate reading or search processes, the content of the second storage unit 206 is at least partially loaded into a working memory or a cache of a data processing system, not shown. Because of the small data block size and the high frequency of use of the data objects 202 to 204 stored in the second storage unit 206, there is a high probability that these data objects will be kept in the main memory or in the cache.
Prinzipiell kann ein erstes Datenobjekt 201 in einem einzigen Datenblock gespeichert werden. Vorteilhaft erweist sich in zahlreichen Fällen eine Auslagerung von Daten, um auf diese Weise eine einheitliche Datenblocklänge ohne unnötige Verschwendung von Speicherressourcen und ohne unnötigen Verwaltungsaufwand verwenden zu können. Die Datenblocklänge für die ausgelagerten Daten kann variabel sein.In principle, a first data object 201 can be stored in a single data block. Outsourcing of data has proven to be advantageous in numerous cases, in order to be able to use a uniform data block length in this way without unnecessarily wasting memory resources and without unnecessary administration effort. The data block length for the outsourced data can be variable.
Die Anwendung der vorliegenden Erfindung ist nicht auf das hier beschriebene Ausführungsbeispiel beschränkt. The application of the present invention is not restricted to the exemplary embodiment described here.

Claims

Patentansprüche claims
1. Verfahren zur Speicherung hierarchisch abhängiger Daten durch eine Datenverarbeitungsanlage, bei dem - hierarchisch abhängige Daten in erste Datenobjekte (201) , die Nutzdaten (211) umfassen, und in zweite Datenobjekte (202), die Verweise (222, 223) auf erste (201) und/oder zweite Datenobjekte (202) aufweisen, unterteilt und in zumindest einer Speichereinheit (205, 206) abgespeichert werden.1. A method for storing hierarchically dependent data by means of a data processing system, in which - hierarchically dependent data in first data objects (201), which include user data (211), and in second data objects (202), the references (222, 223) to first ( 201) and / or second data objects (202), divided and stored in at least one storage unit (205, 206).
2. Verfahren nach Anspruch 1 , bei dem durch die Verweise (222, 223) in den zweiten Datenobjekten (202) zwischen Daten bestehende hierarchische Abhän- gigkeiten abgebildet werden.2. The method according to claim 1, in which hierarchical dependencies between data are represented by the references (222, 223) in the second data objects (202).
3. Verfahren nach einem der Ansprüche 1 oder 2 , bei dem für einen Verweis von einem referenzierenden ersten Datenobjekt (201) auf ein referenziertes erstes Datenobjekt (201) ein drittes Datenobjekt (203) erzeugt und abgespeichert wird, das einen Verweis auf das referenzierte erste Datenobjekt (201) aufweist, und bei dem ein Attribut (213) des referenzierenden ersten Datenobjekts (201) mit einem Verweis auf das dritte Datenobjekt (203) versehen wird.3. The method as claimed in claim 1, in which, for a reference from a referencing first data object (201) to a referenced first data object (201), a third data object (203) is generated and stored, which is a reference to the referenced first Data object (201), and in which an attribute (213) of the referencing first data object (201) is provided with a reference to the third data object (203).
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die ersten Datenobjekte (201) in einer ersten Speichereinheit (205) und die zweiten (202) und/oder dritten Datenobjekte (203) in einer zweiten Speichereinheit (206) abge- speichert werden.4. The method as claimed in one of claims 1 to 3, in which the first data objects (201) are stored in a first storage unit (205) and the second (202) and / or third data objects (203) are stored in a second storage unit (206) become.
5. Verfahren nach Anspruch 4, bei dem der Inhalt der zweiten Speichereinheit (206) zumindest teilweise in einen Arbeitsspeicher und/oder in einen Ca- ehe geladen wird. 5. The method according to claim 4, wherein the content of the second storage unit (206) is at least partially loaded into a working memory and / or into a cache.
6. Verfahren nach einem der Ansprüche 4 oder 5 , bei dem von einem ausgewählten zweiten Datenobjekt (202) hierarchisch abhängige zweite Datenobjekte (202) und diesen durch Verweise (222, 223) zugeordnete erste Datenobjekte (201) ermittelt werden, bei dem einen Speicherort der ermittelten ersten Datenobjekte (201) innerhalb der ersten Speichereinheit (205) kennzeichnende Positionen ermittelt werden, und bei dem die ermittelten Positionen in einem dem ausgewählten zweiten Datenobjekt (202) zugeordneten vierten Daten- objekt (204) abgespeichert werden.6. The method as claimed in claim 4, in which second data objects (202) which are hierarchically dependent on a selected second data object (202) and first data objects (201) assigned to them by references (222, 223) are determined, in the case of a storage location positions identifying the determined first data objects (201) within the first memory unit (205) are determined, and in which the determined positions are stored in a fourth data object (204) assigned to the selected second data object (202).
7. Verfahren nach Anspruch 6 , bei dem die ermittelten Positionen im vierten Datenobjekt (204) als Bitmuster zusammengefaßt abgespeichert werden, bei dem ein Bit innerhalb des Bitmusters einen Speicherort innerhalb der ersten Speichereinheit (205) repräsentiert.7. The method according to claim 6, in which the determined positions are stored in the fourth data object (204) combined as a bit pattern, in which a bit within the bit pattern represents a storage location within the first storage unit (205).
8. Verfahren nach einem der Ansprüche 4 bis 7, bei eine Mehrzahl von in der zweiten Speichereinheit (206) gespeicherten Datenobjekten eines Typs in einem Datenblock zusammengefaßt werden.8. A method according to any one of claims 4 to 7, of one type are combined in a data block at a plurality of data stored in the second storage unit (206) data objects.
9. Verfahren nach Anspruch 8 , bei dem nur solche Datenobjekte (202-204) in einem Datenblock zusammengefaßt werden, die dasselbe nächst übergeordnete zweite Datenobjekt (202) aufweisen.9. The method according to claim 8, in which only those data objects (202-204) are combined in a data block which have the same next higher second data object (202).
10. Anordnung zur Speicherung hierarchisch abhängiger Daten, bei der - hierarchisch abhängige Daten in Nutzdaten (211) umfassende erste Datenobjekte (201) und in Verweise (222, 223) auf erste (201) und/oder zweite Datenobjekte (202) aufweisende zweite Datenobjekte (202) unterteilt in zumindest einer durch eine Datenverarbeitungsanlage auslesbaren Spei- chereinheit (205, 206) abgespeichert sind. 10. Arrangement for storing hierarchically dependent data, in the case of which - first data objects (201) comprising hierarchically dependent data in user data (211) and in references (222, 223) to second (201) and / or second data objects (202) having second data objects (202) divided into at least one memory unit (205, 206) that can be read out by a data processing system.
EP02776708A 2001-09-28 2002-09-24 Method and device for storing hierarchically dependent data Withdrawn EP1430425A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10148008 2001-09-28
DE10148008A DE10148008A1 (en) 2001-09-28 2001-09-28 Method and arrangement for storing hierarchically dependent data
PCT/DE2002/003592 WO2003030019A2 (en) 2001-09-28 2002-09-24 Method and device for storing hierarchically dependent data

Publications (1)

Publication Number Publication Date
EP1430425A2 true EP1430425A2 (en) 2004-06-23

Family

ID=7700723

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02776708A Withdrawn EP1430425A2 (en) 2001-09-28 2002-09-24 Method and device for storing hierarchically dependent data

Country Status (3)

Country Link
EP (1) EP1430425A2 (en)
DE (1) DE10148008A1 (en)
WO (1) WO2003030019A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2386716B (en) * 2001-12-21 2005-08-24 Agere Systems Inc A method of improving the lookup performance of tree-type knowledge base searches

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295261A (en) * 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
US5630125A (en) * 1994-05-23 1997-05-13 Zellweger; Paul Method and apparatus for information management using an open hierarchical data structure
DE19538240A1 (en) * 1995-10-13 1998-08-06 Annette Brueckner Information system and method for storing data in an information system
US5758353A (en) * 1995-12-01 1998-05-26 Sand Technology Systems International, Inc. Storage and retrieval of ordered sets of keys in a compact 0-complete tree

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO03030019A2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2386716B (en) * 2001-12-21 2005-08-24 Agere Systems Inc A method of improving the lookup performance of tree-type knowledge base searches

Also Published As

Publication number Publication date
WO2003030019A2 (en) 2003-04-10
WO2003030019A3 (en) 2004-01-29
DE10148008A1 (en) 2003-04-24

Similar Documents

Publication Publication Date Title
DE3856055T2 (en) Method and device to enable simultaneous access to indexed sequential files
DE69530595T2 (en) SYSTEM AND METHOD FOR THE X.500 DATABASE STANDARD
DE4218025C2 (en) Apparatus and method for automatically associating data storage devices in a computer system
DE3382808T2 (en) Database access method with a user-friendly menu
DE60019839T2 (en) A method for exchanging data between a Java system database and an LDAP directory
DE69430027T2 (en) Efficient storage of an object in a file system
DE3855213T2 (en) Database system and method for simultaneous record access using a tree structure index
DE3688529T2 (en) Procedure for refreshing multi-column tables in a relational database with minimum information.
DE69229056T2 (en) OPEN DIRECTORY DATABASE VIEWS
DE69906488T2 (en) Procedure for synchronizing a database schema with its representation in an object-oriented repository
DE69024932T2 (en) Procedure to identify documents with a certain attribute with the help of a vector-relational characteristic object
DE69031164T2 (en) LIMITED TIME CENTER SYSTEM FOR DECENTRALIZED DATABASE SYSTEM
DE60118973T2 (en) METHOD FOR INQUIRING A STRUCTURE OF COMPRESSED DATA
DE19627472A1 (en) Database system
DE19844013A1 (en) Computer-readable work folder memory
DE10255128A1 (en) Computer-implemented PDF document management
WO2015090668A1 (en) Posix-compatible file system, method for producing a file list and memory apparatus
EP0523269A1 (en) Computer system for data management
EP0855062A2 (en) Information system and process for storing data therein
DE69127399T2 (en) Method for the automatic deletion of temporary document connections in a data processing system
DE69123493T2 (en) Processing method and device to create a file name from a logical to a correct name
DE19534819B4 (en) Method and device for configuring a database
DE69932147T2 (en) Communication unit and communication method with profile management
EP1276056A1 (en) Method for managing a Database
DE69517887T2 (en) Method and system for establishing connections in a database system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20040326

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20040820

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20060125