18230

Query-By-Example

Лекция

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

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

Украинкский

2013-07-07

144.5 KB

4 чел.

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


 

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

53571. Кейс-технология на уроках русского языка 4.22 MB
  Респондентам людям от 15 до 25 лет было предложено объяснить значения слов которые широко употреблялись представителями предыдущих поколений: честь совесть этика мораль патриотизм и др. Респондентам людям от 15 до 25 лет было предложено объяснить значения слов которые широко употреблялись представителями предыдущих поколений: честь совесть этика мораль патриотизм и др. Респондентам людям от 15 до 25 лет было предложено объяснить значения слов которые широко употреблялись представителями предыдущих поколений: честь...
53572. Продукти харчування і здоров’я 156.5 KB
  Мета уроку: Навчальна: формування поняття про харчові добавки штрихкод генномодифіковані продукти. Форма проведення: урокконсультація Тип уроку: урок засвоєння нової інформації Обладнання: виставка інформаційних джерел про здорове харчування і харчові добавки; епіграф уроку; плакати про штрихкод шкідливі добавки про правила покупця; чорний ящик; набори упаковок продуктів...
53573. Харківщина - моя Батьківщина 169 KB
  Кожна дитина повинна зрозуміти що не тільки вчитель а й сам він учень є вихованцем самого себе як індивідуальності а саме: вдосконалювати себе поєднувати в собі єдність слова і діла поглядів і вчинків моралі і поведінки та розвивати традиції народу. Звучить пісня Бабаї Учень Що стоїть за словом Батьківщина Може то садочок пишним цвітом Чи криниця з чистою водою Поле що так смачно пахне літом Чи стеблина поєна росою Учень Знаєш брате мабуть Батьківщина То наша родина й домівка То земля що зветься Україна То село якому...
53574. Театральне та літературне життя Харкова початку ХХ століття 474.5 KB
  Учитель з художньої культури Доброго дня З великим задоволенням пропоную вам розпочати урок під час якого ми познайомимося з надзвичайно цікавою інформацією яка допоможе не тільки краще зрозуміти культурномистецьке життя Харкова на початку ХХ століття а також дасть можливість усвідомити культурні звязки між митцями. Заснування стаціонарного театру мало велике значення для розвитку культурномистецького життя.Старицький повість Оборона Буші драматичні твори За двома зайцями та Циганка Аза пісня що стала народною Ніч яка...
53575. Управление дебиторской задолженностью 28.5 KB
  Дебиторская задолженность представляет собой долг покупателей за проданную им продукцию. Длительность финансового цикла и соответственно требуемый объем инвестиций в его обеспечение во многом зависит от периода оборачиваемости дебиторской задолженности.
53576. Источники финансирования деятельности предприятия 26.5 KB
  По отношению к организации источники финансирования подразделяются на внутренние и внешние. К внутренним источникам относятся ресурсы, сформированные внутри организации, а к внешним – средства, формируемые вне предприятия.
53577. Чай пить – не дрова рубить 70.5 KB
  Цели мероприятия: усиление межпредпредметных связей; формирование ответственности за свою работу и работу в группе; ознакомление учащихся с историей чая как напитка; изучение некоторых свойств чая; формирование системы знаний обеспечивающих эстетическое воспитание. Задачи мероприятия: изучение состава и свойств веществ входящих в состав чая; определение основных показателей качества сырья; ознакомление учащихся с информацией о благоприятном влиянии чая на организм человека; стимулирование желания...
53578. Взаимосвязь финансового левериджа и финансового риска 25 KB
  С категорией финансового левериджа связано понятие финансового риска. Финансовый риск — это риск, обусловленный возможным недостатком средств для выплаты процентов по ссудам и займам.
53579. Стратегии финансирования оборотных средств 26 KB
  В теории финансового менеджмента выделяются следующие стратегии финансирования оборотных активов: идеальная, агрессивная, консервативная и компромиссная.