SQL/Standards

Aus Foxwiki

Sprachstandard

Ziel der Standardisierung ist es, Anwendungsprogramme so erstellen zu können, dass sie vom verwendeten Datenbanksystem unabhängig sind. Heutige Datenbanksysteme implementieren mehr oder weniger große Teile des Sprachstandards. Darüber hinaus stellen sie oftmals herstellerspezifische Erweiterungen bereit, die nicht dem Standard-Sprachumfang entsprechen. In der Vor-SQL-Zeit strebte man die Portabilität von Anwendungen über die kompatible Schnittstelle an.

Der Standard besteht insgesamt aus zehn einzelnen Publikationen:[1]

  • ISO/IEC 9075-1:2016 Part 1: Framework (SQL/Framework)
  • ISO/IEC 9075-2:2016 Part 2: Foundation (SQL/Foundation)
  • ISO/IEC 9075-3:2016 Part 3: Call-Level Interface (SQL/CLI)
  • ISO/IEC 9075-4:2016 Part 4: Persistent stored modules (SQL/PSM)
  • ISO/IEC 9075-9:2016 Part 9: Management of External Data (SQL/MED)
  • ISO/IEC 9075-10:2016 Part 10: Object language bindings (SQL/OLB)
  • ISO/IEC 9075-11:2016 Part 11: Information and definition schemas (SQL/Schemata)
  • ISO/IEC 9075-13:2016 Part 13: SQL Routines and types using the Java TM programming language (SQL/JRT)
  • ISO/IEC 9075-14:2016 Part 14: XML-Related Specifications (SQL/XML)
  • ISO/IEC 9075-15:2019 Part 15: Multi-dimensional arrays (SQL/MDA)

Ein weiterer Teil befindet sich derzeit (2019) in Entwicklung:

  • ISO/IEC 9075-16:20xx Part 16: Property Graph Queries (SQL/PGQ)

Der Standard wird durch sechs, ebenfalls standardisierte SQL multimedia and application packages ergänzt:

  • ISO/IEC 13249-1:2016 Part 1: Framework
  • ISO/IEC 13249-2:2003 Part 2: Full-Text
  • ISO/IEC 13249-3:2016 Part 3: Spatial
  • ISO/IEC 13249-5:2003 Part 5: Still image
  • ISO/IEC 13249-6:2006 Part 6: Data mining
  • ISO/IEC 13249-7:2013 Part 7: History

Weiterhin existieren eine Reihe Technical Reports, die eine Einführung zu den einzelnen Themen bieten.

  • ISO/IEC TR 19075-1:2011 Part 1: XQuery Regular Expression Support in SQL Download
  • ISO/IEC TR 19075-2:2015 Part 2: SQL Support for Time-Related Information Download
  • ISO/IEC TR 19075-3:2015 Part 3: SQL Embedded in Programs using the JavaTM programming language Download
  • ISO/IEC TR 19075-4:2015 Part 4: SQL with Routines and types using the JavaTM programming language Download
  • ISO/IEC TR 19075-5:2016 Part 5: Row Pattern Recognition in SQL Download
  • ISO/IEC TR 19075-6:2017 Part 6: SQL support for JavaScript Object Notation (JSON) Download
  • ISO/IEC TR 19075-7:2017 Part 7: Polymorphic table functions in SQL Download
  • ISO/IEC TR 19075-8:2019 Part 8: Multi-dimensional arrays (SQL/MDA) (wurde zurückgezogen[2])

Ein weiterer Teil befindet sich derzeit (2019) in Entwicklung:

  • ISO/IEC TR 19075-9:20xx Part 9: Online Analytic Processing (OLAP) capabilities

Der offizielle Standard ist nicht frei verfügbar, jedoch existiert ein Zip-Archiv mit einer Arbeitsversion von 2008.[3] Die Technical Reports sind kostenlos von ISO erhältlich.

Erweiterungen

Die beiden ersten Teile des SQL Standards SQL/Framework und SQL/Foundation legen die Kernfunktionalitäten fest. In den weiteren Teilen werden spezifische Aspekte der Sprache definiert.

  • Teil 4: Bei SQL/PSM handelt es sich um die Erweiterung um prozedurale Konstrukte. Sie ermöglichen unter anderem das Programmieren von Schleifen (FOR, WHILE, REPEAT UNTIL, LOOP), Cursorn, Exception-Handling, Triggern und eigenen Funktionen. Oracle implementiert diese Funktionalität unter dem Namen PL/SQL, DB2 verwendet den Begriff SQL/PL, PostgreSQL nennt es PL/pgSQL.
  • Teil 14: SQL/XML ermöglicht es, XML-Dokumente in SQL-Datenbanken zu speichern, mit XPath in SQL/XML:2003 und XQuery ab SQL/XML:2006 abzufragen und relationale Datenbankinhalte als XML zu exportieren. Um die ursprünglichen Arbeiten an diesem Teil des Standards zu beschleunigen, hatte sich im Jahr 2000 eine informelle Arbeitsgruppe gebildet (IBM, Oracle, …), die unter dem Namen The SQLX Group und unter der Bezeichnung SQLX die Kernfunktionalitäten festlegte. Deren Arbeit ist in den jetzigen Standard eingeflossen.

Als Ergänzung zum SQL-Standard existiert mit ISO/IEC 13249: SQL multimedia and application packages eine Norm, die für die Anwendungsfälle Text, Geografische Daten, Bilder, Data mining und Metadaten spezialisierte Schnittstellen in SQL Syntax festlegt.