18230

Query-By-Example

Лекция

Информатика, кибернетика и программирование

QueryByExample Семантична основа мови – теорія відображень. QBE розшифровується як Query By Example запит за зразком є мовою запитів реляційних баз даних. Це графічна мова запитів. Основний спосіб роботи з використанням цієї мови полягає в тому щоб у надані бланки таблиць бази ...

Украинкский

2013-07-07

144.5 KB

3 чел.

Query-By-Example

Семантична основа мови – теорія відображень.

QBE, розшифровується як Query By Example (запит за зразком), є мовою запитів  реляційних баз даних. Це графічна мова запитів. Основний спосіб роботи з використанням цієї мови полягає в тому, щоб у надані бланки таблиць бази даних вписати один із прикладів можливих відповідей на запит, а інтерпретуюча система повинна за аналогією, знайти всі можливі відповіді. Передбачається, що користувачу на екрані надаються такі бланки таблиць і він у них формулює запити, заповнюючи відповідним чином поля бланків. Оскільки операції задаються в табличній формі, говорять, що QBE має двовимірний синтаксис. У мові є також можливість формулювати запити ієрархічної структури.

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

Знайомитись з засобами QBE будемо на прикладах , які формулюються на базі даних, що ми використовували дотепер.

Для вибору значень з окремих стовпців таблиці, тобто щоб зробити проекцію відповідно до термінології реляційної алгебри, треба в бланку таблиці відзначити за допомогою функції Р (print) ті стовпці, які потрібно вивести.

1. Знайти коди всіх деталей, що постачаються.

    ОПД

       КК

КД

КО

кількість

ціна

Р.х

  

Zloof, автор мови QBE, доволі оригінально вводить поняття змінної. Як відомо, змінна - не просте для розуміння поняття, особливо для користувачів, які не є професійними програмістами, а саме за їх рахунок планувалося розширити сферу використання мови QBE. Тому при описі QBE замість змінної вживається термін зразок (example), тобто рекомендується написати будь-який рядок літер (наприклад, такий, що очікується у відповіді), але обов’язково його підкреслити, таким способом вводиться об’єкт (змінна),  який отримує певне значення (результуюче або проміжне). У скриптах змінна вирізняється тим, що попереду у неї стоїть знак підкреслення.

  

Щоб вивести всі поля таблиці, потрібно проставити символ Р у всіх полях бланка, або в єдиному полі під ім'ям таблиці, наприклад:

2. Знайти всі відомості про всіх постачальників.

П

КП

прізвище

статус

місто

Р.

Вибирання за умовою

Кон’юнктивна селекція. У найпростішому випадку умова вибирання має вигляд.

ім’я-поля-1 значення-1 AND ім’я-поля-2 значення-2 AND ... AND ім’я-поля-n значення-n

де один із предикатів порівняння {=, !=, >, >=, <, <=}. Така умова записується так, що предикати разом із своїми значеннями вписуються у відповідні поля бланка таблиці, тобто ім’я поля вказувати не потрібно, наприклад:

3. Знайти коди постачальників з міста N та зі статусом більше 20.

П

КП

прізвище

статус

місто

Р.х

>20

N

  

   Якщо знак порівняння відсутній, то це означає по замовчуванню =”.

Диз'юнктивна селекція. Якщо умова містить логічні зв'язування AND, OR і NOT, то такий вираз треба насамперед привести в диз'юнктивну нормальну форму.

(літерал-11 AND ... AND літерал-1k) OR ... OR  (літерал-p1 AND ... AND літерал-pn)

Тут літерал-ij позначає елементарний предикат вигляду <ім'я-поля><значення>  чи його заперечення. Після цього кожну з кон’юнкцій потрібно записати в окремому рядку бланка. Наприклад:

4. Знайти коди постачальників з міста N або зі статусом більше 20.

П

КП

прізвище

        статус

місто

Р.х

N

Р.у

>20

Розглянемо використання змінних для встановлення зв'язків всередині однієї таблиці.

5. Знайти коди тих постачальників, які постачають деталі Д1 і Д2.

ОПД

КП

КД

КО

кількість

ціна

Р.х

D1

х

D2

У QBE можна виражати запити, що використовують з'єднання двох чи більше таблиць. Це досягається заповненням бланків відповідних таблиць з використанням спільних змінних у таблицях для їхнього зв'язування.

6. Знайти прізвища постачальників, що постачають деталь Д7.

     П

   КП

прізвище

статус

місто

х

Р.n

ОПД

КП

КД

КО

х

D7

7. Знайти прізвища постачальників, що постачають принаймні одну деталь червоного                              

   кольору.

     П

   КП

