4D v16.3

Indizes erstellen und ändern

Home

 
4D v16.3
Indizes erstellen und ändern

Indizes erstellen und ändern  


 

 

Sie können Datenfelder, nach denen Sie häufig suchen und sortieren, mit einem Index versehen. Sie können z.B. die Datenfelder Nachname, Firmenname oder Produktname indizieren, wenn Sie nach besonderen Datensätzen suchen oder die Datensätze nach diesen Datenfeldern sortieren. Sie benutzen diese Eigenschaft auch für Datenfelder, die Verknüpfungen zwischen Tabellen herstellen. Weitere Informationen finden Sie im Abschnitt Verknüpfungen erstellen und ändern.

Ist ein Index zugeordnet, erzeugt 4D eine interne Indextabelle für das Datenfeld. Damit kann 4D in dem Datenfeld schnelle Such- und Sortierläufe durchführen. Wenn 4D in einem nicht indizierten Datenfeld eine Suche oder Sortierung vornimmt, wird jeder Datensatz sequentiell durchlaufen und der Wert geprüft. Mit einem Index kann 4D suchen und sortieren, ohne jeden Datensatz zu laden.

Sie können Datenfelder vom Typ Alpha, Text, Datum, Zeit, Ganzzahl, Lange Ganzzahl, Ganzzahl 64 Bit, Zahl, Fließkomma, Bild und Objekt indizieren. Wenn Sie Datensätze hinzufügen oder löschen, aktualisiert 4D eine Indextabelle automatisch. Weisen Sie den Index einem bestehenden Datenfeld zu, indiziert 4D automatisch die bestehenden Daten, sobald Sie den Designmodus verlassen. Sie können beliebig viele Datenfelder indizieren.

Jede Indextabelle kann enthalten bis zu:

  • 128 Milliarden Schlüssel für Alpha, Text und Float Indices;
  • 256 Milliarden Schlüssel für andere Indextypen (skalare Daten).

Indizieren Sie nicht jedes Datenfeld. Denn Indizes machen die Anwendung größer, sie benötigt mehr Speicherplatz auf Ihrer Festplatte. Viele Indizes verlängern auch die Zeit zum Speichern eines Datensatzes, da 4D die Indextabelle mit jeder Eingabe aktualisiert.

Indizierte Datenfelder erscheinen im Strukturfenster in Fettschrift.

Ein Standardindex dient zum Beschleunigen von Datenbankoperationen und bezieht sich auf einen generischen Index im Gegensatz zu textbezogenen oder kombinierten Indizes. Es gibt drei Auswahlmöglichkeiten:

  • Standardindex: Dieser Index ist einem einzelnen Datenfeld zugeordnet und sorgt für rasche Durchführung von Standardoperationen der Datenbank, wie Suchen und Sortieren. Sie können noch die interne Architektur bestimmen (außer für Objektfelder): B-Tree oder Cluster B-Tree.
  • Zusammengesetzter Index: Dieser Index speichert kombinierte Werte zwischen zwei oder mehr Datenfeldern, nach denen oft zusammen gesucht wird, z.B. Nachname + Vorname.
  • Volltext-Index: Diese Indexart ist nur für Datenfelder vom Typ alphanumerisch, Text und Bild verfügbar. Damit können Sie rasch innerhalb von Text suchen oder bei Bildern nach zugewiesenen Schlüsselwörtern.

Ein Standardindex dient zum Beschleunigen von Datenbankoperationen und bezieht sich auf einen generischen Index im Gegensatz zu textbezogenen oder kombinierten Indizes. Es gibt zwei Auswahlmöglichkeiten:

  • B-tree: Index vom Typ Standard B-Baum. Dieser vielseitige Indextyp erfüllt alle gängigen Anforderungen.
  • Cluster B-tree: Index vom Typ B-Baum mit Cluster. Diese Architektur ist effizienter, wenn der Index nur wenig Schlüsselwörter (keys) enthält, z.B. wenn häufig derselbe Wert in den Daten vorkommt.

