Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

Дедуктивні бази даних

За визначенням, дедуктивна БД складається з двох частин: екстенціональной, містить факти, і интенциональной, що містить правила для логічного висновку нових фактів на основі екстенціональной частини і запиту користувача.

Легко бачити, що при такому загальному визначенні SQL-орієнтовану реляційну СУБД можна віднести до дедуктивних систем. Дійсно, що є певні у схемі реляційної БД подання, як не інтенціонального частина БД. Зрештою, не так уже й важливо, який конкретний механізм використовується для виведення нових фактів на основі існуючих. У випадку SQL основним елементом визначення подання є оператор вибірки мови SQL, що цілком природно, оскільки результатом оператора вибірки є породжувана таблиця. Забезпечується і необхідна розширюваність, оскільки представлення можуть визначатися не тільки над базовими таблицями, а й над представленнями.

Основною відмінністю реальної дедуктивної СКБД від реляційної є те, що і правила интенциональной частини БД, і запити користувачів можуть містити рекурсію. Можна сперечатися про те, чи завжди хороша рекурсія. Однак можливість визначення рекурсивних правил і запитів дає можливість простого рішення в дедуктивних базах даних проблем, які викликають великі проблеми в реляційних системах (наприклад, проблеми розбирання складної деталі на примітивні складові). З іншого боку, саме можливість рекурсії робить реалізацію дедуктивної СКБД дуже складною і в багатьох випадках нерозв'язною ефективно проблемою. Ми не будемо тут більш детально розглядати конкретні проблеми, які застосовуються обмеження і використовуються методи в дедуктивних системах. Відзначимо лише, що зазвичай мови запитів і визначення интенциональной частини БД є логічними (тому дедуктивні БД часто називають логічними). Є прямий зв'язок дедуктивних БД з базами знань (интенциональную частина БД можна розглядати як БЗ). Більш того, важко провести границю між цими двома сутностями, принаймні, загальної думки з цього приводу не існує.

Який же зв'язок дедуктивних БД з реляційними СУБД, крім того, що реляційна БД є виродженим окремим випадком дедуктивної? Основним є те, що для реалізації дедуктивної СУБД зазвичай застосовується реляційна система. Така система виступає в ролі охоронця фактів і виконавця запитів, що надходять з рівня дедуктивної СУБД. Між іншим, таке використання реляційних СУБД різко актуалізує завдання глобальної оптимізації запитів.

При звичайному застосуванні реляційної СУБД запити зазвичай надходять на обробку по одному, тому немає приводу для їх глобальної (міжзапитної) оптимізації. Дедуктивна ж СУБД при виконанні одного запиту користувача в загальному випадку генерує пакет запитів до реляційної СУБД, які можуть оптимізуватися спільно.

Звичайно, у разі, коли набір правил дедуктивної БД стає великим, і їх неможливо розмістити в оперативній пам'яті, виникає проблема управління їх зберіганням і доступом до них у зовнішній пам'яті. Тут знову ж таки може бути застосована реляційна система, але вже не надто ефективно. Потрібні більш складні структури даних та інші умови вибірки. Відомі приватні спроби вирішити цю проблему, але спільного рішення поки немає.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]