прізвище

статус

місто

х

Р.n

ОПД

КП

КД

КО

х

d

Д

КД

назва

колір

вага

місто

d

червоний

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

8. Знайти прізвища постачальників, що не постачають деталь D7.

     П

   КП

прізвище

статус

місто

х

Р.n

ОПД

КП

КД

КО

х

D7


9. Знайти прізвища постачальників, що постачають принаймні одну деталь, яку постачає
S5.

     П

   КП

прізвище

статус

місто

х

Р.n

ОПД

КП

КД

КО

х

z

S5

z

Теоретико-множинні предикати

Тут виникають наступні дві проблеми: як специфікувати множину у межах відношення і як задавати предикати на цій множині. Множина у межах відношення специфікується за допомогою ключового слова ALL. Наявність цього слова в полі означає, що формується множина усіх значень цього поля в таблиці.

10. Знайти прізвища постачальників, що постачають всі деталі.

 ОПД

КП

КД

...

у

ALL.x

Д

КД

...

ALL.x

П

КП

прізвище

...

у

P.z

     

     ... - рядок нефіксованої довжини.

Використання бланка умови

У деяких випадках умову на одній чи декількох таблицях або не досить зручно задавати всередині бланка, або в принципі не можливо.  Наприклад, якщо предикат використовує різні поля, або якщо один чи обидва операнди двомісного предиката є виразами над різними полями, то таку умову неможливо виразити всередині бланка. Прикладом такої умови може бути: Зарплата + Надбавка > 2 * Зарплата.

У цьому випадку пропонується використовувати бланк умови.

11. Знайти коди постачальників, що постачають принаймні всі ті деталі які постачає постачальник P5.

ОПД

КП

КД

...

Р.х

ALL.у

S5

ALL.у

Бланк умови

¬( х=S5)

Умова, описана в бланку умови, означає, що самого постачальника S5 виводити не треба.

12. Знайти коди постачальників з найбільшим статусом.

     П

   КП

прізвище

статус

...

Р.х

с

>с

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

    елемент.

Агрегатні функції

Мова надає можливість використовувати стандартні агрегатні функції COUNT, SUM, MIN, MAX, AVG. Щоб використовувати таку функцію, варто вказати, що вона застосовується до множини значень поля, наприклад:

13. Підрахувати скільки всього є постачальників.

П

КП

...

P.COUNT.ALL.x

Передбачається, що при проекції дублікати отриманих кортежів не видаляються. Щоб результат не містив повторюваних кортежів, варто використовувати конструкцію Р.U (print unique), наприклад запит приводить до виводу тільки унікальних кортежів таблиці ОП з полями КП та ін.:

14. Підрахувати кількість постачальників які щось постачають.

ОП

КП

...

P.COUNT.U.ALL.x

 

    U- виключає дублі.

15. Підрахувати кількість постачальників які постачають деталь D1.

ОПД

КП

КД

...

P.COUNT.ALL.х

D1

16. Знайти коди деталей в яких більше одного постачальника.

ОПД

КП

КД

...

ALL.х

Р.у

 

Бланк умови

COUNT.ALL.х>1

Модифікація таблиць бази даних

Ця група операцій дозволяє робити додавання, заміну і видалення рядків у таблицях. Можливості цих операцій обмежені в порівнянні з SQL у зв'язку з тим, що в них немає розвинутих засобів модифікації з урахуванням поточного стану бази даних.

17. Змінити колір деталей з червоного на жовтий

Д

КД

...

колір

...

х

червоний

UPDATE

х

жовтий

18. Збільшити для постачальника з кодом П2 кількість деталей на 5.

ОПД

КП

КД

...

кількість

S2

х

UPDATE

S2

х+5

19. Вилучити запис з кодом постачальника P2.

П

КП

...

DELETE

S2

Зміна червоного кольору на жовтий.

Д

КД

колір

х

red

х

Changeto yellow

ОПД

КП

КД

...

кількість

S2

x, changeto x+5

Ієрархічні запити в QBE

Розглянемо відношення RS (Mgr, Emp), зміст якого полягає в тому, що службовець з номером Emp працює під керівництвом начальника з номером Mgr. Припустимо, що структура підпорядкування має наступні властивості:

  •  Жодний службовець не є своїм власним начальником чи начальником кожного зі своїх начальників (петель і циклів ).
  •  Жодний службовець не має більш як одного безпосереднього начальника (відсутність множинного підпорядкування).

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

 

RS

MGS

EMP

Е1

Е6

Е1

Е7

Е1

