L’histoire de SQL débute en 1970 avec un article fondateur publié chez IBM sur le modèle relationnel, posant les bases théoriques des bases de données sous forme de tables liées par des clés.
Table des matières
Frise chronologique complète de SQL
La standardisation de SQL s’est construite sur plus de cinquante ans, à travers une succession de normes portées par les comités ANSI et ISO. Chaque révision a répondu à des besoins concrets : là où SQL-86 posait un socle minimal commun, SQL:2023 intègre désormais les requêtes sur graphes et le JSON natif. Le tableau suivant retrace ces étapes clés avec leurs apports techniques principaux.
| Année | Événement/Norme | Nouveautés/Principales fonctionnalités clés |
|---|---|---|
| 1970 | Modèle relationnel (Codd) | Tables, algèbre relationnelle. |
| 1974 | SEQUEL (IBM System R) | Premier prototype SQL déclaratif. |
| 1986 | SQL-86 (SQL-1, ANSI) | CREATE/DROP, SELECT/INSERT/UPDATE/DELETE, WHERE, JOIN/UNION basiques. |
| 1989 | SQL-89 | Corrections syntaxiques mineures. |
| 1992 | SQL-92 (SQL-2) | Jointures avancées (LEFT/RIGHT/FULL), sous-requêtes, contraintes (PK/FK), vues, transactions (COMMIT/ROLLBACK), INTERSECT/EXCEPT, NULLs. |
| 1999 | SQL:1999 (SQL3) | Types utilisateur (UDT distinct/structured, héritage), WITH RECURSIVE, triggers, SQL/PSM (procédures/fonctions), GROUP BY ROLLUP/CUBE/GROUPING SETS, SIMILAR/DISTINCT/UNIQUE, ARRAY/ROW/LOB, IF/CASE/LOOP. |
| 2003 | SQL:2003 | SQL/XML (type XML, parsing), window functions (ROW_NUMBER/RANK/PARTITION BY/OVER), séquences, MERGE, CREATE TABLE AS/LIKE, identity columns, OLAP étendu. |
| 2006 | SQL:2006 | XPath/XQuery pour XML. |
| 2008 | SQL:2008 | BIGINT, TRUNCATE TABLE, triggers INSTEAD OF (vues), OLAP renforcé. |
| 2011 | SQL:2011 | Tables temporelles (périodes, system versioning), indexation avancée. |
| 2016 | SQL:2016 | JSON natif (JSON_VALUE/QUERY/OBJECT/ARRAY, IS JSON), PTF (polymorphic table functions), MATCH_RECOGNIZE (patterns). |
| 2019 | SQL:2019 | Tableaux multidimensionnels, window functions étendues, PTF avancées. |
| 2023 | SQL:2023 | Property Graph Queries (SQL/PGQ), JSON natif (dot notation), regex matching, triggers avancés, UDT/OO/OLAP renforcés. |
Cette progression illustre comment SQL a su s’adapter sans jamais rompre la compatibilité descendante. Les normes les plus impactantes restent SQL-92, qui a unifié les dialectes propriétaires, et SQL:2003, qui a introduit les fonctions analytiques aujourd’hui indispensables en Business Intelligence. Les normes récentes (2016–2023) témoignent d’une volonté d’intégrer JSON et les graphes directement dans le moteur relationnel, sans devoir migrer vers des bases NoSQL.
Qui a inventé le SQL
Donald D. Chamberlin et Raymond F. Boyce sont considérés comme les inventeurs directs du langage SQL, qu’ils ont conçu en 1974 chez IBM dans le cadre du projet System R pour implémenter le modèle relationnel. Inspirés par les travaux théoriques d’Edgar F. Codd (1970). Codd est souvent crédité comme précurseur du paradigme relationnel sous-jacent, mais le langage en lui-même revient à Chamberlin et Boyce
Contributeurs clés à la naissance de SQL
Ces pionniers chez IBM ont posé les fondations du langage dans les années 1970.
- Edgar F. Codd
- Donald D. Chamberlin
- Raymond F. Boyce
- Pat Selinger, Mike Astrahan
Contributeurs à l’évolution et standardisation
Au-delà des inventeurs directs, l’évolution de SQL doit beaucoup à des figures qui ont façonné ses normes et ses premières implémentations commerciales. Des comités ANSI/ISO aux entrepreneurs visionnaires comme Larry Ellison, ces contributeurs ont transformé un prototype académique en standard mondial adopté par des millions de développeurs.
| Nom | Contribution principale | Période |
|---|---|---|
| Larry Ellison | Fondateur d’Oracle ; lance en 1979 le premier SGBDR commercial avec SQL (Oracle V2). | 1979+ |
| ANSI/ISO X3H2 Committee | Première norme SQL-86 (1986), puis SQL-92 ; uniformise le langage. | 1980s-1990s |
| Stephen Cannan & Kerry Leavens | Auteurs de la référence SQL-92 ; clarifient grammaire et sémantique | 1992 |
| Michael Melton | Éditeur SQL:1999–2003 ; introduit OO, XML, window functions. | 1999-2003 |
| Jim Melton | Contributeur clé aux normes ISO SQL (2003+) ; ouvrages de référence sur SQL standards. | 2000s+ |
Ces contributions montrent que SQL n’est pas l’œuvre d’un seul auteur, mais le résultat d’une collaboration continue entre chercheurs, ingénieurs et organismes de normalisation. Depuis les années 2000, l’évolution du langage repose essentiellement sur des comités ISO ouverts, où constructeurs (Oracle, IBM, Microsoft, PostgreSQL) et indépendants négocient chaque nouvelle fonctionnalité.
Du modèle relationnel au SQL
Publication du modèle relationnel par Edgar F. Codd (1970)
En 1970, Edgar F. Codd, chercheur chez IBM, publie son article fondateur « A Relational Model of Data for Large Shared Data Banks ». Cette étape visait à résoudre les limitations des systèmes hiérarchiques et réseau de l’époque (comme IMS d’IBM), qui imposaient des structures rigides et complexes à naviguer. Le modèle relationnel introduit des tables planes interconnectées par des clés, l’algèbre relationnelle pour les opérations (sélection, projection, jointure) et une indépendance physique/logique des données, permettant une flexibilité sans compromettre l’intégrité.
Lancement du projet System R chez IBM (1973)
Pour valider industriellement les idées théoriques de Codd, IBM lance en 1973 le projet System R, dirigé par Frank Farina et Bob Goldberg. Cette étape était cruciale car les concepts de Codd restaient purement académiques ; System R devait prouver que les bases relationnelles surpassaient les systèmes existants en performance et simplicité, tout en implémentant un SGBDR complet (y compris un optimiseur de requêtes révolutionnaire par Pat Selinger). Les tests en conditions réelles ont démontré la viabilité pour les applications d’entreprise.
Invention de SEQUEL par Chamberlin et Boyce (1974)
En 1974, Donald D. Chamberlin et Raymond F. Boyce conçoivent SEQUEL (Structured English QUEry Language) au sein de System R. L’objectif était de créer un langage accessible aux utilisateurs métier, non programmeurs, en utilisant une syntaxe déclarative proche de l’anglais (« SELECT nom FROM employés WHERE salaire > 50000 ») plutôt que procédurale, pour abstraire la complexité de l’algèbre relationnelle et favoriser l’adoption massive.
Premiers tests et renommage en SQL (1976-1978)
Entre 1976 et 1978, SQL (renommé ainsi pour éviter un conflit avec un système de sequencing britannique) est testé intensivement dans System R auprès d’utilisateurs réels d’IBM. Cette phase validait l’efficacité pratique du langage en transactions (jusqu’à 1000 req/s), affinait l’optimiseur et confirmait que SQL simplifiait les développements par rapport aux langages bas niveau comme DL/I, pavant la voie à une standardisation future.
Commercialisation par Oracle (1979)
En 1979, Larry Ellison fonde Software Development Laboratories (devenu Oracle) et sort Oracle V2, premier SGBDR SQL commercial sur PDP-11. Cette étape marquait la transition du prototype IBM propriétaire vers un produit accessible à tous, répondant au besoin urgent des entreprises pour des bases scalables et portables, et déclenchant une adoption explosive (Oracle surpasse rapidement IBM DB2).
Premières implémentations industrielles
Oracle V2 (1979)
Larry Ellison et ses cofondateurs lancent Oracle V2 en 1979 sur PDP-11, premier SGBDR SQL commercial portable sur plusieurs OS. Cette implémentation visait à démocratiser l’accès aux bases relationnelles en dehors d’IBM, répondant au besoin urgent des entreprises pour des systèmes scalables sans dépendre du hardware propriétaire mainframe. Oracle introduit des optimisations pour les disques durs et un PL/SQL embryonnaire, surpassant rapidement les prototypes internes.
IBM DB2 (1983)
IBM commercialise DB2 en 1983 pour mainframes (MVS), basé directement sur System R/SQL. Ce lancement permettait à IBM de récupérer le contrôle du marché relationnel face à Oracle, en offrant une intégration native avec ses écosystèmes d’entreprise (CICS, IMS) et un support transactionnel robuste (ACID complet). DB2 validait industriellement l’optimiseur System R pour des charges OLTP massives.
Ingres et autres précurseurs (1980s)
Relational Technology (Ingres) sort Ingres/Oracle en 1981, puis PostgreSQL émerge en 1986 (basé sur Ingres POSTGRES). Ces implémentations open/académiques visaient à contrer les géants propriétaires en offrant gratuité/recherche, introduisant QUEL puis SQL pur, et posant les bases des futurs PostgreSQL/MySQL pour les PME et chercheurs.
SQL Server par Sybase (1988) puis Microsoft (1993)
Sybase sort SQL Server en 1988 pour Unix/mainframes, avec T-SQL propriétaire. Cette étape étendait SQL aux serveurs clients-serveurs émergents, répondant à la demande de bases Windows/Unix interconnectées en réseau, avec un accent sur les performances et les triggers avancés. Microsoft rachète les droits en 1993, popularisant SQL auprès des développeurs PC.
Standardisation ANSI/ISO de SQL
SQL-86 : Première norme ANSI (1986)
En 1986, le comité ANSI X3H2 publie SQL-86 (ou SQL-1), la première norme formelle du langage SQL. Cette étape visait à unifier les dialectes propriétaires émergents (Oracle, DB2) en définissant un socle commun minimal (CREATE TABLE, SELECT/INSERT/UPDATE/DELETE, WHERE simple, GROUP BY, ORDER BY, jointures basiques), évitant l’anarchie des implémentations incompatibles et favorisant la portabilité des applications d’entreprise.
SQL-89 : Corrections et clarifications (1989)
SQL-89 apporte des ajustements mineurs à SQL-86, comme une meilleure gestion des NULL et des précisions syntaxiques. Ce raffinement répondait aux premiers retours d’expérience des implémenteurs, corrigeant ambiguïtés et incohérences pour une adoption plus fluide, tout en préparant le terrain pour une norme plus ambitieuse.
SQL-92 : Le standard de référence (1992)
SQL-92 (SQL-2), élaboré par ANSI et adopté par ISO, introduit jointures avancées (LEFT/RIGHT/FULL OUTER), sous-requêtes corrélées, contraintes d’intégrité (PRIMARY KEY/FOREIGN KEY/CHECK), vues, transactions (COMMIT/ROLLBACK/SAVEPOINT), INTERSECT/EXCEPT et niveaux de conformité (Entry/Intermediate/Full). Cette norme massive visait à couvrir 90% des besoins réels, rendant SQL viable pour les applications critiques et dopant l’interopérabilité entre SGBDR.
Transition vers SQL3 (milieu 1990s)
Dès 1992, le comité ISO prépare SQL:1999 (SQL3) pour intégrer des concepts objet (types utilisateurs, héritage), mais les retards techniques repoussent sa publication. Cette phase anticipait l’évolution vers un SQL objet-relationnel, répondant à la concurrence des SGBD orientés objet (ODMG) en hybridant relationnel et OO sans rompre la compatibilité.
Évolutions 2003–2016
SQL:2003 : XML et fonctions analytiques
SQL:2003, publié par ISO en 2003, introduit SQL/XML pour manipuler les données XML nativement (type XML, fonctions XMLPARSE/XMLSERIALIZE) et les fonctions fenêtrées (ROW_NUMBER, RANK, PARTITION BY, OVER) pour l’analyse OLAP. Cette évolution répondait à l’explosion des échanges XML (SOAP, RSS) et aux besoins BI des entreprises, permettant des requêtes analytiques complexes sans post-traitement applicatif, tout en restructurant le standard en Core + packages optionnels.
SQL:2006 et 2008 : Renforcement XML et OLAP
SQL:2006 ajoute XPath et XQuery intégrés pour des queries XML avancées, tandis que SQL:2008 étend OLAP (fonctions renforcées), BIGINT, TRUNCATE TABLE et triggers INSTEAD OF sur vues. Ces mises à jour visaient à consolider l’interopérabilité XML dans les SOA d’entreprise et à optimiser les data warehouses, répondant aux critiques sur le support XML faible des SGBDR de l’époque.
SQL:2011 : Tables temporelles
SQL:2011 introduit les tables temporelles (périodes SYSTEM_TIME, versioning automatique pour audit) et une indexation temporelle avancée. Cette fonctionnalité ciblait les secteurs réglementés (finance, santé) nécessitant un suivi historique précis sans triggers manuels complexes, automatisant la gestion des versions temporelles pour une conformité simplifiée.
SQL:2016 : JSON et reconnaissance de motifs
SQL:2016 intègre JSON natif (JSON_VALUE, JSON_QUERY, IS JSON), les fonctions polymorphiques sur tables (PTF) et MATCH_RECOGNIZE pour détecter des patterns dans les séries temporelles. Ces ajouts anticipaient l’essor des API REST/JSON et des analytics en temps réel (IoT, finance), permettant à SQL de concurrencer NoSQL sans abandonner le relationnel.
SQL contemporain : extensions JSON, big data et cloud
SQL:2019 : Tableaux et analytics avancées
SQL:2019 renforce les fonctions fenêtrées avec des options étendues (PERCENT_RANK, CUME_DIST) et introduit les tableaux multidimensionnels ainsi que des fonctions polymorphiques améliorées. Cette évolution répondait aux besoins croissants en data science et machine learning, où les analystes manipulent des datasets massifs, permettant des agrégations complexes directement en SQL sans recourir à des langages externes comme Python.
SQL:2023 : Property Graph Queries et JSON natif
SQL:2023 ajoute SQL/PGQ pour les requêtes sur graphes (shortest path, pattern matching sur propriétés relationnelles), un support JSON natif avec notation pointée et des regex avancés. Ces fonctionnalités visaient à intégrer nativement les graphes et données semi-structurées dans les SGBDR traditionnels, concurrençant Neo4j ou MongoDB tout en exploitant les tables existantes pour les cas d’usage comme les réseaux sociaux ou la détection de fraude.
Dialectes Big Data : Hive, Spark SQL, BigQuery (2010s)
Les moteurs big data étendent SQL pour le traitement distribué (HiveQL sur Hadoop depuis 2008, Spark SQL depuis 2014, BigQuery depuis 2011). Ces implémentations parallélisent les jointures et agrégations sur clusters, répondant à l’explosion des volumes de données (pétaoctets) impossibles à gérer en monolithe, et démocratisant l’analytique SQL pour les data engineers sans expertise Hadoop.
SQL dans le cloud : Serverless et data warehouses (2020s)
Services comme Snowflake, Redshift, AlloyDB ou Cosmos DB hybrident SQL avec du stockage découplé et scaling automatique depuis 2020. Cette approche résout les limitations des SGBDR on-premise en offrant élasticité infinie et zero-management, adaptée aux workloads BI/ML imprévisibles des entreprises cloud-native, tout en maintenant la compatibilité ANSI Core.