Datenbankstruktur einem Index zuordnen - Denormalisierung

Möglicherweise wollen Sie Daten aus verschiedenen Entitäten in Ihre Suche einbinden. Im Gegensatz zur Datenbanksuche werden Suchvorgänge mit Indizes nicht mithilfe von Joins durchgeführt. Denken Sie daran, dass der Hauptvorzug bei der Verwendung eines Index darin liegt, dass die Sucharbeit im Wesentlichen vorab geschieht, wenn der Index erstellt wird, nicht wenn die Suche aufgerufen wird. Dementsprechend sollten für die Indexierung alle Datenbanktabellen denormalisiert werden. Die Alternative, nämlich separate Indizes zu erstellen, sie separat zu durchsuchen und dann zu versuchen, die Ergebnisse zusammenzuführen, ist weitaus komplexer und ineffizient.

Beispiel: Angenommen, Sie haben folgende Entitäten: Entität 'Person' mit den Attributen 'Name' und 'Geburtsdatum' und mit einem Fremdschlüssel, der auf eine Entität 'Adresse' mit den Attributen 'Hausanschrift', 'Ort' und 'Land' verweist. Sie wollen eine Suchabfrage erstellen, die Ihnen die Suche von Personen nach Name, Geburtsdatum, Hausanschrift, Ort und Land ermöglicht. Dazu müssten Sie einen durchsuchbaren Index erstellen, der sämtliche Daten aus beiden Tabellen enthält.

Wenn Sie mehrere Entitäten haben, die an einem einzelnen Suchindex beteiligt sind, müssen Sie beachten, dass Aktualisierungen der betroffenen Tabellen bewirken können, dass der Suchindex aktualisiert werden muss.