Комп'ютерні науки > Запити, фільтри, використання та функціональне призначення
Запити, фільтри, використання та функціональне призначенняСторінка: 1/5
Що таке фільтр Довідка (Help) дає визначення поняттю “фільтр” так: “Набір умов, які застосовуються для добору підмножини записів чи для сортування записів. У Microsoft Access існують фільтри чотирьох типів: фільтр по виділеному фрагменту, звичайний фільтр, розширений фільтр і фільтр по вводу.” У свою чергу, умова відбору визначається як “набір обмежувальних умов, наприклад, = "Україна" (означаюче, що потрібно строкове значення "Україна") чи > 30000, використовуваних для висновку визначеного набору записів при створенні чи запиту фільтра.” Насправді фільтр — це просто логічний вислів. Фільтрація таблиці — це добір тих рядків таблиці, для яких відповідне вираження істинне. Ю.Шафран визначає фільтр як логічне вираження. Потрібно тільки пояснити, як воно будується з “умов”. А для цього необхідно розібратися, що таке логічний вислів. Арифметичні і логічні вираження Help (довідка) визначає вираження так: “Будь-яка комбінація операторів, констант, значень текстових констант, функцій, імен полів, елементів керуваннячи властивостей, результатом якої є конкретне значення.” Дане визначення є досить складним і не зовсім вірним. Що таке комбінація операторів, констант і т.д.? Спробуємо знайти більш конструктивне визначення. Щоб не захаращувати виклад непринциповими деталями, ми обмежимося випадком, коли в таблиці всі атрибути — числові (тобто в клітках таблиці можуть стояти тільки числа). Як арифметичні, так і логічні вираження будуються з деяких “цеглин” за допомогою визначеного набору операцій. У випадку арифметичних виражень “цеглинами” служать числа й атрибути (інших “цеглин” ми для простоти не розглядаємо), а з'єднують їхні звичайні арифметичні операції. Формально арифметичні вираження визначаються так. Будь-яке число чи атрибут є арифметичним вираження. Якщо A — арифметичне вираження, то (A) — теж арифметичне вираження. Якщо А и В — арифметичні вираження, то вираження А+В, А–В, А*В, А/В и А**В теж є арифметичними. Інших арифметичних виражень немає. От приклади арифметичних виражень: 7, х, 2+2, 2*x+3, 2*(х+3). Маючи формальне визначення, ми можемо пояснити, чому, скажемо, вираження 2*(х+3) є арифметичним, а вираження 7*+8 арифметичним не є. Дійсно, Для першого з цих виражень, відповідно до правила 1, вираження х і 3 є арифметичними. Звідси, за правилом 2, випливає, що вираження (х+3) теж є арифметичним. За правилом 1, вираження 2 — арифметичне. Виходить, за правилом 3, і вираження 2*(х+3) — арифметичне. Що стосується вираження 7*+8, воно не арифметичне хоча б уже тому, що символ + вимагає арифметичних виражень по обидва боки від себе, а вираження ліворуч від нього виглядає так: 7*. У свою чергу 7* не є арифметичним, оскільки символ * теж по обидва боки вимагає арифметичних виражень, а праворуч просто нічого немає. Приведене визначення арифметичного вираження конструктивно саме в тому змісті, що дозволяє прямо по тексту без обчислень визначити, арифметичне вираження перед нами чи ні. Якщо всім атрибутам, що входять в арифметичне вираження, додати числові значення, символи +, – , *, / і ** проінтерпретувати, відповідно, як операції додавання, вирахування, множення, розподіли і зведення в ступінь, і визначити природним образом (тобто як учать у школі) порядок виконання цих дій, то дане арифметичне вираження одержить чисельне значення. Скажемо, якщо значення х и у є, відповідно, 7 і 8, то значенням вираження х+2*у є 23. Таким чином, визначення того, чи є дане вираження арифметичним, і обчислення значення вираження — це два різних питання. Перейдемо до визначення логічних виражень. Ми будемо вважати, що “цеглини” логічних виражень мають вид хq Т, де х – атрибут, Т – арифметичне вираження, а q — один із символів порівняння: = (дорівнює), <> (не дорівнює), < (менше) чи > (більше). З'єднуються “цеглини” за допомогою логічних операцій AND, OR і NOT. Як і для арифметичних виражень, ми хочемо дати формальне визначення. Спочатку визначимо найпростіші логічні вираження, чи атоми. Визначення 1. Нехай х – атрибут, Т – арифметичне вираження. Тоді вираження х=Т, х<>Т, х<Т и х>Т називаються атомами. Тепер можна формально визначити логічні вираження. Ми будемо позначати їх великими латинськими буквами. Визначення 2. Всякий атом є логічне вираження. Істина і Неправда — логічні вираження. Якщо X — логічне вираження, то вираження, те (X) — теж логічне вираження Якщо Х и У — логічні вираження, то вираження Х AND Y, Х OR Y і NOT Х теж є логічними. Інших логічних виражень немає. От приклади логічних виражень: NOT х = 7, (х = 2+2) AND у > 2*(х+3). Тепер переходимо до значень виражень. Значеннями логічних виражень є Істина і Неправда. Спочатку визначимо значення атомів. Для цього всім атрибутам додамо числові значення й обчислимо значення арифметичного вираження, що входить в атом. Символи =, <>, < і > інтерпретуються як стандартним образом, як знаки порівняння чисел. Атом приймає значення Істина, якщо істинно відповідне порівняння, у противному випадку значення атома Неправда. Наприклад, якщо значення х и у є, відповідно, 7 і 8, то значенням атома х=х+2*у буде Неправда, тому що насправді 7 не дорівнює 23. Для обчислення значення логічного вираження, що не є атомом, служать так називані таблиці істинності. Вони дозволяють обчислити значення логічного вираження, якщо відомі значення його підвисловлень. От таблиця істинності для операції AND. Х | Y | Х AND Y | Істина | Істина | Істина | Істина | Неправда | Неправда | Неправда | Істина | Неправда | Неправда | Неправда | Неправда | Она показывает, как, зная значения выражений Х и Y, вычислить значение выражения Х AND Y. А вот таблицы истинности для OR и NOT: Х | Y | Х OR Y | Істина | Істина | Істина | Істина | Неправда | Істина | Неправда | Істина | Істина | Неправда | Неправда | Неправда | Х | NOT Х | Істина | Неправда | Неправда | Істина |
Назва: Запити, фільтри, використання та функціональне призначення Дата публікації: 2005-02-22 (1872 прочитано) |