Язык SQL как стандартный язык баз данных

Автор работы: Пользователь скрыл имя, 05 Июня 2012 в 01:13, реферат

Описание работы

Стремительный рост популярности SQL является одной из самых важных тенденций в современной компьютерной промышленности. За несколько последних лет SQL стал единственным языком баз данных. На сегодняшний день SQL поддерживают свыше ста СУБД, работающих как на персональных компьютерах, так и на больших ЭВМ. Был принят, а затем дополнен официальный международный стандарт на SQL. Язык SQL является важным звеном в архитектуре систем управления базами данных, выпускаемых всеми ведущими поставщиками программных продуктов, и служит стратегическим направлением разработок компании Microsoft в области баз данных.

Файлы: 1 файл

Язык SQL как стандартный язык баз данных.docx

— 129.62 Кб (Скачать файл)

 

Чтобы заполнить эти пробелы, комитет ANSI продолжил свою работу и  создал проект нового, более жесткого стандарта SQL2. В отличие от стандарта 1989 года, проект SQL2 предусматривал возможности, выходящие за рамки таковых, уже  существующих в реальных коммерческих продуктах. А для следующего за ним  стандарта SQL3 были предложены еще более  глубокие изменения. В результате предложенные стандарты SQL2 и SQL3 оказались более  противоречивыми, чем исходный стандарт. Стандарт SQL2 прошел процесс утверждения  в ANSI и был окончательно принят в  октябре 1992 года. В то время, как первый стандарт 1986 года занимает не более  ста страниц, официальный стандарт SQL2 содержит около шестисот.

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

 

4.2 Другие стандарты SQL

 

Хотя стандарт ANSI/ISO наиболее широко распространен, он не является единственным стандартом SQL. Европейская  группа поставщиков X/OPEN также приняла SQL в качестве одного из своих стандартов для "среды переносимых приложений" на основе UNIX. Стандарты группы X/OPEN играют важную роль на европейском  компьютерном рынке, где основной проблемой  является переносимость приложений между компьютерными системами  различных производителей. К несчастью, стандарт X/OPEN отличается от стандарта ANSI/ISO.

 

Кроме того, компания IBM включила SQL в свою спецификацию Systems Application Architecture (архитектура прикладных систем) и  пообещала, что все ее продукты, очевидно, будут переведены на этот диалект SQL. Хотя данная спецификация и не оправдала  надежд на унификацию линии продуктов  компании IBM, движение в сторону унификации SQL в IBM продолжается. Система DB2 остается основной СУБД компании IBM для мэйнфреймов. Однако компания выпустила реализацию DB2 и для OS/2собственной операционной системы для персональных компьютеров, и для линии серверов и рабочих  станций RS/6000, работающих под управлением UNIX. Таким образом, диалект DB2 языка SQL является мощным стандартом де-факто.

 

4.3 ODBC u консорциум SQL Access Group

 

В технологии баз данных существует важная область, которую  не затрагивают официальные стандарты. Это способность к взаимодействию с другими базами данных — методы, с помощью которых различные  базы данных могут обмениваться данными (как правило, по сети). В 1989 году несколько  поставщиков сформировали консорциум SQL Access Group специально для решения  этой проблемы. В 1991 году консорциум опубликовал  спецификацию RDA (Remote Database Access — удаленный  доступ к базам данных). К несчастью, эта спецификация тесно связана  с протоколами OSI, которые не смогли завоевать широкого признания, поэтому  она оказывает на рынок незначительное влияние. Прозрачность взаимодействия между различными базами данных остается иллюзорной мечтой.

Тем не менее, второй стандарт от SQL Access Group имеет на рынке больший  вес. В результате настойчивых требований компании Microsoft, консорциум SQL Access Group включил  в стандарт SQL интерфейс вызовов  функций. Полученная спецификация CLI (Call Level Interface), основанная на разработках  компании Microsoft, увидела свет в 1992 году. В этом же году

 была опубликована  собственная спецификация ODBC (Open Database Connectivity — взаимодействие с открытыми  базами данных) компании Microsoft, основанная на стандарте CLI. Благодаря рыночной силе Microsoft и благословению, полученному "открытым стандартом" от SQL Access Group, ODBC оказался стандартом де-факто для интерфейсов доступа к базам данных на персональных компьютерах. Весной 1993 года компании Apple и Microsoft объявили о соглашении относительно поддержки ODBC в MacOS и Windows, что закрепило за этой спецификацией статус стандарта в обеих популярных средах с графическим пользовательским интерфейсом.

 

 

5.  Миф о переносимости

 

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

 

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

