Запити, фільтри, використання та функціональне призначення
Але є одна принципова проблема: чи вірно, що будь-яка логічна функція може бути задана придатним логічним вираженням? Відповідь математиками на це питання отриманий досить давно (задовго до винаходу баз даних) і звучить дивно: для двозначної логіки це вірно, а для тризначної немає.
Тут-те і зарита собака всіх непорозумінь з визначенням, що таке фільтр. Адже поки ми говоримо, що фільтр - це умова, що повинна виконуватися, чи висловлення, що повинне бути щирим, ми можемо мати на увазі будь-яку логічну функцію. Але комп'ютер не розуміє мови будь-яких функцій, він може працювати тільки мовою логічних виражень. У двозначній логіці це те саме, і автори підручників легко зсковзують з мови функцій на мову виражень (що нам не подобається, оскільки це ідейно різні речі). Але Access-те працює в тризначній логіці, а там це вже не одне і теж, і фільтром може бути тільки логічне вираження, а не якась міфічна чи умова висловлення. Подібне зіскользування є вже помилкою.
Отже, фільтром для даного відношення називається логічне вираження, що не містить атрибутів, що не входять у дане відношення.
Що таке запит
У звичайній мові термін “запит” вживається в різних змістах. По-перше, ця вимога офіційного роз'яснення по якій-небудь справі (запит депутата міністру); по-друге, призначення надмірної ціни за що-небудь; по-третє, потреби, інтереси (ну і запити в цих нових росіян). Ми привели роз'яснення терміна “запит” по словнику С.І.Ожогова. Нас цей термін цікавить, можна сказати, у “канцелярському” змісті - як вираження інформаційної потреби користувача на деякій мові.
На перший погляд може показатися, що потреба (те, що людині потрібно) і вираження цієї потреби на деякій мові - це те саме. Насправді це не так. Якщо людина чи знає почуває, що йому потрібно, то це ще не означає, що він може виразити свою потребу відповідною мовою. Уявіть собі, що ви спілкуєтеся з дитиною, що не вміє розмовляти, чи з іноземцем, що не знає вашої мови. Він лементом (дитина) чи жестом (іноземець) показує, що йому щось потрібно від вас. Але зрозуміти, що саме йому потрібно, ви не можете. А він же знає, що йому потрібно! Ви починаєте, пропонувати йому різні предмети, а він або відкидає, або приймає їх.
Відзначимо, до речі, що потреба користувача може бути і невимовна даною мовою. Уявіть собі, що ви намагаєтеся пояснити давньослов'янською мовою, що вам потрібний комп'ютер.
Усім відомо, що спілкування з машиною відбувається на деякій формальній мові. Спеціальні мови, на яких користувачі виражають свої інформаційні потреби, називаються мовами запитів. Отже, ми будемо розуміти запит як інформаційну потребу користувача. Вираження цієї потреби на деякій формальній мові ми будемо називати формулою чи запиту вираженням запиту.
Довідка (Help) визначає запит так: “Вимога на добір даних, що зберігаються в таблицях, чи вимога на виконання визначених дій з даними. Запит дозволяє створити загальний набір записів з даних, що знаходяться в різних таблицях, і використовувати цей набір як джерело даних для чи форми звіту. У Microsoft Access користувач має можливість створювати і виконувати запити наступних типів:
• Запити на вибірку (включаючи запити з параметрами і підсумкові запити)
• Запити на зміну
• Перехресні запити
• Специфічні запити SQL.”
Запит на вибірку визначається в Help так: “Запит, у якому формулюються умови добору даних, що зберігаються в чи формі в об'єкті в режимі таблиці, і повертається набір записів, що задовольняє зазначеним умовам, без зміни даних, що повертається. Після висновку результатів запиту на екран стає можливим їхній перегляд, а в деяких випадках зміна даних у базових таблицях. На відміну від цього, у запитах на зміну виробляється зміна даних.”