КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Основная характеристика языков запроса БД.В реляционных СУБД для выполнения операций над отношениями используются две группы языков, имеющие в качестве своей математической основы теоретические языки запросов, предложенные Э.Коддом: - реляционная алгебра; - реляционное исчисление. Эти языки представляют минимальные возможности реальных языков манипулирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила преобразования запросов между ними. В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными (описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате. Для этих языков характерно наличие наборов правил для записи запросов. В частности, к языкам этой группы относится 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 введено понятие курсора. Курсор представляет собой своеобразный указатель на набор записей в представлении, обеспечивающий в каждый момент доступ лишь к некоторой небольшой части строк представления. С помощью операторов перемещения курсора по записям можно получить доступ ко всем строкам таблицы.
|