Структура языка SQL

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?нако, несмотря на эти недостатки и на довольно слабую производительность СУБД, направленность компаний на содействие разным аппаратным платформам и интерес пользователей в переходе к реляционным БД дали возможность компаниям достигнуть коммерческого успеха и начать улучшение своих продуктов.

Стандартизация языка SQL была начата практически в одно время с возникновением его первых коммерческих релизов. В 1982 году комитету по базам данных Американского национального института стандартов (ANSI) поступил заказ на создание стандартов для языка реляционных БД. В октябре 1985 года был выполнен проект стандарта, который являлся уже не первым стандартом проекта ANSI. Этот стандарт был принят ANSI уже в 1986 году, а через год одобрен Международной организацией по стандартизации (ISO). Данный стандарт решено называть SQL/86/

По некоторым причинам SQL System-R невозможно было использовать в качестве базы стандарта. Основная причина в том, что эта модификация языка не была достаточно проработана. Вторая причина - большие трудности при реализации. Исходя из этого, основой стал диалект языка SQL, сформировавшийся в IBM в начале 1980-х гг. В действительности этот диалект являлся технически проработанным подмножеством SQL System-R.

К концу восьмидесятых годов стандарт SQL/86, был в некоторой степени расширен, а затем был разработан и принят следующий стандарт, носивший название ANSI/ISO SQL/89.

Вероятно, одними из важных достижений этого стандарта стали отчетливая стандартизация синтаксиса и семантики команд выборки информации и управления данными и укрепление средств ограничения целостности БД.

Понимая, что неполнота стандарта SQL на заключающем этапе разработки данного стандарта достаточно существенна, разработчики компаний принялись за работу над стандартом SQL2. Работа над ним тоже велась несколько лет, было реализовано множество проектов стандарта, до тех пор, пока в марте 1992 года не был утвержден заключительный проект стандарта (SQL/92).

В 1995 году новый стандарт был расширен спецификацией уровня вызова (Call-evel Interface - SQL/CLI). SQL/CLI являлся набором спецификаций интерфейсов процедур, позволяющих реализовывать динамически задаваемые команды SQL.

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

В 1999 году принимаются пять основных элементов стандарта SQL 1999. Первый элемент (SQL/Framework) посвящен пояснению концептуальной структуры стандарта. В данной части приведена подробная аннотация последующих четырех элементов и формулируются требования к выпускам, которые претендуют на соответствие стандарту.

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

операторы установления типа БД и управления ей,

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

операторы управления транзакциями,

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

В третьей части находятся более подробная, чем в SQL/92 спецификация SQL/CLI.

Четвертая часть посвящена спецификации SQL/PSM, синтаксису и семантике языка идентификации хранимых процедур. В пятой части (SQL/Dindings) - описан порядок связывания SQL для стандартных версий языков программирования Cobol, Fortran, PL/1, Pascal, Ada, C, MUMPS.

В конце 2003 года принимается и опубликовывается новая модификация международного стандарта SQL: 2003. Немалое количество экспертов было уверено, что в данном варианте стандарта будут только исправлены неточности SQL 1999. Однако, в SQL: 2003 добавлен ряд новых и значительных качеств.

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

 

2. Структура языка SQL

 

Язык SQL стандартов SQL: 2003, SQL: 1999 и даже SQL/92 - это достаточно огромный и сложный язык. Его потенциал практически невозможно сразу постичь и тем более освоить. Исходя из этого, требуется подразделять язык на уровни, или слои, таким образом, что каждый слой языка содержит в себе все конструкции, находящиеся на более низком уровне. В стандарте существует несколько способов разделения языка на уровни. В одной из классификаций он делится на базовый, промежуточный и полный.

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