Wenn Sie eine Index Architektur wählen,bietet 4D auch die Option Automatisch. In diesem Fall wählt 4D automatisch die Architektur, die zum gewählten Datentyp passt.

Hinweis: Ein B-Tree Index, der einem Datenfeld vom Typ Text zugeordnet ist, speichert maximal die ersten 1024 Zeichen des Feldes. Folglich schlagen Suchläufe nach Strings mit mehr als 1024 Zeichen fehl.

Wenn Sie eine Index Architektur wählen,bietet 4D auch die Option Automatisch. In diesem Fall wählt 4D automatisch die Architektur, die zum gewählten Datentyp passt.
Automatisch ist die einzige verfügbare Option für Datenfelder vom Typ Objekt. In diesem Fall werden alle Attributpfade automatisch indiziert.

Ein zusammengesetzter Index speichert zusammengesetzte Werte aus zwei oder mehr Feldern für jede Eingabe. Ein klassisches Beispiel ist der zusammengesetzte Index aus den Datenfeldern für Vor- und Nachname. Die Suche nach “Peter Schmid” wird von daher optimiert, im Vergleich zur Standardsuche, die erst nach “Schmid” und dann nach “Peter” sucht.

4D nutzt bei Such- und Sortierläufen automatisch die Vorteile zusammengesetzter Indizes. Gibt es z.B. den Index “Stadt+Postleitzahl”, wird er bei der Suche vom Typ “Nachname=Becker und Stadt=München und Postleitzahl=812@” verwendet.
Im Struktureditor können Sie zusammengesetzte Indizes nur im Dialogfenster für Indizes erstellen. Weitere Informationen dazu finden Sie im nachfolgenden Abschnitt “Index erstellen”.

Feldern vom Typ Text, alphanumerisch und Bild können Sie einen Volltext-Index zuweisen.

  • Bei dieser Indexart wird der Text in einem Datenfeld Wort für Wort indiziert. Alle Wörter werden indiziert, selbst wenn sie nur aus 1 oder 2 Buchstaben bestehen. Das beschleunigt eine spätere Volltextsuche beträchtlich. Sie können Datenfeldern vom Typ Text oder alphanumerisch sowohl einen Standard- als auch einen Volltext-Index zuordnen (beim Speichern innerhalb der Datensätze). 4D verwendet dann den zum Kontext passenden Index.
  • Weisen Sie diese Indexart einem Bildfeld zu, beschleunigt das die Suche nach Schlüsselwörtern zu Bildern, d.h. Metadaten beträchtlich. Volltext-Indizes für Bilder basieren ausschließlich auf Metadaten vom Typ IPTC/Keywords. Diese Typen werden von den Formaten TIFF und JPEG unterstützt. Beachten Sie, dass BMP, PNG und GIF diese nicht unterstützen.
    4D aktualisiert die Volltext-Indizes für Bilder automatisch, immer wenn das Datenfeld vom Typ Bild gespeichert wird, d.h. wenn ein Datensatz erstellt oder geändert wird, Daten importiert werden, usw.. Werden Metadaten vom Typ IPTC/Keywords im Bild gefunden, indiziert 4D diese automatisch. Sie müssen nicht den Befehl SET PICTURE METADATA, aufrufen, um sie in den Index für das Bildfeld einzufügen.

Über den Befehl DISTINCT VALUES erhalten Sie die Liste der Schlüsselwörter in einem Volltext-Index.

Sie können Volltext-Indizes für Bild oder Text über den % Operator verwenden: Dieser muss in Formeln zum Suchen bzw. Sortieren gesetzt werden, um einen bestimmten Indexwert zu verwenden:

 QUERY([PICTURES];[PICTURES]Photos %"Katzen")
  // Suche nach Fotos mit dem Schlüsselwort Katzen

