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

Автор: Пользователь скрыл имя, 29 Декабря 2011 в 08:18, курсовая работа

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

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL.

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Содержание

Введение 3

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

Роль SQL 8

Достоинства SQL 10

Независимость от конкретных СУБД 10

Переносимость с одной вычислительной системы на другую 11

Одобрение SQL компанией IBM (DB2) 11

Протокол ODBC и компания Microsoft 12

Реляционная основа 12

Высокоуровневая структура, напоминающая

английский язык 13

Стандарты SQL 13

Стандарты ANSI/ISO 13

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

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

Миф о переносимости 16

Влияние SQL 19

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

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

SQL на системах UNIX 20
SQL и обработка транзакций 21

SQL на персональных компьютерах 22

SQL в локальных сетях 24

Заключение 26

Глоссарий 29

Список использованной литературы 32

Приложения 33

Работа содержит 1 файл

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

— 282.00 Кб (Скачать)

  Тем не менее, второй стандарт от 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, что закрепило за этой спецификацией статус стандарта в обеих популярных средах с графическим пользовательским интерфейсом.
 

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

  Появление стандарта 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 остается делом будущего.

     3 Влияние SQL

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

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.
 

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

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

  Кроме того, поставщики мини-компьютеров  разрабатывали на основе SQL собственные реляционные базы данных. Компания Digital на каждую систему VAX/VMS устанавливала собственную СУБД Rdb/VMS. Компания Hewlett-Packard предложила Allbase, СУБД, поддерживающую как собственный диалект HPSQL, так и нереляционный интерфейс. Компания Data General заменила свои старые нереляционные базы данных на СУБД DG/SQL. К тому же многие из поставщиков мини-компьютеров перепродают реляционные СУБД независимых поставщиков. 

SQL на сиcтемах UNIX

  SQL был однозначно признан лучшим решением в области управления данными для компьютерных систем на основе UNIX. Операционная система UNIX, которая была разработана в Bell Laboratories, в 80-х годах стала завоевывать популярность в качестве стандартной операционной системы. Она работает на разнообразных компьютерных системах, начиная от рабочих станций и заканчивая мэйнфреймами, и стала стандартной ОС для научных и инженерных приложений. В начале 80-х уже были доступны четыре большие СУБД для UNIX-систем. Две из них, производства компаний Oracle и Ingres, были UNIX-версиями продуктов для мини-компьютеров компании DEC, Две другие СУБД, производства компаний Informix и Unify, были созданы специально для UNIX. Вначале ни одна из них не предлагала поддержку SQL, но к 1985 году компании Unify и Informix ввели эту поддержку в свои СУБД. На сегодняшний день существуют версии СУБД компаний Oracle, Sybase, Informix и Ingres для всех ведущих систем на базе UNIX. 

SQL и обработка транзакций

  В процессе своего развития SQL и реляционные базы данных почти не применялись в приложениях, предназначенных для оперативной обработки транзакций (OLTP — On-Line Transaction Processing). Поскольку в реляционных базах данных упор делается на запросы, такие базы данных традиционно использовались в приложениях, служащих для поддержки принятия решений, и приложениях с маленьким объемом транзакций, где их низкое быстродействие не было недостатком. В области оперативной обработки транзакций, где требовалось обеспечить одновременный доступ к данным сотням пользователей, и время ожидания каждого из них не должно было превышать доли секунды, доминировала нереляционная СУБД IMS (Information Management System — система управления информацией) компании IBM.

  В 1986 году компания Sybase, новая на рынке СУБД, представила реляционную базу данных, предназначенную специально для оперативной обработки транзакций. СУБД компании Sybase работала на мини-компьютерах VAX и рабочих станциях Sun и обеспечивала уровень быстродействия, необходимый для обработки больших объемов транзакций. Вскоре вслед за нею компании Oracle Corporation и Relational Technology объявили, что они также выпустят версии своих продуктов Oracle и Ingres для оперативной обработки транзакций. На рынке UNIX-систем компания Informix анонсировала OLTP-версию своей СУБД под названием Informix-Turbo.

  В апреле 1988 года компания IBM присоединилась к поставщикам реляционных СУБД для OLTP, выпустив систему DB2 Version 2. Тесты показали, что на больших мэйнфреймах эта система могла обрабатывать до 250 транзакций в секунду. Компания IBM утверждала, что теперь быстродействие DB2 позволяет использовать ее во всех OLTP-приложениях, кроме наиболее требовательных к быстродействию, и поощряла клиентов использовать ее вместо IMS. После этого тесты стали стандартным маркетинговым инструментом для реляционных СУБД, вопреки серьезным сомнениям в том, насколько они отражают быстродействие реальных приложений.

  По  мере развития реляционной технологии и увеличения мощности компьютеров роль SQL в оперативной обработке транзакций также возрастает. Теперь для оперативной обработки транзакций часто используются реляционные базы данных, быстродействие которых выросло на несколько порядков. 

