История развития и стандарты языка SQL
Лекция 5. Основы языка SQL
Краткая аннотация. Лекция посвящена знакомству с языком доступа к данным в реляционных СУБД – SQL. Сначала рассматриваются назначение языка SQL, история появления и развития SQL, стандарты SQL. Далее определяется состав языка SQL, как совокупность языка определения данных (Data Definition Language, DDL), языка манипуляции данными (Data Manipulation Language, DML), языка управления доступом к данным (Data Control Language, DCL), языка управления транзакциями (Transaction Control Language, TCL). Подробно изучить такие элементы языка SQL, как идентификаторы, типы данных, функции.
Цель лекции. Познакомить студентов с языком доступа к данным в реляционных СУБД – SQL. Рассмотреть назначение языка SQL, история появления и развития SQL, стандарты SQL. Определяется состав языка SQL, как совокупность языка определения данных (Data Definition Language, DDL), языка манипуляции данными (Data Manipulation Language, DML), языка управления доступом к данным (Data Control Language, DCL), языка управления транзакциями (Transaction Control Language, TCL). Изучить такие элементы языка SQL, как идентификаторы, типы данных, функции.
В начале 70-х годов XX века в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language– «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL.
Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.
Таблица 1.1 – Версии стандартов языка SQL
Год | Название | Иное название | Изменения |
SQL-86 | SQL-87 | Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году. | |
SQL-89 | FIPS 127-1 | Немного доработанный вариант предыдущего стандарта. | |
SQL-92 | SQL2, FIPS 127-2 | Значительные изменения (ISO 9075); уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS 127-2. | |
SQL:1999 | SQL3 | Добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно-ориентированные возможности. | |
SQL:2003 | Введены расширения для работы с XML-данными, оконные функции, применяемые для работы с OLAP-базами данных, генераторы последовательностей и основанные на них типы данных. | ||
SQL:2006 | Функциональность работы с XML-данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery. | ||
SQL:2008 | Улучшены возможности оконных функций, устранены некоторые неоднозначности стандарта SQL:2003 |
К несомненным достоинствам языка SQL следует отнести:
- переносимость;
- наличие стандартов;
- декларативность.
К недостаткам языка SQL стоит отнести:
- неполное соответствие языка реляционной модели;
- сложность;
- отступление от стандартов;
- отсутствие или ограниченность возможности работы с иерархическими структурами данных.