Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по БД.doc
Скачиваний:
27
Добавлен:
24.09.2019
Размер:
291.84 Кб
Скачать

20. Использование sql при прикладном программировании.

В стандарте SQL/89 определены два способа взаимодействия с БД из прикладной программы, написанной на традиционном языке программирования (Кобол, Фортран, Паскаль и ПЛ/1, Си).

1) операторы SQL собраны в один модуль и оформлены как процедуры этого модуля. Для этого SQL/89 содержит специальный подъязык - язык модулей. При использовании такого способа взаимодействия с БД прикладная программа содержит вызовы процедур модуля SQL с передачей им фактических параметров и получением ответных параметров.

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

Концептуально эти два способа эквивалентны.

Достоинства модульной организации: 1) прикладная программа имеет меньший размер, 2) взаимодействия с СУБД локализованы.

Недостатки: 1) для понимания смысла программы требуется чтение 2 текстов 2) Синтаксис модулей бывает разный

Достоинства встроенного SQL 1) Прикладная программа более самосодержащаяся 2) Стандарт встраивания единообразен

Недостатки: Синтаксис операторов отличен от базового.

21. Проблемы оптимизации. Схема обработки запроса.

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

обработка поступившего в систему запроса

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

  2. запрос во внутреннем представлении подвергается логической оптимизации. Преобразований:

-эквивалентные, результат внутреннее представление, семантически эквивалентное начальному

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

После выполнения второй фазы обработки запроса его внутреннее представление остается непроцедурным, хотя и является в некотором смысле более эффективным, чем начальное.

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

4) Из оптимального плана формируется выполняемое представление плана в машинных кодах или машинно-независимым, но более удобным для интерпретации.

5) реальное выполнение. Это либо выполнение соответствующей подпрограммы, либо вызов интерпретатора с передачей ему для интерпретации выполняемого плана.