Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Языки баз данных

.docx
Скачиваний:
69
Добавлен:
10.04.2015
Размер:
16.24 Кб
Скачать

Языки баз данных

Для работы с базами данных используются специальные языки, называемые языками баз данных. Они обеспечивают пользователей БД языковыми средствами определения и манипулирования данными.

Язык БД имеет две составляющие:

– язык определения БД, по другому, язык определения данных – ЯОД;

– язык манипулирования данными – ЯМД.

ЯОД служит главным образом для определения логической структуры БД.

ЯМД содержит набор команд манипулирования данными, т.е. команд, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.

Запрос представляет собой программу, которая записывается на ЯМД – языке высокого уровня – и обеспечивает поиск данных в базе. Структура запроса в системах БД относительно проста, что позволяет легко его понимать, автоматически генерировать и оптимизировать. Запросы обычно рассматриваются как часть языка ЯМД.

Часто, особенно для реляционных БД, язык базы данных, и в том числе ЯМД, называют языком запросов БД.

Современные языки запросов можно разбить на две группы:

– процедурные языки запросов, позволяющие получить требуемый результат – данные из БД – на основе записи средствами языка программирования (С++, Java и др.) алгоритма достижения результата;

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

Процедурные языки запросов, как правило, присущи СУБД с сетевой, иерархической и объектно-ориентированной моделью данных, а декларативные – реляционным и объектно-реляционным СУБД. Однако практически все реляционные и объектно-реляционные СУБД позволяют организовывать SQL-запросы через языки программирования типа C++ (встроенный SQL).

Обработку запросов пользователей осуществляет в СУБД процессор запросов, включающий компилятор ЯМД, интерпретатор ЯОД и подсистему обработки запросов. Процессор осуществляет всю работу по обработке запросов к БД и определению структуры БД.

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

Исторически разработка языков запросов БД проводилась в основном в отделениях фирмы IBM и университетах США.

Язык SQL

Стандартным языком наиболее распространенных в настоящее время реляционных БД является декларативный язык SQL, разработанный в 1974 году фирмой IBM для экспериментальной реляционной СУБД System R.

SQL поддерживает следующие основные функции реляционной СУБД:

– средства ЯОД и ЯМД, т.е. позволяет определять схему реляционной БД и манипулировать данными;

– средства определения ограничений целостности БД;

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

Программа на языке SQL представляет собой линейную последовательность операторов языка SQL. В стандарте языка нет операторов управления порядком выполнения запросов к БД (циклов, ветвлений, переходов).

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

В операторах языка SQL применяются:

– зарезервированные ключевые слова;

– идентификаторы (имена) таблиц и столбцов таблиц;

– логические, арифметические и строковые выражения, используемые для формирования критериев поиска информации в БД и для вычисления значений элементов результирующих таблиц;

– идентификаторы (имен) операций и функций, используемые в выражениях

Все ключевые слова, имена функций и, как правило, имена таблиц и столбцов записываются латинскими буквами. В языке SQL не делается различия между прописными и строчными буквами. Для конструирования имен таблиц и столбцов допустимо использовать буквы, цифры и знак «_», но первым символом имени обязательно должна идти буква. Запрещено использование ключевых слов и имен функций в качестве идентификаторов таблиц и имен столбцов.

Оператор, как правило, начинается с ключевого слова-глагола (например, SELECT – выбрать, CREATE – создать и т.п.) и заканчивается знаком «;».

Операторы записываются в свободном формате и могут занимать несколько строк. Допустимыми разделителями лексических единиц в операторах SQL являются:

– один или несколько пробелов;

– один или несколько символов табуляции;

– один или несколько символов новой строки.

Далее, при описании синтаксиса операторов языка SQL используются следующие соглашения:

– квадратные скобки не входят в число символов оператора и определяют необязательность элементов оператора, которые можно опустить при создании реального оператора;

– знак «|» разделяет альтернативные варианты и определяет возможность выбора из двух или нескольких вариантов синтаксической конструкции, сам знак не включается в оператор;

– прописными буквами записываются ключевые слова SQL;

– в фигурных скобках записываются повторяющиеся элементы, а сами скобки не включаются в оператор;

– в скобках <> записываются переменные нетерминальные символы, подлежащие замене в реальном операторе конструкцией из терминальных символов (идентификаторов, знаков операций, имен функций и т.п.), а сами символы <> не включаются в оператор.

SQL – очень объемный язык. Фундаментальные возможности SQL включают:

– запросы из одной таблицы;

– соединения нескольких таблиц;

– вложенные подзапросы;

– запросы с GROUP BY, HAVING и ORDER BY;

– запросы, включающие операции объединения / вычитания / пересечения результатов запросов.

Определение данных в SQL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]