22. Общие сведения о языках запросов к базам данных. Краткая история стандартизации языка SQL.
Запрос представляет собой специальным образом описанное требование, определяющее состав производимых на БД операций по выборке, удалению или модификации хранимых данных.Для подготовки запросов чаще всего используются два основных языка описания запросов: QBE и SQL.
Главное отличие между этими языками заключается в способе формирования запросов: язык QBE предполагает ручное формирование запроса, в то время как использование языка SQL означает программирование запроса.Теоретической основой языка QBE является реляционное исчисление с переменными-доменами. Этот язык позволяет формировать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы. Такой способ формирования запросов обеспечивает высокую наглядность и не требует указания алгоритма выполнения операции. Достаточно описать образец ожидаемого результата (откуда и название языка – запрос по образцу). Для того чтобы узнать имена доступных отношений БД, в языке QBE предусмотрен запрос на выборку имен отношений. Имена атрибутов исходного отношения могут вводиться в шаблон вручную или автоматически. Во втором случае используется запрос на выборку имен атрибутов.В современных СУБД, например, в ACCESS (диалоговые окна) и VISUAL FOX PRO, многие действия по подготовке запросов с помощью языка QBE выполняются визуально с помощью мыши («протаскиванием» мышью имени атрибута одного отношения к атрибуту другого).Первый вариант языка QBE был предложен в 1975-1977 г. М. М. Злуффом. Краткая история стандартизации языка SQL:Деятельность по стандартизации языка SQL началась практически одновре- менно с появлением его первых коммерческих реализаций. В 1982 г. комитету по БД Американского национального института стандар- тов (ANSI) было поручено разработать спецификацию стандартного языка реляционных БД. Первый документ из числа проектов стандарта датирован октябрем 1985 г. и является уже не первым проектом стандарта ANSI. Стандарт был принят ANSI в 1986 г., а в 1987 г. одобрен Международной организацией по стандартизации (ISO). Этот стандарт языка SQL принято называть SQL/86.К 1989 г. стандарт SQL/86 был несколько расширен, был подготовлен и принят следующий стандарт, получивший название ANSI/ISO SQL/89. Осознавая неполноту стандарта SQL/89, на фоне завершения разработки этого стандарта специалисты различных компаний начали работу над стандартом SQL2. Эта работа также длилась несколько лет, было выпущено много проектов стандарта, пока, наконец, в марте 1992 г. не был принят окончательный проект стандарта SQL/92. В 1995 г. стандарт был дополнен спецификацией интерфейса уровня вызова (Call-Level Interface – SQL/CLI). SQL/CLI представляет собой набор спецификаций интерфейсов процедур, вызовы которых позволяют выполнять динамически зада-ваемые операторы SQL. В 1996 г. к стандарту SQL/92 был добавлен еще один компонент SQL/PSM (Persistent Stored Modules). В 1999 г. были приняты пять первых частей стандарта SQL:1999. В конце 2003 г. был принят и опубликован новый вариант Международного стандарта SQL:2003, который существенно отлича-ется от стандарта SQL:1999, и состоит из 9 частей.