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


 

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

80918. Методология формирования цен в России 47.36 KB
  Для расчета прибыли используется выручка от реализации за минусом НДС и акцизов. Кроме налогов включаемых в себестоимость продукции в цену включаются так называемые косвенные налоги: таможенные пошлины; акцизы; НДС. НДС представляет собой форму изъятия в бюджет части добавленной стоимости создаваемой на всех этапах производства и реализации товаров. Действуют следующие ставки НДС: 10 на детские товары и продовольственные товары по перечням установленным правительством РФ; 18 на промышленные товары на продовольственные подакцизные...
80919. Ценообразование в условиях инфляции 53.99 KB
  Ценовая тактика хозяйствующих субъектов в условиях инфляции. Инфляция означает обесценение бумажных денег по отношению к товарам рост товарных цен золоту повышение рыночной цены золота иностранным валютам падение курса национальной валюты по отношению к иностранным денежным единицам. Поскольку цены являются денежной формой стоимости товаров и услуг то инфляция может возникать как результат превышения количества бумажных денежных единиц находящихся в обращении над суммой товарных цен и проявляться в росте цен и снижении покупательной...
80920. Технология расчета цены в развитой экономике 52.11 KB
  Методы определения базовой цены. Цены подвергаются изменениям на рынке под воздействием спроса и предложения. Эластичность показывает в какой степени изменение цены влияет на величину спроса...
80921. Ценовая политика и стратегия предприятия 48.88 KB
  Цели ценовой политики. Политика цен жизненного цикла товара. Стратегии ценообразования. Цели ценовой политики Цена в условиях рыночной экономики один из важнейших факторов определяющих прибыльность предприятия.
80922. Особенности ценообразования в различных отраслях и сферах деятельности 47.56 KB
  Наиболее емким рынком в РФ является рынок продовольственных товаров. Своими размерами, количеством населения, широкими связями со странами СНГ и регионами мира РФ привлекательна для продавцов и производителей продовольственных товаров.
80923. Внешняя торговля и цены 74.66 KB
  Международное экономическое разделение труда в последние годы достигло невиданных в истории экономического развития масштабов, а мировая торговля становится господствующим фактором не только экономического, но и политического, общественного и культурного развития в мире
80924. Цены и их роль в национальной экономике 49.68 KB
  Одним из факторов, влияющих на уровень цен, являются издержки производства. Кроме них, серьезное влияние на цены оказывает полезность товара, благодаря которой товар приобретает статус блага и оказывается вовлеченным в круг интересов потребителей.
80925. Система цен. Классификация цен 48.61 KB
  Она состоит из различных элементов в качестве которых можно рассматривать как конкретные отдельные цены так и определенные группы цен объединяемых по различным признакам. Ведущую роль во всей системе цен играют цены на продукцию базовых отраслей промышленности. Тесная взаимосвязь и взаимозависимость цен входящих в единую систему обусловлена в основном двумя важными обстоятельствами: Все цены формируются на единой методологической основе которой являются законы стоимости предложения и спроса. В зависимости от характера обслуживаемого...
80926. Поняття наочного навчання. Класифікація наочності 31.77 KB
  На основі безпосереднього сприйняття предметів чи за допомогою зображень наочності у процесі навчання в учнів формуються образні уявлення і поняття про історичне минуле. Педагогічний словник визначає наочність як один із принципів навчання заснований на показі конкретних предметів процесів явищ. Під засобами навчання розуміють предмети прилади чи їх сукупність яка необхідна для здійснення чогонебудь.