
- •8. Лекция: Логика предикатов и базы данных
- •Реляционные базы данных
- •Реляционная алгебра
- •Теоретико-множественные операции
- •Специальные реляционные операторы
- •Запросы
- •Ограничения целостности
- •9. Лекция: Графы: представления, достижимость и связность.
- •Основные понятия
- •Представления графов
- •Матрица (таблица) смежности
- •Матрица (таблица) инцидентности
- •Списки смежности
- •Граф достижимости
- •Взаимная достижимость, компоненты сильной связности и базы графа
- •Лекция: Деревья
- •Неориентированные и ориентированные деревья
- •Деревья и формулы (выражения)
- •Обходы деревьев
- •11. Лекция: Три алгоритма на графах
- •Построение минимального остова
- •Поиск в глубину и задача о лабиринте
- •Задача о кратчайших путях из одного источника
Основы дискретной математики информация [-] Автор: М.И. Дехтярь
8. Лекция: Логика предикатов и базы данных
Содержание
Реляционные базы данных
Реляционная алгебра
Теоретико-множественные операции
Специальные реляционные операторы
Запросы
Ограничения целостности
Задачи
Реляционные базы данных
Большинство современных промышленных баз данных являются реляционными - данные в них представляют конечные отношения (relations), которые хранятся в таблицах. Схема отношения R(A1,A2, …, An) включает имя отношения R и список его атрибутов A1,A2, …, An. Вообще говоря, атрибуты в схеме отношения считаются неупорядоченными, т.е. являются не списком, а множеством. Но мы будем считать, что их порядок в схеме является "стандартным". Для каждого атрибута Ai определено множество dom(Ai) его допустимых значений. Схема базы данных состоит из перечня схем отношений, входящих в эту базу. В приложениях отношения чаще называют таблицами, их атрибуты - столбцами, строки таблиц - кортежами или записями, а их элементы - полями. В каждый момент времени состояние базы данных (ее экземпляр) - это набор (конечных) таблиц имеющих соответствующие схемы.
Пример 8.1. Пусть, например, база данных со сведениями о сотрудниках некоторой организации имеет схему: Сотрудники(Номер, ФИО, Отдел, Должность, Оклад), Комнаты(НомерСотрудника, Этаж, НомерКомнаты). Рассмотрим некоторый экземпляр этой базы данных.
Сотрудники |
|||||||||
Номер |
ФИО |
Отдел |
Должность |
Оклад |
|||||
1 |
Иванов А.А. |
торговый |
менеджер |
7000 |
|||||
2 |
Сидоров Н.П. |
плановый |
экономист |
5000 |
|||||
3 |
Сидорова М.И. |
торговый |
зав.складом |
6000 |
|||||
4 |
Ольгина Н.А. |
плановый |
экономист |
5500 |
|||||
5 |
Горев С.В. |
плановый |
зав.отделом |
10000 |
|||||
Комнаты |
|
|
|||||||
НомерСотрудника |
Этаж |
НомерКомнаты |
|
|
|||||
3 |
2 |
17 |
|
|
|||||
1 |
2 |
17 |
|
|
|||||
7 |
2 |
18 |
|
|
|||||
5 |
3 |
7 |
|
|
|||||
2 |
3 |
27 |
|
|
С точки зрения логики предикатов, этот экземпляр не что иное, как некоторая конечная система сигнатуры Σ2={Сотрудники(5), Комнаты(3)} с основным множеством, включающим строки и числа из таблиц. Первая из приведенных таблиц задает интерпретацию предиката Сотрудники(5), а вторая - интерпретацию предиката Комнаты(3).
Каждому
отношению
базы данных со схемой R(A1,
…, An)
мы сопоставим n-местный
предикат с тем же именем и n
одноместных предикатов Ai(x)
(i=1, …, n),
выражающих принадлежность объекта x
области dom(Ai)
допустимых значений атрибута
Ai.
Следовательно, кортеж (a1,
… , an)
принадлежит отношению
R
тогда и только тогда, когда истинна
формула A1(a1)
…
An(an)
R(a1,
… , an).
Множество таких предикатов для всех
отношений
базы данных и стандартных отношений,
определенных на областях ее атрибутов
(обычно это отношения
равенства и порядка: =,
<,
,
>,
),
образуют сингатуру базы данных.
Например, для приведенного выше отношения Сотрудники(5) предикаты-свойства соответствующих областей значений могут быть заданы следующим образом:
Номер(x)
x - целое число,
ФИО(x) x - строка символов длины 30,
Отдел(x) } x
{торговый, плановый, производственный},
Должность(x) x - строка символов длины 80,
Оклад(x) x - целое число в интервале от 1000 до 100 000.
Каждый кортеж отношения Сотрудники удовлетворяет формуле Сотрудники(n, f, o, d, z) Номер(n) ФИО(f) Отдел(o) Должность(d) Оклад(z).
Ниже мы будем просто писать R(a1, … , an), подразумевая, что значения ai входят в соответствующие области dom(Ai). Каждая формула Φ(x1, …, xk) со свободными переменными x1, … , xk в сигнатуре базы данных определяет множество состояний, т.е. наборов значений ее свободных переменных, на которых она истинна. Такое множество наборов можно рассматривать как множество кортежей, которые входят в новое отношение PΦ (k), определяемое формулой Φ.
Например, формула
задает отношение PΦ(2), определяющее список комнат сотрудников планового отдела:
ФИО |
НомерКомнаты |
Сидоров Н.П. |
27 |
Горев С.В. |
7 |
Отметим, что для конечных систем поиск значений свободных переменных формул логики предикатов, при которых они выполняются, и проверка истинности замкнутых формул производятся эффективно.