Автор: Пользователь скрыл имя, 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 — это слабо структурированный язык, особенно по сравнению с такими сильно структурированными языками, как С или Pascal. Операторы SQL напоминают английские предложения и содержат "слова-пустышки", не влияющие на смысл оператора, но облегчающие его чтение. В SQL почти нет нелогичностей, к тому же имеется ряд специальных правил, предотвращающих создание операторов SQL, которые выглядят как абсолютно правильные, но не имеют смысла.
Несмотря
на не совсем точное название, SQL на сегодняшний
день является единственным стандартным
языком для работы с реляционными базами
данных. SQL — это достаточно мощный и в
то же время относительно легкий для изучения
язык.
Роль SQL
Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. Нельзя пойти в компьютерный магазин и "купить SQL". SQL — это неотъемлемая часть СУБД, инструмент, с помощью которого осуществляется связь пользователя с ней. На рис. 2.2. ( в приложении А) изображена структурная схема типичной СУБД, компоненты которой соединяются в единое целое с помощью SQL (своего рода "клея").
Ядро базы данных является сердцевиной СУБД; оно отвечает за физическое структурирование и запись данных на диск, а также за физическое чтение данных с диска. Кроме того, оно принимает SQL-запросы от других компонентов СУБД (таких как генератор форм, генератор отчетов или модуль формирования интерактивных запросов), от пользовательских приложений и даже от других вычислительных систем. Как видно из рисунка, SQL выполняет много различных функций:
Таким
образом, SQL превратился в полезный и мощный
инструмент, обеспечивающий людям, программам
и вычислительным системам доступ к информации,
содержащейся в реляционных базах данных.
Достоинства SQL
SQL — это легкий для понимания язык и в то же время универсальное программное средство управления данными.
Успех языку SQL принесли следующие его особенности:
• независимость от конкретных СУБД;
• переносимость с одной вычислительной системы на другую;
• наличие стандартов;
• одобрение компанией IBM (СУБД DB2);
• поддержка со стороны компании Microsoft (протокол ODBC);
• реляционная основа;
• высокоуровневая структура, напоминающая английский язык;
• возможность выполнения специальных интерактивных запросов:
• обеспечение программного доступа к базам данных;
• возможность различного представления данных;
• полноценность как языка, предназначенного для работы с базами данных;
• возможность динамического определения данных;
• поддержка архитектуры клиент/сервер.
Все
перечисленные выше факторы явились
причиной того, что SQL стал стандартным
инструментом для управления данными
на персональных компьютерах, мини-компьютерах
и больших ЭВМ. Ниже эти факторы рассмотрены
более подробно.
Независимость от конкретных СУБД
Все
ведущие поставщики СУБД используют
SQL, и ни одна новая СУБД, не поддерживающая
SQL, не может рассчитывать на успех. Реляционную
базу данных и программы, которые с ней
работают, можно перенести с одной СУБД
на другую с минимальными доработками
и переподготовкой персонала. Программные
средства, входящие в состав СУБД для персональных
компьютеров, такие как программы для
создания запросов, генераторы отчетов
и генераторы приложений, работают с реляционными
базами данных многих типов. Таким образом,
SQL обеспечивает независимость от конкретных
СУБД, что является одной из наиболее важных
причин его популярности.
Переносимость с одной вычислительной системы на другие
Поставщики
СУБД предлагают программные продукты
для различных вычислительных систем:
от персональных компьютеров и рабочих
станций до локальных сетей, мини-компьютеров
и больших ЭВМ. Приложения, созданные с
помощью SQL и рассчитанные на однопользовательские
системы, по мере своего развития могут
быть перенесены в более крупные системы.
Информация из корпоративных реляционных
баз данных может быть загружена в базы
данных отдельных подразделений или в
личные базы данных. Наконец, приложения
для реляционных баз данных можно вначале
смоделировать на экономичных персональных
компьютерах, а затем перенести на дорогие
многопользовательские системы.
Одобрение SQL компанией IBM (СУБД DB2)
SQL
был придуман научными сотрудниками компании
IBM и широко используется ею во множестве
пакетов программного обеспечения. Подтверждением
этому служит флагманская СУБД DB2 компании
IBM. Все основные семейства компьютеров
компании IBM поддерживают SQL: система PS/2
для персональных компьютеров, система
среднего уровня AS/400. система RS/6000 на базе
UNIX, а также операционные системы MVS и VM
больших ЭВМ. Широкая поддержка SQL фирмой
IBM ускорила его признание и еще в самом
начале возникновения и развития рынка
баз данных явилась своего рода недвусмысленным
указанием для других поставщиков баз
данных и программных систем, в каком направлении
необходимо двигаться.
Протокол ODBC и компания Microsoft
Компания
Microsoft рассматривает доступ к базам данных
как важную часть своей операционной системы
Windows. Стандартом этой компании по обеспечению
доступа к базам данных является ODBC (Open
Database Connectivity — взаимодействие с открытыми
базами данных) — программный интерфейс,
основанный на SQL. Протокол ODBC поддерживается
наиболее распространенными приложениями
Windows (электронными таблицами, текстовыми
процессорами, базами данных и т.п.), разработанными
как самой компанией Microsoft, так и другими
ведущими поставщиками. Поддержка ODBC обеспечивается
всеми ведущими реляционными базами данных.
Кроме того, ODBC опирается на стандарты,
одобренные консорциумом поставщиков
SQL Access Group, что делает ODBC как стандартом
де-факто компании Microsoft, так и стандартом,
независимым от конкретных СУБД.
Реляционная основа
SQL
является языком реляционных баз данных,
поэтому он стал популярным тогда, когда
популярной стала реляционная модель
представления данных. Табличная структура
реляционной базы данных интуитивно понятна
пользователям, поэтому язык SQL является
простым и легким для изучения. Реляционная
модель имеет солидный теоретический
фундамент, на котором были основаны эволюция
и реализация реляционных баз данных.
На волне популярности, вызванной успехом
реляционной модели, SQL стал единственным
языком для реляционных баз данных.
Высокоуровневая структура, напоминающая английский язык
Операторы SQL выглядят как обычные английские предложения, что упрощает их изучение и понимание. Частично это обусловлено тем, что операторы SQL описывают данные, которые необходимо получить, а не определяют способ их поиска. Таблицы и столбцы в реляционной базе данных могут иметь длинные описательные имена. В результате большинство операторов SQL означают именно то, что точно соответствует их именам, поэтому их можно читать как простые, понятные предложения.
Одним
из наиболее важных шагов на пути к
признанию SQL на рынке стало появление
стандартов на этот язык. Обычно при упоминании
стандарта SQL имеют в виду официальный
стандарт, утвержденный Американским
институтом национальных стандартов (American
National Standards Institute — ANSI) и Международной
организацией по стандартам (International Standards
Organization— ISO). Однако существуют и другие
важные стандарты SQL, включая SQL, реализованный
в системе DB2 компании IBM, и стандарт X/OPEN
для SQL в среде UNIX.
Стандарты ANSI/ISO
Работа над официальным стандартом SQL началась в 1982 году, когда ANSI поставил перед своим комитетом ХЗН2 задачу по созданию стандарта языка реляционных баз данных. Вначале в комитете обсуждались достоинства различных предложенных языков. Однако поскольку к тому времени SQL уже стал фактическим стандартом, комитет ХЗН2 остановил свой выбор на нем и занялся стандартизацией SQL.
Разработанный в результате стандарт в большой степени был основан на диалекте SQL системы DB/2, хотя и содержал в себе ряд существенных отличий от этого диалекта. После нескольких доработок, в 1986 году стандарт был официально утвержден как стандарт ANSI номер Х3.135, а в 1987 году — в качестве стандарта ISO. Затем стандарт ANSI/ISO был принят правительством США как федеральный стандарт США по обработке информации (FIPS — Federal Information Processing Standard). Этот стандарт, незначительно пересмотренный в 1989 году, обычно называют стандартом "SQL-89", ил"SQLI". Когда в данной книге упоминается "стандарт ANSI/ISO", то подразумевается SQLI, который в настоящее время лежит в основе большинства коммерческих продуктов.
Многие из членов комитетов по стандартизации ANSI и ISO представляли фирмы-поставщики различных СУБД, в каждой из которых был реализован собственный диалект SQL. Как и диалекты человеческого языка, диалекты SQL были в основном похожи друг на друга, однако несовместимы в деталях. Во многих случаях комитет просто обошел существующие различия и не стандартизировал некоторые части языка, определив, что они реализуются по усмотрению разработчика. Этот подход позволил объявить большое число реализаций SQL совместимыми со стандартом, однако сделал сам стандарт относительно слабым.
Чтобы заполнить эти пробелы, комитет ANSI продолжил свою работу и создал проект нового, более жесткого стандарта SQL2. В отличие от стандарта 1989 года, проект SQL2 предусматривал возможности, выходящие за рамки таковых, уже существующих в реальных коммерческих продуктах. А для следующего за ним стандарта SQL3 были предложены еще более глубокие изменения. В результате предложенные стандарты SQL2 и SQL3 оказались более противоречивыми, чем исходный стандарт. Стандарт SQL2 прошел процесс утверждения в ANSI и был окончательно принят в октябре 1992 года. В то время, как первый стандарт 1986 года занимает не более ста страниц, официальный стандарт SQL2 содержит около шестисот.
Вопреки
стандарту SQL2, во всех существующих на
сегодняшний день коммерческих продуктах
поддерживаются собственные диалекты
SQL. Более того, поставщики СУБД включают
в свои продукты новые возможности и расширяют
собственные диалекты SQL, чем еще больше
отдаляют их от стандарта. Однако ядро
SQL стандартизировано довольно жестко.
Там, где это можно было сделать, не ущемляя
интересы клиентов, поставщики СУБД привели
свои продукты в соответствие со стандартом
SQL-89, то же самое постепенно произойдет
и с SQL2.
Другие стандарты 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 является мощным стандартом
де-факто.
ODBC u консорциум SQL Access Group
В технологии баз данных существует важная область, которую не затрагивают официальные стандарты. Это способность к взаимодействию с другими базами данных — методы, с помощью которых различные базы данных могут обмениваться данными (как правило, по сети). В 1989 году несколько поставщиков сформировали консорциум SQL Access Group специально для решения этой проблемы. В 1991 году консорциум опубликовал спецификацию RDA (Remote Database Access — удаленный доступ к базам данных). К несчастью, эта спецификация тесно связана с протоколами OSI, которые не смогли завоевать широкого признания, поэтому она оказывает на рынок незначительное влияние. Прозрачность взаимодействия между различными базами данных остается иллюзорной мечтой.