Das funktioniert auf dieselbe Weise für alle Such- und Sortierläufe über Befehle QUERY BY FORMULA, QUERY SELECTION, ORDER BY, etc.
Weitere Informationen zur Arbeitsweise des Operators % finden Sie im Abschnitt Vergleichsoperatoren des Handbuchs 4D Programmiersprache.

Die Schaltfläche in der Werkzeugleiste des Struktureditors öffnet das Fenster Index Explorer. Hier erscheint die Liste aller Struktur-Indizes mit ihren Eigenschaften:

In der Index Liste sehen Sie die Haupteigenschaften der Indizes:

  • Typ: Indextyp, jeder Typ (B-tree, Cluster B-tree, Volltext-Index) wird mit einem eigenen Icon angezeigt. Wollen Sie den Indextyp verändern, klicken Sie am unteren Rand auf den Pfeil neben der Schaltfläche und wählen im PopUp-Menü den Eintrag Bearbeiten. Auf dem Bildschirm erscheint ein Dialogfenster, in dem Sie einen anderen Typ wählen können.
  • Beschreibung: Tabelle und Felder. Bei einem zusammengesetzten Index zeigt die Liste alle Felder dieses Index. 
  • Name: Indexname. Diese Eigenschaft wird insbesondere von den Befehlen der Programmiersprache verwendet. Doppelklicken Sie in diesen Bereich, um einen Indexnamen zu ändern oder hinzuzufügen.

Die Schaltfläche zeigt das Dialogfenster Index.
Die Schaltfläche löscht den gewählten Index (Ein Dialog zum Bestätigen erscheint).

Haben Sie einen Index markiert, sind am unteren Rand im PopUp-Menü der Schaltfläche zwei weitere Befehle verfügbar:

  • Bearbeiten: öffnet ein Dialogfenster mit den Eigenschaften des gewählten Index. Sie können dieses Fenster auch durch Doppelklick auf eine Zeile der Liste aufrufen (außer Namensbereich).
  • Neuaufbau: löscht den gewählten Index und baut ihn neu auf. Zuvor erscheint ein Dialog zur Bestätigung.

Das Erstellen eines Index ist je nach Typ unterschiedlich. Sie können auch wählen, ob Sie den Index direkt erstellen oder das Dialogfenster zum Erstellen des Index verwenden:

Um einen Standardindex direkt anzulegen:

  1. Wählen Sie ein Datenfeld und dann in der Inspektorpalette im Bereich Index den gewünschten Indextyp
    ODER
    Klicken Sie mit der rechten Maustaste auf das Datenfeld und wählen dann im Kontextmenü>Index den gewünschten Indextyp.
    Es gibt folgende Optionen (außer für Felder vom Typ Objekt):
    • Automatisch: 4D wählt automatisch die interne Architektur, die zum gewählten Datentyp passt.
    • Keiner: Erstellt keinen Index oder entfernt einen vorhandenen Index.
    • B-tree: Index vom Typ Standard B-Baum
    • Cluster B-tree: Index vom Typ B-Baum mit Cluster

Um einen Volltext-Index direkt anzulegen:

  1. Wählen Sie ein Datenfeld vom Typ alphanumerisch, Text oder Bild und dann in der Inspektorpalette die Option Volltext-Index.

    ODER
    Klicken Sie mit der rechten Maustaste auf das Datenfeld und wählen dann im Kontextmenü>Index den Eintrag Volltext.

