Наука
Advertisement

SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.

SQL основывается на реляционной алгебре.

Язык SQL делится на три части:

  • операторы определения данных (Data Definition Language, DDL)
  • операторы манипуляции данными (Data Manipulation Language, DML)
  • операторы определения доступа к данным (Data Control Language, DCL)

История[]

В начале 1970-х годов в компании IBM была разработана экспериментальная СУБД «System R» на основе языка SEQUEL (Structured English Query Language — структурированный английский язык запросов). Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute), официальным произношением стало [,es kju:' el] — эс-кью-эл. Несмотря на это, даже англоязычные специалисты по прежнему часто называют SQL сиквел, вместо эс-кью-эл (по-русски также часто говорят «эс-ку-эль»). Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования.

Собственно разработкой языка запросов занимались Чэмбэрлин (Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

В 1981 году IBM объявила о своём первом основанном на SQL программном продукте — SQL/DS. Чуть позже к ней присоединились Oracle, Relational Technology и другие производители.

Первый стандарт языка SQL был принят ANSI (Американским национальным институтом стандартизации) в 1986 и ISO (Международной организацией по стандартизации) в 1987 (так называемый SQL level 1) и несколько уточнён в 1989 году (SQL level 2). Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 нового расширенного стандарта (ANSI SQL-92 или просто SQL-2). Следующим стандартом стал SQL-99. В настоящее время действует стандарт, принятый в 2003 году (SQL-3).

Среди достоинств использования (применения) SQL в прикладной сфере можно выделить следующие:

  • Независимость от конкретной СУБД

Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую и наоборот. Существуют системы, разработчики которых изначально закладывались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle Database, так и с Microsoft SQL Server и IBM DB2)

  • Наличие стандартов

Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.

  • Полноценность как языка для управления данными

С помощью SQL программист или пользователь может просматривать, изменять и удалять данные, что является основой самого понятия СУБД.

Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.

Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Microsoft, MySQL AB, Borland), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

Стандарты[]

Ревизии SQL:

Год Названия Комментарии
1986 SQL-86, SQL-87 Впервые опубликован ANSI. Ратифицирован ISO в 1987.
1989 SQL-89 Небольшие изменения.
1992 SQL-92, SQL-2 Существенные изменения.
1999 SQL:1999, SQL-3 Добавлены регулярные выражения, рекурсивные запросы, триггеры и некоторые обьекто-ориентированные нововведения.
2003 SQL:2003 Объявлены XML-зависимые нововведения.

Безопасность[]

  • SQL injection
  • Хранимые процедуры

См. также[]

  • QBE

Ссылки[]

Литература[]

Advertisement