Статья: Общие сведения об истории создания и стандартах SQL

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Общие сведения об истории создания и стандартах SQL

Язык SQL был создан в начале 70-х годов в результате исследовательского проекта IBM, целью которого было создание языка манипуляции реляционными данными. Работа была начата сразу после появления статьи Э. Кодда в 1970 г. в лабораториях компании IBM для проверки возможностей реляционной модели. Первоначально он назывался SEQUEL (Structured English Query Language), затем - SEQUEL/2, а затем - просто SQL.

Вскоре появилась СУБД System R - экспериментальная исследовательская система с языком SEQUEL (позже SQL), созданная IBM. Затем появились многочисленные СУБД с SQL среди них:

- Oracle (Relation Software Inc. - Oraclecorp.;

1981-1982 - DB2 (IBM), Ingres - CA-OpenIngres (Relation Technology Inc. - Computer Associates)

- Informix (Informix Sofrware);

- Sybase (Sybase Corp.)

Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной Организацией по Стандартизации). Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя разные другие особенности в этот язык, которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами «рынка» сами по себе в силу полезности своих качеств не изобретался ANSI. Это по существу изобретение IBM. Но другие компании подхватили SQL сразу же, по крайней мере одна компания (Oracle) отбила у IBM право на рыночную продажу SQL продуктов.

Первый международный стандарт был принят в 1989 г., и соответствующая версия языка называется SQL-89. Стандарт SQL-89 во многих частях имеет чрезвычайно общий характер и допускает очень широкое толкование. В этом стандарте полностью отсутствуют такие важные разделы, как манипулирование схемой БД и динамический SQL. Многие важные аспекты языка в соответствии со стандартом определяются в реализации.

Возможно, наиболее важными достижениями стандарта SQL-89 являются четкая стандартизация синтаксиса и семантики операторов выборки и манипулирования данными и фиксация средств ограничения целостности БД, включающих возможности определения первичного и внешних ключей отношений и так называемых проверочных ограничений целостности, позволяющих сформулировать условие для каждой отдельной строки таблицы. Средства определения внешних ключей позволяют легко формулировать требования так называемой целостности БД по ссылкам. Формулировка ограничений целостности на основе понятия внешнего ключа проста и понятна.

Осознавая неполноту стандарта SQL-89, на фоне завершения разработки этого стандарта специалисты различных фирм начали работу над стандартом SQL2. Эта работа также длилась несколько лет, было выпущено несколько проектов стандарта, пока, наконец, в марте 1992 г. не был выработан окончательный проект стандарта (после чего стандарт и соответствующий язык стали называть SQL-92). Этот стандарт существенно более полный и охватывает практически все необходимые для реализации аспекты: манипулирование схемой БД, управление транзакциями и сессиями (сессия - это последовательность транзакций, в пределах которой сохраняются временные отношения), подключение к БД, динамический SQL. Наконец стандартизованы отношения-каталоги БД, что вообще-то не связано с языком непосредственно, но очень сильно влияет на реализацию. Заметим, что в стандарте представлены три уровня языка - базовый, промежуточный и полный. В течение нескольких лет после принятия стандарта производители СУБД, утверждавшие совместимость своих продуктов со стандартом, на самом деле в лучшем случае поддерживали промежуточный уровень языка SQL-92 (естественно, с собственными расширениями). Только в последних выпусках СУБД ведущих производителей обеспечивается совместимость с полным вариантом языка. Наконец, одновременно с завершением работ по определению стандарта SQL-92 была начата разработка стандарта SQL3. В конце 2003 г. был принят и опубликован новый вариант международного стандарта SQL:2003.

Ниже указан анализ основных аспектов стандартов SQL.

Международный стандарт 1989 г.

Во многих частях имеет чрезвычайно общий характер и допускает очень широкое толкование. Отсутствуют важные разделы (манипулирование схемой БД, динамический SQL, многое определяется в реализации).

Наибольшие достижения (стандартизация синтаксиса и семантики операторов выборки и манипулирования данными, фиксация средств ограничений целостности БД: определение первичного и внешнего ключей отношений, проверочные ограничения целостности)

Международный стандарт 1992 г. (SQL2)

Расширено манипулирование таблицами (Altertable, Droptable), манипулирование схемой БД (Users, Tables, Views, Columns, Domains, Table_priveleges, Table_constraints,).

Добавлены:

- возможность управления доменами (Create domain имя char(25)… и при определении имен столбцов эти имена определяются через имена доменов);

- управление транзакциями и сессиями (сессия - последовательность транзакций, в пределах которой сохраняются временные отношения);

- развитие динамического SQL.

В 1995 г. стандарт был дополнен спецификацией интерфейса уровня вызова (Call-Level Interface - SQL/CLI). SQL/CLI представляет собой набор спецификаций интерфейсов процедур, вызовы которых позволяют выполнять динамически задаваемые операторы SQL. По сути дела, SQL/CLI представляет собой альтернативу динамическому SQL и послужил основой для создания повсеместно распространенных сегодня интерфейсов ODBC (Open Database Connectivity) и JDBC (Java Database Connectivity).

В 1996 г. к стандарту SQL/92 был добавлен еще один компонент - SQL/PSM (Persistent Stored Modules). Основная цель этой спецификации состоит в том, чтобы стандартизировать способы определения и использования хранимых процедур, т.е. специальным образом оформленных программ, включающих операторы SQL, которые сохраняются в базе данных, могут вызываться приложениями и выполняются внутри СУБД.

Стандарт SQL: 1999 (SQL3)

Незадолго до завершения работ по определению стандарта SQL2 была начата разработка стандарта SQL3. Реально работу над новым стандартом удалось частично завершить только в 1999 г., и по этой причине (а также в связи с проблемой 2000 года) стандарт получил название SQL:1999 г. были приняты пять первых частей стандарта SQL:1999. Первая часть (SQL/Framework) посвящена описанию концептуальной структуры стандарта: приводится развернутая аннотация следующих четырех частей.

Вторая часть SQL:1999 (SQL/Foundation) образует базис стандарта. Вводится система типов языка, формулируются правила определения функциональных зависимостей и возможных ключей, определяются синтаксис и семантика основных операторов SQL:

- операторов определения и манипулирования схемой базы данных;

- операторов манипулирования данными;

операторов управления транзакциями (расширенные модели транзакций, контрольные точки, многозвенные транзакций);

- операторов управления подключениями к базе данных и т.д.

Третью часть занимает уточненная по сравнению с SQL/92 спецификация SQL/CLI. В четвертой части специфицируется SQL/PSM - синтаксис и семантика языка определения хранимых процедур (стандарт синтаксиса триггеров и процедур). Наконец, в пятой части - SQL/Bindings - определяются правила связывания SQL для стандартных версий языков программирования FORTRAN, COBOL, PL/1, Pascal, Ada, C и MUMPS.

В стандарт SQL: 1999 не вошли и существуют в виде отдельных стандартов:

- стандарт управления распределенными транзакциями (SQL/Transaction);

- стандарт поддержки темпоральных свойств данных (SQL/Temporal);

- стандарт управления внешними данными (SQL/MED);

- поддержка оперативной аналитической обработки (SQL/OLAP).

На рисунке 1 тезисно представлена история развития SQL.

синтаксис стандартизация ссылка

Рис. 1

Источник: https://otherreferats.allbest.ru/download/1284091/