SQL на персональных компьютерах

  С появлением первой модели IBM PC базы данных стали приобретать популярность на рынке персональных компьютеров. СУБД dBASE компании Ashton-Tate была инсталлирована более чем на миллионе PC, работавших под управлением MS-DOS; другие продукты, такие как R-BASE, PFS: File и Paradox, также достигли значительного успеха. На компьютерах семейства Macintosh такие СУБД, как 4th Dimension, объединили в себе управление данными и графический интерфейс пользователя. Хотя в большинстве СУБД для персональных компьютеров данные хранились в табличной форме, эти СУБД не обладали полной мощью реляционной базы данных и не поддерживали SQL.

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

  Первые  СУБД для персональных компьютеров представляли собой соответствующим образом переработанные версии известных СУБД для миникомпьютеров и с трудом умещались на персональных компьютерах. Система Professional Oracle, анонсированная в 1984 году, требовала двух мегабайтов памяти на IBM PC, a Oracle for Macintosh, представленная в 1988 году, имела схожие требования. Версия СУБД Ingres для PC, выпущенная в 1984 году, едва удовлетворяла ограничению MS-DOS на объем используемой оперативной памяти (640 Кб). СУБД Informix-SQL для MS-DOS была выпущена в 1986 году и представляла собой версию популярной СУБД, работавшей под управлением UNIX. В том же 1986 году компания Gupta Technologies, основанная бывшим менеджером из Oracle, выпустила SQLBase, СУБД для локальных сетей, которая одной из первых реализовала архитектуру клиент/сервер и была прототипом нынешних СУБД для ЛВС.

  С появлением в апреле 1987 года операционной системы OS/2, созданной компаниями Microsoft и IBM, начался рост популярности SQL применительно к персональным компьютерам. Кроме стандартной версии OS/2, компания IBM выпустила расширенную редакцию OS/2 (OS/2 Extended Edition — OS/2 ЕЕ) со встроенной поддержкой реляционных баз данных. Сделав SQL частью операционной системы, компания IBM тем самым вновь подтвердила свою приверженность ему.

  Появление OS/2 ЕЕ стало проблемой для компании Microsoft. Поскольку она была разработчиком стандартной OS/2 и продавала ее другим производителям персональных компьютеров, потребовалась альтернатива OS/2 ЕЕ. Ответом Microsoft стала покупка лицензии на СУБД компании Sybase, разработанной для VAX, и перенос этой СУБД в систему OS/2.

  В январе 1988 года Microsoft и Ashton-Tate неожиданно объявили, что они будут совместно продавать новую СУБД, получившую название SQL Server. Компания Microsoft будет продавать SQL Server вместе с OS/2 производителям компьютеров, а компания Ashton-Tate будет продавать SQL Server по розничным каналам пользователям PC. В сентябре 1989 года 
компания Lotus Development внесла свой вклад в SQL Server, сделав инвестицию в компанию Sybase. Через год с небольшим компания Ashton-Tate отказалась от исключительных прав на распространение и продала свою долю компании Lotus. Хотя успех SQL Server для OS/2 был ограниченным, 
она продолжает играть ключевую роль в планах компании Microsoft. Эта СУБД является реляционной базой данных для Windows NT, флагманской операционной системы компании Microsoft, предназначенной для работы в среде клиент/сервер.
 

SQL в локальных сетях

  Появление OS/2 Extended Edition и SQL Server привлекло внимание к потенциальным возможностям SQL в локальных вычислительных сетях. Заказчики стали всерьез рассматривать архитектуру клиент/сервер в качестве альтернативы центральному мини-компьютеру или мэйнфрейму.

Информация о работе Структура языка SQL