Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsiya_7_Teoretichni_osnovi_baz_danikh.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
643 Кб
Скачать
☆

Реляционное исчисление

Рассмотрим конкретный пример. Есть БД, состоящая из двух отношений: Сотрудники (Сотр_№, Сотр_имя, Сотр_зарпл, Сотр_отд);

Отделы(Отд_№, Отд_ кол, Отд_нач).

Задача: узнать имена и номера сотрудников, являющихся начальниками отделов, в которых работает более 50 человек.

Подход, основанный на РА, состоит в написании серии операций, результатами которых будут отношения. Результатом выполнения серии операций будет отношение Начальники(Сотр_имя, Сотр_№). Операции:

  1. соединение Сотрудники и Отделы по условию Сотр_№ = Отд_нач ;

  2. ограничение ;

  3. проекция .

Непроцедурный подход состоит в том, чтобы написать требование, которому должен удовлетворять результат. Это требование можно записать так: выдать Сотр_имя, Сотр_№ для сотрудников таких, что существует отдел с таким же значением Отд_нач, как и Сотр_№ и значением Отд_кол 50. Те. Здесь указана характеристика результата. В этом случае СУБД должна сама решить, какую последовательность операций надо выполнить, чтобы получить желаемый результат. Если это высказывание построено по определённым правилам, то существуют простые правила перевода высказывания в последовательность реляционных операций.

Непроцедурный подход основан на РИ. Здесь выделяют 2 базовых понятия:

  • переменная, у которой должна быть установлена область определения;

  • правильно построенная формула (WFF – Well Formed Formula), в которой учитываются переменные, кванторы и предикаты. Квантор – логический эквивалент слов ВСЕ, ДЛЯ ЛЮБОГО, СУЩЕСТВУЕТ и т.д. Предикат – оператор, который формализует логическое значение квантора, т.е. ставит этому квантору в соответствие значение ДА или НЕТ. Т.о. предикат – это свойство.

Область определения может задаваться как множество кортежей, и тогда говорят об исчислении кортежей, или как домен, и тогда говорят об исчислении доменов.

Исчисление кортежей

Определение кортежной переменной – это указание, из какого отношения она принимает значение.

Ссылки типа СОТРУДНИК  Сотр_зарпл или СОТРУДНИК.Сотр_имя говорят о том, что имея кортежную переменную, можно получить доступ к атрибутам.

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

Другим вариантом WFF являются формулы из простых сравнений, объединённых логическими связями:

WFF может быть построена с помощью кванторов:

Все переменные, которые входят в WFF, не использующие кванторов, не являются свободными. «Свобода» фактически означает, что если при вычислении WFF получено .t., то это значение кортежной переменной будет входить в результирующее отношение. Т.е. свободная переменная определяет какое-то результирующее отношение. Переменная, которая входит в WFF, построенную с помощью кванторов – связанная переменная. Связанность означает, что данная переменная не видна за пределами WFF. Т.е. при вычислении формулы используется не одно значение этой переменной, а вся область определения, но в результирующем отношении эта область не видна.

Целевые списки (target list)

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

  1. var.attr (свободная переменная, соответствующая WFF . имя атрибута отношения, на котором определена var);

  2. var (имя свободной переменной)– эквивалентно наличию списка, включающего все атрибуты;

  3. new_name= var.attr; new_name – новое имя соответствующего атрибута результирующего отношения.

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

Target_list WHERE wff

Значением этого выражения является отношение. В нём тело определяет WFF, а схема отношения определяется целевым списком.

Логике РИ следует грамматика языка SQL.

В РИ доменов тоже есть переменные, но областью их определения являются не отношения, а домены. Поэтому в исчислении доменов роль WFF выполняют выражения, которые выражают условия членства.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]