6. Реляционное исчисление.ppt
- Количество слайдов: 41
6. Манипуляционная часть реляционной модели данных: реляционное исчисление
6. 1. Общая характеристика Запрос – формула некоторой формальнологической теории; описывает свойства желаемого результата Ответ – множество объектов из области интерпретации (базы данных), на котором истинна формула, соответствующая запросу Формально-логическая теория – теория исчисления предикатов первого порядка, в которой формула задается в виде предиката 2
6. 2. Понятие предиката Даны произвольные множества D 1, D 2, …, Dn, Di Dj = 0 для любых i j, и переменные x 1, x 2, …, xn, xi Di для любых i = 1, 2, …, n. Предикатом (или предикатной функцией) называется функция P(x 1, x 2, …, xn), принимающая одно из двух значений – 1 или 0 (истина или ложь). x 1, x 2, …, xn – предикатные переменные D 1, D 2, …, Dn – область интерпретации предиката 3
6. 2. Понятие предиката • Логические операции – (и), (или), (не) • Кванторы – (всеобщности), (существования) x (f(x)) – для всех значений x из области интерпретации предиката формула f(x) имеет значение "истина " x (f(x)) – существует, по крайней мере, одно значение x из области интерпретации предиката, для которого формула f(x) имеет значение "истина" x (f(x)) эквивалентно x ( f(x)) 4
6. 3. Пример использования кванторов S – множество студентов "учебная группа" f 1(t) – утверждение “t получает стипендию“, t S f 2(t) – утверждение “t не имеет задолженностей в сессию“, t S Переменная x S 1. x (f 1(x)) имеет значение "истина", если хотя бы один студент из группы получает стипендию, и ложь, если никто в группе не получает стипендию. 2. x (f 2(x)) имеет значение "истина", если все студенты в группе не имеют задолженностей в сессию, и ложь, если хотя бы один студент из группы имеет задолженность 5
6. 4. Вхождение переменных Предикатная формула (предикат) (t) Вхождение переменной t в формулу связано, если переменная t находится в в подформуле, начинающейся кванторами или , за которыми непосредственно следует переменная t тогда о кванторе говорят, что он связывает переменную t В остальных случаях t входит в свободно 6
6. 5. Пример x(R(x, y) y(U(x, y, z) Q(x, y))) Переменная x связана квантором Свободное вхождение переменной y Переменная у связана квантором Свободное вхождение переменной z 7
6. 6. Области значений и видимости переменных 1. В предикате используются и свободные, и связанные переменные 2. Если для какого-то определенного набора свободных переменных при вычислении предикатной формулы получено значение "истина", значит, этот набор значений свободных переменных войдет в результат, определяемый предикатом 8
6. 6. Области значений и видимости переменных 3. Если вхождение переменной в формулу связано квантором, такая переменная не видна за пределами формулы, связавшей эту переменную При вычислении значения такой формулы используются все значения из области определения данной переменной 9
6. 6. Области значений и видимости переменных Пример: дано множество десятичных цифр D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Подмножество, состоящее из четных цифр, можно определить следующим образом: множество всех значений y, таких, для которых выполняется условие: x (x D x 2 = 0 y = x) или x(D) (x 2 = 0 y = x) 10
6. 7. Связь предиката с базой данных Область интерпретации предиката – база данных Соответствие между предикатом P(x 1, x 2, …, xn) и отношением r(R), R(A 1: D 1, A 2: D 2, . . . , An: Dn): a 1 D 1, a 2 D 2, …, an Dn 1. Если P(a 1, a 2, . . . , an) = 1, то есть выборка отношения R(A 1: D 1, A 2: D 2, . . . , An: Dn), т. е. r 2. Если P(a 1, a 2, . . . , an) = 0, то r 11
6. 8. Реляционное исчисление с переменными-кортежами 1. Областью определения переменных являются отношения 2. Переменные-кортежи должны удовлетворять определенной схеме отношения R 3. Предикат – это правильно построенная формула (wff – well formulated formula) (t). Выбираются те кортежи t, для которых (t) дает значение 1 12
6. 9. Атомы wff 1. Пусть r(R) – некоторая реализация отношения, удовлетворяющая схеме R; t – некоторая переменная-кортеж, удовлетворяющая схеме R. Тогда r(t) – атом; означает, что t есть кортеж в отношении r (т. е. формула истинна, если t r) 13
6. 9. Атомы wff 2. Пусть r(R) – некоторая реализация отношения, удовлетворяющая схеме R; u и v – переменные-кортежи из отношения r(R) (т. е. u r, v r); – арифметическая операция сравнения ( , , , ); A, B – атрибуты схемы отношения R, определенные на доменах, сравнимых по операции . Тогда u[A] v[B] – атом t[X] – значение переменной t по атрибуту X 14
6. 9. Атомы wff 3. Пусть u – переменная-кортеж из отношения r(R) (т. е. u r); – арифметическая операция сравнения ( , , , ); A, B – атрибуты схемы отношения R, определенные на доменах, сравнимых по операции ; c – константа из домена, на котором определен атрибут B. Тогда u[A] c (или c u[A]) – атом 15
6. 10. Правила построения wff 1. Каждый атом есть формула. Все вхождения переменных-кортежей, упомянутых в атоме, являются свободными. Например, формула r(t) утверждает, что переменнаякортеж t является кортежем отношения r(R) 16
6. 10. Правила построения wff 2. Пусть x(R) – переменная-кортеж из отношения r со схемой R; (x) – формула, в которой переменная x имеет свободное вхождение. Тогда x(R) ( (x)) – формула, в которой вхождение переменной x становится связанным квантором : существует хотя бы один кортеж x в отношении r(R), такой, что при подстановке его в формулу (x) вместо всех свободных вхождений x получим значение "истина " 17
6. 10. Правила построения wff Пример Формула x(R) (r(x)) утверждает, что отношение r не пусто – существует хотя бы один кортеж x, принадлежащий r 18
6. 10. Правила построения wff 3. Пусть x(R) – переменная-кортеж из отношения r со схемой R; (x) – формула, в которой переменная x имеет свободное вхождение. Тогда x(R) ( (x)) – формула, в которой вхождение переменной x становится связанным квантором : для всех кортежей x из отношения r(R) при подстановке их в формулу (x) вместо всех свободных вхождений x получим значение "истина" 19
6. 10. Правила построения wff Пример Формула x(R) (x[A] ) утверждает, что для всех кортежей значение атрибута A не пусто, т. е. атрибут А является обязательным 20
6. 10. Правила построения wff 4. Если (x) – формулы, тогда (x), (x) – тоже формулы. Вхождения переменной x в эти формулы остаются свободными или связанными – такими, какими были в (x) или (x), соответственно 21
6. 10. Правила построения wff 5. Если (x) – формула, то ( (x)) – тоже формула; вхождение переменной x остается свободным или связанным – таким, каким оно было в (x) 6. Ничто иное не является формулой 22
6. 11. Порядок вычисления wff 1. Атомы, в которых могут быть использованы арифметические операции сравнения 2. Кванторы 3. Отрицание ( ) 4. Операция "И" ( ) 5. Операция "ИЛИ" ( ) Скобки используются для изменения порядка вычисления формулы 23
6. 12. Выражение реляционного исчисления {t(R) | (t)}, где t – переменная-кортеж, удовлетворяющая схеме отношения R; единственная переменная, имеющая свободное вхождение в формулу (t); (t) – правильно построенная формула Интерпретация: множество кортежей t, удовлетворяющих схеме отношения R, таких, для которых правильно построенная формула (t) истинна 24
6. 12. Выражение реляционного исчисления Пример Есть отношение со схемой R(Имя, Стипендия) атрибут Стипендия определен на домене D = { «да» , «нет» } Имена всех студентов, получающих стипендию { t(Имя) | x(R) (x[Стипендия] = «да» x[Имя] = t[Имя]} 25
6. 13. Безопасные выражения {t | r( t) } в общем случае, определяет бесконечное отношение Безопасные выражения вида { t | ( t) } гарантированно дают ограниченное множество кортежей Значения атрибутов кортежей t являются элементами некоторого ограниченного универсального множества – DOM( ) – унарное отношение, элементами которого являются символы, которые либо явно появляются в , либо служат компонентами какого-либо кортежа в некотором отношении R, упоминаемом в 26
6. 14. Эквивалентность выражений Если E – выражение реляционной алгебры, то существует эквивалентное ему безопасное выражение реляционного исчисления с переменными-кортежами Проекция L(r), r(R), L R {t(L) | u(R) (u[L] = t[L] } 27
6. 14. Эквивалентность выражений Деление r 1 r 2, r 1(AB), r 2(B) { t(A) | x(B) ( y(AB) (y[B] = x[B] y[A] = t[A] } или { t(A) | x(B) ( y(AB) (y[B] = x[B] y[A] = t[A] } 28
6. 14. Эквивалентность выражений Естественное соединение r 1 r 2, r 1(AB), r 2(BC) { t(ABC) | u(AB) v(BC) (u[B] = v[B] t[AB] = u[AB] t[C] = v[C]) 29
6. 15. Примеры запросов Схема базы данных: S(Sid, SN, SC) – ПОСТАВЩИК ( Номер поставщика, Имя, Город) P(Pid, PN, PC) – ДЕТАЛЬ ( Номер детали, Название, Цена) SP(Sid(FK 1), Pid (FK 2), QTY) – ПОСТАВКА ( Номер поставщика, Номер детали, Количество) 30
6. 15. Примеры запросов 1. Получить имена поставщиков, поставляющих деталь с номером P 1. {t(SN) | u(S) v(SP) (u[Sid] = v[Sid] v[Pid] = ‘P 1’ u[SN] = t[SN])} 31
6. 15. Примеры запросов 2. Получить имена поставщиков, не поставляющих деталь с номером P 1 {t(SN) | u(S) v(SP) (v[Pid] = ‘P 1’ u[Sid] = v[Sid] u[SN] = t[SN])} 32
6. 15. Примеры запросов 3. Получить имена поставщиков, поставляющих только деталь с номером P 1 {t(SN) | u(S) v(SP)(u[Sid] = v[Sid] v[Pid] = ‘P 1’ u[SN] = t[SN] w(SP)(w[Sid] = u[Sid] w[Pid] ‘P 1’))} 33
6. 15. Примеры запросов 4. Получить имена поставщиков, поставляющих все детали {t(SN) | u(S) w(P) v(SP) (w[Pid] = v[Pid] u[Sid] = v[Sid] t[SN] = u[SN])} или {t(SN) | u(S) w(P) v(SP) (w[Pid] = v[Pid] u[Sid] = v[Sid] t[SN] = u[SN])} 34
6. 16. Реляционное исчисление с переменными на доменах Атомы: r(x 1 , x 2 , … , xn), где r – отношение, удовлетворяющее схеме R(A 1 , A 2 , …An), и каждое xi есть константа или переменная на домене; u v, где u и v – константы или переменные, определенные на доменах, совместимых по операции , – арифметическая операция сравнения ( , , , ); 35
6. 16. Реляционное исчисление с переменными на доменах Формула реляционного исчисления (t 1, t 2, …, tn), а также свободные и связанные вхождения переменных определяются так же, как и для исчисления с переменнымикортежами 36
6. 16. Реляционное исчисление с переменными на доменах Выражение реляционного исчисления с переменными на доменах {t 1, t 2, …, tn | (t 1, t 2, …, tn)}, ti – переменные, определенные на доменах Di, i = 1, 2, …, n единственные переменные, имеющие свободное вхождение в формулу (t 1, t 2, …, tn) – правильно построенная формула 37
6. 17. Эквивалентность выражений Для каждого безопасного выражения с переменными-кортежами существует эквивалентное безопасное выражение с переменными на доменах {t(R) | (t)}, R = (A 1, A 2, …, An) – выражение исчисления с переменными-кортежами Эквивалентное выражение с переменными на доменах: {t 1, t 2, …, tn | ΄(t 1, t 2, …, tn)} 38
6. 17. Эквивалентность выражений 1. Переменная-кортеж t заменяется n новыми переменными на доменах t 1, t 2, …, tn 2. ΄ представляет собой , в которой: a) любой атом r(t) заменяется атомом r(t 1, t 2, …, tn) b) каждое свободное вхождение t[Ai] заменено переменной ti 39
6. 17. Эквивалентность выражений c) для каждого квантора u или u вводится m новых переменных u 1, u 2, …, um (m – арность u) Кванторы u (или (u)) заменяются кванторами u 1 u 2 … um ( u 1 u 2 … um, соответственно) в подчиненных кванторам выражениях u[Ai] заменяются ui, а r(u) – r(u 1, u 2, …, um) 40
6. 17. Эквивалентность выражений Получить имена поставщиков, поставляющих деталь с номером P 1 {t(SN) | u(S) v(SP) (S(u) SP(v) u[SN] = t[SN] u[Sid] = v[Sid] v[Pid] = ‘P 1’)} Эквивалентное выражение: {t(SN) | u 1(Sid) u 2(SN) u 3(SC) v 1(Sid) v 2(Pid) v 3(QTY) (S(u 1, u 2, u 3) SP(v 1, v 2, v 3) u 2 = t u 1 = v 1 v 2 = ‘P 1’)} 41