Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ_ДАННЫХ.doc
Скачиваний:
3
Добавлен:
12.07.2019
Размер:
466.94 Кб
Скачать

Язык реляционных баз данных sql

Из рассмотрения реляционной модели известно, что двумя фундаментальными языками запросов к реляционным базам данных являются языки реляционной алгебры и реляционного исчисления. При всей своей строгости и теоретической обоснованности, эти языки не стали стандартными языками реляционных СУБД. Юридическим и фактическим стандартом стал язык SQL (Structured Query Language – «язык структурированных запросов»).

SQL представляет собой некоторую комбинацию реляционного исчисления кортежей и реляционной алгебры, и был разработан в середине 70-х годов в компании IBM в рамках проекта экспериментальной реляционной СУБД System R. Деятельность по стандартизации SQL началась практически одновременно с появлением его первых коммерческих реализаций. В 1986 г. был принят стандарт ANSI, а в 1987 г. Этот стандарт был одобрен международной организацией по стандартизации (ISO). Время от времени выпускается пересмотренная версия этого стандарта; наиболее свежее обновление было выпущено в 2008 г. Формальное название стандарта SQL – ISO/IEC 9075 «Database Language SQL».

Несмотря на наличие международного стандарта, многие производители СУБД вносят изменения в язык SQL, тем самым отступая от стандарта. В результате у разных производителей СУБД в ходу разные диалекты SQL, в общем случае между собой несовместимые. В настоящее время проблема совместимости решается так: описание языка имеет модульную структуру, основная часть стандарта вынесена в раздел «SQL/Foundation», все остальные выведены в отдельные модули, остался только один уровень совместимости – «Core», что означает поддержку этой основной части. Поддержка остальных возможностей оставлена на усмотрение производителей СУБД.

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

Все операторы, составляющие основу SQL с момента его появления, можно разделить на следующие группы:

  • операторы определения данных (Data Definition Language – DDL)

    • CREATE создает объект базы данных

    • ALTER изменяет объект

    • DROP удаляет объект

  • операторы манипуляции данными (Data Manipulation Language – DML)

    • SELECT считывает данные, удовлетворяющие заданным условиям

    • Insert добавляет новые данные

    • UPDATE изменяет существующие данные

    • DELETE удаляет данные

  • операторы определения доступа к данным (Data Control Language – DCL)

    • GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом

    • REVOKE отзывает ранее выданные разрешения

    • DENY задает запрет, имеющий приоритет над разрешением

  • операторы управления транзакциями (Transaction Control Language – TCL)

    • COMMIT применяет транзакцию.

    • ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.

    • SAVEPOINT делит транзакцию на более мелкие участки.

Не вдаваясь в детали синтаксиса, в качестве примера приведем сценарий создания базы данных «Поставщики и детали», схема которой была рассмотрена ранее.

USE master