DE10113515A1 - Database system - Google Patents
Database systemInfo
- Publication number
- DE10113515A1 DE10113515A1 DE10113515A DE10113515A DE10113515A1 DE 10113515 A1 DE10113515 A1 DE 10113515A1 DE 10113515 A DE10113515 A DE 10113515A DE 10113515 A DE10113515 A DE 10113515A DE 10113515 A1 DE10113515 A1 DE 10113515A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- entry
- database system
- column
- references
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
Description
Die vorliegende Erfindung betrifft ein Datenbanksystem, das insbesondere auf einer relationalen Datenbank basiert, bei dem eine Datenbasis, die aus einer Vielzahl von Datenfeldern besteht, gespeichert wird, und ein Verfahren zur Speicherung, Änderung und Anzeige der Datenbasis.The present invention relates to a database system that based in particular on a relational database in which a database, which consists of a large number of data fields, is stored, and a Procedure for storing, changing and displaying the database.
Unter dem Begriff Datenbank versteht man gemäß dem "Computer- Lexikon", 3. Aufl., 1998, S. 196 ff., erschienen im DTV Verlag, in der ursprünglichen Bedeutung einen strukturierten, inhaltlich zusammengehörigen Datenbestand, wie zum Beispiel Adressen, Kunden- oder Mitarbeiterdaten. Meist jedoch wird mit einer Datenbank das Anwendungsprogramm bezeichnet, das zur Verwaltung des Datenbestands dient. Die Daten selbst nennt man Datenbasis oder Datenbestand. Ein sogenanntes Datenbank-Managementsystem greift auf diese Datenbasis zu, zeigt Bestandteile der Datenbasis an, und ist fähig, die Datenbasis zu modifizieren und nach Bestandteilen zu suchen.According to the "computer Lexikon ", 3rd ed., 1998, p. 196 ff., Published by DTV Verlag, in the original Importance of a structured, content-related data stock, such as for example addresses, customer or employee data. Mostly, however, with one Database is the application program that is used to manage the Database serves. The data itself is called the database or database. A so-called database management system accesses this database, displays components of the database, and is able to modify the database and look for ingredients.
Bei bekannten Datenbanksystemen wird dabei die Datenbasis in strukturierter Form abgespeichert, gemäß dem Stand der Technik in Tabellenform. Eine Datenbasis besteht aus einer Reihe von Datensätzen, von denen sich jeder wiederum aus einer Reihe von Datenfeldern zusammensetzt. Bei einer Adreßdatenbank zum Beispiel entspricht jede Adresse einem Datensatz, und jeder Bestandteil der Adresse einem Feld.In known database systems, the database in structured form stored, according to the prior art in tabular form. A database consists of a series of data records, each of which is separate again composed of a number of data fields. At a Address database, for example, each address corresponds to a record, and everyone Part of the address of a field.
In der Fig. 1 ist ein herkömmlicher Datensatz 100 dargestellt, der aus einer Adreßdatenbank stammt. Der Datensatz 100 besteht aus den Datenfeldern 110 Nachname, Vorname, Straße, Ort und Telefon. Beim gezeigten Datensatz der Fig. 1 enthält das Feld Nachname den Namen Huber, das Feld Vorname die Angabe Henriette usw. Diese Datenfeldangaben 120 werden im nachfolgenden auch als Datenfeldinhalte bzw. lediglich Inhalte bezeichnet. In FIG. 1, a conventional data record 100 is shown, which comes from an address database. The data record 100 consists of the data fields 110 last name, first name, street, city and telephone. In the data record shown in FIG. 1, the last name field contains the name Huber, the first name field contains Henriette, etc. These data field details 120 are also referred to below as data field contents or merely contents.
Die Struktur der Datensätze wird beim Anlegen der Datenbasis festgelegt. Dazu gibt man an, aus welchen Datenfeldern sich ein Datensatz zusammensetzt und wieviel Platz für jedes Datenfeld reserviert werden soll. Bei einigen Programmen läßt sich die Struktur nachträglich ändern. So kann man Datenfelder einfügen oder den für ein Datenfeld reservierten Platz vergrößern oder verkleinern. Je nach der Definition der Datenbankstruktur werden dann die Daten für die einzelnen Datensätze eingegeben.The structure of the data records is changed when the database is created established. To do this, you specify which data fields make up a data record and how much space should be reserved for each data field. at The structure of some programs can be changed later. So you can Insert data fields or enlarge the space reserved for a data field or out. Depending on the definition of the database structure, the data is then entered for the individual data records.
Dies ist jedoch nicht immer so. Diese Art von strukturierter Abspeicherung der Daten bedeutet, daß für jede Ablage bzw. Abspeicherung von einem Datensatz vorausgesetzt wird, daß der Datensatz, der abzulegen bzw. abzuspeichern ist, in seiner Struktur zumindest mit einer Teilstruktur der Datenbank übereinstimmt. Soll aber ein Datensatz abgespeichert werden, der in seiner Struktur nicht den vorhandenen Datenstrukturen bzw. Teilen davon entspricht, so muß die Datenbank selbst um das neue Strukturelement (Feld/Felder) erweitert werden, bevor der Datensatz abgespeichert werden kann, d. h. in der Tabelle werden Spalten hinzugefügt. Dies kann zu Redundanzen führen, da die "alten" Datensätze eventuell keine Informationen bezüglich den neuen Spalten besitzen.However, this is not always the case. That kind of structured Storage of the data means that for each storage or storage of a data record is assumed that the data record to be stored or is to be saved in its structure, at least with a substructure of the database matches. However, if a data record is to be saved in its Structure does not correspond to the existing data structures or parts thereof, see above the database itself must be expanded with the new structure element (field / fields) before the record can be saved, d. H. in the table columns are added. This can lead to redundancies because the "old" Records may not have any information regarding the new columns.
Ein besonderes Problem stellt die Speicherung von Datensätzen mit einer neuen Datensatzstruktur dar. Diese Datensatzstruktur muß vom Anwender definiert werden. Hierfür sind Änderungen im Datenbank-Managementsystem und in den Anwendungsprogrammen, die mit dieser Datenbank arbeiten, nötig.The storage of data sets presents a particular problem a new data record structure. This data record structure must be created by the user To be defined. There are changes in the database management system and in the application programs that work with this database.
Zur Anzeige der Daten bieten die meisten Programme einen sogenannten Listenmodus (auch Browse-Modus genannt) und einen Formularmodus. Im Listenmodus werden alle bzw. ausgewählte Datensätze in tabellarischer Form angezeigt. Die Fig. 2 und 3 zeigen Beispiele solcher herkömmlichen tabellarisch angezeigten Datenbanken, wobei in Fig. 2 eine Datenbank, in der Kundenadressen gespeichert sind, und in Fig. 3 eine weitere Datenbank, in der einzelne Aufträge gespeichert sind, und die in Relation zur Kundendatenbank steht, dargestellt sind. In Fig. 2 sind mehrere vertikale Datensätze 200 dargestellt. In Fig. 3 steht jeder Datensatz 300 in einer eigenen Zeile, die Daten der einzelnen Felder sind spaltenweise angeordnet. In Fig. 2 ist die Bedeutung der Spalte mit der der Zeile vertauscht.Most programs offer a so-called list mode (also called browse mode) and a form mode for displaying the data. In list mode, all or selected data records are displayed in tabular form. Figs. 2 and 3 show examples of such conventional tabular databases displayed, being stored in Fig. 2 is a database in which customer addresses, and in Fig. 3, another database, are stored in the individual orders, and in relation to the customer database stands, are shown. A plurality of vertical data records 200 are shown in FIG. 2. In Fig. 3, each record 300 is on a separate line, the data of the individual fields are arranged in columns. In Fig. 2 the importance of the column is interchanged with that of the line.
Die herkömmliche Datenbank kann nach einzelnen Datensätzen oder nach solchen Datensätzen durchsucht werden, die einem oder mehreren Kriterien entsprechen. Die Kriterien lassen sich gewöhnlich über Operatoren wie <, <, = , UND (AND), ODER (OR) oder NICHT (NOT) festlegen und miteinander verknüpfen - also zum Beispiel alle mit Namen Müller aus München; alle Müller, die nicht in München wohnen; alle Müller aus München und alle Schmidt aus Hamburg. Die gefundenen Datensätze können angezeigt oder in Listen- oder Formularform ausgedruckt werden. Im Formularmodus wird jeweils nur ein Datensatz angezeigt.The conventional database can search for individual records or searches for such records that meet one or more criteria correspond. The criteria can usually be set using operators such as <, <, =, Determine AND (AND), OR (OR) or NOT (NOT) and link them together - So for example all with the name Müller from Munich; all millers who are not in Munich live; all millers from Munich and all Schmidt from Hamburg. The found records can be displayed or in list or form form can be printed out. Only one record is displayed in form mode.
Für die Anzeige bzw. den Ausdruck lassen sich die Datensätze nach einem oder mehreren Feldern sortieren. Bei vielen Programmen muß dazu für die zu sortierenden Felder ein sogenannter Index angelegt werden. Der Index wird meist in einer eigenen Datei gespeichert und beschleunigt Sortier- und Suchvorgänge.The data records can be read for display or printing sort one or more fields. In many programs this must be done for the fields to be sorted, a so-called index is created. The index will usually saved in a separate file and speeds up sorting and Searches.
Einige Datenbankprogramme erlauben es, sehr komplexe Datenbanken zu erstellen, die von anderen Anwendern benutzt werden können, obwohl diese Anwender gar nicht über das Datenbankprogramm verfügen.Some database programs allow very complex databases to create that can be used by other users, although this Users do not have the database program at all.
Datenbanken, die auf einer festen Struktur basieren, eignen sich gut zur Verwaltung von Daten, die immer gleich oder zumindest sehr ähnlich aufgebaut sind. Zur Verwaltung unstrukturierter Daten oder von Daten mit inhomogener Struktur sind sie kaum geeignet. Bereits eine Datenbank mit Daten unterschiedlicher Länge läßt sich nicht mit jedem Datenprogramm anlegen. Manche herkömmlichen Programme bieten dafür sogenannte Memo-Felder an, deren Längen meist mehrere KByte umfassen darf. Sind mehrere derartige Felder erforderlich oder sollte eine Strukturierung nicht möglich sein, benötigt man ein textorientiertes Datenbankprogramm, eine sogenannte Volltext-Datenbank, das die unstrukturierte Dateneingabe erlaubt und dennoch das Selektieren und Verknüpfen von Datensätzen ermöglicht.Databases that are based on a fixed structure are well suited for Management of data that is always the same or at least very similar are. For managing unstructured data or data with inhomogeneous They are hardly suitable for structure. Already a database with data different lengths cannot be created with every data program. Some conventional programs offer so-called memo fields for this Lengths can usually be several KByte. Are several such fields required or if structuring is not possible, one is required text-oriented database program, a so-called full-text database, which the Unstructured data entry allowed and still the selection and linking of records.
Eine Alternative für derartige Aufgabenstellungen sind objektorientierte Datenbanken. Ein wesentliches Unterscheidungskriterium bei Datenbanken und gleichzeitig ausschlaggebend für die Leistungsfähigkeit des Programms ist das verwendete Datenbankmodell, das auch als Datenmodell bezeichnet wird und die Beziehungen der einzelnen Daten definiert. Im nachfolgenden werden zwei Datenmodelle genauer beschrieben.An alternative for such tasks are object-oriented Databases. An essential distinguishing criterion for databases and at the same time, this is crucial for the performance of the program used database model, which is also called data model and which Relationships of the individual data defined. The following are two Data models described in more detail.
Zum einen gibt es das hierarchische Datenmodell. In einer derartigen Datenbank sind die einzelnen Datensätze in einer Baumstruktur gespeichert, ähnlich wie bei einem hierarchischen Dateisystem. Dieses Datenmodell ist weit verbreitet. Werden zwei Daten verknüpft, so kann man jedem Datensatz der einen Datenbank genau einen Datensatz der anderen Datenbank zuordnen; mehrere gleichzeitig bestehende Verknüpfungen sind nicht erlaubt. Das hierarchische Datenmodell ist nur schwer mit typischen in der Praxis vorkommenden Datenstrukturen vereinbar. Beispielsweise könnten in einer Datenbank die einzelnen Mitarbeiter - aufgegliedert nach Abteilungen und Projekten - gespeichert werden. Doch in der Praxis kommt es häufig vor, daß einzelne Mitarbeiter für verschiedene Abteilungen und an mehreren Projekten arbeiten.On the one hand there is the hierarchical data model. In one Database, the individual records are stored in a tree structure, similar to a hierarchical file system. This data model is wide common. If two data are linked, each data record can be linked to one Assign the database exactly one record to the other database; several concurrent connections are not allowed. The hierarchical Data model is difficult with typical ones occurring in practice Data structures compatible. For example, in a database individual employees - broken down by departments and projects - saved become. However, in practice it often happens that individual employees work for different departments and work on several projects.
Ein weiteres häufig benutztes Datenmodell stellt die relationale Datenbank dar. Grundlage dieses Modells ist eine tabellenartige Struktur. Jede Zeile der Tabelle stellt einen Datensatz dar, der auch Tupel genannt wird; die einzelnen Spalten enthalten die Datenfelder. Bei derartigen Datenbanken kann man eine Beziehung, also eine Relation, zwischen verschiedenen Datenbeständen aufbauen. So könnte zum Beispiel eine Kundendatenbank mit einer Datenbank verknüpft werden, in der die eingegangenen Aufträge gespeichert sind (vgl. Fig. 2 und 3), und für jeden bzw. für ausgewählte Kunden die Adresse und die jeweiligen Aufträge angezeigt werden. Für komplexere Anwendungen, zum Beispiel bei der Auftragsabwicklung in Firmen, sind derartige Datenbanken unerläßlich. Another frequently used data model is the relational database. The basis of this model is a table-like structure. Each row of the table represents a data record, which is also called a tuple; the individual columns contain the data fields. With such databases, one can establish a relationship, that is, a relationship, between different databases. For example, a customer database could be linked to a database in which the orders received are stored (see FIGS. 2 and 3), and the address and the respective orders are displayed for each or for selected customers. Such databases are indispensable for more complex applications, for example in order processing in companies.
Probleme ergeben sich bei der Einführung zusätzlicher Datenwerte oder Datenobjekte, die umfangreiche Änderungen an der Tabellendefinition erforderlich machen. Die relationale Datenbank führt bei ähnlichen Datenobjekten zu redundanten Inhalten, denen zum Teil durch die Auslagerung und Referenzierung in weiteren Tabellen begegnet wird, ohne diese vollständig zu unterbinden.Problems arise when introducing additional data values or Data objects that require extensive changes to the table definition do. The relational database leads to similar data objects redundant content, partly through outsourcing and referencing is encountered in other tables without completely preventing them.
Eine Aufgabe der Erfindung ist es, ein Datenbanksystem vorzusehen, das keine Beschränkung bezüglich der Inhalte aufweist und im Hinblick auf Erweiterungen der Datenstrukturen und der Übertragbarkeit auf andere relationale Datenbanksysteme verschiedener Hersteller ohne Änderung der Tabellendefinitionen erweiterbar ist.An object of the invention is to provide a database system that has no content or restrictions Extensions of the data structures and the transferability to other relational ones Database systems from different manufacturers without changing the Table definitions is expandable.
Eine weitere Aufgabe ist es, Redundanzen vollständig zu vermeiden.Another task is to completely avoid redundancies.
Des weiteren soll ein Verfahren vorgesehen werden, das es erlaubt, Operationen in einem Datenbanksystem durchzuführen, das die oben beschriebenen Probleme löst.Furthermore, a method is to be provided which allows Perform operations in a database system that does the above solves the problems described.
Die Lösung der oben beschriebenen Probleme findet sich in den beigefügten Ansprüche wieder, wobei die vorliegende Erfindung durch die unabhängigen Ansprüche definiert wird. Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen beschrieben.The solution to the problems described above can be found in appended claims, wherein the present invention by independent claims is defined. Preferred embodiments are in the dependent claims described.
Die vorliegende Erfindung, deren Merkmale, Verwendungszwecke und Vorteile werden aus der folgenden Beschreibung der bevorzugten Ausführungsformen, wie sie in den beigefügten Zeichnungen veranschaulicht sind, deutlicher werden.The present invention, its features, uses and Advantages will be preferred from the following description Embodiments as illustrated in the accompanying drawings, become clearer.
Fig. 1 zeigt einen herkömmlichen Datensatz aus einer Adreßdatenbank. Fig. 1 shows a conventional data record from an address database.
Fig. 2 zeigt eine herkömmliche tabellarische Datenbank, in der Kundenadressen gespeichert sind. Fig. 2 shows a conventional tabular database in which customer addresses are stored.
Fig. 3 zeigt eine weitere herkömmliche Datenbank, in der einzelne Aufträge gespeichert sind und die eine Relation zur Kundendatenbank der Fig. 2 aufweist. FIG. 3 shows a further conventional database in which individual orders are stored and which has a relationship to the customer database of FIG. 2.
Fig. 4 zeigt eine Ausführungsform der vorliegenden Erfindung. Fig. 4 shows an embodiment of the present invention.
Fig. 5 zeigt eine vierspaltige Wertetabelle gemäß der vorliegenden Erfindung. Fig. 5 shows a four-column table of values according to the present invention.
Fig. 6 zeigt eine Objekttabelle gemäß der vorliegenden Erfindung. Fig. 6 shows an object table according to the present invention.
Fig. 7 zeigt eine Attributtabelle gemäß der vorliegenden Erfindung. Fig. 7 shows an attribute table according to the present invention.
Fig. 8 zeigt eine Inhaltstabelle gemäß der vorliegenden Erfindung. Fig. 8 shows a table of contents according to the present invention.
Fig. 9 zeigt hierarchisch gegliederte Ortsbezüge. Fig. 9 shows hierarchically structured local references.
Die Fig. 4 veranschaulicht eine Ausführungsform der vorliegenden Erfindung. Im erfindungsgemäßen Datenbanksystem werden mehrere Tabellen zur Festlegung eines Datenfelds eines Objekts verwendet. Man beachte, daß hier von einem Datenfeld eines Objekts und nicht von einem Datenfeld eines Datensatzes gesprochen wird. Im nachfolgenden ist ein Objekt äquivalent zu einem oder mehreren herkömmlichen Datensätzen. Um eine größtmögliche Flexibilität zu erreichen, was die Anzahl und den Inhalt der Datenfelder betrifft, muß man sich von der Vorstellung des herkömmlichen Datensatzes lösen. Der herkömmliche Datensatz war dadurch gekennzeichnet, daß er beispielsweise einer Zeile in einer relationalen (tabellarischen) Datenbankbasis entsprach, wobei die Anzahl der zum Datensatz gehörigen Datenfelder durch die Anzahl der Spalten der Datenbasis bestimmt war. Die möglichen Inhalte, die Reihenfolge und das Datenformat eines Datenfelds war durch die Spalte, die Spaltenreihenfolge und die Spalteneinheit festgelegt. So konnte man beispielsweise in einem Datenfeld, in dem beispielsweise Vornamen abgespeichert wurden, keine Telefonnummer eingeben, da als Eingabe Buchstaben und nicht Ziffern erwartet wurden. Um sich von dieser Vorstellung zu lösen, wird der Begriff Datensatz durch den Begriff Objekt substituiert. Unter einem Objekt ist alles zu verstehen, was im jeweiligen Anwendungsbereich sinnvollerweise in einer Datenbank zu archivieren ist. Fig. 4 illustrates an embodiment of the present invention. In the database system according to the invention, several tables are used to define a data field of an object. Note that this is a data field of an object and not a data field of a data record. In the following, an object is equivalent to one or more conventional data records. In order to achieve the greatest possible flexibility in terms of the number and content of the data fields, one has to move away from the idea of the conventional data set. The conventional data record was characterized in that it corresponded, for example, to a line in a relational (tabular) database base, the number of data fields belonging to the data record being determined by the number of columns in the database. The possible content, the order and the data format of a data field was determined by the column, the column order and the column unit. For example, you could not enter a phone number in a data field in which, for example, first names were saved, since letters and not numbers were expected as the input. In order to break away from this idea, the term data record is substituted by the term object. An object is to be understood as everything that is usefully archived in a database in the respective area of application.
Angenommen eine große Bibliothek möchte ihr Inventar in Form einer relationalen Datenbank elektronisch abrufbar abspeichern. Dabei sollen aber nicht nur die Bücher der Bibliothek, sondern auch jede andere Gegenstand wie etwa Stühle, Tische, Regale usw. erfaßt werden. Als weitere Gegenstände sind sogar Verträge denkbar, die die Bibliothek mit anderen Bibliotheken über die Leihe von Büchern getroffen hat. All diese Gegenstände sind Objekte. Die Objekte lassen sich verschiedenen Objekttypen zuordnen, die vom Benutzer der erfindungsgemäßen Datenbank beliebig erstellt werden können. Beispielsweise könnten alle Taschenbücher, Lexika, Romane, Sachbücher oder ähnliches als Objekte zum Objekttyp Buch gehören. Tische, Stühle und Regale könnten zum Objekttyp Möbel gehören.Suppose a large library wants its inventory in the form of a Save the relational database electronically. But not supposed to just the books of the library, but also any other subject such as Chairs, tables, shelves, etc. can be detected. As more items are even Contracts conceivable that the library with other libraries on the loan of Books. All of these objects are objects. The objects can be assign different object types by the user of the invention Database can be created arbitrarily. For example, everyone could Paperbacks, lexicons, novels, non-fiction or similar as objects for Object type include book. Tables, chairs and shelves could be furniture belong.
Es ist leicht verständlich, daß Objekte unterschiedliche Eigenschaften aufweisen. So hat beispielsweise der Objekttyp Buch die Eigenschaften Autor, Erscheinungsjahr, Verlag usw. Der Objekttyp Möbel dagegen kann sich beispielsweise durch Eigenschaften wie Preis, Breite, Höhe, Tiefe oder ähnliches auszeichnen.It is easy to understand that objects have different properties exhibit. For example, the Book object type has the Author properties, Year of publication, publisher, etc. The object type furniture, however, can for example through properties such as price, width, height, depth or the like distinguished.
Würde man diese Objekte als Datensätze in eine herkömmliche Tabelle eintragen, wobei jeder Datensatz alle Eigenschaften aller möglichen Objekte in Form eines Datenfeldes beinhalten würde, d. h. für jede unterschiedliche Objekteigenschaft müßte eine Spalte in der herkömmlichen tabellarischen Datenbank erzeugt werden, würde dies zu einer Tabelle erheblicher Größe führen. Nur so wäre gewährleistet, daß ein beliebiger Gegenstand, egal zu welchem Objekttypen er gehört, in der Datenbank aufgenommen werden kann. Dies führt auch zwangsweise zu einer erheblichen Vielzahl von Redundanzen.One would place these objects as records in a conventional table enter, with each record having all properties of all possible objects in Form of a data field, i.e. H. for each different Object property would have a column in the conventional tabular Database would be created, this would lead to a table of considerable size. This is the only way to ensure that any object, no matter what Object types he heard can be recorded in the database. this leads to also forcing a considerable number of redundancies.
Eine andere Möglichkeit, dieses Problem zu lösen, wäre es, verschiedene Datenbanktabellen anzulegen, wobei für jeden Objekttyp eine eigene Tabelle angelegt werden müßte.Another way to solve this problem would be create different database tables, one for each object type Table should be created.
Durch die oben beschriebenen erfindungsgemäßen Objekte lassen sich diese Probleme umgehen. Jedes herkömmliche Datenfeld (d. h. Eigenschaft eines Objekts) wird in der erfindungsgemäßen Datenbank gemäß einer Ausführungsform als Zeile in einer vierspaltigen sogenannten Wertetabelle abgespeichert. In der Fig. 4 ist die Wertetabelle 400 in der Mitte dargestellt. Die vier Spalten der Wertetabelle 400 sind schematisch durch die vier Referenzen WertID 472, txt 463, tag 433 und obj 443 veranschaulicht. Die mit "txt" bezeichnete Spalte 463 referenziert auf eine Inhaltstabelle 460, die ebenfalls zwei Spalten 461 und 462 aufweist, die mit "TXT" und "TxtID" bezeichnet werden. Die mit "tag" bezeichnete Spalte 433 referenziert auf eine Attributtabelle 430, die zwei Spalten 431 und 432 aufweist, die mit "TAG" und "TagID" bezeichnet werden. Die mit "obj" bezeichnete Spalte 443 referenziert auf eine Objekttabelle 440, die zwei Spalten 441 und 442 aufweist, die mit "OBJ" und "ObjID" bezeichnet werden. Die mit "WertID" bezeichnete Spalte 472 dient zur durchlaufenden Numerierung und ist für die Funktionalität der Datenbank nicht zwingend erforderlich.These problems can be avoided by the objects according to the invention described above. Each conventional data field (ie property of an object) is stored in the database according to one embodiment as a row in a four-column so-called value table. In FIG. 4, the table of values is shown in the middle of the 400th The four columns of the value table 400 are schematically illustrated by the four references WertID 472 , txt 463, tag 433 and obj 443. Column 463 labeled "txt" references a content table 460 , which also has two columns 461 and 462 , which are labeled "TXT" and "TxtID". Column 433 labeled "tag" references an attribute table 430 that has two columns 431 and 432 that are labeled "TAG" and "TagID". Column 443, labeled "obj", references an object table 440 that has two columns 441 and 442 , which are labeled "OBJ" and "ObjID". Column 472 labeled "WertID" is used for continuous numbering and is not absolutely necessary for the functionality of the database.
In Fig. 5 ist eine Wertetabelle 500, die in ihrer Struktur der Wertetabelle 400 der Fig. 4 entspricht, in größerem Detail dargestellt. Die Wertetabelle 500 wird aus vier Spalten gebildet. Eine Spalte 572, die mit "WertID" bezeichnet ist, beinhaltet laufende Nummern. Die laufenden Nummern kennzeichnen ein Datenfeld eineindeutig, d. h. jedem Datenfeld wird eine einzige Nummer zugeordnet und umgekehrt. Die mit "txt" bezeichnete Spalte 563 beinhaltet Inhaltsreferenzen, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag in der Inhaltstabelle 460 der Fig. 4 referenzieren. Vereinfacht gesagt, in den jeweiligen Feldern dieser Spalte befinden sich Zeiger, die auf den Inhalt des jeweiligen Datenfelds wie beispielsweise den Vornamen Max zeigen. Dieser Vorname kann jedoch für mehrere Personen, die in der Datenbank abgespeichert sind, vergeben sein. Genauso gut könnte "Max" aber auch als Nachname, Firmenname oder als sonstige Bezeichnung benutzt werden. Somit erklärt sich, daß die Inhaltsreferenzen von verschiedenen Datenfeldern auf einen identischen Eintrag in der Inhaltstabelle verweisen können. Eine mit "tag" bezeichnete Spalte 533 beinhaltet Attributreferenzen, die mehrfach für verschiedene Datenfelder vergeben sein können und ebenfalls eindeutig auf einen Eintrag in der Attributtabelle 430 der Fig. 4 referenzieren. Ähnlich wie bei der zweiten Spalte sind die Felder der dritten Spalte äquivalent zu Zeigern, die auf Datenfeld- bzw. Objekteigenschaften (d. h. beispielsweise auf Feldnamen 110 der Fig. 1) bzw. -attribute referenzieren. Eine Inhaltstabelle ist im Detail in der Fig. 8 dargestellt, auf die später genauer eingegangen werden wird. Jedoch ist klar, daß auch die Attribute von verschiedenen Objekten, die jedoch zum selben Objekttyp gehören, mehrfach auftreten können, wodurch bildhaft gesprochen mehrere Zeiger aus der dritten Spalte auf einen identischen Eintrag in der Attributtabelle zeigen können. Eine mit "obj" bezeichnete Spalte 543 der Wertetabelle 500 in der Fig. 5 beinhaltet Objektreferenzen, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag in der Objekttabelle 440 der Fig. 4 referenzieren. Ähnlich wie bei den beiden vorangegangenen Spalten stellen die Felder der "obj"-Spalte Zeiger dar, die auf ein in der Objekttabelle gespeichertes Objekt zeigen. Auch hier können mehrere Zeiger auf ein und dasselbe Objekt deuten. Dies wird klar, wenn man bedenkt, daß ein Objekt mehrere verschiedene Eigenschaften haben kann, d. h. mehrere Kombinationen aus ein und demselben Element der Spalte "obj" 543 mit mehreren verschiedenen Elementen der dritten Spalte "tag" 533 wie etwa Buch - Autor, Buch - Erscheinungsjahr oder ähnliches sind vorstellbar. FIG. 5 shows a value table 500 , which corresponds in structure to the value table 400 of FIG. 4, in greater detail. The value table 500 is formed from four columns. Column 572 , labeled "ValueID", contains sequential numbers. The serial numbers uniquely identify a data field, ie each data field is assigned a single number and vice versa. Column 563 , designated "txt", contains content references that can be assigned several times to different data fields and each clearly refer to an entry in the content table 460 in FIG. 4. Put simply, the respective fields in this column contain pointers that point to the content of the respective data field, such as the first name Max. However, this first name can be assigned to several people who are stored in the database. "Max" could just as well be used as a surname, company name or other name. This explains why the content references from different data fields can refer to an identical entry in the content table. A column 533 labeled "tag" contains attribute references that can be assigned several times to different data fields and also uniquely refer to an entry in the attribute table 430 of FIG. 4. Similar to the second column, the fields of the third column are equivalent to pointers that reference data field or object properties (ie, for example, field names 110 of FIG. 1) or attributes. A table of contents is shown in detail in FIG. 8, which will be discussed in more detail later. However, it is clear that the attributes of different objects which, however, belong to the same object type, can occur more than once, which means that, figuratively speaking, several pointers from the third column can point to an identical entry in the attribute table. A column 543 of the value table 500 in FIG. 5 labeled "obj" contains object references which can be assigned multiple times for different data fields and each uniquely reference an entry in the object table 440 of FIG. 4. Similar to the two previous columns, the fields of the "obj" column are pointers that point to an object stored in the object table. Again, multiple pointers can point to the same object. This becomes clear when you consider that an object can have several different properties, ie several combinations of one and the same element of the "obj" column 543 with several different elements of the third column "tag" 533 such as book - author, book - Year of publication or similar are conceivable.
In den Fig. 6, 7 und 8 sind die in der Fig. 4, mit Ausnahme der Wertetabelle 400, dargestellten Tabellen im Detail mit Beispieleinträgen gezeigt. Die Zusammenhänge mit der in der Fig. 5 dargestellten Wertetabelle 500 werden nun ausführlich beschrieben werden. In FIGS. 6, 7 and 8 are shown in Fig. 4, with the exception of the value table 400, tables shown in detail with sample entries. The relationships with the value table 500 shown in FIG. 5 will now be described in detail.
In Fig. 6 ist eine Objekttabelle 640 gezeigt, die Beispielwerte beinhaltet und in ihrer Funktionalität der Objekttabelle 440 der Fig. 4 entspricht. Die Objekttabelle 640 ist zweispaltig aufgebaut. Eine erste Spalte 641 wird mit "OBJ" bezeichnet. Eine zweite Spalte 642 wird mit "ObjID" bezeichnet. Die Einträge der Objekttabelle 640 bestehen aus zwei Eintragungsteilen, nämlich einem ersten Eintragsteil entsprechend einem Element der ersten Spalte "OBJ", der einen Bezug zu einem anderen Objekt darstellt, und aus einem zu diesem ersten Eintragsteil gehörigen zweiten Eintragsteil entsprechend der Spalte "ObjID". Auf den zweiten Eintragsteil des (allgemeinen) Typs "ID" wird aus der "obj"-Spalte der Wertetabelle 500 der Fig. 5 verwiesen. Auf die Funktionalität des ersten Eintragsteils, entsprechend der Spalte 641 "OBJ" wird im folgenden näher eingegangen werden. FIG. 6 shows an object table 640 which contains example values and whose functionality corresponds to the object table 440 of FIG. 4. The object table 640 is constructed in two columns. A first column 641 is labeled "OBJ". A second column 642 is called "ObjID". The entries in the object table 640 consist of two entry parts, namely a first entry part corresponding to an element of the first column "OBJ", which represents a reference to another object, and a second entry part belonging to this first entry part corresponding to the "ObjID" column. The second entry part of the (general) type "ID" is referred to from the "obj" column of the value table 500 in FIG. 5. The functionality of the first entry part, corresponding to column 641 "OBJ", will be discussed in more detail below.
Über die Objekttabelle 640 wird nicht nur ein Objekt (im Sinne eines beliebigen Gegenstands im Beispiel der Bibliothek) eindeutigt gekennzeichnet, sondern auch gleichzeitig ein Bezug zu einem hierarchisch angeordneten Bezugssystem hergestellt. Dieses hierarchisch angeordnete Bezugssystem kann beispielsweise auf einem räumlichen Bezugssystem wie etwa den XYZ-Koordinaten eines Objekts basieren. Im oben genannten Beispiel der Bibliothek könnte das Ortsbezugssystem auch das Gebäude der Bibliothek als solches sein. Das Gebäude wiederum läßt sich untergliedern in einzelne Etagen bzw. Stockwerke. Diese Stockwerke kann man in einzelne Zimmer aufteilen. Die eben durchgeführte Gliederung hat sich jeweils auf die nächstkleinere örtliche Einheit bezogen. Genausogut ist eine Erweiterung des Bezugssystems denkbar, indem man vom Gebäude zur Stadt, zum Land usw. geht. Die Ortsbezüge sind eine hierarchische Gliederung eines Ortes, der eine Auskunft über das "Wer" und "Wo" gibt, d. h. welches Objekt sich an welchem Ort befindet.The object table 640 not only uniquely identifies an object (in the sense of any object in the example of the library), but also simultaneously creates a reference to a hierarchically arranged reference system. This hierarchically arranged reference system can for example be based on a spatial reference system such as the XYZ coordinates of an object. In the example of the library mentioned above, the location reference system could also be the building of the library as such. The building in turn can be divided into individual floors. These floors can be divided into individual rooms. The structure just carried out referred to the next smaller local unit. An expansion of the reference system is equally conceivable by going from the building to the city, the country, etc. The location references are a hierarchical structure of a location that provides information about the "who" and "where", ie which object is located at which location.
In dem in der Fig. 6 dargestellten Beispiel der Objekttabelle 640 gibt es zwei verschiedene Eintragstypen für den ersten Eintragsteil, der einem Element der Spalte 641 "OBJ" entspricht. Dies ist einmal der Typ "Parent =" und zum anderen der Typ "Ref =". Der Bezugstyp Parent trifft eine Aussage bezüglich der hierarchischen Anordnung der Objekte. Das höchste Objekt in der Objekthierarchie trägt die Objekt-ID "0". Dem sogenannten Ursprungsobjekt mit der ObjID "0" können keine Objekte gleicher hierarchischer Ordnung zugewiesen werden. Der Bezugstyp Parent gibt somit in der Regel Auskunft über die nächsthöhere Hierarchie bezüglich eines Objekts. Beispielsweise ist von einem Buch mit der Objekt-ID "10" bekannt (siehe Fig. 6), daß es sich im ersten Geschoß der Bibliothek befinden muß, da der in der Objekttabelle 640 eingetragene Bezug zur Objekt-ID "10" lautet: "Parent = 9". Das bedeutet, es wird auf die Objekt-ID "9" verwiesen, zu der der Bezug "Parent = 0" gehört, d. h. hierin ist die Information zu sehen, daß das Buch sich im ersten Geschoß (Parent = 9) der Bibliothek (ObjID "9" → Parent = 0) befindet, wenn die Bibliothek als solche den höchsten hierarchischen Bezug, nämlich das Objekt mit der Objekt-ID "0", darstellt.In the example of the object table 640 shown in FIG. 6, there are two different entry types for the first entry part, which corresponds to an element of the column 641 "OBJ". This is the "Parent =" type and the "Ref =" type. The reference type parent makes a statement regarding the hierarchical arrangement of the objects. The highest object in the object hierarchy has the object ID "0". Objects of the same hierarchical order cannot be assigned to the so-called original object with ObjID "0". The Parent reference type usually provides information about the next higher hierarchy with regard to an object. For example, it is known from a book with the object ID "10" (see FIG. 6) that it must be on the first floor of the library, since the reference to the object ID "10" entered in the object table 640 is: " Parent = 9 ". This means that reference is made to the object ID "9", to which the reference "Parent = 0" belongs, ie this contains the information that the book is on the first floor (Parent = 9) of the library (ObjID "9" → Parent = 0) if the library as such represents the highest hierarchical reference, namely the object with the object ID "0".
Die beiden eben genannten Bezugstypen "Parent =" und "Ref =" dienen lediglich der Vereinfachung der optischen Unterscheidung. Man kann diese auch weglassen, wobei jedoch die ihnen zugeordnete Ziffer, sprich die ObjID zwingend erforderlich ist.The two reference types just mentioned "Parent =" and "Ref =" are used just simplifying the visual distinction. You can do this too omit, but the number assigned to them, i.e. the ObjID mandatory is required.
Mit anderen Worten, jedes Objekt hat im Falle eines räumlichen Bezugssystems genau einen Ortsbezug, d. h. einen zu referierenden Vater ("Ref = . . ."). Allgemein gesprochen gibt es zu einem Objekt einen logischen Bezug, der das Objekt einem logischen Bezugssystem zuordnet. Jedoch wird der Ortsbezug der Objekte selbst wiederum als Objekt im System gespeichert und besitzt eine Referenz auf seinen "hierarchischen" Vater ("Parent = . . ."). Somit entsteht für Ortsobjekte eine einfache verkettete Liste mit anderen Ortsobjekten als Endknotenpunkte. Objekte auf der ersten Hierarchieebene verweisen auf einen sogenannten virtuellen Vater mit der ID = 0. Jedoch können mehrere Objekte einem Ort zugewiesen werden. Dies geschieht grundsätzlich durch den Bezug vom Typ "Ref = . . .". In der Objekttabelle 640 der Fig. 6 sind beispielsweise die drei Objekte mit den Objekt-IDs 26, 28 und 29 dem (Orts-)Objekt mit der Objekt-ID "45" zugewiesen. Das Objekt mit der ID = 45 ist durch den Ortsbezug "Parent = 10" dem (Orts-)Objekt mit der Objekt-ID "10" unterstellt, welches selbst wiederum dem (Orts- )Objekt 9 unterstellt ist. Das Objekt mit der Objekt-ID "9" ist dann schließlich dem virtuellen Vater mit der ID 0 unterstellt.In other words, in the case of a spatial reference system, each object has exactly one location reference, ie one father to be referenced ("Ref =..."). Generally speaking, there is a logical reference to an object, which assigns the object to a logical reference system. However, the location reference of the objects themselves is saved as an object in the system and has a reference to its "hierarchical" father ("Parent =..."). This creates a simple linked list for location objects with other location objects as end nodes. Objects on the first hierarchy level refer to a so-called virtual father with the ID = 0. However, several objects can be assigned to one location. This is basically done by referring to the type "Ref =...". In the object table 640 of FIG. 6, for example, the three objects with the object IDs 26 , 28 and 29 are assigned to the (location) object with the object ID "45". The object with the ID = 45 is subordinate to the (local) object with the object ID "10" by the location reference "Parent = 10", which in turn is subordinate to the (location) object 9 . The object with the object ID "9" is then subordinate to the virtual father with the ID 0.
Als nächstes wird eine in der Fig. 7 dargestellte Attributtabelle 730 im Detail beschrieben werden. Die Attributtabelle 730 enthält zu den Fig. 5 und 6 passende Beispieleinträge. Sie ist gleichfalls wie die Objekttabelle 640 der Fig. 6 zweispaltig angeordnet. Die erste Spalte 731 ist mit "TAG" bezeichnet. Die zweite Spalte 732 ist mit "TagID" bezeichnet. Ein Eintrag (d. h. eine Zeile) in der Attributtabelle 730 besteht somit aus zwei Teilen. Der erste Eintragsteil TAG ist grundsätzlich in drei Teile gegliedert, die mit einem Punkt getrennt werden. Diese drei Komponenten bezeichnen zum ersten - den schon oben erwähnten - Objekttyp, zum zweiten einen Datenfeldnamen und zum dritten ein Attribut, das in diesem Zusammenhang als Einheit verstanden werden kann. Der Datenfeldname entspräche in der herkömmlichen Datenbankmodellierung den Feldbezeichnungen bzw. den Spaltenüberschriften. Die dritte Komponente des ersten Eintragsteils stellt eine Einheitengröße dar, die den Inhalt des damit verknüpften Datenfelds näher beschreibt. Mögliche Einheitengrößen sind zum Beispiel "Text", "Zahl", "Währung", oder "Datum". Ein zum ersten Eintragsteil gehöriger zweiter Eintragsteil TagID entspricht einem der Einträge in der Spalte 533 der Wertetabelle 500 der Fig. 5 und stellt das Ziel des dort bezeichneten Zeigers dar. Durch die TagID wird von der Wertetabelle 500 der Fig. 5 auf die Attributtabelle 730 der Fig. 7 referenziert. Der erste Eintragsteil eines Eintrags in der Attributtabelle 730 kann somit eine Struktur vom Typ "Objekttyp._Objekt-ID._.ID_" auf (siehe auch TAG zu TagID 362) aufweisen.Next, an attribute table 730 shown in FIG. 7 will be described in detail. The attribute table 730 contains example entries suitable for FIGS. 5 and 6. Like the object table 640 of FIG. 6, it is also arranged in two columns. The first column 731 is labeled "TAG". The second column 732 is labeled "TagID". An entry (ie a row) in the attribute table 730 thus consists of two parts. The first entry part TAG is basically divided into three parts, which are separated by a period. These three components designate the first - the already mentioned - object type, the second a data field name and the third an attribute that can be understood as a unit in this context. In conventional database modeling, the data field name corresponds to the field names or column headings. The third component of the first entry part represents a unit size that describes the content of the associated data field in more detail. Possible unit sizes are, for example, "Text", "Number", "Currency", or "Date". A second entry part TagID belonging to the first entry part corresponds to one of the entries in column 533 of the value table 500 of FIG. 5 and represents the target of the pointer designated there. The TagID changes from the value table 500 of FIG. 5 to the attribute table 730 Fig. 7 references. The first entry part of an entry in the attribute table 730 can thus have a structure of the type "object type._object-ID ._. ID_" (see also TAG for TagID 362 ).
In Fig. 8 ist eine Inhaltstabelle 860 dargestellt, die in ihrer Funktionalität der Inhaltstabelle 460 der Fig. 4 entspricht. Die Inhaltstabelle 860 weist ebenfalls zwei Spalten auf. Die erste Spalte 861 wird mit "TXT" bezeichnet. Die zweite Spalte 862 wird mit "TxtID" bezeichnet. Die Einträge in die Inhaltstabelle 860 in der Fig. 8 sind beispielhaft und passen zu den in den Fig. 5, 6 und 7 dargestellten Einträgen. FIG. 8 shows a table of contents 860 , the functionality of which corresponds to the table of contents 460 of FIG. 4. The content table 860 also has two columns. The first column 861 is labeled "TXT". The second column 862 is called "TxtID". The entries in the content table 860 in FIG. 8 are exemplary and match the entries shown in FIGS. 5, 6 and 7.
Die in der Spalte 563 der Wertetabelle 500 der Fig. 5 enthaltenen Inhaltsreferenzen referenzieren auf einen zweiten Eintragsteil (TxtID) eines Eintrags der Inhaltstabelle 860. Ein zum zweiten Teil gehöriger erster Eintragsteil stellt den Inhalt des Datenfelds dar. So wird beispielsweise dem Datenfeld mit der Wert-ID "12" aus Fig. 5 über die Inhaltsreferenz mit der Text-ID "16" der Inhalt "500 501 02" zugewiesen, was der Bankverbindung einer Firma entspricht, wie man der Attributreferenz mit der Tag-ID "369" aus den Tabellen 5 und 7 entnehmen kann. Die zur Wert-ID "12" gehörige Objekt-ID "3" verweist gemäß der Objekttabelle 640 auf einen Ortsbezug "Ref = 1", womit dieses Objekt dem virtuellen Vater mit der ID = 0 zugewiesen wird, da dem Objekt mit der Objekt-ID "1" der Hierarchiebezug "Parent = 0" zugewiesen ist.The content references contained in column 563 of the value table 500 of FIG. 5 refer to a second entry part (TxtID) of an entry in the content table 860 . A first entry part belonging to the second part represents the content of the data field. For example, the content "500 501 02" is assigned to the data field with the value ID "12" from FIG. 5 via the content reference with the text ID "16" , which corresponds to the bank details of a company, as can be seen from the attribute reference with the tag ID "369" from Tables 5 and 7. According to the object table 640 , the object ID "3" belonging to the value ID "12" refers to a location reference "Ref = 1", with which this object is assigned to the virtual father with the ID = 0, since the object with the object ID "1" the hierarchy reference "Parent = 0" is assigned.
In der Fig. 9 ist der im Zusammenhang mit der Fig. 6 angeführte Bezug zwischen den Objekten in Form eines Ortsbezugs noch einmal beispielhaft verdeutlicht. Der Ortsbezug gliedert Informationen hierarchisch nach dem Ort, den sie betreffen oder an dem sie auftreten. In der Fig. 9 sind links einige Ortsbezüge wie Kunde, Nation, Stadt und Liegenschaft aufgeführt. Man sieht, daß jeder Ortsbezug mehrere untergeordnete Ortsbezüge enthalten kann. Jedem Ort wiederum können mehrere Objekte durch den Bezug des Typs "Ref = . . ." zugeordnet werden. FIG. 9 illustrates the relationship between the objects in the form of a location reference given in connection with FIG. 6 as an example. The location reference organizes information hierarchically according to the location it concerns or where it occurs. In Fig. 9 some local references such as customer, nation, city and property are listed on the left. It can be seen that each location reference can contain several subordinate location references. In turn, each location can have several objects by referring to the type "Ref =..." be assigned.
Im nachfolgenden werden einige allgemeinere Aussagen über die Funktionsweise der vorliegenden Erfindung gemacht werden.Below are some more general statements about the Operation of the present invention can be made.
Genauso wie die räumliche Zuordnung über die Ortsbezüge für einzelne Objekte möglich ist, erlaubt eine weitere Ausführungsform der Erfindung die zeitliche Zuordnung von Objekten. Beispielsweise könnte man daran interessiert sein - um im Bild des oben genannten Beispiels zu bleiben -, wo sich ein Buch XY der Bibliothek, das sich momentan im Raum Z des ersten Geschosses befindet, vorher befunden hat, bevor es in diesem Raum abgelegt wurde. Dazu wäre es erforderlich, daß man der Wertetabelle 500 der Fig. 5 auch zeitliche Informationen entnehmen kann. Dies wird erreicht, indem man eine weitere, zusätzliche Spalte definiert, die Zeitreferenzen beinhaltet. Diese Zeitreferenzen verweisen - ähnlich wie bei den Ortsbezügen - auf eine Zeittabelle (nicht dargestellt). Diese Zeittabelle ist ebenfalls zweispaltig angelegt. Die erste Spalte beinhaltet wiederum Bezüge zwischen Objekten, die zweite Spalte beinhaltet die zugehörigen Zeitreferenzen (Time-ID, nicht dargestellt), auf die die Zeitzeiger aus der weiteren Spalte der Wertetabelle zeigen.Just as the spatial assignment via the spatial references is possible for individual objects, a further embodiment of the invention allows the time assignment of objects. For example, one might be interested - to stay in the picture of the example above - where a book XY from the library, which is currently in room Z on the first floor, was previously located before being placed in this room. For this it would be necessary to be able to derive temporal information from the value table 500 in FIG. 5. This is achieved by defining an additional column that contains time references. Similar to the location references, these time references refer to a time table (not shown). This time table is also created in two columns. The first column again contains references between objects, the second column contains the associated time references (time ID, not shown), to which the time pointers from the further column of the value table point.
Es versteht sich von selbst, daß es jederzeit möglich ist, ein neues Objekt anzulegen. Dabei werden entsprechend den zu erfassenden Eigenschaften des Objekts eine äquivalente Anzahl von Zeilen in der Wertetabelle 500 der Fig. 5 angelegt. Die Datenfelder können jeweils eine laufende Nummer zugeteilt bekommen, die bisher noch nicht vergeben ist. Des weiteren wird dem Objekt eine Objekt-ID zugewiesen, die für die neu einzutragenden Felder gleich ist, da es sich um ein und dasselbe Objekt handelt. Das Objekt selbst wiederum gehört einem Objektypen an. Beispielsweise gehört ein Taschenbuch ABC - wie schon eingangs erwähnt - zum Objekttyp Buch. Existiert für ein Objekt noch kein zugehöriger Objekttyp, so läßt sich dieser auf einfache Art und Weise anlegen, indem man in der Attributtabelle einen Eintrag der Form "neuer Objekttyp.Feldname.Einheit" anlegt. Gleiches gilt für die Eigenschaften des Objekts, die in der eben genannten Schreibweise dem Feldnamen entsprechen. Somit lassen sich beliebige Objekte mit beliebigen Eigenschaften in die Wertetabelle eintragen, ohne daß dabei Redundanzen, wie im Stand der Technik, auftreten.It goes without saying that it is always possible to create a new object. An equivalent number of lines are created in the value table 500 of FIG. 5 in accordance with the properties of the object to be detected. The data fields can be assigned a sequential number that has not yet been assigned. Furthermore, an object ID is assigned to the object, which is the same for the new fields to be entered, since it is one and the same object. The object itself belongs to an object type. For example, a paperback ABC - as mentioned at the beginning - belongs to the object type book. If an associated object type does not yet exist, it can be easily created by creating an entry in the attribute table of the form "new object type. Field name. Unit". The same applies to the properties of the object, which correspond to the field name in the notation just mentioned. Any objects with any properties can thus be entered in the value table without redundancies, as in the prior art.
Sämtliche Zugriffe auf Informationen in der erfindungsgemäßen Datenbank unterliegen frei definierbaren Zugriffsrechten. Es wird zwischen den Zugriffsrechten "Schreiben & Lesen", "Lesen" sowie "kein Zugriff" unterschieden. Die Rechte werden in sogenannten Benutzergruppen organisiert. Ein Benutzer ist immer mindestens einer Benutzergruppe zugehörig. Ein Objekt oder Ortsbezug ist nur dann für eine Benutzergruppe überhaupt sichtbar, wenn für das betreffende Objekt das Recht "Schreiben & Lesen" oder "Lesen" zugeteilt wurde. Sobald ein Objekt für den Schreibzugriff geöffnet ist, erhalten alle anderen lese- und schreibberechtigten Benutzer in dieser Zeit nur das Recht "Lesen". Sobald der Schreibzugriff beendet ist, sind die Schreibrechte auch für andere Benutzer verfügbar.All access to information in the invention Database are subject to freely definable access rights. It will be between the Access rights "Write & Read", "Read" and "No Access" are differentiated. The rights are organized in so-called user groups. A user is always belonging to at least one user group. An object or location reference is only visible to a user group at all if for the relevant user group Object was assigned the "Write & Read" or "Read" right. Once a Object is open for write access, all other read and receive Authorized users only have the "Read" right during this time. Once the Write access has ended, the write rights are also available to other users available.
Des weiteren ist wie bei allen Datenbanken eine Suche möglich. Als Suchsprache kann beispielsweise SQL (Structured Query Language) benutzt werden. Die Suche ermöglicht das gezielte Finden von Objekten, beispielsweise im Ortsbezug. Der Ortsbezug kann dazu durch Navigieren in den gewünschten Ortsbezug (wie beispielsweise in Fig. 9 dargestellt) eingegrenzt werden. Des weiteren läßt sich auch eine erweiterte Suche durchführen. Die erweiterte Suche bietet zusätzlich die Möglichkeit, gezielt Informationen innerhalb von Objekten zu suchen, d. h. beispielsweise nach einer bestimmten Eigenschaft zu suchen. Dazu werden alle Eigenschaften des Objekts dargestellt. Wird kein Objekt ausgewählt bei der erweiterten Suche, so stehen die Feldeinträge aller Objekte zur Verfeinerung der Suche zur Verfügung. Das Datenbanksystem selbst arbeitet wo nur möglich mit Indizes der Tabellen, was für datenverarbeitende Systeme günstig ist.As with all databases, a search is also possible. For example, SQL (Structured Query Language) can be used as the search language. The search enables the targeted finding of objects, for example in relation to location. For this purpose, the location reference can be limited by navigating into the desired location reference (as shown for example in FIG. 9). You can also perform an advanced search. The advanced search also offers the option of searching for specific information within objects, ie searching for a specific property, for example. All properties of the object are shown. If no object is selected in the advanced search, the field entries of all objects are available to refine the search. The database system itself works with indexes of the tables wherever possible, which is favorable for data processing systems.
Abschließend kann gesagt werden, daß durch das erfindungsgemäße Datenbanksystem folgende Vorteile gegenüber dem Stand der Technik erzielt werden.In conclusion, it can be said that the inventive Database system achieved the following advantages over the prior art become.
Ein vorteilhafter Aspekt ist die Vermeidung von Redundanzen. Ein objektorientierter Datenzugriff ist möglich. Es werden keine zusätzlichen Tabellen beim Hinzufügen neuer Objekttypen erzeugt. Es existieren detaillierte bzw. kombinierte Suchmöglichkeiten bis hin zur Volltextsuche. Das Datenmodell gemäß der vorliegenden Erfindung basiert auf dem standardisierten, relationalen Datenbankmodell, was erhebliche Vorteile bezüglich der Importierbarkeit von Daten darstellt, da diese unabhängig vom jeweiligen Softwarehersteller benutzt werden können. Ferner ist der Datenexport nach XML möglich.An advantageous aspect is the avoidance of redundancies. On object-oriented data access is possible. There are no additional tables created when adding new object types. There are detailed or combined search options up to full-text search. The data model according to The present invention is based on the standardized, relational Database model, which has significant advantages in terms of data importability represents, since these are used independently of the respective software manufacturer can. Data export to XML is also possible.
Ein weiterer Vorteil ist darin zu sehen, daß Objekte miteinander über einen standardisierten Mechanismus verknüpfbar sind. Another advantage is that objects overlap with each other a standardized mechanism can be linked.
Für einen Fachmann auf dem Gebiet der Softwaretechnik ist es klar, daß man die Wertetabelle transponieren, d. h. Zeilen mit Spalten vertauschen kann und umgekehrt, ohne die Funktionalität der Erfindung zu verändern. Ähnliches gilt für den Aufbau der drei bzw. weiteren Tabellen.For a person skilled in the software engineering field it is clear that to transpose the table of values, d. H. Can swap rows with columns and vice versa, without changing the functionality of the invention. The same applies to the structure of the three or further tables.
Ein Computerprogrammprodukt kann durch jedes geeignete Speichermedium dargestellt werden, auf dem das Computerprogramm abgespeichert ist, das das Verfahren gemäß der vorliegenden Erfindung ausführt.A computer program product can be made by any suitable Storage medium on which the computer program is stored, which carries out the method according to the present invention.
Außerdem ist es für einen Fachmann aus dem vorangegangenen klar, daß verschiedene Ausführungsformen der vorliegenden Erfindung lediglich exemplarisch erklärt wurden und daß diese auf einfache Art und Weise verändert bzw. abgeändert werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Des weiteren ist festzustellen, daß die Elemente der beschriebenen Ausführungsformen sowohl durch Software als auch durch Hardware oder eine Kombination der beiden realisiert werden können.Furthermore, it is clear to one skilled in the art from the foregoing that various embodiments of the present invention merely were explained as examples and that they were changed in a simple manner or can be modified without departing from the scope of the present invention departing. It should also be noted that the elements of the described Embodiments by software as well as by hardware or a Combination of the two can be realized.
Claims (19)
eine Datenbasis des Datenbanksystems eine mehrspaltige Wertetabelle mit einer beliebigen Anzahl von Zeilen, eine Inhaltstabelle zum Speichern von Datenfeldinhalten, eine Attributtabelle zum Speichern von Datenfeldattributen und eine Objekttabelle zum Speichern von Bezügen zwischen Objekten aufweist, wobei in der Wertetabelle:
jede Zeile einem Datenfeld eines Datensatzes entspricht;
eine Spalte (txt) Inhaltsreferenzen (TxtID) beinhaltet, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag (TXT, TxtID) der Inhaltstabelle referenzieren;
eine weitere Spalte (tag) Attributreferenzen (TagID) beinhaltet, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag (TAG, TagID) der Attributtabelle referenzieren; und
noch eine weitere Spalte (obj) Objektreferenzen (ObjID) beinhaltet, die mehrfach für verschiedene Datenfelder vergeben sein können, wobei die zu jeweils einer Objektreferenz gehörenden Datenfelder jeweils einen Datensatz bilden und die Objektreferenz (ObjID) jeweils eindeutig auf einen Eintrag (OBJ, ObjID) der Objekttabelle referenzieren.1. Database system in which a large number of data records can be stored in a memory of a computer, each data record comprising any number of data fields, characterized in that
a database of the database system has a multi-column table of values with any number of rows, a table of contents for storing data field contents, an attribute table for storing data field attributes and an object table for storing references between objects, wherein in the table of values:
each row corresponds to a data field of a data record;
a column (txt) contains content references (TxtID), which can be assigned several times for different data fields and each clearly refer to an entry (TXT, TxtID) in the content table;
another column (tag) contains attribute references (TagID), which can be assigned several times for different data fields and each clearly refer to an entry (TAG, TagID) in the attribute table; and
still contains a further column (obj) object references (ObjID), which can be assigned several times for different data fields, whereby the data fields belonging to each object reference each form a data record and the object reference (ObjID) each uniquely to an entry (OBJ, ObjID) reference the object table.
zugreifen auf und/oder abspeichern von Daten einer Datenbasis, wobei die Datenbasis des Datenbanksystems eine mehrspaltige Wertetabelle mit einer beliebigen Anzahl von Zeilen, eine Inhaltstabelle zum Speichern von Datenfeldinhalten, eine Attributtabelle zum Speichern von Datenfeldattributen und eine Objekttabelle zum Speichern von Bezügen zwischen Objekten aufweist, und wobei in der Wertetabelle:
jede Zeile einem Datenfeld eines Datensatzes entspricht;
eine Spalte (txt) Inhaltsreferenzen (TxtID) beinhaltet, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag (TXT, TxtID) der Inhaltstabelle referenzieren;
eine weitere Spalte (tag) Attributreferenzen (TagID) beinhaltet, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag (TAG, TagID) der Attributtabelle referenzieren; und
noch eine weitere Spalte (obj) Objektreferenzen beinhaltet, die mehrfach für verschiedene Datenfelder vergeben sein können und jeweils eindeutig auf einen Eintrag (OBJ, ObjID) der Objekttabelle referenzieren.15. A method for performing operations in a database system in which a large number of data records can be stored in a memory of a computer, each data record comprising any number of data fields, characterized in that the operations each comprise
access and / or store data from a database, the database of the database system having a multi-column table of values with any number of rows, a table of contents for storing data field contents, an attribute table for storing data field attributes and an object table for storing references between objects, and where in the table of values:
each row corresponds to a data field of a data record;
a column (txt) contains content references (TxtID), which can be assigned several times for different data fields and each clearly refer to an entry (TXT, TxtID) in the content table;
another column (tag) contains attribute references (TagID), which can be assigned several times for different data fields and each clearly refer to an entry (TAG, TagID) in the attribute table; and
still contains a further column (obj) object references, which can be assigned several times for different data fields and each clearly refer to an entry (OBJ, ObjID) of the object table.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10113515A DE10113515A1 (en) | 2001-03-20 | 2001-03-20 | Database system |
PCT/DE2002/000945 WO2002075589A2 (en) | 2001-03-20 | 2002-03-15 | Data bank system |
EP02729794A EP1374100A2 (en) | 2001-03-20 | 2002-03-15 | Data bank system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10113515A DE10113515A1 (en) | 2001-03-20 | 2001-03-20 | Database system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10113515A1 true DE10113515A1 (en) | 2002-10-02 |
Family
ID=7678227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10113515A Withdrawn DE10113515A1 (en) | 2001-03-20 | 2001-03-20 | Database system |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1374100A2 (en) |
DE (1) | DE10113515A1 (en) |
WO (1) | WO2002075589A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005009014A1 (en) * | 2005-02-28 | 2006-09-07 | Vodafone Holding Gmbh | Method and system for managing objects of a mobile terminal |
DE102011087843A1 (en) * | 2011-12-06 | 2013-06-06 | Continental Automotive Gmbh | Method and system for selecting at least one data record from a relational database |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112209A (en) * | 1998-06-17 | 2000-08-29 | Gusack; Mark David | Associative database model for electronic-based informational assemblies |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2720904B2 (en) * | 1990-08-31 | 1998-03-04 | 富士通株式会社 | Self-describing database management system configuration method and development / modification method |
DE19627472A1 (en) * | 1996-07-08 | 1998-01-15 | Ser Systeme Ag | Database system |
WO2002103573A1 (en) * | 2001-06-14 | 2002-12-27 | Ubs Ag | A flexible virtual database system including a hierarchical application parameter repository |
-
2001
- 2001-03-20 DE DE10113515A patent/DE10113515A1/en not_active Withdrawn
-
2002
- 2002-03-15 EP EP02729794A patent/EP1374100A2/en not_active Ceased
- 2002-03-15 WO PCT/DE2002/000945 patent/WO2002075589A2/en not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112209A (en) * | 1998-06-17 | 2000-08-29 | Gusack; Mark David | Associative database model for electronic-based informational assemblies |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005009014A1 (en) * | 2005-02-28 | 2006-09-07 | Vodafone Holding Gmbh | Method and system for managing objects of a mobile terminal |
DE102011087843A1 (en) * | 2011-12-06 | 2013-06-06 | Continental Automotive Gmbh | Method and system for selecting at least one data record from a relational database |
DE102011087843B4 (en) * | 2011-12-06 | 2013-07-11 | Continental Automotive Gmbh | Method and system for selecting at least one data record from a relational database |
US9715523B2 (en) | 2011-12-06 | 2017-07-25 | Continental Automotive Gmbh | Method and system for selecting at least one data record from a relational database |
Also Published As
Publication number | Publication date |
---|---|
WO2002075589A3 (en) | 2003-10-09 |
WO2002075589A2 (en) | 2002-09-26 |
EP1374100A2 (en) | 2004-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0855062B1 (en) | Information system and process for storing data therein | |
EP0910829B1 (en) | Database system | |
DE19960043B4 (en) | Method for navigating in a tree structure | |
EP0523269A1 (en) | Computer system for data management | |
DE102010049891A1 (en) | Method for providing complementary documents e.g. books, involves providing unambiguous electronically usable assignment of complement to original web document, and selectively supplementing complement with complementary data | |
DE102013015355A1 (en) | User-controlled finding machine | |
WO2007137308A1 (en) | Method for controlling a relational database system | |
WO2000054167A2 (en) | Search and surf device for hypertext documents | |
DE19715723A1 (en) | Array method | |
DE10113515A1 (en) | Database system | |
EP1941395A1 (en) | Method for controlling a relational database system | |
DE19538448A1 (en) | Database management system and data transmission process | |
DE1938248B2 (en) | IMAGE DISPLAY SYSTEM | |
DE102010064167A1 (en) | Method for generating dynamic report for representing commercial data for selected articles in e.g. database management system oracle in computer system, involves generating report by using report template and adjusted database statements | |
DE19729911A1 (en) | Documentation data organisation system | |
DE102008062830B3 (en) | Information storing, searching and displaying device i.e. document management system, has assigning unit for assigning information to two data structures such that information is searchable and displayable | |
DE102018001664A1 (en) | Hardware configuration for exchanging storage data from locally distributed devices | |
DE10343328A1 (en) | Method for mapping a hierarchical technical system into a relational database | |
EP1234231B1 (en) | Method for generating graphical user interfaces for computer programs | |
DE10025219A1 (en) | Method, computer program product and device for automatically linking data records from at least one data source and system for retrieving linked data records from at least one data source | |
DE19914454A1 (en) | Computer based system for construction of a relational database with a procedure for inputting data with an extra relationship category table so that each relationship is assigned to a unique relationship category | |
EP1170676A1 (en) | Visualization of informationstructure of documents on the World wide web | |
EP0482044B1 (en) | Virtual memory for a parallel-computer system | |
EP1920362A1 (en) | Method for processing data | |
EP1239377A1 (en) | Data management system and method of data structure management and synchronisation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8139 | Disposal/non-payment of the annual fee |