www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Indexstrukturen Indizes werden in der Informatik verwendet um den schnellen Zugriff auf Daten in einer umfangreichen Datensammlung zu gewahrleisten Daten werden ublicherweise sequentiell auf einem Speichermedium verwaltet Die Bearbeitung einer Suchanfrage ware dabei mit linearem Aufwand verbunden im ungunstigsten Fall musste der komplette Datenbestand durchsucht werden Wird nun ein bestimmter Datensatz anhand eines Suchkriteriums in dieser Datenmenge gesucht kann uber eine Indexstruktur eine aufwendige Suche vermieden werden Der Index erlaubt es die Position des Datensatzes innerhalb des Mediums schnell zu bestimmen Inhaltsverzeichnis 1 Bekannte Verfahren 2 Funktionsprinzip anhand eines Beispiels 3 Verwendung 4 Typen 4 1 Interne und externe Indexstrukturen 4 2 Dynamische und statische Indexstrukturen 4 3 Ein und mehrdimensionale Indexstrukturen 4 4 Geclusterte und nicht geclusterte Indexstrukturen 4 5 Dunn und dichtbesetzte Indexstrukturen 5 AbwagungBekannte Verfahren BearbeitenIndexstrukturen sind selbst spezielle Datenstrukturen wie sortierte Reihe effiziente Suche mittels binarer Suche Hashtabellen Baum Strukturen wie Binarbaume B Baume B BaumFur besondere Anforderungen gibt es auch spezielle Indexstrukturen Beispielsweise verwenden Geodatenbanken zum Indizieren mehrdimensionaler Daten R Baume Diese Baume erlauben mehrdimensionale Suchkriterien und Distanzberechnungen Bitmapindex Gridfile k d Baum R Baum UB Baum Bereichsbaum fur mehrdimensionale DatenstrukturenFunktionsprinzip anhand eines Beispiels BearbeitenEin typisches Karteikarten System kann als Indexstruktur bezeichnet werden Die Menge der Adressen wird so unterteilt dass anhand des Suchkriteriums Familienname nur eine bestimmte Teilmenge aller Adressen in Frage kommt Eine typische Unterteilung ware nach dem Anfangsbuchstaben Wird dann der Name Muller gesucht muss lediglich die Teilmenge die mit M anfangt durchsucht werden Diese Teilmenge kann meist uber eine Markierung in der Kartei schnell gefunden werden Ist diese Teilmenge noch immer zu gross konnen die Teilmengen uber den zweiten oder dritten Buchstaben weiter untergliedert werden Anstatt nun alle Namen zu durchsuchen werden nur noch die Namen durchsucht die mit Mul anfangen Dies kann in vergleichsweise kurzer Zeit geschehen Um herauszufinden wer an einem bestimmten Tag Geburtstag hat ist ein solches Karteikartensystem jedoch nicht geeignet Man musste stets die gesamte Kartei durchsuchen Man spricht davon dass das Attribut Geburtstag nicht indiziert wurde Abhilfe schafft hier ein zweiter Index in dem fur jeden Kalendertag meist nur ein Verweis auf den Primarindex gespeichert wird hier typischerweise der Name Formell bezeichnet man so etwas als Sekundarindex oder externen Index Um jetzt aber beispielsweise fur einen bestimmten Tag Grusskarten zum Geburtstag zu verschicken ist es notwendig zuerst die Namen der Empfanger zu ermitteln dann im primaren Index die zugehorigen Adressen nachzuschlagen Der Vorteil ist aber dass eine Adressanderung auch nur in der primaren Adresskartei gemacht werden muss nicht zusatzlich in der Geburtstagsliste Eine beliebige vollstandig sortierte Liste stellt ebenfalls eine einfache Art Indexstruktur dar die mittels der sogenannten binaren Suche effizient durchsucht werden kann Hierbei wird die Liste gedanklich wiederholt in zwei Teile geteilt und aufgrund der bestehenden Sortierung kann einfach festgestellt werden in welchem der beiden Teile das gesuchte Element liegen muss Eine derartige Suche ist beispielsweise auch in einem gedruckten Telefonbuch moglich Eine fortgeschrittenere auf derselben Idee basierende Indexstruktur ist der B Baum Wesentliche Vorteile liegen hier in einer einfacheren Aktualisierbarkeit In einem von Hand gefuhrten Adressbuch hat man aber die Problematik dass man keine Eintrage einfugen kann daher kann man dort weder eine vollstandige sortierte Liste noch einen B Baum realisieren das oben beschriebene Karteikartensystem bei dem innerhalb eines Anfangsbuchstabens nicht vollstandig sortiert wird jedoch schon Auf den ublicherweise von Hand gefuhrten Datenmengen ist dies auch kein Problem Verwendung BearbeitenDatenbanken sind das bekannteste Anwendungsgebiet von Indexstrukturen Da hier besonders grosse Datenmengen verarbeitet werden mussen insbesondere auch so grosse Datenmengen dass sie nicht vollstandig in den Hauptspeicher passen ist hier der schnelle Zugriff kritisch So konnen auf Tabellen geeignete Indizes definiert werden die zu einer erheblichen Leistungserhohung fuhren Siehe dazu auch Datenbankindex welche die technische Umsetzung zur Invertierte Datei ist Geoinformationssysteme verwenden Indexstrukturen oft in Form einer Datenbank jedoch kann manchmal eine direkte Integration der Indexstruktur notwendig sein um die gewunschte Performanz zu bringen Hier werden raumliche Indexstrukturen eingesetzt um den Suchbereich zu begrenzen Ein weniger offensichtliches Anwendungsgebiet ist die Computergrafik insbesondere bei Echtzeit Anwendungen und 3D Computerspielen Hier werden oft raumliche Indexstrukturen wie der BSP Baum zur Verwaltung der Umgebung verwendet Typen BearbeitenIndexstrukturen konnen anhand ihrer grundlegenden Arbeitsweise in verschiedene Typen unterteilt werden Interne und externe Indexstrukturen Bearbeiten Interne Indexstrukturen speichern die eigentlichen Daten selbst externe Strukturen lediglich Verweise auf die Daten beispielsweise in einem anderen Index Man spricht hier auch von einem Primar oder Sekundarindex Ein Sekundarindex benotigt im Allgemeinen weniger Speicher und ist einfacher synchron zu halten bei Anderungen an den Daten Er ist jedoch auch langsamer da stets die eigentlichen Daten aus dem Primarindex geholt werden mussen Ein Beispiel fur einen Sekundarindex ware folgendes Adressdaten sind wie oben beschrieben auf Karteikarten sortiert nach Familienname abgelegt Als Sekundarindex wird eine Liste gepflegt die den Vornamen auf Familiennamen abbildet also beispielsweise Max auf Muller und Mustermann Es wird hier aber nur der Familienname abgelegt nicht die vollstandige Adresse Andert sich beispielsweise die Telefonnummer so reicht es diese im Primarindex zu aktualisieren Mochte man jedoch die Telefonnummer von jedem Max ermitteln so mussen zunachst im Sekundarindex die Familiennamen nachgeschlagen werden anschliessend mit dem Familiennamen im Primarindex die Telefonnummer Wurde man die vollstandige Adresse auch unter dem Vornamen ablegen so ware dies ein zweiter Primarindex jede Anderung musste dann aber in beiden Karteien vorgenommen werden Sekundarindizes erlauben die Emulation von mehrdimensionalen Indexstrukturen Sie sind aber in vielen Anwendungsfallen einer echt mehrdimensionalen Indexstruktur unterlegen Dynamische und statische Indexstrukturen Bearbeiten Eine Indexstruktur heisst dynamisch wenn sie ihre Struktur bei Anderungen an den Daten dynamisch an diese anpasst sonst wird sie als statisch bezeichnet Statische Indexstrukturen erlauben einen schnelleren Zugriff auf die Daten mussen jedoch bei Anderungen an den Daten aufwendig neu berechnet werden So mussen beispielsweise beim Einfugen in eine sortierte Reihe im Schnitt die Halfte der gespeicherten Daten verschoben werden Dynamische Indexstrukturen erlauben es den Index bei jeder Anderung dynamisch zu aktualisieren Man sagt auch dass bei Anderungen nur eine lokale Anderung an der Indexstruktur vorgenommen wird sich also nur ein kleiner Teil des Index dadurch verandert Ein typisches Beispiel fur eine statische Indexstruktur ist die statische Hashtabelle und fur eine dynamische Indexstruktur der B Baum Die Baumtiefe und Struktur wird hier automatisch der Datenmenge angepasst Anderungen am Baum passieren oft nur in dem betroffenen Blatt oder einem Pfad von der Wurzel zu dem betroffenen Blatt Ein und mehrdimensionale Indexstrukturen Bearbeiten Typische Indexstrukturen indizieren nach einem einzigen Attribut beispielsweise nach Nachname auch wenn die Daten zusatzliche Attribute enthalten Um Anfragen nach solchen zusatzlichen Attributen oder der Kombination daraus zu erlauben werden zusatzliche eindimensionale Sekundar Indizes angelegt Mochte man aber nach zwei Attributen gleichzeitig anfragen so muss der Schnitt berechnet werden Hierbei werden in ungunstigen Fallen sehr viele Daten zunachst geladen und dann bei der Berechnung des Schnittes wieder verworfen Eine Indexstruktur die Anfragen mit mehr als einem Attribut beispielsweise Vorname und Nachname gleichzeitig effizient beantworten kann heisst mehrdimensional Dies findet vor allem bei raumlichen Daten Anwendung beispielsweise in Geoinformationssystemen Anfragen der Art Was ist die nachstgelegene Tankstelle oder Alle Objekte im Rechteck R konnen nicht anhand einer einzelnen Dimension beantwortet werden sondern erfordern eine Rechtecks Anfrage in der Indexstruktur Anfragen nach nur einzelnen Attributen konnen dann oft immer noch beschleunigt beantwortet werden indem man das Anfrage Rechteck so wahlt dass es den Wertebereich der nicht benotigten Attribute vollstandig abdeckt Geclusterte und nicht geclusterte Indexstrukturen Bearbeiten Eine Indexstruktur heisst geclustert wenn die Daten physisch genauso sortiert werden wie sie im Index und in Anfragen benotigt werden So konnen Bereichsanfragen effizienter beantwortet werden wahrend bei sukzessiven Operationen benachbarter Elemente meist dieselben Datenseiten benotigt werden und so gepuffert werden konnen Ein alphabetisch nach dem Familiennamen sortiertes Adressbuch mit eigenen Seiten fur jeden Buchstaben entspricht funktionell einem geclusterten Index Eine Hashtabelle ist normalerweise nicht geclustert die Daten benachbarter Schlussel liegen meist in ganz unterschiedlichen Datenseiten Ein B Baum ist ein Beispiel fur eine geclusterte Indexstruktur jede Datenseite entspricht einem disjunkten Intervall des Schlusselraumes Dunn und dichtbesetzte Indexstrukturen Bearbeiten Eine Indexstruktur heisst dunnbesetzt wenn sie in ihren Datenstrukturen auch Lucken d h unbesetzte Speicherpositionen erlaubt Dunnbesetzte Indexstrukturen belegen daher zusatzlichen Speicher und bei der Suche mussen solche Positionen ubergangen werden Bei dynamischen Indexstrukturen ist dies jedoch auch ein wichtiger Vorteil In eine solche Lucke konnen einfach neue Daten eingefugt werden Umgekehrt konnen beim Entfernen von Daten neue Lucken entstehen ohne dass der Index aufwendig neu organisiert werden muss Der reduzierte Reorganisationsaufwand ist daher bei sich oft andernden Daten ein deutlicher Vorteil trotz des erhohten Speicherverbrauchs und der erhohten Suchzeit Viele dunnbesetzte Indexstrukturen erlauben eine dynamische Grossenanpassung und versuchen so beispielsweise zu garantieren dass sie nicht mehr als doppelt so viel Platz belegen wie notwendig Eine sortierte Reihe ist ein Beispiel fur eine dichtbesetzte Indexstruktur Hashtabellen und Baume sind in der Regel dunnbesetzt Abwagung BearbeitenNachteile von Indexstrukturen sind ein zusatzlicher Verwaltungsaufwand durch die Struktur selbst sowie fallweise ein hoher Speicheraufwand Abgerufen von https de wikipedia org w index php title Indexstruktur amp oldid 212195416