Um einen zusammengesetzten Index oder eine andere Indexart über das Dialogfenster Index anzulegen:

  1. Wählen Sie im Kontextmenü der Tabelle Neuer Index oder in der Werkzeugleiste des Struktureditors im DropDown-Menü Hinzufügen die Option Index.
    ODER
    Wählen Sie mehrere Felder mit gedrückter Strg-Taste (Windows) oder Befehlstaste (OS X), klicken dann mit der rechten Maustaste auf ein Datenfeld und wählen im Kontextmenü Neuer zusammengesetzter Index.
    Auf dem Bildschirm erscheint folgendes Dialogfenster:


    Es gibt folgende Vorgaben:
    • Tabelle: Liste aller Tabellen der Datenbank. Hier wählen Sie die Tabelle, der Sie einen Index zuordnen wollen.
    • Name: Hier tragen Sie den Namen für den Index ein. Diesen Namen verwenden die Befehle der 4D Programmiersprache.
    • Typ: Hier wählen Sie den Indextyp aus. Behalten Sie die Option “Automatisch” bei, wählt 4D automatisch den Indextyp nach dem Inhalt des Feldes aus.
    • Index Felder: Hier geben Sie ein oder mehrere Felder an, die Sie dem Index zuordnen wollen. Je nach der aktuellen Auswahl im Editor kann standardmäßig schon ein Feld enthalten sein.

Um ein Feld hinzuzufügen, klicken Sie auf die Schaltfläche unter dem Eingabebereich. Auf dem Bildschirm erscheinen die Felder der ausgewählten Tabelle. Wählen Sie die Felder, die Sie dem Index zuordnen wollen.

  • Um einen zusammengesetzten Index zu erstellen, fügen Sie die dafür vorgesehenen Felder der Reihe nach hinzu. Ist die Liste fertig, können Sie die Felder per Drag&Drop oder über die Pfeile am linken Rand umsortieren.
  • Erstellen Sie einen zusammengesetzten Index mit Primärschlüssel-Feldern, müssen Sie die Felder im Primärschlüssel und im Index in derselben Reihenfolge setzen.
  • Haben Sie den Indextyp “Volltext-Index” gewählt, stehen nur Datenfelder vom Typ Alpha oder Text zur Verfügung. Sie müssen dann auch mehrere Felder für den Index wählen.

Um ein Feld aus dem Index zu löschen, wählen Sie dieses in der Liste aus und klicken unter dem Eingabebereich auf die Schaltfläche .
Ist der Index fertig konfiguriert, klicken Sie auf die Schaltfläche OK, damit er erstellt wird.

Sie können Indizes, die nicht mehr benötigt werden, jederzeit löschen. Das ist direkt im Struktureditor oder im Index Explorer möglich. Weitere Informationen zum Index Explorer finden Sie im oberen Abschnitt “Index Liste”.

Um einen Standardindex zu löschen:

  1. Wählen Sie das Feld mit dem Index, den Sie löschen wollen und dann in der Inspektorpalette im Bereich Index die Option Keiner
    ODER
  2. Klicken Sie mit der rechten Maustaste auf den Feldnamen mit dem Index und wählen im Kontextmenü>Index den Eintrag Nichts.

Um einen Volltext-Index zu löschen:

  1. Wählen Sie das Feld mit dem Index, den Sie löschen wollen und deaktivieren in der Inspektorpalette im Bereich Index die Option Volltext-Index
    ODER
  2. Klicken Sie mit der rechten Maustaste auf den Feldnamen mit dem Index und deaktivieren im Kontextmenü>Index den Eintrag Volltext.

Ein zusammengesetzter Index lässt sich nur im Dialogfenster Index über die Schaltfläche löschen.

Sie können ein Datenfeld jederzeit neu indizieren, d.h. je nach Datenbestand die zugeordneten Indizes neu aufbauen. Das ist z.B. sinnvoll zur Wartung der Anwendung.

Wählen Sie dazu in der Index-Liste im PopUp-Menü am unteren Rand den Eintrag Neuaufbau.

Beachten Sie, dass das Ändern der Sprache (siehe Text-Vergleiche) oder Wartungsoperationen wie Komprimieren (siehe Seite Komprimieren) auch eine neue Indizierung auslösen.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankstruktur erstellen

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Designmodus ( 4D v16)
4D Designmodus ( 4D v16.1)
4D Designmodus ( 4D v16.3)