![]() |
![]() |
Язык любого исчисления, используемого для формальной постановки задачи запроса и дедуктивного вывода для получения ответа на запрос, обычно называют Datalog , а описание на нем Дейталог-программой. Часть Дейталог-программы, не содержащую фактов, называют Дейталог-правилами.
Множество всех атомов Дейталог-программы, являющихся фактами, называют экстенсионалом. Множество всех остальных конкретизированных атомов, выводимых с помощью Дейталог-программы, называют интенсионалом.
Существуют 2 уровня использования языков представления данных:
Верхний уровень, включающий в себя различные языки, используемые для формальной постановки задачи запроса.
Нижний уровень, реализующий представление данных в виде таблиц.
Дедуктивная база данных состоит из реляционной базы данных (множества таблиц, соответствующих экстенсионалу, Дейталог-правил, и множества таблиц, соответствующих интенсионалу).
Важная часть – разработка перехода от Дейталог-исчисления к языку представления данных, например, SQL .
Пример.
Заказ (товар) Поставка (товар)
Заказ (компьютер) заказ (периферия)
заказ (офисное оборудование)
своевременная оплата (товар)
заказ (товар)
На языке SQL :
Таблицы
Данные
Выборка
USE expert
SELECT client.name, tovar.name, idzakaz, tovar.idtovar, kolpost, summapost
FROM zakaz
INNER JOIN tovar ON zakaz.idtovar = tovar.idtovar
INNER JOIN client ON zakaz.idclient = client.idclient
WHERE priznakpost = 0
Результат
client2 | computer1 | 1 | 1 | 1 | 800.0000 |
client2 | printer1 | 1 | 4 | 1 | 100.0000 |
client1 | phone2 | 2 | 6 | 10 | 200.0000 |
![]() |
![]() |