Это в лекции 3. |
Логика предикатов и базы данных
Реляционные базы данных
Большинство современных промышленных баз данных являются реляционными - данные в них представляют конечные отношения (relations), которые хранятся в таблицах. Схема отношения R(A1,A2, ..., An) включает имя отношения R и список его атрибутов A1,A2, ..., An. Вообще говоря, атрибуты в схеме отношения считаются неупорядоченными, т.е. являются не списком, а множеством. Но мы будем считать, что их порядок в схеме является "стандартным". Для каждого атрибута Ai определено множество dom(Ai) его допустимых значений. Схема базы данных состоит из перечня схем отношений, входящих в эту базу. В приложениях отношения чаще называют таблицами, их атрибуты - столбцами, строки таблиц - кортежами или записями, а их элементы - полями. В каждый момент времени состояние базы данных (ее экземпляр) - это набор (конечных) таблиц имеющих соответствующие схемы.
Пример 8.1. Пусть, например, база данных со сведениями о сотрудниках некоторой организации имеет схему: Сотрудники(Номер, ФИО, Отдел, Должность, Оклад), Комнаты(НомерСотрудника, Этаж, НомерКомнаты). Рассмотрим некоторый экземпляр этой базы данных.
Номер | ФИО | Отдел | Должность | Оклад |
---|---|---|---|---|
1 | Иванов А.А. | торговый | менеджер | 7000 |
2 | Сидоров Н.П. | плановый | экономист | 5000 |
3 | Сидорова М.И. | торговый | зав.складом | 6000 |
4 | Ольгина Н.А. | плановый | экономист | 5500 |
5 | Горев С.В. | плановый | зав.отделом | 10000 |
С точки зрения логики предикатов, этот экземпляр не что иное, как некоторая конечная система сигнатуры с основным множеством, включающим строки и числа из таблиц. Первая из приведенных таблиц задает интерпретацию предиката Сотрудники(5), а вторая - интерпретацию предиката Комнаты(3).
Каждому отношению базы данных со схемой R(A1, ..., An) мы сопоставим n -местный предикат с тем же именем и n одноместных предикатов Ai(x) (i=1, ..., n), выражающих принадлежность объекта x области dom(Ai) допустимых значений атрибута Ai. Следовательно, кортеж (a1, ... , an) принадлежит отношению R тогда и только тогда,
когда истинна формула .
Множество таких предикатов для всех отношений базы данных и стандартных отношений,
определенных на областях ее атрибутов (обычно это отношения равенства и порядка: =, <, <=, >, >= ), образуют сингатуру базы данных.
Например, для приведенного выше отношения Сотрудники(5) предикаты-свойства соответствующих областей значений могут быть заданы следующим образом:
-
- целое число,
-
- строка символов длины <= 30,
-
,
-
- строка символов длины <= 80,
-
- целое число в интервале от 1000 до 100 000.
Каждый кортеж отношения Сотрудники удовлетворяет формуле .
Ниже мы будем просто писать R(a1, ... , an), подразумевая, что значения ai
входят в соответствующие области dom(Ai). Каждая формула
со свободными переменными x1, ... , xk
в сигнатуре базы данных определяет множество состояний, т.е. наборов значений
ее свободных переменных, на которых она истинна. Такое множество наборов можно рассматривать
как множество кортежей, которые входят в новое отношение
, определяемое формулой
Например, формула
![\Phi( k, f) = \exists n \exists d \exists z \exists e ( Сотрудники(n, f, o, d, z) \wedge
Комнаты(n, e, k) \wedge \\ \wedge (o ='плановый')](/sites/default/files/tex_cache/4fbd3afd28ac2425320e2b084a51b377.png)
задает отношение , определяющее список комнат сотрудников планового отдела:
Отметим, что для конечных систем поиск значений свободных переменных формул логики предикатов, при которых они выполняются, и проверка истинности замкнутых формул производятся эффективно.
Реляционная алгебра
Для манипуляции отношениями Коддом в 1970 г. был предложен набор реляционных операторов, позволяющих по одним отношениям получать другие. Каждый такой оператор является функцией (вообще говоря, частичной), аргументами и значениями которой являются отношения. Из базовых реляционных операторов можно с помощью суперпозиции образовывать сложные термы. Совокупность получаемых таким образом операций над отношениями называется реляционной алгеброй.
В этом разделе мы рассмотрим семь основных реляционных операторов, введенных Коддом в качестве базиса реляционной алгебры, и покажем, как они выражаются в терминах логики предикатов.
Теоретико-множественные операции
Первую группу реляционных операторов представляют теоретико-множественные операции:
В
"лекции 1"
мы рассматривали все эти операции для множеств.
Особенности их использования в реляционной алгебре состоят в том, что
объединение, пересечение и вычитание применяются к отношениям, имеющим
одно и то же множество одинаково упорядоченных атрибутов.
Пусть имеются два таких отношения R(A1, ..., An) и S(A1, ..., An). Тогда результат их объединенния - это отношение , содержащее все кортежи отношения R и
все кортежи отношения S (кортежи, содержащиеся и в R, и в S, входят в P
в одном экземпляре). Это отношение представляется формулой
.
Результат пересечения - это отношение P2 = R \cap S, которое содержит кортежи, входящие и в R и
в S. Оно представляется формулой
.
Результат разности P3= R - S включает кортежи из R, не входящие в S. Это отношение представляется формулой
.
Декартово произведение P4= R x S отношений R(A1, ..., An) и S(B1, ..., Bm) содержит кортежи, которые составлены из
кортежей отношения R, продолженных кортежами отношения S. Список атрибутов P4 включает все атрибуты отношений R и S: (A1, ..., An, B1, ..., Bm).
Если у R и S имеются общие атрибуты, то они переименовываются. Обычно перед
именем атрибута общего атрибута Ai=Bj
помещается через точку имя его отношения, R.Ai и S.Bj.
Результат декартового произведения задается формулой
(мы предполагаем, что все переменные xi и yj разные).