Die Query stellt die richtigen Fragen – und zwar an den Datenbestand. Das englisch Wort „Query“ ist vom lateinischen „Quaerere“ abgeleitet und lässt sich mit „Abfrage“ oder „Frage“ übersetzen. Die Query fragt ab, denn Queries lesen Datenbanken (Query Language, SQL), aber auch Dateien anderer IT-Systeme (Information Retrieval Query Languages). Doch nicht nur in Datenbankprogrammen werden die Queries abgesetzt, sondern auch in Anwendungsprogrammen sind sie in Funktionen integriert. Jeder kennt die Queries, die in den Suchmaschinen abgesetzt werden (Web Search Query). Und auch in den URLs von Webseiten lassen sich Queries entdecken (Query String).
Die Suche mit der Abfragesprache
Um Datenbestände zu durchsuchen, werden Abfragesprachen eingesetzt, die Queries (Anfragen) an den Datenbestand senden. Zur Filterung der Suchergebnisse werden die Queries mit zusätzlichen Parametern ausgestattet (zum Beispiel: Auto blau). Diese Parameter können meist frei vom Benutzer formuliert werden, können aber auch vom System erstellt werden und für den Benutzer unsichtbar sein – wie etwa der „Hidden“-Parameter in den Webforms. Umso selektiver eine Abfragesprache auf den Datenbestand zu wirken vermag, als desto mächtiger wird sie bezeichnet. Diese Mächtigkeit wird auch Kardinalität genannt.
Die Abfragesprachen werden weiterhin nach ihrem Einsatz und ihrer Komplexität unterschieden. Je systemnaher die Syntax- und Befehlsstruktur der Abfragesprache ist, desto schwieriger gestaltet sich grundsätzlich auch ihre Anwendung. Zu den wichtigsten Abfragesprachen in Informationssystemen zählen die „Query by Example“, XQuery für die XML-basierten Systeme sowie SQL als Abfragesprache für relationale Datenbanken.
Die wichtigsten Abfragesprachen im Überblick
Query by Example (QBE) durchsucht einen relationalen Datenbestand anhand von Beispielen. Im Gegensatz zu SQL werden die Befehle nicht als String sondern in Form eines Tabellengerüstes formuliert. Die Visualisierung mit QBE (durch graphische Unterstützung des Benutzerinterfaces) ermöglicht insbesondere auch den wenig versierten Benutzern von Datenbanken, auf einfache Art eine SQL-basierte Query zu erstellen. Eine seiner ersten Anwendungen fand QBE im Datenbankprogramm dBASE (Version IV und V), das bis in die 90er Jahre hinein weit verbreitet war.
XQuery, die Abkürzung von XML Query Language, ist eine vom W3C konformierte Querysprache für das Auslesen von XML-Datenbanken. Neben Pfadausdrücken mit XPath stehen sechs weitere Funktionen zur Verfügung, denen Parameter ($seq) übergeben werden können: zero-or-one, one-or-more, exactly-one, empty, exists, count. Die Sequenzen $seq können zusätzlich bearbeitet werden, indem sie aneinandergehängt werden (Kommaoperator). Auch lassen sich den Sequenzen Werte hinzufügen (insert-before), löschen (remove), neu anordnen (reverse) oder umsortieren (unordered).
SQL (Structured Query Language) beinhaltet nicht nur die Query-Funktion zur Abfrage von Datenbeständen, sondern auch Befehle zur Definition und Manipulation der Tabellen und Daten in relationalen Datenbanksystemen. Basierend auf der relationalen Algebra wurde SQL bereits in den 70er Jahren (unter dem Namen „SEQUEL“) entwickelt und ist zur Standardabfragesprache der RDBMS (Relational Database Management System) geworden. Die Sprachelemente von SQL lassen sich in DML-Befehle (Data Manipulation Language) für das Ändern, Einfügen und Löschen von Daten, in DDL-Befehle (Data Definition Language) zur Definition des Datenbankschemas (z. B. Tabellen und Spalten anlegen bzw. löschen) sowie in DCL-Befehle (Data Command Language) für die Transaktionskontrolle und Rechteverwaltung unterscheiden. Abfragen auf die Tabellen des relationalen Datenbanksystems werden in SQL mit dem SELECT-Befehl formuliert, dem weitere Parameter (Tabellenname, Spaltenname, Ausprägungen) übergeben werden können. SQL bzw. Teile des Befehlsumfangs sind auch in vielen Anwendungsprogrammen sowie in Programmiersprachen integriert.
Mit „Embedded SQL“ lassen sich native SQL-Befehle in Programmiersprachen wie Cobol, C, C++ oder Pascal einbinden, die meist von einem Precompiler in Funktionsaufrufe übersetzt werden. Eine Reihe von Programmierschnittstellen, wie ODBC und JDBC, ermöglichen die direkte Übergabe von SQL-Befehlen, ohne dass diese precompiliert werden. SQL-Abfragen können nicht nur statisch, sondern auch dynamisch abgesetzt werden. Im Gegensatz zum statischen SQL werden die dynamischen Konstrukte erst zur Programmlaufzeit gebildet. Damit ist es möglich, die Parameter des SELECT-Befehls aufgrund von Abhängigkeiten bzw. Entscheidungen im Programm zur Laufzeit zu erstellen – was sich sowohl auf Feldnamen als auch auf die Feldinhalte bezieht. Beim statischen SQL sind zwar die Ausprägungen (Werte bzw. Feldinhalte) der Parameter variabel, nicht aber die benannten Parameter selbst.
Die Query in großen Datenbeständen
Information Retrieval Query Languages suchen innerhalb von Dokumente die gewünschte Zeichenfolge. Die Query kann eine Volltextsuche sein oder auf Metadaten basieren. Das Information Retrieval (IR bzw. Informationsrückgewinnung) wird für das Durchsuchen von komplexen Inhalten eingesetzt. Bibliotheken verwenden das IR zum schnellen und effizienten Durchsuchen von Büchern, Magazinen, Bilddaten und anderen Veröffentlichungen im Bestand. Die Suche besteht typischerweise aus mehreren Wörtern. Die Suchmaschinen des Internets verwenden ebenfalls das IR, um die als Strings eingegebenen Suchen der Benutzer zu beantworten.
Die Web Search Query der Suchmaschinen
Bei den Suchen der User handelt es sich um Textstrings, die mit logischen Operatoren (AND/OR/“-“ zum exkludieren) präzisiert werden . Im Gegensatz zu den Queries auf Datenbanken folgen die Web Search Queries weder einer festen Syntax noch erfordern sie eine Kommandosprache oder besondere Parameter. Unterschieden werden vier Kategorien:
Information Queries liefern ein umfangreiches Suchergebnis zurück, wie etwa die Suche nach „Auto“. Die Navigational Queries durchsuchen einen spezifizierten Bereich innerhalb des Internets. Eine Navigational Query wird etwa auf Youtube abgesetzt oder auf der Webseite eines Unternehmens. Transactional Queries fügen der Query eine Verwendung hinzu. So kann beispielsweise die Suche der Suchmaschinen auf „Shopping“ oder „News“ begrenzt werden. Viele der Suchmaschinen unterstützen auch Connectivity Queries, die Auskunft geben, wieviele Links auf eine bestimmte URL verweisen oder wie viele Seiten innerhalb eines Domain Namens indexiert sind. Die meisten der Suchmaschinen unterstützen strukturierte Queries, die mit den Booleschen Operatoren, wie AND, OR und dem „-“ für NOT, gebildet werden. Diese Suche per Web Search Query wurde aus dem Bereich der Bibliotheks-Datenbanken übernommen.
Die Query in der URL
Der Query String in der URL (Uniform Resoure Locator) von Internetseiten enthält Parameter, die zur Suche im Datenbestand ausgewertet werden. Die Zeichenkette in der URL kann als Query String etwa den folgenden Aufbau haben: http://www.querybeispiel.de/suche?stichwort=wiki&ausgabe=liste
wobei der Query String mit dem „?“ eingeleitet wird und im Beispiel aus den benannten Parametern „Stichwort“ und „Ausgabe“ besteht. Die den Parametern mitgegebenen Werte sind „Wiki“ und „Liste“. Die Parameter des Query Strings werden durch das „&“-Symbol voneinander getrennt. Die Kombination aus Parameter und ihren Ausprägungen (Parameter-Werte-Paare) werden durch das Gleichheitszeichen „=“ repräsentiert. Ein Wertepaar wie zum Beispiel „Stichwort=Wiki“ wird auch als „Key Value Pair“ bezeichnet.
Die Parameterübergabe der URL-Queries erfolgt per HTTP-GET oder per HTTP-POST, wobei im letzteren Übertragungsverfahren die Wertepaare nicht in der URL bzw. im Query String ersichtlich sind. Nach dem Absenden des Webformulars wird der Suchstring zusammengebaut, der dann mit PHP abgefragt werden kann.
Die Query in Anwendungsprogrammen
Auch Anwendungsprogramme stellen Funktionen zur Verfügung, die als Query bezeichnet werden. So lassen sich etwa Daten aus externen Quellen (datenbankbasiert) per Query in eine Tabellenkalkulation importieren. Um dem Benutzer die Abfrage der Datenquelle und die Zusammenstellung der selektierten Quell- und Zielfelder zu vereinfachen, wird die Query-Funktion oft visualisiert, um sie so per Drag & Drop zu erstellen. Die generierte Query besteht intern aus einem oder mehreren SQL-Befehlen, die zur Abfrage der externen Datenquelle eingesetzt werden.
Neben der Tabellenkalkulation werden Queries auch in ERP-Systemen eingesetzt, um aus den Datenbanktabellen des Systems Berichte und Auswertungen zu generieren. Meist wird auch hier dem Benutzer eine Visualisierung seiner Abfrage angeboten. Die Auswahl der Quell- und Zielfelder des Benutzers wird vom ERP-System in eine SQL-Query übersetzt, die sich systemintern aus einem oder mehreren SQL-Befehlen zusammensetzt. Die generierte Abfrage sammelt die Daten aus den beteiligten Tabellen und bereitet sie in Form eines Berichtes auf. Die Templates der Berichte sind meist ebenfalls vom Benutzer auswählbar und ggf. auch modifizierbar.
Die Query „für zwei“ im IRC
Im Internet Relay Chat (IRC) wird kommuniziert. Im textbasierten Chat-System des in 1988 entstandenen IRC schreiben sich die Teilnehmer auf Channels – den Gesprächskanälen – Textnachrichten. Im IRC werden auch private Gespräche geführt – die Queries genannt werden und sich mit FiSH verschlüsseln lassen. Für die Teilnahme am Internet Relay Chat wird ein IRC-Client eingesetzt. Das interaktive Text Messaging (Chatfunktion) des IRC ermöglicht auch synchrone Konferenzen mehrerer Teilnehmer, ist aber hauptsächlich für die Gruppenkommunikation in den Diskussionsforen, den sogenannten Channels, konzipiert. Neben der privaten Kommunikation mit der Query können im IRC auch private Nachrichten versandt sowie Dateien geshared werden.
Zusammenfassung
Eine Query ist eine Anfrage an einen Datenbestand, die mittels spezifischer Abfragesprachen wie SQL, Query by Example oder XQuery formuliert werden kann. Diese Sprachen können sowohl komplex als auch benutzerfreundlich sein, je nach Anwendungsgebiet und Zielgruppe. Sie werden in verschiedenen IT-Systemen, einschließlich relationaler Datenbanken und Web-Suchmaschinen, genutzt.
Die Web Search Query folgt einer flexibleren Syntax als Datenbankabfragen und wird in Suchmaschinen eingesetzt. Sie können durch logische Operatoren wie AND/OR präzisiert werden und fallen in verschiedene Kategorien wie Information, Navigational und Transactional Queries.
Query Strings in URLs enthalten Parameter für die Web-Suche und werden häufig in der Adresszeile eines Browsers sichtbar. Sie können per HTTP-GET oder HTTP-POST übertragen werden und dienen der Übermittlung von Schlüssel-Wert-Paaren.
In Anwendungsprogrammen wie Tabellenkalkulationen oder ERP-Systemen werden Queries verwendet, um Daten aus externen Quellen zu importieren oder Berichte zu generieren. Oft werden benutzerfreundliche Visualisierungen für die Abfrageerstellung bereitgestellt.
Im Internet Relay Chat (IRC) bezeichnet der Begriff Query private Gespräche zwischen den Teilnehmern. IRC ermöglicht sowohl Gruppenkommunikation als auch den Austausch von privaten Nachrichten und Dateien.
Häufige Fragen und Antworten
Was ist eine Query?
Eine Query ist eine Anfrage an einen Datenbestand, die mittels spezifischer Abfragesprachen wie SQL, Query by Example oder XQuery formuliert werden kann. Diese Sprachen können sowohl komplex als auch benutzerfreundlich sein, je nach Anwendungsgebiet und Zielgruppe. Sie werden in verschiedenen IT-Systemen, einschließlich relationaler Datenbanken und Web-Suchmaschinen, genutzt.
Wie funktioniert eine datenbankspezifische Query?
Um Datenbestände zu durchsuchen, werden Abfragesprachen eingesetzt, die Queries (Anfragen) an den Datenbestand senden. Diese Queries können zusätzliche Parameter enthalten, um die Suchergebnisse zu filtern. Die Abfragesprache ist in der Regel benutzerfreundlich und ermöglicht es dem Benutzer, die Abfrage frei zu formulieren. Bei komplexen Datenbanken kann die Syntax und Befehlsstruktur der Abfragesprache jedoch schwieriger sein.
Wie unterscheiden sich Web Search Queries von Datenbank-Queries?
Die Web Search Queries in Suchmaschinen folgen keiner festen Syntax und erfordern keine spezielle Abfragesprache. Sie können durch logische Operatoren wie AND, OR und NOT präzisiert werden. Web Search Queries werden auch nicht in einer Datenbank, sondern im Internet ausgeführt und liefern als Ergebnis Webseiten. Im Gegensatz dazu sind Datenbank-Queries Teil von Abfragesprachen wie SQL und werden in relationalen Datenbanken verwendet.