SQL

HackerJobs_SQL

Photo by Kevin Bhagat on Unsplash

SQL (Structured Query Language – Strukturierte Abfrage-Sprache) beschreibt eine Datenbanksprache, mittels derer Datenstrukturen innerhalb einer relationalen Datenbank definiert werden. Ferner dient SQL zur Abfrage und Bearbeitung daraus resultierender Datenbestände. Basis dieser Datenbanksprache ist der relationale Algebra. Semantisch ist die Syntax an die englische Umgangssprache angelehnt, wodurch sie recht einfach im Aufbau gestaltet ist. In der Praxis unterstützen nahezu alle Datenbanksysteme SQL. Allerdings ist auffällig, dass die Akzeptanz in unterschiedlichem Umfang erfolgt. Darüber hinaus weichen die „Dialekte“ leicht voneinander ab. Eingesetzte Datenbank-Managementsysteme sollen durch den Einsatz der Abfrage-Sprache unabhängiger in der Anwendung werden.

Im Allgemeinen lassen sich die Befehle in drei verschiedene Kategorien unterteilen. Befehle zur Manipulation von Daten. Befehle, mittels derer Datenbankschemas definiert werden und Befehle für die Kontrolle von Transaktionen und die Verwaltung von Rechten. Der Begriff SQL bezieht sich ganz allgemein betrachtet auf das englische Wort query, was zu Deutsch Abfrage bedeutet. Mit einer Datenabfragewerden sämtliche Daten abgerufen, die innerhalb einer Datenbank gespeichert sind. Anschließend werden diese Daten dem jeweiligen Benutzer oder einer entsprechenden Anwendersoftware zur Verfügung gestellt. Ergebnisse einer Datenabfrage sehen aus wie eine Tabelle und werden häufig auch als Tabelle dargestellt. Innerhalb dieser Tabelle lassen sich die Informationen aus der Datenabfragebearbeiten und weiterverwenden.

Mittels SQL programmieren

SQL dient generell nicht nur der Datenabfrage aus einer Datenbank. SQL bietet zudem die Möglichkeit der Programmierung. Ursprünglich handelte es sich jedoch um keine Turing-vollständige Programmiersprache. Die Realisierung beliebiger Computerprogramme konnte mit dieser Datenbanksprache nicht ermöglicht werden. Mittlerweile besteht allerdings die Möglichkeit, SQL mit anderen Programmiersprachen zu kombinieren, wodurch eine Programmierung teilweise ermöglicht wird. Für die Programmierung mittels SQL stehen unterschiedliche Techniken zur Verfügung:

  • Embedded SQL: SQL-Anweisungen lassen sich im Programm-Quelltext schreiben und einbetten. Typischerweise werden hierfür die Programmiersprachen C, C++, Ada, Pascal oder weitere genutzt. Während der Vorbereitung des jeweiligen Programms werden die SQL-Befehle mithilfe eines Precompilers übersetzt.
  • Es besteht die Möglichkeit, SQL-Befehle über Funktionsaufrufe direkt an Datenbanksysteme zu übergeben. Hierfür sind herkömmliche Programmierschnittstellen erforderlich.
  • Die objektorientierte Verarbeitung von einer relationierten Datenbank in eine objektorientierte Programmiersprache wie zum Beispiel Java ist mittels Abstrahierung von einer Datenbankabfrage über Persistenz-Frameworks möglich.
  • Konstrukte wie Schleifen oder IF-Blöcke können mit dem Teil 4 SQL/PSM des Standards bereitgestellt werden. Die anschließende Implementierung in Datenbanksysteme erfolgt in unterschiedlicher Ausprägung. Für diese Technik sind jedoch herstellerspezifische Erweiterungen erforderlich.

Erweiterungen der Datenbanksprache

Die SQL Standards SQL/Framework und SQL /Foundation legen lediglich die Kernfunktionalitäten der Datenbanksprache fest. Zusätzliche Erweiterungen definieren darüber hinausgehende, spezifische Aspekte der Sprache.

  • Teil 4: Unter der Bezeichnung SQL/PSM erweitert Teil 4 die Datenbanksprache um prozedurale Konstrukte. Mit diesen Konstrukten lassen sich beispielsweise Schleifen programmieren.
  • Teil 14: Unter der Bezeichnung SQL/XML erlaubt Teil 14 die Speicherung von XML-Dokumenten in SQL-Datenbanken. Mittels XPath und XQuery lassen sich Datenbankinhalte als XML exportieren. Auch kann eine Datenabfrage aus relationalen Datenbanken erfolgen.