Реляционное исчисление
Рассмотрим конкретный пример. Есть БД, состоящая из двух отношений: Сотрудники (Сотр_№, Сотр_имя, Сотр_зарпл, Сотр_отд);
Отделы(Отд_№, Отд_ кол, Отд_нач).
Задача: узнать имена и номера сотрудников, являющихся начальниками отделов, в которых работает более 50 человек.
Подход, основанный на РА, состоит в написании серии операций, результатами которых будут отношения. Результатом выполнения серии операций будет отношение Начальники(Сотр_имя, Сотр_№). Операции:
1. соединение Сотрудники и Отделы по условию Сотр_№ = Отд_нач ;
2. ограничение ;
3. проекция .
Непроцедурный подход состоит в том, чтобы написать требование, которому должен удовлетворять результат. Это требование можно записать так: выдать Сотр_имя, Сотр_№ для сотрудников таких, что существует отдел с таким же значением Отд_нач, как и Сотр_№ и значением Отд_кол ³50. Те. Здесь указана характеристика результата. В этом случае СУБД должна сама решить, какую последовательность операций надо выполнить, чтобы получить желаемый результат. Если это высказывание построено по определённым правилам, то существуют простые правила перевода высказывания в последовательность реляционных операций.
Непроцедурный подход основан на РИ. Здесь выделяют 2 базовых понятия:
· переменная, у которой должна быть установлена область определения;
· правильно построенная формула (WFF – Well Formed Formula), в которой учитываются переменные, кванторы и предикаты. Квантор – логический эквивалент слов ВСЕ, ДЛЯ ЛЮБОГО, СУЩЕСТВУЕТ и т.д. Предикат – оператор, который формализует логическое значение квантора, т.е. ставит этому квантору в соответствие значение ДА или НЕТ. Т.о. предикат – это свойство.
Область определения может задаваться как множество кортежей, и тогда говорят об исчислении кортежей, или как домен, и тогда говорят об исчислении доменов.
Дата добавления: 2014-12-20; просмотров: 564;