- •Глава 5 Реляционные исчисления Глава 5.Реляционные исчисления
- •5.1.Основные понятия математической логики
- •5.1.1.Исчисление высказываний
- •5.1.2.Исчисление предикатов
- •5.2.Реляционное исчисление с переменными-кортежами
- •5.2.1.Введение
- •5.2.2.Определение исчисления
- •5.2.3.Примеры использования
- •5.3.Реляционное исчисление с переменными на доменах
5.2.Реляционное исчисление с переменными-кортежами
5.2.1.Введение
Задача реляционного исчисления заключается в том, чтобы можно было сформулировать исчисление предикатов, которое интерпретируется реляционными отношениями. Основным узким местом в такой интерпретации является тот факт, что в традиционном исчислении предикатов предполагается явное существование области интерпретации всех возможных переменных. В связи с этим, например, нет никаких проблем с интерпретацией формул с отрицаниями или с кванторами всеобщности.
В реляционной модели такое не возможно. Например, если в реляционной модели схема содержит элементарный предикат Студент(х), то нет никакой возможности проинтерпретировать формулы Студент(х) или хСтудент(х). Формулы подобного рода приводят к построению бесконечной области интерпретации этих предикатов (бесконечных отношений). Было даже введено понятие безопасной формулы исчисления предикатов – это такая формула, которая интерпретируется конечным отношением.
Таким образом, из множества формул исчисления предикатов следует выбрать такое подмножество, при интерпретации которых не было бы необходимости обращаться к области интерпретации переменных и, кроме того, получать формулы, интерпретируемые конечными отношениями.
Наконец, перед реляционными счислениями ставилась задача максимально упростить их синтаксис, сохраняя при этом выразительную мощь исчисления предикатов.
Известны два реляционных исчисления: реляционное исчисление с переменными-кортежами и реляционное исчисление с переменными на доменах. Мы рассмотрим первое из них детально и только упомянем суть второго.
5.2.2.Определение исчисления
Пусть задано множество элементарных предикатных символов Р1, Р2,…, Q1, Q2,… Эти предикаты интерпретируются конечными отношениями.
Пусть задано множество кортежных (строковых) переменных r1, r2, …, s1, s2,… Кортежные переменные интерпретируются кортежами значений. Выражения вида ri[j] называется срезом переменной ri по j-й компоненте.
Терм значений. Выражения вида Pirj называются термами значений. Такое выражение указывает, что переменная rj принимает значения из отношения Ri, которое является интерпретацией предиката Pi. С помощью терма значений явно фиксируется область значений переменной.
Примечание. Тем самым делается отступление от исчисления предикатов, в котором в формуле Р(х) переменная принимает значения из D – области интерпретации переменных.
Терм соединений. Выражения вида ri[m] ri[n] или ri[m] b, где - один из двуместных предикатов сравнения, а b – константа, называются термами соединений. Они определяют условия соединения различных отношений. Примеры термов соединений:
r1[3] < r2[1]; r1[2] = a; r3[4] r3[1]
С помощью термов значений вида Pirj задается область допустимых значений (область интерпретации) строковых (кортежных) переменных. В данном случае – это отношение, которое связывается с предикатом Pi. Но определять область значений переменной одним отношением недостаточно. Следует расширить эту область максимально насколько это возможно (с точки зрения реляционной модели). Это достигается с помощью следующего понятия.
Формула, правильно определенная над строковой переменной. Формулой, правильно определенной над строковой переменной ri, называется формула, удовлетворяющая следующим свойствам:
Все входящие в формулу предикатные символы интерпретируются совместимыми по объединению отношениями.
В формулу входят только термы значений, в которых единственной переменной является ri.
Термы значений соединяются связками , &, . Причем, связке непосредственно предшествует связка &.
Примеры формул, правильно определенных над переменной r.
P1r P2r P3r & P4r; P1r P2r & P3r
Если предикаты Р1, Р2, Р3, Р4 интерпретируются отношениями R1, R2, R3 R4, то первый пример устанавливает, что переменная r принимает значения из области (R1 R2 R3) R4, а второй устанавливает для переменной следующую область интерпретации: (R1 R2) – R3
Итак, формулы, правильно определенные над строковой переменной, задают области интерпретации (определения) переменных.
Следующий шаг – определение правил использования ограниченных кванторов.
Формула, правильно определенная на кванторах. Пусть F – формула, правильно определенная над строковой переменной r, а G – формула, содержащая r в качестве свободной переменной, но не содержащая термов значений вида Pir. Тогда формулы:
r(F & G); r(F G)
называются правильно определенными на кванторах существования и общности. По сути, это частный случай ограниченных кванторов существования и общности. Здесь формула F указывает ту область, в пределах которой изменяется переменная, используемая в кванторах. Будем записывать эти формулы следующим образом:
F(G)и F(G)
Формула с областью определения. Объединим теперь формулы, правильно определенные над строковыми переменными с формулами, правильно определенными на кванторах и с термами соединений.
Формула W называется формулой с областью определения, если она имеет вид:
W = U1 & U2 &…& Un & V, n 1
и обладает следующими свойствами:
Каждая формула Ui является правильно определенной над строковой переменной ri,
Формула V либо пуста, либо обладает следующими свойствами:
а) Если в ней содержатся кванторы, то они правильно определены.
б) Каждая свободная переменная из V является одной из переменных формул U1, U2,…, Un
в) В формуле V нет термов значений, содержащих свободные переменные.
Примечание. Формулу с областью определения следует трактовать следующим образом:
Пусть предикаты U1, U2,…, Un интерпретируются отношениями S1, S2,…, Sn. Конструкция U1 & U2 &…& Un определяет декартово произведение отношений S1, S2,…, Sn (при отсутствии V)
Формула V задает условие соединения отношений S1, S2,…, Sn. В частности, термы значений задают условия соединений на отдельных атрибутах отношений, а кванторы – условия, определяемые кванторными связками.
Примеры формул с областью определения: (предикаты P1, P2, P3 интерпретируются отношениями R1, R2, R3)
Формула Интерпретация
P1r1 & P2r3 & P3r3 - декартово произведение отношений R1, R2, R3.
P1r1 & (r1[3] = b) - ограничение отношения R1 условием, когда его третья колонка равна b.
P1r1 & P3r3 & (r1[2] = r3[1]) - соединение отношений R1, и R3 по условию, что второй столбец R1 равен первому столбцу R3.
P1r1 & P2r2 & P3r3(r1[2] = r3[1] & r1[3] = r2[1]) - деление отношения R1 на R3 по условию r1[2] = r3[1] и соединение результата деления с отношением R2 по условию r1[3] = r2[1]
Альфа выражение. Формула с областью определения не позволяет установить, какие именно столбцы нужны в результирующем отношении. Для этого вводится понятие альфа-выражения.
Выражение (t1, t2,…, tk) : W называется простым альфа-выражением, если выполнены следующие условия:
W – формула с областью определения.
t1, t2,…, tk – последовательность строковых переменных и срезов. Эти переменные должны быть свободными в W.
Произвольное альфа-выражение определяется рекурсивно следующим образом:
Каждое простое альфа-выражение является альфа-выражением.
Пусть t = (t1, t2,…, tk). Если t : W1 и t : W2 – фльфа-выражения, то выражения t : W1 W2, t : W1 & W2 и t : W1 & W2 являются альфа-выражениями.
На этом завершается определение реляционного исчисления с переменными – кортежами.
Теорема. Реляционное исчисление с переменными – кортежами обладает полнотой реляционной алгебры.