Logo.CortexAG

Anmelden +

Einführung

Die Index-Struktur der CortexDB unterscheidet sich erheblich von den Strukturen und Möglichkeiten aller bisher verfügbaren Datenbanken. Dadurch sind nicht nur eine höhere Geschwindigkeit und einfachere Abfragen gegeben, sondern auch ganz neue Ansätze für die Lösung von Aufgabenstellungen.

Hierbei ist zu beachten, dass die Indexpflege vollautomatisch von der Datenbank übernommen wird und keinerlei Anpassungen erforderlich sind.

 

Allgemeine Datenbankstrukturen und Index

schemagrafik.ERDDatenbanken unterscheiden sich primär durch ihr Datenbankschema. Relationale Datenbanken organisieren Daten in Tabellen und Spalten, wobei gleiche Spalteninhalte verwendet werden, um Tabellen miteinander zu verknüpfen (über sog. "Fremdschlüssel"). Dieses wird häufig in Form von "entity relationship" Diagrammen ("ERD") dokumentiert.

Allgemein unterscheiden sich alle derzeit verbreiteten Datenbanken (SQL und auch NoSQL) durch dieses Datenbankschema, egal ob Key/Value-, Document Store, GraphDB und andere. Erst die Anwendungen organisieren Daten, basierend auf dem zugrundeliegenden Datenbankschema. Der Datenbank-Index ist eine von den Daten getrennte Struktur zur Beschleunigung und Suche von Datenbankinhalten.

Alle Datenbanken verwenden dabei flache Indexstrukturen mit Verweisen auf Datensätze, um Datenzugriffe in sortierter Reihenfolge zu ermöglichen. Unterschiede bilden spezielle Indexe in denen sich die Datenbanken unterscheiden, wobei es sich in allen Fällen um flache Indexe handelt (z.B. bitmap index).

 

CortexDB-Index im Speziellen

Bei der CortexDB handelt es sich um eine schemalose Datenbank (vergleichbar mit "Document Stores“), die mit einer inhaltsbasierenden mehrstufigen Indexstruktur arbeitet. Das bedeutet, dass jeder Inhalt "weiß", in welchen Datensätzen und Feldern er vorkommt und jedes Feld "weiß", welche verschiedenen Inhalte existieren.

Diese Indexstruktur bildet daher über alle Felder und deren Inhalte die gesamte Datenbank ab, so dass alle Abfragen in der Indexstruktur behandelt und die schemalos gespeicherten Daten nur zur Ausgabe verwendet werden. Die Größe ist hierbei erheblich geringer als erwartet und Abfragen können sehr schnell über beliebige Abfragekombinationen ausgeführt werden, weil keine dedizierten Indexe notwendig sind. Administratoren und Entwickler können daher sofort mit diesem Index arbeiten und brauchen daher (auch bei Änderungen am Datenmodell) keinerlei Anpassungen oder Optimierungen vornehmen.

 

Screen.FeldindexFeldindex in der Anwendung

Innerhalb der Anwendung UniPlex kann über den sog. "Feldindex" der Index zu jedem Feld angezeigt werden. Dieser zeigt die verwendeten Inhalte des Feldes (über alle Datensatztypen) und die Häufigkeit (Anzahl) der Inhalte in der Datenbank. Hinter jeder Anzahl verbirgt sich daher die o.g. Inhaltsliste (ID-Liste).

Zu jedem Eintrag in diesem Feldindex kann das Ergebnis in einer separaten Liste angezeigt werden. Dieses ermöglicht so den direkten Zugriff auf Datensätze mit den entsprechenden Inhalten. Für weitergehende Selektionen zur Kombination der verschiedenen Inhalte über den Feldindex stehen ergänzende Funktionen in der Anwendung zur Verfügung.

Durch die Mengen-Kombination verschiedener Feldindexe erfolgen so die Abfragen innerhalb der Datenbank. Über die Schnittmenge, Differenzmenge, symetrische Differenzmenge und Vereinigungsmenge werden nur die Vorkommen miteinander kombiniert und erst bei der Ausgabe erfolgt das Lesen der Datensätze.

 

Hinweis: Der Feldindex zu einem Feld besteht aus einer Liste von Datensatz-ID's. Jede ID wird intern mit 12 Byte verwaltet. Wird in einem Index also ein Inhalt mit der Anzahl "1" angezeigt, so ist die ID-Liste 12 Byte lang. Bei einer Anzahl von "10" also 120 Byte usw. (zzgl. 1 Byte je Feld als Trennzeichen). Ein Faktor für den Speicherbedarf des Index ergibt sich also aus der Anzahl verschiedener Inhalte je Feld und die Anzahl verschiedener Felder.

 Hinweise zur Online-Hilfe
 

© 2017 Cortex AG
(letzte Aktualisierung: 12.04.2017)

 Haftungsausschluss 

Impressum    AGB