Эти языки представляют минимальные возможности реальных языков манипулирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила преобразования запросов между ними.
В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными (описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений.
Общая характеристика языков запросов БД.doc
Общая характеристика языков запросов БД
В реляционных СУБД для выполнения операций над отношениями используются две
группы языков, имеющие в качестве своей математической основы теоретические языки
запросов, предложенные Э.Коддом:
реляционная алгебра;
реляционное исчисление.
Эти языки представляют минимальные возможности реальных языков манипулирования
данными в соответствии с реляционной моделью и эквивалентны друг другу по своим
выразительным возможностям. Существуют не очень сложные правила преобразования
запросов между ними.
В реляционной алгебре операнды и результаты всех действий являются отношениями.
Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными
(описательными, или декларативными) и позволяют выражать запросы с помощью
предиката первого порядка (высказывания в виде функции), которому должны
удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с
использованием подобного языка, содержит лишь информацию о желаемом результате. Для
этих языков характерно наличие наборов правил для записи запросов. В частности, к
языкам этой группы относится SQL.
Язык SQL предназначен для выполнения:
а) операций над таблицами (создание, удаление, изменение структуры);
б) над данными таблиц (выборка, изменение, добавление и удаление)
в) некоторых сопутствующих операций (управление доступом, управление индексами,
управление транзакциями и др.).
SQL является непроцедурным языком и не содержит операторов управления, организации
подпрограмм, вводавывода и т.п. В связи с этим SQL автономно не используется, обычно
он погружен в среду встроенного языка программирования СУБД (например, FoxPro
СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД
Access).
В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя
другие средства, например QBE. Однако применение SQL зачастую позволяет повысить
эффективность обработки данных в базе. Например, при подготовке запроса в среде Access
можно перейти из окна Конструктора запросов (формулировки запроса по образцу на
языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем
редактирования уже имеющегося в ряде случае проще выполнить путем изменения
оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.
Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на
доступ к данным, поэтому его включают в состав средств разработки программ. В этом
случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные
реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS
и Pascal.
В специализированных системах разработки приложений типа клиентсервер (данную
архитектуру мы рассмотрим позже) среда программирования, кроме того, обычно
дополнена коммуникационными средствами (установление и разъединение соединений с
серверами БД, обнаружение и обработка возникающих в сети ошибок и. т. д.), средствами
разработки пользовательских интерфейсов, средствами проектирования и отладки.
Различают два основных метода использования встроенного SQL: статический и
динамический.
При статическом использовании языка (статический SQL) в тексте программы имеются
фиксированные по структуре вызовы функций языка SQL, включаемые в выполняемый
модуль в процессе компиляции. Параметры запросов (обычно представляют константные значения, с которыми сравниваются значения полей в таблицах), являющиеся переменными
языка программирования, позволяют добиться некоторой гибкости статических запросов.
При динамическом использовании языка (динамический SQL) предполагается
динамическое построение запроса в форме текстовой строки. Данная строка используется
как параметр для функции выполнения SQLзапросов, которая выполняет синтаксический
анализ строки запроса и формирует на его основе последовательность команд БД.
Динамический метод обычно применяется в случаях, когда в приложении заранее
неизвестен вид SQLвызова.
В результате выборки данных из одной или нескольких, таблиц может быть получено
множество записей, называемое представлением. Представление по существу является
таблицей, формируемой в результате выполнения запроса, которая существует
«виртуально» только до завершения выполнения программы.
Для удобства работы с представлениями в язык SQL введено понятие курсора. Курсор
представляет собой своеобразный указатель на набор записей в представлении,
обеспечивающий в каждый момент доступ лишь к некоторой небольшой части строк
представления. С помощью операторов перемещения курсора по записям можно получить
доступ ко всем строкам таблицы
Лекция "Общая характеристика языков запросов БД"
Лекция "Общая характеристика языков запросов БД"
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.