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


 

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

32966. INFO ОБЩ-ВО: ИСТОКИ, СУЩНОСТЬ, ПЕРСПЕКТИВЫ ЭВОЛЮЦИИ (М.КАСТЕЛЬС. INFO ЭПОХА: ЭКОНОМИКА, ОБЩ-ВО И КУЛЬТУРА) 17.68 KB
  INFO ОБЩВО: ИСТОКИ СУЩНОСТЬ ПЕРСПЕКТИВЫ ЭВОЛЮЦИИ М. INFO ЭПОХА: ЭКОНОМИКА ОБЩВО И КУЛЬТУРА М.Кастельс: концепция info общва: 1. в постиндустриальный info мир вступили США Япония ведущие европейские страны а также некоторые страны АТР.
32967. ИНДУСТРИАЛЬНОЕ И ПОСТИНДУСТРИАЛЬНОЕ ОБЩ-ВО. СУЩНОСТЬ СОВРЕМЕННОЙ ТЕХНОЛОГИЧЕСКОЙ РЕВОЛЮЦИИ (Д.БЕЛЛ. ГРЯДУЩЕЕ ПОСТИНДУСТРИАЛЬНОЕ ОБЩ-ВО. ОПЫТ СОЦ. ПРОГНОЗИРОВАНИЯ) 17.66 KB
  ИНДУСТРИАЛЬНОЕ И ПОСТИНДУСТРИАЛЬНОЕ ОБЩВО. ГРЯДУЩЕЕ ПОСТИНДУСТРИАЛЬНОЕ ОБЩВО. формируется новое общво: постиндустриальное info посткапиталистическое технотронное технологическое супериндустриальное постмодерное общво знаний и т. Постиндустриальное общво это общво в экономике которого в result НТР и существенного роста доходов населения приоритет перешёл от преимущественного производства товаров к производству услуг.
32968. ИНТЕГРАТИВНЫЙ ХАР-Р СОЦ.-ГУМАНИТАРНОГО ЗНАНИЯ 16.07 KB
  ИНТЕГРАТИВНЫЙ ХАРР СОЦ.ГУМАНИТАРНОГО ЗНАНИЯ В сфере социальногуманитарного знания особое место принадлежит философии. экономисты считают экономическую теорию царицей соц. Философия хозва формирует реальное мысленное пространство которое обеспечивает эффективное научное познание нацеленное на комплексное социоэкономическое объяснение явлений и процессов системный подход учёт конкретной специфики той или иной страны.
32969. ИСТОКИ ПОСТНЕКЛАССИЧЕСКОГО ЭТАПА РАЗВИТИЯ НАУКИ (И.ПРИГОЖИН, И.СТИНГЕРС. ВЫЗОВ НАУКИ) 14.72 KB
  ИСТОКИ ПОСТНЕКЛАССИЧЕСКОГО ЭТАПА РАЗВИТИЯ НАУКИ И. ВЫЗОВ НАУКИ Зап. наука: высшая задача науки сформулировать общие схемы которые бы совпадали с идеалом рационального. Но это привело не к замедлению прогресса науки а способствовало появлению новых концептуальных структур наука выполняет некую универсальную миссию затрагивающую взаимодействие человека и природы и человека с человеком в наши дни основной акцент научных исследований переместился с субстанции на отношение связь время Больцман: м у вероятностью и необходимостью...
32970. ИСТОРИЯ И ФИЛОСОФИЯ НАУКИ КАК МЕЖДИСЦИПЛИНАРНАЯ ДИСЦИПЛИНА 23.23 KB
  ИСТОРИЯ И ФИЛОСОФИЯ НАУКИ КАК МЕЖДИСЦИПЛИНАРНАЯ ДИСЦИПЛИНА Философия входит в жизнь человека очень рано задолго до того как сложится о ней самое 1st элементарное представление навеянное случайными встречами и знакомствами. Философия науки раздел философии изучающий понятие границы и методологию науки. Периоды преднауки появление элементов научности: докть обоснование систематизация IVв. Дальше начинается триумфальный процесс развития науки производится большое колво открытий.
32971. МЕТОДОЛОГИЧЕСКОЕ ЗНАНИЕ И ЕГО УРОВНИ 14.53 KB
  Термин методология применяется не только к научнопознавательной деятти но и к любой др. деятти человека. Методология познание способа человеческой деятти научной художественной производственной. сферах деятти и их совершенствование.
32972. МЕТОДЫ НАУЧНОГО ПОЗНАНИЯ. ЭМПИРИЧЕСКИЕ И ТЕОРЕТИЧЕСКИЕ МЕТОДЫ НАУЧНОГО ПОЗНАНИЯ 22.52 KB
  МЕТОДЫ НАУЧНОГО ПОЗНАНИЯ. ЭМПИРИЧЕСКИЕ И ТЕОРЕТИЧЕСКИЕ МЕТОДЫ НАУЧНОГО ПОЗНАНИЯ Метод греч. Методы естественных наук подразделяют на: 1. методы изучения неживой природы и методы изучения живой природы.
32973. НАУКА В АНТИЧНОСТИ И СРЕДНИЕ ВЕКА 19.13 KB
  1st позитивистов не изучался генезис науки отдельно. Спенсер Происхождение науки: наука появилась одновременно с появлением человека. во Франции создается кафедра по изучению генезиса науки. Вопрос о периодизации науки до сих пор дискуссионный.
32974. НАУКА И ФИЛОСОФИЯ: ОБЩЕЕ, ОСОБЕННОЕ И ИДЕЯ ДОПОЛНИТЕЛЬНОСТИ (М. БОРН. ФИЗИКА И МЕТАФИЗИКА) 18.66 KB
  ФИЗИКА И МЕТАФИЗИКА Метафизика исследование общих черт структуры мира и наших методов проникновения в эту структуру. Вильям Джемс: Метафизика это необычайно упорное стремление мыслить ясным образом. Бертран Рассел: Метафизика попытка постичь мир как целое с помощью мысли. Метафизика исследование общих черт структуры мира и наших методов проникновения в эту структуру.