Переменная X принимает последовательно значения кортежей отношения ОСУ.
5. Получить коды узлов, содержащих в своем составе микросхемы с мощностью потребления менее 90 мВт.
ПУСТЬ В ОТНОШЕНИИ ОМС КОРТЕЖ X
СОЗДАТЬ W (ОСУ.КУ): Х(Х.КМ)=ОСУ.КМДХ.ПМ<90)
Результат
W
КУ
ДШ 10 Сч 50
CM 5
6. Получить логические функции узлов, содержащих в своем состава микросхемы с мощностью потребления менее 90 мВт.
ПУСТЬ В ОТНОШЕНИИ ОМС КОРТЕЖ X
ПУСТЬ В ОТНОШЕНИИ ОСУ КОРТЕЖ Y
СОЗДАТЬ W (ОУЗ.ЛФУ): (Y.КУ = ОУЗ.КУ) /\
/\ ( X(X.KM = Y.KM /\ X.HC<90) .
Результат
W
ЛФУ
Дешифратор Счетчик Сумматор
Здесь используются все три отношения: одно из них описывается в искомом отношении W, а два других определяются операторами принадлежности.
7. Получить коды узлов, не содержащих микросхемы с номером 155ЛА6.
ПУСТЬ В ОТНОШЕНИИ ОСУ КОРТЕЖ X
СОЗДАТЬ W (ОУЗ.КУ): Х(Х.КУ ≠ ОУЗ.КУ\/Х.КМ ≠
≠ 135ЛА6')
Результат
w
КУ
P2
Сч46
РЗ
CM15
PI
В условии, устраивающем пас, при поиске нужной записи ОУЗ.КУ указывается перебор всех X, для которых либо названия узлов не совпадают, либо, если названия равны, номер микросхемы не совпадает с ЛА6.
Приведенные примеры показывают, что реляционное исчисление позволяет описать самые разнообразные виды искомых отношений. Однако отсутствие процедурности существенно затрудняет реализацию языков, основанных на реляционном исчислении, поскольку все процедуры поиска, построения и обработки отношений приходится строить полностью автоматически, скрытно от пользователя.
Определенная степень процедурное™ появляется в реляционной алгебре.
Реляционная алгебра.Алгебраический подход всегда предполагает наличие операндов и совокупности операций над ними. В реляционной алгебре в качестве операндов выступают отношения. Основными операциями, выполняемыми над отношениями, являются объединение, пересечение, вычитание, декартово произведение, проекция, ограничение, соединение, деление.
Операции объединения, пересечения, вычитания выполнимы лишь над парами совместимых отношений, т. е. таких отношений, у которых степени равны, а соответствующие атрибуты принадлежат одинаковым доменам. Пример совместимых отно-
Та б л и ц а 2.5
СОСТАВ 1
Код узла (КУ)
Код типа микро-схсмы (КМ)
Количество
(К)
Р2
Р2
ДШ10
Сч 50
СМ5
155ЛАЗ
155ИР1
155ЛАЗ
155ТМ2
1551МЗ
Таблица 2.6
СОСТАВ2
Код узла (КУ)
Код типа микросхемы (КМ)
Количество
(К)
Сч 50 РЗ
СМ5
155ТМ2 155ИР1 155ТМ2
Операцией объединения отношений А и В строится множество кортежей, принадлежащих либо отношению Л, либо отношению В:
ПОЛУЧИТЬ Р ОБЪЕДИНЕНИЕМ А И В Например,
ПОЛУЧИТЬ СОСТАВЗ ОБЪЕДИНЕНИЕМ СОСТАВ 1 И СОСТАВ 2
Результирующее отношение приведено в табл. 2.7.
Т а б л и ц а 2.7
СОСТАВЗ
Код узла (КУ)
Код типа микросхемы (КМ)
Количество (К)
Р2
Р2
ДШ10
Сч50
СМ5
РЗ
155ЛАЗ
155ИР1
155ЛАЗ
155ТМ2
155ТМ2
155ИР1
Операцией пересечения отношений А и В строится множество кортежей, принадлежащих как отношению А, гак и отношению В:
ПОЛУЧИТЬ Р ПЕРЕСЕЧЕНИЕМ А И В
Например,
ПОЛУЧИТЬ СОСТАВ 4 ПЕРЕСЕЧЕНИЕМ СОСТАВ 1 И СОСТАВ 2
Результат операции представлен в табл. 2.8.
Таблица 2.8
С0СТАВ4
Код узла (КУ)
Код типа микросхемы (КМ)
Количество (К)
Сч50
СМ5
155ТМ2
155ТМ2
Операция вычитания отношений А и В строит множество кортежей, принадлежащих отношению А, но не принадлежащих отношению В:
ПОЛУЧИТЬ Р ВЫЧИТАНИЕМ В ИЗ А Например,
ПОЛУЧИТЬ СОСТАВ5 ВЫЧИТАНИЕМ СОСТАВ2 ИЗ СОСТАВ 1
Результат операции приведен в табл. 2.9.
Таблица 2.9
С0СТАВ5
Код узла (КУ)
Код типа микросхемы (КМ)
Количество (К)
Р2
Р2
ДШ10
155 ЛАЗ
155ИР1
155 Л A3
Операция декартово произведение отношений А и В строит множество кортежей, полученных конкатенацией каждого кортежа из отношения А с каждым кортежем из отношения В.
■Примечание. Конкатенация двух кортежей представляет собой один кортеж, составленный из двух исходных простым приписыванием второго вслед за первым.
ПОЛУЧИТЬ Р ПРОИЗВЕДЕНИЕМ А НА В
Например (табл. 2.10, 2.11,2.12),
ПОЛУЧИТЬ НМ ПРОИЗВЕДЕНИЕМ МС НА УЗ
Таблица 2.10
МС
Код типа микросхемы (КМ)
Логическая функция (ЛФМ)
155ТМ2
155ТВ1
2D—Т
УК—Т
Таблица 2.11
УЗ
Код узла (КУ)
Логическая функция (ЛФУ)
Р2
Сч50
Регистр
Счетчик
Таблица 2.12
НМ
Код типа микросхемы (КМ)
Логическая
функция
(ЛФМ)
Код узла (КУ)
Логическая
функция
(ЛФУ)
155ТМ2 155ТМ2 155ТВ1
155ТВ2
2D—Т
2D—Т
УК—Т
УК—Т
Р2
Сч50
Р2
Сч50
Регистр
Счетчик
Регистр
Счетчик
В этом примере применение операции произведения позволяет получить отношение НМ, содержащее все возможные варианты номенклатуры «микросхема — узел».
Операция проекция является унарной (определенной лишь для одного отношения). Для этой операции должны быть заданы отношение А и список атрибутов С. При этом сначала строится В из кортежей отношения А, содержащих лишь атрибуты из списка С. Затем в отношении В вычеркиваются повторяющиеся строки. Оставшееся отношение и будет результатом выполнения операции проекции:
ПОЛУЧИТЬ Р ПРОЕКЦИЕЙ А НА С.
Например,
ПОЛУЧИТЬ КУСТ ПРОЕКЦИЕЙ ОУЗ НА П
В этом примере отношение ОУЗ взято из табл. 2.3. С помощью операции проекции получаем перечень устройств, содержащих узлы из отношения ОУЗ. Результат операции приведен в табл. 2.13.
Таблица 2.13
КУСТ
Применение (П)
АКЮ
АК20
АКЗО
Операция ограничение также является унарной и дает возможность построения «горизонтального» подмножества исходного отношения, кортежи которого удовлетворяют заданному логическому условию:
ПОЛУЧИТЬ Р ОГРАНИЧЕНИЕМ А ПО УСЛОВИЮ L
Условие L содержит простые сравнения, соединенные знаками логических операций.
Например,
ПОЛУЧИТЬ ОМС1 ОГРАНИЧЕНИЕМ ОМС ПО УСЛОВИЮ (ПМ<105)
Отношение ОМС взято из табл. 2.2. Результат операции представлен в табл. 2.14:
ПОЛУЧИТЬ НУ1 ОГРАНИЧЕНИЕМ ОУЗ ПО УСЛОВИЮ
(П = АК20') /\ (Р<20)
Таблица 2.14
ОМС1
Код типа
микросхемы
(КМ)
Логическая
функция
(АФМ)
Коэффициент
разветвления (КР)
Мощность потребления (ПМ)
Задержка (ЗД)
155ЛА6 155ТВ1
2×4 И—НЕ
УК—Т
Отношение ОУЗ взято из табл. 2.3.
В результате операции получаем новое отношение НУ1, содержащее лишь те строки из отношения ОУЗ, для которых разрядность меньше 20, а применение соответствует устройству АК20 (табл. 2.15).
Операция соединения позволяет строить новое отношение посредством конкатенации кортежей двух исходных отношений. Однако конкатенация производится лишь при выполнении заданного логического условия. Операция соединения может быть представлена в виде
последовательности операций декартова произведения и ограничения:
ПОЛУЧИТЬ Р СОЕДИНЕНИЕМ А И В ПРИ УСЛОВИИ L
Таблица 2.15
НУ1
Код узла (КУ)
Логическая
функция
(ЛФУ)
Применение (П)
Разрядность (Р)
ДШ10
Р1
Дешифратор
Регистр
АК20
АК20
Тот же результат может быть получен посредством выполнения последовательности операций: ПОЛУЧИТЬ Р1 ПРОИЗВЕДЕНИЕМ А НА В ПОЛУЧИТЬ Р ОГРАНИЧЕНИЕМ Р1 ПО УСЛОВИЮ L Например,
ПОЛУЧИТЬ СП СОЕДИНЕНИЕМ СМ1 И ОСУ ПРИ УСЛОВИИ (СМ1.КМ = ОСУ.КМ)
В этом примере отношение ОСУ взято из табл. 2.4, а отношение СМ1 и результат СП приведены в табл. 2.16, 2.17.
Таблица 2.16
СМ1
Код типа микросхемы (К.М)
Мощность потребления (ПМ)
155 ЛАЗ 155ТВ1
Таблица 2.17
СП
Код типа
микросхемы
(КМ)
Мощность
потребления (ПМ)
Код узла
(КУ)
Код типа
микросхемы
(КМ)
Количество (К)
155 Л A3
155 ЛАЗ
155 Л A3
155ЛАЗ
155 Л A3
155ТВ1
155ТВ1
Р2
ДШ10
Сч46
РЗ
СМ15
Сч46
Р1
155ЛАЗ
155 Л A3
155 ЛАЗ
155 Л A3
155 Л A3
155ТВ1
155ТВ1
Таблица2.21
Таблица2.23
Операция деление в определенном смысле обратна операции декартова произведения:
ПОЛУЧИТЬ Р ДЕЛЕНИЕМ А НА В
Для изложения общих принципов построения реляционных алгебраических языков достаточно пояснить операцию деления для частного случая, когда делимое есть отношение второй степени, а делитель — отношение первой степени. Пусть делимое есть отношение А с атрибутами A1 и А2, а делитель — отношение В с атрибутом В1 определенным на том же домене, что и атрибут А2. Тогда результатом Р операции деления отношения А на отношение В будет множество значений атрибута А1 таких, что соответствующие им значения атрибута А2 совпадают со всеми значениями атрибута В1.
Например,
ПОЛУЧИТЬ НМС1 ДЕЛЕНИЕМ ТАБС НА СПУ1
Исходные отношения и результаты применения операции деления для делимого ТАБС и делителей СПУ1, СПУ2, СПУЗ представлены в табл. 2.18—2.24 соответственно в виде отношений НМС1, НМС2 и НМСЗ. Как видно из примеров, операция деления позволила выявить номера тех микросхем, которые входят во все узлы, перечисленные в списке делителя.
Преобразования отношений, описанные с помощью реляционного исчисления, могут быть выполнены посредством операций реляционной алгебры. Так, условие примера 3 можно реализовать в виде последовательности операций
Таблица 2.21 Таблица 2.22
СПУ8
Код узла (КУ)
НМС1
НМСЗ
Код типа микросхемы (КМ)
Р2
ДШЮ
СМ15
155 Л A3
155ЛА6
155ТВ1
Таблица 2.23
Таблица 2.24
НМС2
Код типа микросхемы (КМ)
Код типа микросхемы (КМ)
155 Л A3
155ЛА6
155 ЛA3
ПОЛУЧИТЬ Р1 ОГРАНИЧЕНИЕМ ОСУ ПО УСЛОВИЮ
(КУ = 'СМ5')
ПОЛУЧИТЬ Р2 СОЕДИНЕНИЕМ ОМС и Р1 ПРИ УСЛОВИИ (ОМС.КМ=Р1.КМ)