Типы данных. В стандарте SQL-89 определен минимальный набор  типов данных, однако в нем отсутствуют  некоторые из наиболее распространенных и полезных типов, например символьные строки переменной длины, дата и время, а также денежные единицы. В стандарте SQL2 упомянуты эти типы данных, однако отсутствуют "новые" типы данных, такие как графические и мультимедийные объекты.

Системные таблицы. В стандарте SQL-89 умалчивается о системных таблицах, в которых содержится информация о структуре самой базы данных. Поэтому каждый поставщик создавал собственные системные таблицы, и их структура отличается даже в  четырех реализациях SQL компании IBM. Системные таблицы стандартизированы  в SQL2.

Интерактивный SQL. В стандарте  определен только программный SQL, используемый прикладной программой, но не интерактивный SQL. Например, оператор select, предназначенный  для выполнения запросов к базе данных в интерактивном режиме, в стандарте отсутствует.

Программный интерфейс. В  первом стандарте определен абстрактный  способ использования SQL в программах, написанных на таких языках программирования, как COBOL, FORTRAN и другие. Этот способ не используется ни в одном коммерческом продукте, а в существующих программных  интерфейсах имеются значительные отличия. В стандарте SQL2 определен  интерфейс встроенного SQL для популярных языков программирования, но не интерфейс  вызова функций.

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

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

Последовательность сравнения. В стандарте SQL-89 не упоминаются последовательности сравнения (сортировки) символов, хранящихся в базе данных. Результаты запроса  с сортировкой будут отличаться при выполнении этого запроса  на персональном компьютере (с кодировкой ASCII) и на мэйнфрейме (с кодировкой EBCDIC). Стандарт SQL2 позволяет программе  или пользователю указывать требуемую  последовательность сортировки.

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

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

 

 

 

 

6. Влияние SQL

 

Будучи стандартным языком доступа к реляционной базе данных, SQL оказывает большое влияние  на все сегменты компьютерного рынка. Компания IBM приняла SQL в качестве унифицирующей  технологии баз данных для линии  своих продуктов. Все поставщики мини-компьютеров предлагают реляционные  базы данных; такие базы данных доминируют и на рынке компьютерных систем, работающих под управлением UNIX. По мере того как отдельные персональные компьютеры уступают дорогу сетям с  архитектурой клиент/сервер, SQL видоизменяет рынок баз данных для персональных компьютеров. SQL применяется даже при  оперативной обработке транзакций, опровергая бытовавшее ранее мнение, что из-за низкого быстродействия реляционные базы данных никогда  не смогут использоваться в приложениях  для обработки транзакций.

 

7. SQL и спецификация SAA компании IBM

 

SQL играет ключевую роль  в качестве языка доступа к  базам данных, объединяющего многочисленные  несовместимые компьютерные семейства  компании IBM. Эта роль была отведена  ему еще в спецификации SAA (Systems Application Architecture — архитектура прикладных  систем) компании IBM в 1987 году. Хотя  главные цели SAA так и не были  достигнуты, объединяющая роль SQL со  временем стала еще важнее. Стратегическими  программными продуктами компании IBM, предназначенными для работы  с базами данных, являются

DB2. Флагманская реляционная  СУБД, являющаяся стандартом SQL для  мэйнфреймов компании IBM, работающих  под управлением ОС MVS.

SQL/DS. Реляционная СУБД  для VM, другой ОС мэйнфреймов  компании IBM.

SQL/400. Эта реализация SQL для  систем среднего уровня поддерживает  встроенную реляционную базу  данных компьютеров серии AS/400.

DB2/6000. Эта реализация DB2 работает  на рабочих станциях и серверах  семейства RS/6000, работающих под  управлением операционной системы  UNIX.

DB2/2. Эта реализация SQL для  персональных компьютеров компании IBM основана на реализации DB2 для  мэйнфреймов. Она заменила OS/2 Extended Edition, которая была первой реляционной  СУБД компании IBM для персональных  компьютеров, и обеспечила лучшую  совместимость с DB2.

 

 

8. SQL на мини-компьютерах

 

Сегмент рынка реляционных  СУБД для мини-компьютеров начал  развиваться одним из первых. Первые продукты компаний Oracle и Ingres предназначались  для мини-компьютеров VAX/VMS компании Digital. С тех пор оба продукта были перенесены на множество других платформ. СУБД компании Sybase, появившаяся  позднее и предназначенная для  оперативной обработки транзакций, работала на нескольких платформах, включая VAX.

Информация о работе Язык SQL как стандартный язык баз данных