Язык запросов SQL

Автор работы: Пользователь скрыл имя, 31 Октября 2011 в 19:51, реферат

Краткое описание

SQL ( Structured Query Language - «язык структурированных запросов») - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Реляционная база данных - база данных, основанная на реляционной модели данных. Реляционная модель данных (РМД) - логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка.

Содержимое работы - 1 файл

Язык запросов SQL.docx

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

Естественно, что  базовый стандарт не может предусмотреть  все потребности пользователей, поэтому многие фирмы производители  СУБД предлагают свои собственные и  часто непереносимые расширения SQL. Например, Oracle и IBM имеют собственные расширения оператора SELECT, которое позволяет эффективно разворачивать в горизонтальное дерево иерархически упорядоченные данные (В Oracle это START WITH / CONNECT BY). В SQL-диалекте Informix такого оператора нет, поэтому для этих целей приходиться писать сохраненные процедуры. Количество расширений может исчисляться десятками для сервера СУБД от одной фирмы. Впрочем, никто и не говорил, что это будет просто…

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

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

     Рассматриваемый же ниже непроцедурный язык SQL (Structured Query Language - структуризованный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

     Для иллюстрации различий между ЯМД  рассмотрим следующую ситуацию. Пусть, например, вы собираетесь посмотреть кинофильм и хотите воспользоваться  для поездки в кинотеатр услугами такси. Одному шоферу такси достаточно сказать название фильма - и он сам  найдет вам кинотеатр, в котором  показывают нужный фильм. (Подобным же образом, самостоятельно, отыскивает запрошенные  данные SQL.)

     Для другого шофера такси вам, возможно, потребуется самому узнать, где демонстрируется  нужный фильм и назвать кинотеатр. Тогда водитель должен найти адрес  этого кинотеатра. Может случиться  и так, что вам придется самому узнать адрес кинотеатра и предложить водителю проехать к нему по таким-то и таким-то улицам. В самом худшем случае вам, может быть, даже придется по дороге давать указания: "Повернуть  налево... проехать пять кварталов... повернуть  направо...". (Аналогично больший или  меньший уровень детализации  запроса приходится создавать пользователю в разных СУБД, не имеющих языка SQL.)

     Появление теории реляционных баз данных и  предложенного Коддом языка запросов "alpha", основанного на реляционном исчислении [2, 3], инициировало разработку ряда языков запросов, которые можно отнести к двум классам:

  1. Алгебраические языки, позволяющие выражать запросы средствами специализированных операторов, применяемых к отношениям (JOIN - соединить, INTERSECT - пересечь, SUBTRACT - вычесть и т.д.).
  2. Языки исчисления предикатов представляют собой набор правил для записи выражения, определяющего новое отношение из заданной совокупности существующих отношений. Другими словами исчисление предикатов есть метод определения того отношения, которое нам желательно получить (как ответ на запроc) из отношений, уже имеющихся в базе данных.

     Разработка, в основном, шла в отделениях фирмы IBM (языки ISBL, SQL, QBE) и университетах  США (PIQUE, QUEL) [3]. Последний создавался для СУБД INGRES (Interactive Graphics and Retrieval System), которая была разработана в начале 70-х годов в Университете шт. Калифорния и сегодня входит в пятерку лучших профессиональных СУБД. Сегодня из всех этих языков полностью сохранились и развиваются QBE (Query-By-Example - запрос по образцу) и SQL, а из остальных взяты в расширение внутренних языков СУБД только наиболее интересные конструкции. 

     Заключение.

     SQL (Structured Query Language, язык структурированных запросов) - это специальный язык, используемый для определения данных, доступа к данным и их обработки. Язык SQL относится к непроцедурным (nonprocedural) языкам - он лишь описывает нужные компоненты (например, таблицы) и желаемые результаты, не указывая, как именно эти результаты должны быть получены. Каждая реализация SQL является надстройкой над процессором базы данных (database engine), который интерпретирует операторы SQL и определяет порядок обращения к структурам БД для корректного и эффективного формирования желаемого результата.

     Стандарт  SQL определяется ANSI - American National Standarts  Institute (Американским Национальным Институтом Стандартов) и в настоящее время принят ISO - International Standarts  Organization (Международной Организацией по Стандартизации).

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

     

     Соержание: 

     Введение.

     История. Первые разработки.

     Стандартизация.

     Описание.

     Преимущества  и недостатки.

     Типы  данных.

     SQL-функции.

     Возможности SQL.

     SQL-технологии.

     Заключение.

     Список  использованных источников. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Список  использованных источников:

     http://ru.wikipedia.org/wiki/SQL

     http://194.85.162.82/education/documentation/sql_kg/1-2.shtml

     http://archae-dev.com/l8r1part2.htm

     http://www.codenet.ru/db/sql/002.php#2

     http://citforum.ru/database/sql_kg/index.shtml 

Информация о работе Язык запросов SQL