Автор: Пользователь скрыл имя, 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
Тем
не менее, второй стандарт от 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, включают в себя:
Вопреки перечисленным различиям, в начале 90-х годов стали появляться коммерческие программы, реализующие переносимость приложений между различными СУБД, Однако в таких программах для каждой из поддерживаемых СУБД требуется специальный конвертер, который генерирует код в соответствии с определенным диалектом SQL, выполняет преобразование - типов данных, транслирует коды ошибок и т.д. "Прозрачная" переносимость между различными СУБД, использующими SQL, является основной целью стандарта SQL2 и протокола ODBC, однако повсеместный, "прозрачный" и унифицированный доступ к базам данных SQL остается делом будущего.
Будучи
стандартным языком доступа к
реляционной базе данных, SQL оказывает
большое влияние на все сегменты компьютерного
рынка. Компания IBM приняла SQL в качестве
унифицирующей технологии баз данных
для линии своих продуктов. Все поставщики
мини-компьютеров предлагают реляционные
базы данных; такие базы данных доминируют
и на рынке компьютерных систем, работающих
под управлением UNIX. По мере того как отдельные
персональные компьютеры уступают дорогу
сетям с архитектурой клиент/сервер, SQL
видоизменяет рынок баз данных для персональных
компьютеров. SQL применяется даже при оперативной
обработке транзакций, опровергая бытовавшее
ранее мнение, что из-за низкого быстродействия
реляционные базы данных никогда не смогут
использоваться в приложениях для обработки
транзакций.
SQL и спецификация SAA компании IBM
SQL играет ключевую роль в качестве языка доступа к базам данных, объединяющего многочисленные несовместимые компьютерные семейства компании IBM. Эта роль была отведена ему еще в спецификации SAA (Systems Application Architecture — архитектура прикладных систем) компании IBM в 1987 году. Хотя главные цели SAA так и не были достигнуты, объединяющая роль SQL со временем стала еще важнее. Стратегическими программными продуктами компании IBM, предназначенными для работы с базами данных, являются
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 в локальных вычислительных сетях. Заказчики стали всерьез рассматривать архитектуру клиент/сервер в качестве альтернативы центральному мини-компьютеру или мэйнфрейму.