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


 

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

31674. Свідомість 30.5 KB
  Складна діяльність вищих тварин що підпорядкована природним предметним зв’язкам і відношенням у людини перетворюється на діяльність підпорядковану суспільним зв’язкам і відносинам. Вона є тією безпосередньою причиною завдяки якій виникає специфічна людська форма відображення дійсності – свідомість людини. У людини завдяки її участі в спільній діяльності з іншими людьми в умовах розподілу функцій між ними те на що спрямована дія саме по собі може і не мати прямого біологічного смислу. У людини ж користування штучним знаряддям...
31675. Поняття про особистість та її структуру 26.5 KB
  Належність особистості до певного суспільства до певної системи суспільних відносин визначає її психологічну Та соціальну сутність. Характерними ознаками особистості є наявність у неї свідомості виконувані нею суспільні ролі суспільно корисна спрямованість її діяльності. Однією з найяскравіших характеристик особистості є її індивідуальність під якою розуміють своєрідне неповторне поєднання таких психологічних особливостей людини як характер темперамент особливості перебігу психічних процесів сприймання пам’яті мислення мовлення...
31676. Поняття про діяльність 23 KB
  Проте активність тварин і діяльність людини суттєво відрізняються за психологічними ознаками. Людська діяльність за сутністю є соціальною. Діяльність людини характеризується свідомістю і цілеспрямованістю.
31677. Поняття про мову та її функції 30 KB
  Біологічними передумовами виникнення мови були звуки та рухи які спостерігались у пращурів людини і слугували засобом спілкування задоволення потреби в обміні думками у пізнанні властивостей предметів та явищ що оточували людину і позначалися словами. Слово як одиниця мови має два боки зовнішній звуковий фонетичний та внутрішній смисловий семантичний. Унаслідок цього виникла багатозначність слів що також є продуктом історичного розвитку кожної мови. Основні елементи мови її словниковий склад і граматична будова.
31678. Різновиди мовлення 35.5 KB
  Усне мовлення. Це основний різновид мовлення який є звуковим і який інші сприймають за допомогою слуху. Усне мовлення поділяється на діалогічне та монологічне.
31679. Поняття про спілкування 25.5 KB
  Спілкування явище глибоко соціальне. Соціальна природа спілкування виражається в тому що воно завжди відбувається в середовищі людей де суб’єкти спілкування завжди постають як носії соціального досвіду. Соціальний досвід спілкування виявляється у змісті інформації що є його предметом знання відомості способи діяльності у засобах мовна та немовна комунікація при спілкуванні у суспільно вироблених у процесі історичного розвитку різновидах спілкування.
31680. Різновиди і форми уваги 35.5 KB
  Усі різновиди уваги тісно взаємопов’язані і за певних умов переходять один в одного. Мимовільна увага властива і людині і тваринам хоча її виникнення у людини якісно відрізняється від такої уваги у тварин. Фізіологічним підґрунтям мимовільної уваги є безумовнорефлекторна орієнтувальна діяльність.
31681. Поняття про відчуття 36.5 KB
  Отже у нас різні смаки оцінки відчуття. Відчуття це суб єктивне відображення окремих властивостей предметів і явищ навколишнього світу в корі головного мозку внаслідок їх безпоснрнднього впливу на наші органи чуття.хто не довіряє відчуттям той дурень і неминуче перетвориться на споглядача відчуття не одурюють одурюють судження .
31682. Поняття про сприймання 23.5 KB
  Таке цілісне їх відображення в мозку людини характеризує другу ланку єдиного процесу чуттєвого пізнання сприймання. Сприймання це психічний процес відображення в мозку людини предметів та явищ у цілому у сукупності всіх їх якостей та властивостей при безпосередній дії на органи чуття. У результаті сприймання виникають суб’єктивні образи сприйманих об’єктів уявлення.