Query by Example (QBE) – przyjazna dla użytkownika technika tworzenia zapytań do bazy danych, opracowana pierwotnie w IBM i opisana w publikacjach Moshé M. Zloofa z połowy lat 70. XX wieku[1][2]. W klasycznej postaci QBE jest wizualnym językiem zapytań dla relacyjnych baz danych: użytkownik konstruuje zapytanie przez uzupełnianie tzw. tabel przykładowych (example tables/skeleton tables), a system tłumaczy je na formalną postać wykonywaną przez silnik bazy danych (np. SQL)[3].
Technika ta polega na wypełnieniu szukanymi wartościami pól w reprezentacji odpowiadającej strukturze rekordów w bazie, np. „Warszawa” w polu „Miasto” czy „Kowalski” w polu „Nazwisko”. W praktyce „przykład” może zawierać nie tylko stałe (np. ciągi znaków), ale również operatory porównania, zmienne dziedzinowe oraz polecenia określające pola wyniku (np. komendę projekcji P. – print)[3]. Wynikiem zapytania jest zbiór rekordów spełniających warunki zadane w tabelach przykładowych[4].
System QBE dokonuje konwersji z zapytania użytkownika do formalnego zapytania bazy danych, co pozwala wykonywać zapytania bez bezpośredniej znajomości składni języka tekstowego (np. SQL)[3]. W narzędziach IBM QMF mechanizm ten jest jawny m.in. poprzez polecenie CONVERT, które przekształca zapytanie QBE do zapytania SQL[5].
Historia i rozwój
[edytuj | edytuj kod]QBE zostało zaprojektowane w IBM jako język wysokiego poziomu, w którym użytkownik „wpisuje przykład” rozwiązania w tabelach odpowiadających relacjom bazy, a system wyprowadza z tego formalne polecenia zapytań (oraz – w rozszerzeniach – modyfikacji danych)[2]. W literaturze dotyczącej systemów bazodanowych QBE bywa przedstawiane jako jedna z pierwszych szeroko opisywanych technik wizualnego formułowania zapytań, mająca wpływ na późniejsze interfejsy tabelaryczne do projektowania zapytań[3].
Składnia i semantyka
[edytuj | edytuj kod]W typowej prezentacji QBE użytkownik buduje zapytanie na ekranie, tworząc tabele przykładowe odpowiadające relacjom oraz uzupełniając je elementami określającymi:
- projekcję (jakie pola mają znaleźć się w wyniku) – zwykle przez oznaczenie kolumn komendą P. (print)[3],
- selekcję (warunki dla atrybutów) – przez wpisanie stałych lub warunków typu < 10, test, negacji itp.[3],
- złączenia (łączenie relacji) – przez użycie tej samej zmiennej dziedzinowej w kolumnach pełniących rolę atrybutów łączenia w różnych tabelach przykładowych[3],
- eliminację duplikatów i porządkowanie – m.in. przez dyrektywy typu UNQ./ALL. oraz sortowanie .AO/.DO w połączeniu z P.[3].
Implementacje i zastosowania
[edytuj | edytuj kod]- IBM Query Management Facility (QMF) udostępnia panele QBE do konstruowania zapytań oraz zestaw poleceń specyficznych dla QBE (np. DRAW, CONVERT)[6][7].
- Wpływ QBE jest wskazywany w literaturze m.in. na interfejsy oferowane przez niektóre systemy i narzędzia desktopowe (np. Borland Paradox, a w pewnym zakresie Microsoft Access)[3]. W dokumentacji Microsoft Access nazwa QBE grid pojawia się historycznie jako dawne określenie siatki projektowania zapytań (design grid)[8].
Przypisy
[edytuj | edytuj kod]- ↑ Moshé M. Zloof, Query by example, IBM Research, 19 maja 1975 [dostęp 2025-12-15] (ang.).
- ↑ a b M.M. Zloof, Query-by-Example: A data base language, „IBM Systems Journal”, 16 (4), 1977, s. 324–343, DOI: 10.1147/sj.164.0324 [dostęp 2025-12-15] (ang.).
- ↑ a b c d e f g h i Query-by-Example (QBE) [online], pages.cs.wisc.edu [dostęp 2025-12-15] (ang.).
- ↑ Displaying the QBE query panel [online], IBM [dostęp 2025-12-15] (ang.).
- ↑ QMF commands specific to QBE [online], IBM [dostęp 2025-12-15] (ang.).
- ↑ Displaying the QBE query panel [online], IBM [dostęp 2025-12-15] (ang.).
- ↑ QMF commands specific to QBE [online], IBM [dostęp 2025-12-15] (ang.).
- ↑ Access glossary [online], Microsoft Support [dostęp 2025-12-15] (ang.).









