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

Основная часть СУБД, используемая программистом, это Язык Данных (ЯД). Существует следующие основные типы ЯД:

ЯОД - язык описания данных,

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

ЯЗ - язык запросов.

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

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

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

В зависимости от правил и принципов использования операторов можно выделить несколько типов ЯМД: интерактивные, встраиваемые и входные ЯМД.

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

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

Включение операторов ЯМД в прикладную программу в различных СУБД производиться в соответствии с одним из двух рассмотренных ниже принципов.

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

Второй принцип встраивания ЯМД в прикладную программу позволяет использовать операторы ЯМД наряду с операторами языка программирования. При этом язык программирования как бы расширяется за счет этих операторов. В этом случае исходная программа сначала проходит предварительную трансляцию, в процессе которой операторы ЯМД заменяются эквивалентными группами операторов языка программирования. Затем программа обрабатывается обычным транслятором.

Входной ЯМД содержит набор операторов и конструкций, с помощью которых можно выполнять манипуляции на БД и писать программы приложений. Таким языком располагает, например, семейство dBASE-совместимых СУБД, работающих под управлением DOS.

В СУБД, работающих под Windows, наибольшее распространение получил язык SQL (Structured Query Language - структурированный язык запросов). SQL, являясь одновременно ЯМД и ЯОД, может использоваться и как интерактивный, и как встраиваемый в язык программирования VBA (Visual Basic for Application).

ЯЗ - это совокупность средств, предназначенных для организации интерфейса пользователя-непрограммиста. Такой язык имеется не во всех СУБД и часто пользовательский интерфейс приходится разрабатывать АБД.

Возможны различные подходы к созданию ЯЗ.

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

Диалог пользователя с системой может строиться по принципу "меню" с помощью специальных экранных форм. Инициатива в диалоге должна исходить со стороны системы. По подсказке системы с помощью "меню" пользователь формулирует свой запрос, постепенно уточняя его. Таким образом можно организовать достаточно гибкий интерфейс. Возможна комбинация двух рассмотренных способов.

В качестве языка запросов может использоваться естественный язык. В этом случае из определенной ограниченной совокупности слов и терминов по определенным правилам пользователь формулирует свой запрос. Такой язык запросов получил распространение в информационно-поисковых системах, предназначенных для поиска документальной информации (книг, статей, документов и т.п.).

В СУБД, работающих под Windows, широкое распространение получил графически-ориентированный язык запросов QBE (Query By Example - запрос по образцу), рассматриваемый ниже.