Historia
Rozwój relacyjnych baz danych, który miał miejsce w latach 70-tych ubiegłego wieku uwarunkował konieczność opracowania języka do manipulacji, wyciągania i obsługi danych w bazach.
Pierwszym oficjalnym językiem relacyjnych baz danych, był SEQUEL (Structured English Query Language), opracowany przez pracowników firmy IBM (Raymond F.Boyce oraz Donald Chamberline). Zaimplementowany w 1973 roku w SYSTEM R – pierwszym silniku bazodanowym opartym o model relacyjny (jednak pierwszy komercyjny system RDBSM to wdrożenie firmy ORACLE w 1979 r.).
Jak sama nazwa wskazuje, SEQUEL to język w domyśle przyjazny dla użytkownika, służący odpytywaniu baz. Jednym z założeń była łatwość tworzenia zapytań, operacji na zbiorach za pomocą słów kluczowych w języku angielskim. Język miał być intuicyjny i prostoty. Te cechy to także założenia samego modelu relacyjnego i chyba właśnie dlatego, systemy baz danych oparte o model relacyjny podbiły świat i są do dziś dominującymi środowiskami bazodanowymi.
Nazwa ewoluowała – SEQUEL, okazała się być nazwą zastrzeżoną przez brytyjską firmę przemysłu lotniczego. Stąd została skrócona do znanej obecnie formy czyli SQL (Structured Query Language).
Najważniejszymi systemami RDBMS (Relational DataBase Management System), w których podstawowym językiem jest SQL, to oczywiście : MS SQL Server, Oracle, DB2, MySQL, PostgreSQL, Sybase.
Standardy, dialekty
Konkurencyjność rynku spowodowała konieczność ustandaryzowania języka SQL i na szczęście stało się to już w roku 1986, kiedy został opracowany przez ANSI pierwszy standard określany jako SQL:86. Podkreślam, że na szczęście tak szybko, bo choć istnieją istotne różnice np. w nazwach implementowanych funkcji, to ogólne zasady dla relacyjnych baz danych, różnych producentów, są spójne. Ma to znaczenie szczególnie podczas integracji platform i dla nas, pracujących w różnych środowiskach.
Powstały, więc dialekty językowe. Transact-SQL (T-SQL) – historycznie wprowadzony przez Sybase, rozwijany do dziś przez Microsoft w SQL Server – na jego przykładzie, przeprowadzony jest cały ten kurs. Inne dialekty, mające duże znaczenie na rynku to oczywiście PL/SQL (firmy ORACLE) oraz SQL/PSM (najpopularniejszy silnik relacyjny w serwisach WWW – MySQL).
Pomimo różnic w dialektach, nazwach funkcji, typach danych – istnieje szeroki wspólny mianownik – relacyjny model oparty o teorię zbiorów. Dlatego, jeśli poznasz T-SQL, odnajdziesz się szybko np. w bazie MySQL czy Oracle.
Standardy ANSI są regularnie aktualizowane. Od 1986 roku zostało opublikowanych szereg wersji (aktualnie obowiązująca to ANSI SQL:2011/2011), wprowadzających porządek w nowych funkcjonalnościach. Np. w SQL:2003 zostały wprowadzone standardy związane z obsługą XML.
Kategorie SQL
Wybitni amerykańscy naukowcy, definiujący standardy i kochający wprowadzanie coraz to wymyślniejszych akronimów i skrótów (FBI, CIA, DEA, CEO, CFO, CIO etc.), poszatkowali język SQL na szereg grup, podzbiorów komend. W zależności od zastosowań są to :
- DDL – Data Definition Language – czyli komendy dot. Tworzenia, modyfikacji obiektów w bazie – np CREATE TABLE, ALTER VIEW, DROP.
- DML – Data Modification Language – czyli po naszemu UPDATE, INSERT, DELETE
- DCL – Data Control Language – kontrola uprawnień (GRANT, DENY, REVOKE)
- TCL – Transaction Control Language – obsługa transakcji np. BEGIN TRANSACTION, COMMIT, ROLLBACK.
- I w końcu DQL – Data Querying Language – czyli polecenie SELECT ! to właśnie o tym jest ten kurs.
Dotyczy on tylko podzbioru języka SQL – związanego z pisaniem zapytań (kwerend).
Mała uwaga odnośnie historii T-SQL’a – Microsoft nie wprowadził ani nie stworzył języka T-SQL, uzyskał możliwość korzystania i modyfikacji z niego po umowie między MS a Sybase.
Tak, historycznie to Sybase był twórcą tego dialektu (połowa lat 80-tych) a o ich mocnych związkach w początkowej fazie produktu SQL Server wspominam więcej w dalszych artykułach tego kursu 🙂 Warto takie fakty podkreślać, bo po latach pracy z tym systemem, budowanych skojarzeniach, łatwo wypaczyć lub pominąć istotne zasługi Sybase w historii rozwoju. W ten sposób buduje się mity…. Dzięki za korektę – uściśliłem.