Was ist eine Abfragesprache?

Die Abfragesprache ist vergleichbar mit einem Filter. Genauer gesagt ist sie eine Datenbanksprache, die ausschließlich der Suche nach Daten dient und auch außerhalb einer Datenbank Verwendung finden kann. In einer Abfrage (engl. query) wird definiert, welche Daten man aus dem gesamten verfügbaren Datenbestand (der Datenbank) erhalten möchte – mathematisch betrachtet wird die Teilmenge einer Gesamtmenge abgerufen.

Beliebte Einsatzgebiete sind Webanwendungen, Content-Management-Systeme oder Anwendungssoftware; kaum eine umfangreiche Software kann auf den Einsatz von Query Languages (engl. für Abfragesprachen) verzichten. Je nach System sind sie anfängerfreundlich oder setzen Fachkentnisse voraus. Oft steht ihre Komplexität auch im Zusammenhang mit ihrer Kardinalität, also der Frage nach der Anzahl von unterschiedlichen Teilmengen, die sich durch Abfragen bilden lassen. Abfragesprachen lassen sich auch ineinander übersetzen, so können Abfragen mit einer leicht verständlichen Syntax erstellt und in eine maschinennahe „mächtigere Sprache“ (mit einer höheren Kardinalität) übersetzt werden.

Beispiele für beliebte Abfragesprachen

  • Für Graphdatenbanken hat sich besonders die Abfragesprache Cypher durchgesetzt. Das liegt mitunter an der leicht zu lernenden Syntax, die es trotz Niedrigschwelligkeit erlaubt, komplizierte Anfragen zu formulieren. Ursprünglich sollte Cypher ausschließlich der Graphdatenbank Neo4j dienen; dank einer lizenzrechtlichen Änderung ist die deklarative Sprache mittlerweile quelloffen. Übrigens antworten Anfragen an Neo4j-Datenbanken mit einem Resultat in Form von JSON – ein beliebtes Format für die sogenannte Response, da menschenlesbar.
  • PromQL ist ebenfalls eine Query Language, die für eine spezielle Datenbank entworfen wurde; dabei handelt es sich um die Datenbank der Monitoring-Software Prometheus. Die Softwarelösung, die anfangs für Soundcloud geschrieben wurde – seinerzeit verfügbare Lösungen entsprachen nicht den Anforderungen – zeichnet Daten über einen bestimmten Zeitraum auf und stellt sie bereit. Eine Datenbankanfrage mit PromQL liefert ein bedarfsorientiertes Resultat, das Dashboards und Warnmeldungen „mit Leben füllt“. Kibana ist eine weitere Analyseplattform, vergleichbar mit Prometheus – jedoch mit dem Vorteil, mit der hoch-performanten Suchmaschine Elasticsearch integrierbar zu sein.
  • Die Querying Languages JQL (Jira Query Language) und CQL (Confluence Query Language) lernen Software-Entwickler kennen, die mit größeren Projekten zu tun haben. Bei Jira handelt es sich um eine Webanwendung zum operativen Projektmanagement sowie zur Problembehandlung, und Confluence ist eine Wiki-Software, konzipiert für die Dokumentation von Wissen rund um das durchgeführte Projekt – beide Lösungen gehören zu dem Software-as-a-Service-Anbieter Atlassian. Setzt ein Team nun ein Vorhaben um, so kann es mit diesen Sprachen bspw. Daten für ein Analytics Dashboard anfragen. Beide Sprachen werden in Zusammenhang mit erweiterten Suchen eingesetzt – also Suchen, die dank umfangreicher Kriterien sehr individuelle Resultate liefern.
  • Auch die Kusto Query Language (kurz KQL) sollte im Zusammenhang mit der zugehörigen Infrastruktur verstanden werden. Sie ist Teil des Microsoft Azure Data Explorers und wird ausschließlich für den Abruf von Protokolldaten eingesetzt – den Azure Monitor Logs. Generell ähnelt sie der bekannten Datenbanksprache Structured Query Language (kurz SQL). Datenbanken werden in der Azure-Infrastruktur ansonsten durch SQL realisiert.

Was unterscheidet Abfragesprachen von Datenbanksprachen?

Datenbanksprachen können zwar auch Datenbanken abfragen, jedoch umfasst ihre Funktionalität weitaus mehr. Sie können die Daten der Datenbanken manipulieren (das heißt ergänzen, löschen oder ersetzen), die gesamte Datenbank aus dem Speicher entfernen oder eine neue Datenbank erstellen – auch Tabellen. Ein prominentes Beispiel ist die bereits erwähnte Structured Query Language (SQL). Die (auf der relationalen Algebra basierende) Syntax ist relativ niedrigschwellig und semantisch an die menschliche Sprache angelehnt. In verschiedenen Dialekten findet die Sprache Verwendung in zahlreichen Datenbanksystemen. Datenbanksprachen sind zudem nur in Verbindung mit Datenbanken relevant. Zur Erinnerung: Query Languages findet man auch in Gebieten, die nicht direkt mit einer Datenbank in Verbindung stehen.