EP1430425A2 - Method and device for storing hierarchically dependent data - Google Patents
Method and device for storing hierarchically dependent dataInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management 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
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.
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)
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)
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 |
-
2001
- 2001-09-28 DE DE10148008A patent/DE10148008A1/en not_active Withdrawn
-
2002
- 2002-09-24 EP EP02776708A patent/EP1430425A2/en not_active Withdrawn
- 2002-09-24 WO PCT/DE2002/003592 patent/WO2003030019A2/en not_active Application Discontinuation
Non-Patent Citations (1)
Title |
---|
See references of WO03030019A2 * |
Cited By (1)
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 |