Характеристика мови QBE

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

На мові QBE можна запитувати однотабличні і багатотабличні (вибирають чи обробні дані з кількох пов'язаних таблиць).

За допомогою запитів на мові QBE можна виконувати такі основні операції:

∙ обчислення над даними;

∙ вставку нових записів;

∙ модифікацію (зміна) даних.

Результатом виконання запиту є нова таблиця, звана у відповідь (перші дві операції), або оновлена ​​вихідна таблиця (інші операції).

Вибірка, вставка, видалення та модифікація можуть проводитися безумовно або відповідно до умов, що задаються за допомогою логічних виразів. Обчислення над даними задаються за допомогою арифметичних виразів і породжують у таблицях у відповідь нові поля, звані обчислюваними .

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

У сучасних СУБД, наприклад, у Access і Visual FoxPro, багато дій з підготовки запитів з допомогою мови QBE виконуються візуально з допомогою миші. Зокрема,візуальне зв'язування таблиць під час підготовки запиту виконується не елементами прикладів, а просто «протягуванням» мишею поля однієї таблиці до поля інший.

Початковий варіант QBE

Розглянемо основні можливості QBE, спираючись з його початковий варіант.

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

∙ ЕМР (службовці): ПІБ – прізвище та ініціали службовця, ЗАРПЛАТА – розмір посадового окладу, КЕРІВНИК – прізвище

та ініціали керівника, ВІДДІЛ – назва відділу, в якому працює службовець;

∙ SALES (продаж): ВІДДІЛ – назва відділу, ТОВАР – назва

∙ SUPPLY (постачальники): ТОВАР – назва товару, що поставляється, ПОСТАЧАЛЬНИК – назва організації, що поставляє товар;

∙ TYPE (типи товарів): ТОВАР – назва товару, КОЛІР – його колір, ВАРТІСТЬ – вартість товару.

У таблицях наведено неповні та спрощені відомості. Так було в таблиці TYPE зазначені в повному обсязі види товарів, наведені у таблиці SALES.

Для опису змінних умов відбору записів, а також для зв'язування шаблонів у запитах використовуються елементи прикладу.

мови

Елемент прикладу відіграє роль ідентифікатора змінної (як у мові програмування) та задається за допомогою символьно-цифрової послідовності. Елементи прикладу у шаблонах виділимо підкресленням. Вид (довжина та склад) елемента прикладу ролі не грають: головне щоб при використанні в декількох місцях шаблону він був однаковим. Таким чином, елементи прикладу, зокрема, можна використовувати ідентифікатори example , х або у .

Для вказівки системі необхідності включення у відповідьтаблицю того чи іншого поля використовується «Р.», що означає «надрукувати».

можна

приклад 1 . Запит на вибірку.

З урахуванням викладеного запит на вибірку всіх зелених товарів можна записати у такому вигляді:

Словесно запит можна сформулювати так: «Вивести всі товари XX, колір яких зелений». У наведеному шаблоні елемент прикладу XX не є обов'язковим, і його можна опустити. Елементи прикладу вказуються обов'язково під час запису логічних умов, і навіть при зв'язуванні таблиць у запитах.

Порожні колонки із шаблону можна видаляти. Приклад 2 . Видалення колонок.

У нас стовпцем, що не використовується, є ВАРТІСТЬ. Виходячи з цього, для наведеного шаблону можна записати наступний еквівалентний шаблон:

Після заповнення шаблону для отримання результату натискається відповідна клавіша, наприклад, і починається виконання запиту. Результатом виконання наведеного запиту є така таблиця:

ручка

Розглянемо основні можливості перелічених вище типів операцій, які у запитах.

Вибірка даних

Проста вибірка. Приклад простої вибірки є запит: «Вивести всі можливі кольори товарів з таблиці TYPE».

мови

Приклад 3 . Проста вибірка.

Заповнений шаблон у цьому випадку виглядатиме так: TYPEТОВАРКОЛІВАРНЯ

Таблиця у відповідь має єдиний стовпець КОЛІР, що містить значення: білий, червоний, порожньо (значення не задано), зелений і синій. Значення, що дублюються, при цьому пропадають.

Якщо ви хочете вивести дані з кількох полів вихідної таблиці, у кожному з відповідних стовпців шаблону записується «Р.». Занесення «Р.» у всі стовпці шаблону можна замінити записом "Р." у першому стовпчику шаблону під назвою таблиці.

Проста вибірка із впорядкуванням. Для впорядкування значень, що виводяться за зростанням і за спаданням, використовуються конструкції «АТ.» та «DO.» відповідно. Якщо потрібно виконати впорядкування кількох стовпців, застосовують конструкції виду: «АО(1).», «АО(2).»

Вибір з кваліфікаторами (умовами). Вибір записів з вихідної таблиці у випадку може бути заснований на: точному збігу, частковому збігу, сравнении.

Точний збіг задається введенням констант у відповідних полях шаблону, як у разі запиту на товари зеленого кольору.

Частковий збіг задається за допомогою елементів прикладу. Зокрема, для формулювання запиту про виведення всіх видів товарів, назви яких починаються з літери «і», можна скористатися конструкцією «Р.і ke», записаною у полі ТОВАР таблиці TYPE. Тут: "Р." задає висновок, "і" константа, а "ke" - елемент прикладу, що грає роль змінної.

Використовуючи елементи прикладу, можна задавати різні варіанти часткового збігу зі значеннями даних з таблиць: на початку «і ke», наприкінці «х а», у середині «xlo x2» та у довільному місці.

Оскільки елементу прикладу можна порівняти будь-який символ, у тому числі й порожній (відсутність символу), то умові часткового збігу «xlo x2» задовольняють слова, що не тільки мають символ «о» в середині, але й закінчуються на «о».

Приклад 4 . Частковий збіг.

Шаблон запиту з вибором товарів синього кольору, у середині назв яких є буква «р», виглядає так: