ISO/IEC 9075
ISO/IEC 9075 – międzynarodowy standard definiujący język zapytań i manipulacji danymi w systemach relacyjnych baz danych, powszechnie znany jako SQL (Structured Query Language). Standard został opracowany wspólnie przez ISO i IEC i od pierwszej publikacji w 1987 roku jest regularnie aktualizowany, aby odzwierciedlać nowe wymagania i technologie.
Historia
Początki standardu sięgają 1974 roku, kiedy to IBM wprowadziło język SEQUEL, będący prototypem późniejszego SQL. W 1985 roku ANSI opublikowało pierwszą specyfikację SQL‑89. Wkrótce po tym, w 1987 roku, został wydany pierwszy międzynarodowy standard – ISO 9075‑1:1987, znany jako SQL‑89.
Budowa standardu
Standard ISO/IEC 9075 jest podzielony na szereg części, z których każda opisuje odrębny aspekt języka SQL. Najważniejsze z nich to:
- ISO/IEC 9075‑1 – Fundamental SQL: podstawowe składniki języka, typy danych i podstawowe instrukcje.
- ISO/IEC 9075‑2 – SQL/Foundation: rozszerzenia fundamentalne, m.in. podzapytania, widoki, transakcje.
- ISO/IEC 9075‑3 – SQL/CLI: interfejs programistyczny (Call Level Interface).
- ISO/IEC 9075‑4 – SQL/PSM: procedury składowane i programowanie w bazie danych.
- ISO/IEC 9075‑9 – SQL/MED: zarządzanie danymi zewnętrznymi.
- ISO/IEC 9075‑11 – SQL/Temporal: wsparcie dla danych czasowych.
Poszczególne części są regularnie uzupełniane o nowe funkcjonalności, np. obsługę JSON, XML, czy zaawansowanych typów analitycznych.
Najważniejsze edycje
| Wersja | Rok publikacji | Główne zmiany |
|---|---|---|
| SQL‑89 | 1987 | Podstawowy zestaw poleceń DML, DDL i kontroli transakcji. |
| SQL‑92 | 1992 | Rozbudowa typów danych, podzapytania, operatory złączeń, definicje integralności. |
| SQL‑1999 | 1999 | Wprowadzenie procedur, pełnego wsparcia dla tablic, rekursji i wyrażeń regularnych. |
| SQL‑2003 | 2003 | Obsługa XML, typów danych BLOB/CLOB oraz funkcji okna. |
| SQL‑2008 | 2008 | Usprawnienia w zakresie danych czasowych oraz wprowadzenie MERGE. |
| SQL‑2011 | 2011 | Rozszerzone wsparcie dla danych przestrzennych (SQL/MM). |
| SQL‑2016 | 2016 | Dodano JSON, funkcje okna i nowe możliwości optymalizacji zapytań. |
| SQL‑2019 | 2019 | Wsparcie dla funkcji tabelowych polymorficznych oraz rozwinięcie standardu JSON. |
| SQL‑2023 | 2023 | Nowe mechanizmy bezpieczeństwa, uczenie maszynowe w zapytaniach oraz rozszerzenia temporalnych. |
Zakres i zastosowanie
ISO/IEC 9075 definiuje nie tylko składnię języka, ale także semantykę operacji na bazach danych, model danych, zasady integralności oraz mechanizmy transakcji. Standard jest podstawą dla praktycznie wszystkich komercyjnych i otwarto‑źródłowych systemów zarządzania bazą danych (MySQL, PostgreSQL, Oracle, Microsoft SQL Server itp.). Dzięki wspólnemu standardowi możliwe jest tworzenie aplikacji przenośnych pomiędzy różnymi platformami bazodanowymi.
Kompatybilność i rozszerzenia
Choć większość systemów bazodanowych implementuje główne części standardu, wiele z nich wprowadza proprietarne rozszerzenia (np. PL/SQL w Oracle, T‑SQL w Microsoft SQL Server). Standard przewiduje taką możliwość – dodatkowe funkcjonalności muszą być jasno odseparowane od podstawowego zbioru instrukcji, aby nie zakłócały przenośności kodu.
Proces standaryzacji
Rozwój ISO/IEC 9075 odbywa się w ramach podkomitetu ISO/IEC JTC‑1/SC‑32 (Standardy informatyki – bazy danych). Propozycje nowych funkcji są omawiane w grupie roboczej SQL WG, a każdy projekt przechodzi przez serię głosowań i konsultacji publicznych przed przyjęciem jako nowa część standardu.
Kluczowe pojęcia powiązane
- Relacyjna baza danych
- Model danych
- Transakcja bazodanowa
- Ograniczenia integralności
- Data Warehouse
- Business Intelligence
Przyszłość standardu
W kolejnych latach planowane są dalsze aktualizacje, które mają wprowadzić m.in. lepsze wsparcie dla baz grafowych, integrację z Big Data, oraz rozszerzone mechanizmy bezpieczeństwa (np. rozproszone szyfrowanie danych).
Źródła i dalsza lektura
Materiały źródłowe można znaleźć w dokumentacji ISO oraz IEC, a także w publikacjach organizacji ANSI. Dla osób zainteresowanych praktycznym użyciem standardu polecane są podręczniki poświęcone poszczególnym wersjom SQL oraz oficjalne przewodniki dostawców baz danych.