Е8

Е6

Е18

Е8

Е15

Е8

Е16

Е15

Е20

Е15

Е24

Е24

Е32

При графічному зображенні воно буде виглядати наступним чином:

                                                                           Е1

 Е8

 Е6

 Е7

 Е18 Е15

 Е16

Е24

                                                                     Е20

Е32

Наступні запити демонструють роботу з ієрархічними структурами.

1. Знайти підлеглого  Е8 на 1-му рівні.

RS

MGS

EMP

Е8

Р.х

2. Знайти підлеглого  Е8 на 2-му рівні.

RS

MGS

EMP

 

Е8

Р.х (2L)

L означає Level


або

RS

MGS

EMP

Е8

у

у

Р.х

3. Знайти начальників Е20 на 2-му рівні.

RS

MGS

EMP

 

Р.m (2L)

Е20

4. Для Е8 знайти всіх підлеглих з вказуванням рівня підлеглості.

RS

MGS

EMP

 

Е8

Р.х (6L)

 

Зауважте, що в цьму запиті  6

є  іменем  змінної (підкреслений символ)

5. Для Е8 знайти вузол, до якого шлях найбільший.

RS

MGS

EMP

 

Е8

Р.х (МАХ.6L)

6. Знайти всі листові величини дерева (співробітники, що не мають підлеглих) з коренем    

   Е8.

RS

MGS

EMP

 

Е8

Р.х (LAST.L)

7. Знайти на якому рівні Е20 є підлеглим у Е1.

RS

MGS

EMP

 

Е8

Р.Е20 (7L)

QBE також надає можливості формулювати запити наступного виду:

8. Видати імена таблиць, де використовується атрибут КП.

Р.

КП

9. Знайти імена таблиць та стовпчиків, де серед даних є LONDON”.

Р.

Р.

LONDON


 

А также другие работы, которые могут Вас заинтересовать

2292. Что делает человека человеком 17.84 KB
  Мыслители пришли к выводу, что самый важный признак человека заключается в том, что он существо общественное. Или социальное. Socialis – общественный.
2293. Анализ деятельности специалистов строительного профиля в ООО Монолит 56.51 KB
  Структура численности предприятия. Виды работ, пройденные в период практики. Обязанности мастера отделочных работ. Организация труда в бригаде отделочников. Должностная инструкция мастера отделочных строительных работ ООО Монолит.
2294. Формирование здоровой, полноценной, социально адаптированной личности 30.72 KB
  Целью воспитательной работы лицея и моей как мастера производственного обучения является: формирование полноценной, психически и физически здоровой, социально адаптированной личности, способной строить свою жизнь.
2295. Договор финансовой аренды (лизинга) 99 KB
  В Республике Беларусь лизинговые операции стали проводиться с 1991 г. Развитие лизинга шло по двум направлениям: внутреннему и международному. Большинство белорусских лизинговых компаний на сегодняшний день занимаются внутренним лизингом. Внутренние лизинговые операции проводятся в основном за счет кредитных ресурсов белорусских банков.
2296. Система Mathcad. Побудова графіків 60.82 KB
  Використання ранжованих змінних. Табулювання функцій та побудова їх графіків засобами MathCad. Побудова найпростіших діаграм. Приклади задання ранжованої змінної. Створити на вільному місці шаблон для графіка.
2297. Система Mathcad. Розв’язування задач оптимізації 92.14 KB
  Пошук екстремуму функції. Екстремум функції багатьох змінних. Локальний екстремум. Умовний екстремум. Приклад вирішення транспортної задачі в середовищі Mathcad. Зміна чисельного методу. Вікно діалогу Advanced Options.
2298. Математична обробка даних експерименту. Парна регресія 74.68 KB
  Постановка задачі. Парна регресія. Лінійна парна регресія. Лінеаризація деяких видів двопараметричних зв’язків. Метод найменших квадратів (МНК). Алгоритм МНК. Приклад розв’язування задачі в середовищі системи Mathcad.
2299. Теорія держави та права 139.5 KB
  Закони та підзаконні нормативно-правові акти, систематизації нормативно-правових актів. Предмет конституційного права. Фактична конституція. Адміністративне право України. Місцеве самоврядування в Україні. Політико-структурні елементи.
2300. Повышение долговечности бетона при проектировании и изготовлении конструкций 176.5 KB
  Основные правила проектирования. Ограничение содержания хлоридов в бетоне. Правила производства работ. Составляющие бетона. Приготовление, транспорт и укладка бетона. Дополнительная защита конструкций. Параметры долговечности и их контроль при изготовлении конструкций.