SQL (Structured Query Language) - один из самых устойчивых и долгоживущих языков в истории IT. Несмотря на десятилетия развития технологий, появления новых парадигм и модных решений, SQL остаётся основным инструментом работы с данными. Чтобы лучше понимать, почему SQL выглядит именно так, полезно разобраться в его истории - от академических идей до промышленных стандартов.
Реляционная модель: начало всего (1970)
История SQL начинается не с самого языка, а с реляционной модели данных.
В 1970 году сотрудник IBM Эдгар Ф. Кодд (Edgar F. Codd) опубликовал научную статью:
"A Relational Model of Data for Large Shared Data Banks"
В ней он предложил революционную на тот момент идею:
До этого БД были:
Реляционная модель позволила отделить логику данных от способа их хранения, что стало фундаментом SQL.
SEQUEL: первый шаг к SQL (1973 - 1974)
После публикации идей Кодда в IBM начался исследовательский проект System R. Его целью было доказать, что реляционная модель может быть реализована на практике.
Для работы с данными был создан язык:
SEQUEL (Structured English QUEry Language)
Авторы:
Основные идеи SEQUEL:
Пример раннего SEQUEL:
SELECT name FROM employee WHERE department = 'Sales';
Очень знакомо, правда?
- Почему SQL, а не SEQUEL?
Название SEQUEL пришлось изменить по юридическим причинам - оно конфликтовало с торговой маркой одной из компаний.
Так язык стал называться SQL.
Первые коммерческие СУБД (конец 1970-х - 1980-е)
Хотя IBM разработала SQL, первыми коммерческий успех получили не они.
- Oracle (1979)
Компания Relational Software Inc. (позже Oracle) выпустила:
Oracle сделал ставку на:
- Другие игроки
В 1980-х появились:
Каждая система имела свой диалект SQL, что быстро стало проблемой.
Стандартизация SQL (ANSI / ISO)
Чтобы остановить хаос диалектов, был создан стандарт.
Ключевые этапы:
На практике:
Эволюция SQL: от запросов к платформе
Со временем SQL перестал быть просто языком SELECT.
Появились:
SQL стал полноценным языком управления данными.
PostgreSQL и академическое наследие
Отдельного внимания заслуживает PostgreSQL.
Его корни:
PostgreSQL часто называют "самой академически правильной реализацией SQL"
Именно поэтому он:
SQL vs NoSQL: вызов 2010-х
В 2010-х годах появились NoSQL-решения:
Они критиковали SQL за:
Но произошло неожиданное:
Сегодня SQL работает:
Source: Orkhan Alishov's notes