Введение в SQL
История возникновения SQL
Из Wikipedia:
SQL (англ. Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.
SQL основывается на реляционной алгебре.
В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL.
Организации, принимающие стандарты
ANSI – American National Standards Institute — Американский национальный институт стандартов, со штаб-квартирой в Нью-Йорке, образованный 19 октября 1918г. (ansi.org)
ISO – International Organization for Standardization – Международная организация стандартов, со штаб-квартирой в Женеве, образованная в 1946. Входит 161 страна, включая Россию (iso.org/iso/home.html)
IEC – International Electrotechnical Commission – Международная электротехническая комиссия, со штаб-квартирой в Женеве с 1946 года, основана в 26 июле 1906 году. Входит 76 стран (icc.ch).
Этапы развития SQL
В развитии и становлении SQL как языка доступа к базе данных следует отметить следующие даты:
1) 1986 – принятие стандарта ANSI
Статус стандартного языка реляционных БД de facto был зафиксирован с принятием его в 1986 году в качестве стандарта ANSI (105 стр.) по предложению фирмы IBM (Фил Шоу для базы данных DB2).
2) 1989 – SQL1 стандарт ANSI/ISO
В 1989 году было введено средство, обеспечивающее ссылочную целостность (referential integrity). С тех пор он известен как ANSI/ISO SQL-89/SQL1 (12* стр.)
Стандарт включал три интерфейса взаимодействия с БД: модульный язык (Module Language), встроенный (Embedded SQL) и непосредственный вызов (Direct Invocation).
3) 1992 – SQL2 стандарт ANSI/ISO
В 1992 году был принят новый стандарт ANSI/ISO SQL-92/SQL2 (575 стр.)
Этот стандарт превышал SQL-89 по объему в пять раз и включал 20 встроенных функций.
В 1995 году была опубликована третья часть SQL/CLI (Call Level Interface – интерфейс уровня вызовов).
В 1996 году четвертая часть SQL/PSM (Persistent Stored Modules – долгоживущие хранимые модули).
4) 1999 – SQL3 (SQL:99) стандарт ANSI/ISO
В 1999 году был принят новый стандарт, называемый в литературе SQL3 или SQL:99.
Добавлена поддержка регулярных выражений рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных (коллекции) и некоторые объектно-ориентированные возможности.
Разделы стандарта SQL:99
1) SQL/Framework – логические основы стандарта.
2) SQL/Foundation – функциональное ядро стандарта (Core SQL99).
3) SQL/CLI
4) SQL/PSM
5) SQL/Bindings – взаимодействие с другими языками.
6) SQL/MM – средства языка для работы с мультимедийными данными.
7) SQL/OLB – определяет связь SQL с объектными языками, описывая 0-часть стандарта SQLJ для встраивания операторов в язык Java.
5) 2003 – SQL:2003 стандарт ANSI/IEC
В 2003 году был принят SQL:2003. Стандарт существенно пересмотрен и дополнен новыми типами данных и новыми операторами (1300 стр.)
Введены расширения для работы с XML-данными, оконные функции (для работы с OLAP БД), генераторы последовательностей и основанные на них типы данных.
В 2006 году функциональность работы с XML-данными значительно расширена.
SQL/Bindings включен в раздел SQL/Foundation
SQL/Schemata вынесен в отдельную часть.
Разделы стандарта SQL:2003
1) SQL/Framework
2) SQL/Foundation
3) SQL/CLI
4) SQL/PSM
5) SQL/MED – Management of External Data
6) SQL/OLB – Object Language Bindings.
7) SQL/Schemata – Information and Definition Schemas.
8) SQL/JRT – SQL Routines and Types for the Java Programming Language.
9) SQL/XML – XML-Related Specifications.
6) 2008 – SQL:2008 стандарт ANSI/IEC
В 2008 году был принят SQL:2008.
Функциональность работы с XML – данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery.
Улучшены возможности оконных функций, устранены некоторые неоднозначности стандарта SQL:2003.
Разделы стандарта SQL:2008
1) ISO/IEC 9075-1:2008 (SQL/Framework)
2) ISO/IEC 9075-2:2008 (SQL/Foundation)
3) ISO/IEC 9075-3:2008 (SQL/CLI)
4) ISO/IEC 9075-4:2008 (SQL/PSM)
5) ISO/IEC 9075-9:2008 (SQL/MED)
6) ISO/IEC 9075-10:2008 (SQL/OLB)
7) ISO/IEC 9075-11:2008 (SQL/Schemata)
8) ISO/IEC 9075-13:2008 (SQL/JRT)
9) ISO/IEC 9075-14:2008 (SQL/XML)