Введение в SQL
Изначально создаваемый как инструмент для выборки и представления данных, содержащихся в базе данных, SQLсегодня представляет собой нечто гораздо большее. Несмотря на то, что выборка данных по-прежнему остается одной нанаиболее важных функций SQL,сейчас этот язык используется для реализации всех функциональных возможностей, необходимых для управления БД, в том числе и для:
•организации данных — SQLпозволяет определять и изменять структуру представления данных, а также устанавливать отношения;
•обработки данных — SQLпозволяет изменять содержимое базы данных: добавлять новые данные, удалять или обновлять уже имеющиеся в ней данные;
•управления доступом — SQLпозволяет ограничивать возможности пользователя по чтению и изменению данных (защита данных от несанкционированного доступа) и координировать их совместное использование пользователями, работающими параллельно.
Таким образом, хотя SQLи не объявляется полноценным языком программирования, он является достаточно полным и мощным языком для управления взаимодействием с СУБД. SQLявляется подъязыком баз данных, предназначенным для управления базами данных. Несмотря на не совсем точное название, SQLна сегодняшний день является единственным стандартным языком для работы с реляционными базами данных.
Операторы SQLвстраиваются в базовый язык, например PASCAL, FORTRANили С, и дают возможность получать доступ к базам данных из прикладных программ. Кроме того, из многих языков программирования операторы ЯЯ можно посылать СУБДв явном виде, используя интерфейс вызовов функций.
Официальный стандарт языка ЯЯ был опубликован в 1986 г. Американским институтом национальных стандартов (ANSI)и Международной организацией по стандартам (International Standards Organization — ISO),а в 1992 г. значительно расширен. Стандарт Х/OPEN для переносимой среды программирования на основе операционной системы UNIXтакже включает в себя SQLв качестве языка для доступа к базам данных. Консорциум поставщиков компьютерного оборудования и баз данных (SQLAccess Group) определил для SQLстандартный интерфейс вызовов функций, который является основой протокола ODBCкомпании Microsoft и входит также в стандарт Х/OPEN.Эти стандарты de facto являются официальным одобрением SQL,и именно они ускорили завоевание им рынка.
Многие из членов комитетов по стандартизации ANSI и ISOпредставляли фирмы — поставщиков различных СУБД,в каждой из которых был реализован собственный диалект SQL. Каки диалекты человеческого языка, диалекты SQLбыли в основном похожи друг на друга, однако несовместимы в деталях. Во многих случаях комитет просто игнорировал существующие различия и не стандартизировал некоторые части языка, определив, что они реализуются по усмотрению разработчика. Этот подход позволил объявить большое число реализаций SQLсовместимыми со стандартом, однако сделал сам стандарт относительно слабым.
Чтобы заполнить эти пробелы, комитет ANSIпродолжил свою работу и создал проект нового, более жесткого стандарта SQL2.В отличие от стандарта 1989 г., проект SQL2предусматривал возможности, выходящие за рамки таковых, уже существующих в реальных коммерческих продуктах.
Перечислим эти отличия SQL
Коды ошибок. В стандарте SQL2определены стандартные коды, которые возвращают операторы SQLпри возникновении ошибок.
Типы данных. В стандарте SQL2упомянуты многие стандартные типы данных (например, символьные строки переменной длины, дата и время, а также денежные единицы), однако отсутствуют «новые» типы данных, такие как графические и мультимедийные объекты.
Системные таблицы. В стандарте SQL-89умалчивается о системных таблицах, в которых содержится информация о структуре самой базы данных. Поэтому каждый поставщик создавал собственные системные таблицы, и их структура отличается даже в четырех реализациях SQLкомпании IBM. В SQL2системные таблицы стандартизированы.
Интерактивный SQL. Встандарте SQL-89определен только программный SQL,используемый прикладной программой, но не интерактивный SQL. Например, оператор SELECT,предназначенный для выполнения запросов к базе данных в интерактивном режиме, в стандарте отсутствует.
Программный интерфейс. В стандарте SQL2определен интерфейс встроенного SQLдля некоторых языков программирования, но не интерфейс вызова функций.
Динамический SQL. Встандарте SQL-89не описаны элементы SQL,необходимые для разработки приложений общего назначения, таких как генераторы отчетов и программы создания и выполнения запросов. Однако эти элементы, известные под названиемдинамический SQL,имеются почти во всех СУБДи в различных системах значительно отличаются. В стандарт SQL2входит раздел динамического SQL.
Семантические отличия. Поскольку некоторые элементы определены в стандартах как зависящие от реализации, может возникнуть ситуация, когда в результате выполнения одного и того же запроса в двух совместимых СУБДбудут получены два различных набора результатов. Отличия результатов обусловлены различиями в обработке значений NULL,разными агрегатными функциями и несовпадением процедур удаления повторяющихся строк.
Последовательность сравнения. Стандарт SQL2 позволяет программе или пользователю указывать требуемую последовательность сортировки результатов запроса.
Структура базы данных. В стандарте SQL-89определен язык, операторы которого используются уже после того, как база данных была открыта и подготовлена к работе. Детали именования баз данных и первоначального подключения к ним в разных реализациях сильно отличаются или несовместимы. Стандарт SQL2 в некоторой степени унифицирует этот процесс, хотя и не может полностью ликвидировать все отличия.
Основными направлениями развития SQL2(и принятие SQL3)являются:
•стандартизация интерфейсов вызова функций;
•стандартизация хранимых процедур;
•добавление объектно-ориентированных возможностей.
Дата добавления: 2015-04-15; просмотров: 860;