На главную

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

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

Многие СУБД поддерживают возможность внедрения операторов подъязыков данных в языки высокого уровня, таких, например, как COBOL, Fortran, Pascal, Ada, С. Как уже отмечалось, в этом случае язык высокого уровня считается базовым, а подъязык данных — внедренным.

В СУБД поддерживается несколько специализированных по своим функциям подъязыков. Их можно разбить на две категории:

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

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

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

    Языки манипулирования данными делятся на два типа: процедурный ЯМД, декларативный (непроцедурный) ЯМД.

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

Декларативные языки ЯМД предоставляют пользователю средства, позволяющие указать лишь то, какие данные требуются. Решение вопроса о том, как их следует извлекать, берет на себя процессор данного языка, работающий с целыми наборами записей. Непроцедурные языки ЯМД позволяют определить весь набор требуемых дан¬ных с помощью одного оператора извлечения или обновления. СУБД транслирует выражение на языке ЯМД в процедуру (или набор процедур), которая обеспечивает манипулирование затребованным набором записей. Данный подход освобождает пользователя от необходимости знать детали внутренней реализации структур данных и особен¬ности алгоритмов, используемых для извлечения и возможного преобразования данных. Непроцедурные языки обыч-но проще понять и использовать, чем процедурные языки. Реляционные СУБД обычно включают поддержку непроцедурных языков манипулирования данными — чаще всего это бывает язык структурированных запросов SQL или язык запросов по образцу QBE.

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

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


На главную
Hosted by uCoz